UC Berkeley CS162: Operating Systems and Systems Programming
Berkeley's comprehensive operating systems course, covering both theory and practical systems programming.
About This Course
CS162 is UC Berkeley's undergraduate operating systems course, taught by John Kubiatowicz and others. It covers the fundamental concepts behind OS design: processes, threads, memory management, file systems, I/O, and distributed systems.
The course includes substantial programming projects (Pintos OS) that give students hands-on experience building OS components.
What You Will Learn
- Processes and Threads: Process creation, threading models, context switching
- Synchronization: Locks, semaphores, monitors, condition variables, deadlock
- CPU Scheduling: FCFS, SJF, priority, round-robin, multi-level feedback queues
- Memory Management: Paging, segmentation, TLBs, page replacement algorithms
- I/O and Storage: Device drivers, disk scheduling, RAID, SSDs
- File Systems: FAT, FFS, journaling, log-structured file systems
- Networking and Distributed Systems: Sockets, RPC, distributed consensus
- Protection and Security: Access control, capabilities, sandboxing
Prerequisites
Data structures (CS61B), computer architecture (CS61C), and strong C programming skills.
External Links
Course content belongs to UC Berkeley.