20.1. Interfaces20.1.1. Threads20.1.2. General Semaphores20.1.3. Synchronous Communication Channels20.2. Examples20.2.1. Sorting Concurrently20.2.2. Critical Regions20.2.3. Generating Primes20.3. Implementations20.3.1. Synchronous Communication Channels20.3.2. Threads20.3.3. Thread Creation and Context-Switching20.3.4. Preemption20.3.5. General Semaphores20.3.6. Context-Switching on the MIPS and ALPHAFurther ReadingExercises