CS 162: Operating Systems and Systems Programming

CS 162: Operating Systems and System Programming (Spring 2015, UC Berkeley). Instructor: Professor John Kubiatowicz. The purpose of this course is to teach the design of operating systems and operating systems concepts that appear in other advanced systems. Topics we will cover include concepts of operating systems, systems programming, networked and distributed systems, and storage systems, including multiple-program systems (processes, interprocess communication, and synchronization), memory allocation (segmentation, paging), resource allocation and scheduling, file systems, basic networking (sockets, layering, APIs, reliability), transactions, security, and privacy.

What is an Operating System?

Lecture 01 - What is an Operating System?
Lecture 02 - Introduction to the Process
Lecture 03 - Processes (Cont.), Fork, Introduction to I/O
Lecture 04 - Introduction to I/O (Cont.), Sockets, Networking
Lecture 05 - Networking (Cont.), Concurrency (Processes and Threads)
Lecture 06 - Concurrency (Cont.), Synchronization
Lecture 07 - Synchronization (Cont.)
Lecture 08 - Semaphores, Monitors, and Readers/Writers
Lecture 09 - Readers/Writers Example, Scheduling
Lecture 10 - Scheduling (Cont.), Deadlock
Lecture 11 - Deadlock, Address Translation
Lecture 12 - Address Translation (Cont.)
Lecture 13 - Address Translation (Finished), Caching
Lecture 14 - Caching (Cont.), Demand Paging
Lecture 15 - Demand Paging (Cont.), General I/O
Lecture 16 - Demand Paging (Finished), General I/O
Lecture 17 - Performance, Storage Devices, Queueing Theory, File Systems
Lecture 18 - File Systems
Lecture 19 - File Systems (Cont.), MMAP, Transactions, COW
Lecture 20 - Reliability, Transactions, Distributed Systems
Lecture 21 - Distributed Systems, Networking, TCP/IP, RPC
Lecture 22 - Distributed Systems (Cont.), Networking, TCP/IP, RPC, VFS
Lecture 23 - Distributed Storage, Key-Value Stores, Security
Lecture 24 - Security, Cloud Computing
Lecture 25 - Extra Topics: IoT, Quantum Computing

CS162: Operating Systems and Systems Programming, Spring 2015
Instructor: Professor John Kubiatowicz. Course Info. Lecture Notes. Readings. Handouts. Basic concepts of operating systems and system programming.