1 / 23

Interprocess Communication

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. Race Conditions. Two processes want to access shared memory at the same time.

theo
Download Presentation

Interprocess Communication

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Race Conditions Two processes want to access shared memory at the same time. The final result depends on who runs precisely when.

  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. Critical Regions (2) Mutual exclusion using critical regions

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

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

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

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

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

  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. Semaphores The producer-consumer problem using semaphores

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

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

  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. Message Passing The producer-consumer problem with N messages

  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. Dining Philosophers • Philosophers eat/think • Eating needs 2 forks • Pick one fork at a time • How to prevent deadlock

  18. A nonsolution to the dining philosophers problem

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

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

  21. The Readers and Writers Problem

  22. The Sleeping Barber Problem

  23. Solution to the Sleeping Barber Problem

More Related