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
- Understand operating system virtualization layers: 1) process virtualization, 2) memory virtualization.
- Understand process scheduling algorithms.
- Understand memory virtualization, including: 1) address translation, 2) segmentation, 3) paging.
- Understand concurrency principles, including: 1) process vs threads, 2) locks, 3) semaphores.
- 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.
Key Performance Indicators: Homework exercises & programming deliverables 20 to 50%Exams 30 to 60%Quizzes 10 to 25%Final examination 10 to 35%Representative Text and/or Supplies: Required: Operating Systems Three Easy Pieces. Remzi H. Arpaci-Dusseau. Arpaci-Dusseau Books. Aug 2018Representative: Michael Kerrisk's The Linux Programming Interface (No Starch Press); Nick Parlante's, Pointers and Memory (pdf download) Representative: Tannenbaum's "Modern Operating Systems."; Kernigham & Ritchie, The C Programming Language, any edition. Pedagogy Statement: Instructional Mediums: Lecture