Courses
CS 162. Operating Systems and System Programming
Current Schedule (Spring 2013)
- CS 162: Anthony D. Joseph, MW 4:00-5:30P, 145 Dwinelle [course homepage]
Description
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
