Skip to content

Course Syllabus

CS 2860 Operating Systems

  • Division: Natural Science and Math
  • Department: Computer Science & Engineering
  • Credit/Time Requirement: Credit: 3; Lecture: 3; Lab: 0
  • Prerequisites: CS 2810
  • Semesters Offered: Spring
  • Semester Approved: Fall 2022
  • Five-Year Review Semester: Fall 2027
  • End Semester: Summer 2028
  • Optimum Class Size: 20
  • Maximum Class Size: 24

Course Description

This course will introduce students to the various components that comprise a modern operating system. Topics include OS virtualization of memory, virtualization of processes, concurrency inside processes and data persistence. Case studies include Linux and Windows.

Justification

As a software engineer, it is critical to understand the role of operating systems. A software engineer must have the practical skills needed to understand how operating systems control their programs and the implications of those controls. This course is part of the recommended curriculum for computer science majors at Snow College and is part of the required curriculum for software engineering majors at Snow College.

Student Learning Outcomes

  1. Understand operating system virtualization layers: 1) process virtualization, 2) memory virtualization.
  2. Understand process scheduling algorithms.
  3. Understand memory virtualization, including: 1) address translation, 2) segmentation, 3) paging.
  4. Understand concurrency principles, including: 1) process vs threads, 2) locks, 3) semaphores.
  5. Understand data persistence, including: 1) HDD, 2) SDD, 3) RAID, 4) File System implementations.

Course Content

This course will cover the following topics: Operating systems history and architecture; Processes and Threads; Synchronization; Memory Management; File Systems.