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