01Review of Computer Systems
Processor, memory, input/output, instruction execution, interrupts, the memory hierarchy, and the hardware context in which an operating system runs.
02Operating System Overview
Objectives, services, resource management, evolution, architectures, protection, kernels, and the relationship between users, applications, and hardware.
03System Calls
The user-kernel interface, traps, system-call dispatch, parameter passing, return values, and adding testable system calls to Linux 0.11.
04Processes
Process creation and termination, states, process control blocks, context switching, parent-child relationships, and execution trajectories.
05Threads
Threads and processes, user- and kernel-level threading, multithreaded execution, resource sharing, responsiveness, and implementation tradeoffs.
06Concurrency: Mutual Exclusion
Race conditions, critical sections, atomicity, locks, semaphores, monitors, producer-consumer coordination, and correctness requirements.
07Deadlock
Resource allocation, the necessary conditions for deadlock, prevention, avoidance, detection, recovery, and practical tradeoffs.
08Memory Management
Address spaces, relocation, partitioning, paging, segmentation, allocation, protection, sharing, and the operating system’s control of physical memory.
09Virtual Memory
Demand paging, page faults, working sets, replacement algorithms, locality, thrashing, and the coordination of memory and secondary storage.
10Uniprocessor Scheduling
Scheduling goals and metrics, process selection, first-come first-served, shortest-job, priority, round-robin, and feedback strategies.
11Multiprocessor Scheduling
Processor affinity, load balancing, scheduling on multiple cores, synchronization costs, and approaches for parallel and real-time workloads.
12I/O Management & Disk Scheduling
Devices, controllers, interrupts, buffering, caching, spooling, disk organization, and algorithms for scheduling storage requests.
13File Management
Files and directories, allocation, free-space management, access methods, metadata, permissions, mounting, and the implementation of file systems.