Class overview
What is an operating system?
History of operating systems
Operating system structures
Processes and threads
Concurrency and race conditions
Interprocess communication and synchronization
Synchronization hardware, semaphores, critical regions, monitors
Classical synchronization problems
Unix process management - Text 21.1, 21.2, 21.3.2, 21.3.4, 21.5 and Handout from text by Stevens.
Multiprogramming
CPU scheduling
Scheduling metrics and algorithms
NT and System V Scheduling - Handout
Real-time scheduling - Handout
Deadlocks
Deadlock detection and recovery, prevention, avoidance
Network topology, Protocol layers
Client-server model
BSD Sockets
Remote Procedure Calls
Threads (review)
Structure of address spaces/address translation
Dynamic storage allocation
Memory management without swapping or paging
Swapping
Segmentation
Paging
Virtual memory (demand paging)
Caching and TLBs
Segmentation with paging
Page replacement algorithms
File system interfaces
Files and directories
File system implementation (UNIX)
Allocation methods and free=space management
Protection
Distributed file systems: NFS vs. AFS
I/O hardware
I/O software, kernel I/O subsystems
Disk structure
Disk scheduling