Chapter 6 Process Synchronization

Race conditions & how synchronization problems arise
Producer/Consumer model
Critical sections - entry point, exit point, remainder section

Requirements
Mutual exclusion
Progress
Bounded waiting
(no assumption on relative speed)

Preemptive vs. nonpreemptive & single processor vs. multiprocessor
Single processor, nonpreemptive kernel not a problem
Single processor, preemptive - can disable interrupts
Multiprocessor, preemptive - if disabling interrupts, must do it for all processors
Preemptive necessary for real-time programming

Be sure you can distinguish between any two of the following:
Peterson's solution
TestAndSet()
Semaphores
Monitors

Issues
Atomic operations, busy waiting, spinlocks, starvation

Classic problems
Bounded-buffer
Readers and writers
Dining Philosophers

Atomic Transactions & Databases
Transactions logs - committed/aborted, rollback, checkpoints