Presents SnowFlock for sub-second VM cloning in cloud. Covers VM fork abstraction for stateful worker creation, lazy state replication using VM descriptors, memory-on-demand via copy-on-access, avoidance heuristics, and multicast distribution for parallel computing.
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.
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.