2
2 Race Conditions Two processes want to access shared memory at the same time. The final result depends on who runs precisely when.

3
3 Critical Regions (1) Part of the program where shared memory is accessed. Four conditions to provide correct and efficient communication : 1. Mutual exclusion: No two processes simultaneously in critical region 2. No assumptions made about speeds or numbers of CPUs 3. Progress: No process running outside its critical region may block another process 4. Fairness: No process must wait forever to enter its critical region (assuming fair scheduling!)

10
10 Semaphores Integer variable with two atomic operations down: if 0, then go to sleep; if >0, then decrement value up:increment value and let a sleeping process to perform a down Implementation by disabling all interrupts by the kernel.