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.

Introduction, What is an Operating System Anyway???
Concurrency: Processes, Threads, and Address Spaces
Thread Dispatching
Cooperating Threads
Readers-Writers; Language Support for Synchronization
Tips for working in a Project Team/ Cooperating Processes and Deadlock
Deadlock (continued) - Thread Scheduling
Scheduling (continued) - Protection: Kernel and Address Spaces
Address Translation
Address Translation 2, Caching and TLBs
Caching and TLBs 2, Caching and Demand Paging
Page Allocation and Replacement
Page Allocation and Replacement 2, Survey of I/O Systems
File Systems and Disk Management
Queueing Theory, Filesystems
Filesystems, Naming, and Directories
Networks and Distributed Systems
Network Protocols
Network Protocols III
Network Communication Abstractions/RPC
Protection and Security in Distributed Systems II
ManyCore OS and Peer-to-Peer Systems