Slides.

advertisement
Interprocess Communication
1. Ways of passing information
2. Guarded critical activities (e.g. updating shared data)
3. Proper sequencing in case of dependencies
2 and 3 apply to threads as well.
1
Race Conditions
Two processes want to access shared memory at the same time.
The final result depends on who runs precisely when.
2
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!)
3
Critical Regions (2)
Mutual exclusion using critical regions
4
Attempts for Mutual Exclusion
Using Busy Waiting
1. Disabling all interrupts (only by kernel!)
2. Lock variables => fatal race condition
3. Strict alternation using spin locks - violates
condition 3
4. Peterson’s solution
5. Test-and-set locks (TSL)
Priority inversion problem (H loops while L is
in critical section)
5
Strict Alternation
Proposed solution to critical region problem
(a) Process 0.
(b) Process 1.
6
Peterson’s Solution
Interested(process)=False => process is not in and does not
want to enter critical section
If both are interested, a process can enter only if it is the other’s turn. 7
Test-and-set lock
Entering and leaving a critical region using the
TSL instruction
Atomic instruction, implemented in hardware
8
Sleep and Wakeup
Producer-consumer problem with fatal race condition9
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.
10
Semaphores
The producer-consumer problem using semaphores
11
Mutexes
Implementation of mutex_lock and mutex_unlock
for synchronization of threads in user space
12
Monitors (1)
Example of a monitor - only one process inside the
monitor at any time
13
Monitors (2)
• Outline of producer-consumer problem with monitors
– only one monitor procedure active at one time
– buffer has N slots
Condition variables with wait and signal
14
Message Passing
The producer-consumer problem with N messages
15
Barriers
• Use of a barrier
– processes approaching a barrier
– all processes but one blocked at barrier
– last process arrives, all are let through
16
Dining Philosophers
•
•
•
•
Philosophers eat/think
Eating needs 2 forks
Pick one fork at a time
How to prevent deadlock
17
A nonsolution to the dining
philosophers problem
18
Deadlock-free code for Dining
Philosophers (1)
19
Deadlock-free code for Dining
Philosophers (2)
20
The Readers and Writers Problem
21
The Sleeping Barber Problem
22
Solution to the Sleeping Barber Problem
23
Download