Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Interprocess Communication 1. Ways of passing information 2. Guarded critical activities (e.g. updating shared data) 3. Proper sequencing in case of.

Similar presentations


Presentation on theme: "1 Interprocess Communication 1. Ways of passing information 2. Guarded critical activities (e.g. updating shared data) 3. Proper sequencing in case of."— Presentation transcript:

1 1 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.

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!)

4 4 Critical Regions (2) Mutual exclusion using critical regions

5 5 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. Petersons solution 5. Test-and-set locks (TSL) Priority inversion problem (H loops while L is in critical section)

6 6 Strict Alternation Proposed solution to critical region problem (a) Process 0. (b) Process 1.

7 7 Petersons 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 others turn.

8 8 Test-and-set lock Entering and leaving a critical region using the TSL instruction Atomic instruction, implemented in hardware

9 9 Sleep and Wakeup Producer-consumer problem with fatal race condition

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.

11 11 Semaphores The producer-consumer problem using semaphores

12 12 Mutexes Implementation of mutex_lock and mutex_unlock for synchronization of threads in user space

13 13 Monitors (1) Example of a monitor - only one process inside the monitor at any time

14 14 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

15 15 Message Passing The producer-consumer problem with N messages

16 16 Barriers Use of a barrier –processes approaching a barrier –all processes but one blocked at barrier –last process arrives, all are let through

17 17 Dining Philosophers Philosophers eat/think Eating needs 2 forks Pick one fork at a time How to prevent deadlock

18 18 A nonsolution to the dining philosophers problem

19 19 Deadlock-free code for Dining Philosophers (1)

20 20 Deadlock-free code for Dining Philosophers (2)

21 21 The Readers and Writers Problem

22 22 The Sleeping Barber Problem

23 23 Solution to the Sleeping Barber Problem


Download ppt "1 Interprocess Communication 1. Ways of passing information 2. Guarded critical activities (e.g. updating shared data) 3. Proper sequencing in case of."

Similar presentations


Ads by Google