CS 162. Operating Systems and System Programming

Catalog Description: Basic concepts of operating systems and system programming. Utility programs, subsystems, multiple-program systems. Processes, interprocess communication, and synchronization. Memory allocation, segmentation, paging. Loading and linking, libraries. Resource allocation, scheduling, performance evaluation. File systems, storage devices, I/O systems. Protection, security, and privacy.

Units: 4

Prerequisites: COMPSCI 61B, COMPSCI 61C, and COMPSCI 70.

Spring: 3.0 hours of lecture and 1.0 hours of discussion per week
Summer: 6.0 hours of lecture and 2.0 hours of discussion per week
Fall: 3.0 hours of lecture and 1.0 hours of discussion per week

Grading basis: letter

Final exam status: Written final exam conducted during the scheduled final exam period

Class Schedule (Fall 2023):
CS 162 – TuTh 12:30-13:59, Valley Life Sciences 2050 – Natacha Crooks

Class Schedule (Spring 2024):
CS 162 – TuTh 12:30-13:59, Dwinelle 155 – John Kubiatowicz

Class homepage on inst.eecs

Department Notes:

Course objectives: The purpose of this course is to teach the design of operating systems and system programming.

Topics covered:

  • Hardware and Operating System Structures
  • Concurrency: Processes and Threads
  • Thread Dispatching
  • Cooperating Threads
  • Synchronization
  • Implementing Mutual Exclusion
  • Semaphores, Monitors, and Condition Variables
  • Readers/Writers, Language Support for Synchronization
  • Cooperating Processes and Deadlock
  • CPU Scheduling
  • Protection: Kernel and Address Spaces
  • Address Translation, memory allocation, and segmentation
  • Caching and TLBs
  • Caching and Demand paging
  • Survey of I/O systems and storage devices
  • File system and disk management
  • Naming and directories
  • Inter-process communication
  • Loading and linking
  • Resource allocation
  • Performance evaluation
  • Basic networking and protocols
  • Distributed file systems
  • Security and privacy

Related Areas: