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.
Formats:
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 2024):
CS 162 – TuTh 18:30-19:59, Dwinelle 155 –
Ion Stoica
Class Schedule (Spring 2025):
CS 162 – TuTh 12:30-13:59, Valley Life Sciences 2050 –
Matei Zaharia, Natacha Crooks
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: