Chapter 1 - Introduction What's an operating system? What's the role of an operating system? Storage device hierarchy + Caching Dual mode operation (user and kernel) Chapter 2 - Operating-System Structures OS services OS interfaces System calls + Types of system calls System programs OS design Mechanism vs policy OS structure Microkernels Virtual Machines System boot Chapter 3 - Processes Difference between program and process Parts of a process Process states Process Control Block (PCB) Process scheduling + Scheduling queues Schedulers (short-, medium-, long-term) Context switches Process creation fork() exec() Process termination Interprocess communication (IPC) + Shared memory + Message passing + Buffer considerations Client-server systems + Socket communication + Remote Procedure Calls (RPCs) * "exactly once", "at most once" + Pipes * Ordinary / anonymous pipes * Named pipes Chapter 4 - Threads Benefits of threads Multithreading models (many-to-one, one-to-one, many-to-many) + Lightweight process Thread libraries + Pthreads + Win32 threads + Java threads User threads Kernel threads Thread cancellation Signals Thread pools