CS 162. Operating Systems and System Programming

Current Schedule (Spring 2015)


Catalog Description: (4 units) Basic concepts of operating systems and system programming. Utility programs, subsystems, multiple-program systems. Processes, inter-process 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.

Prerequisites: CS 61A, CS 61B, CS 61C, and Math 55.

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

General Catalog

Undergraduate Student Learning Goals