Covers locks for achieving mutual exclusion in concurrent programs. Discusses lock implementation using hardware primitives like test-and-set, compare-and-swap, fetch-and-add. Explains spin locks, ticket locks, and techniques to avoid spinning using yield and blocking.

Explains semaphores combining locks and condition variables for thread synchronization. Covers binary semaphores for mutual exclusion, semaphores for ordering events, producer-consumer bounded buffer problem, throttling threads, and implementing semaphores using locks and CVs.

Details Facebook’s memcached architecture handling billions of requests and trillions of items. Covers distributed key-value store design, latency reduction using UDP/TCP, incast congestion control, leases mechanism, memory pools, and regional replication.

Introduces semaphores as synchronization primitives invented by Dijkstra. Covers binary semaphores as locks, semaphores for ordering, producer-consumer problem, reader-writer problem, dining philosophers, and implementing semaphores using locks and condition variables.

Explores evolution of virtual machine monitor technology from 1960s mainframes to modern cloud computing. Covers VMM implementation including paravirtualization, full virtualization, binary translation, CPU and memory virtualization, and I/O device virtualization.