fork(), exec(), wait(). The circle of life for an OS process.
User vs kernel threads, TCBs, and context switching.
Locks, Mutexes, and Semaphores. Stopping threads from stepping on each other.
Monitors, condition variables, and solving the Producer-Consumer problem.
FIFO, Round Robin, SRTF, and Multi-level Feedback Queues. Who gets the CPU?
Coffman conditions and Banker's Algorithm. Dining philosophers starving to death.
Base and bound, segmentation, and the illusion of contiguous memory.
Page tables, Translation Lookaside Buffers, and the math of virtual addresses.
Page faults, eviction policies (LRU, Clock), and thrashing.
Interrupts, DMA, and HDD seek times. Moving metal plates to read your files.
Inodes, directories, and Berkeley's Fast File System.
Journaling, NTFS, and crash recovery. Don't lose my data when the power cuts.
Remote Procedure Calls. Treating network requests like local functions and praying.
Distributed consensus, 2PC, and Network File Systems.