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.0

Prerequisites: Computer Science 61B, 61C, and 70.

Formats:
Fall: 3.0 hours of lecture and 1.0 hours of discussion per week
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

Grading basis: letter

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


Class Schedule (Spring 2018):
MoWe 6:30PM - 7:59PM, Li Ka Shing 245 – Anthony Joseph, Jonathan Ragan-Kelley

Class homepage on inst.eecs

General Catalog listing


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: