Interprocess Communication - PowerPoint PPT Presentation

About This Presentation
Title:

Interprocess Communication

Description:

Test-and-set lock. Entering and leaving a critical region using the. TSL instruction ... Pick one fork at a time. How to prevent deadlock. 18 ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 24
Provided by: steve1801
Category:

less

Transcript and Presenter's Notes

Title: Interprocess Communication


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 gt 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
Strict Alternation
  • Proposed solution to critical region problem
  • (a) Process 0. (b) Process 1.

7
Petersons Solution
  • Interested(process)False gt 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
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 gt0, 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
Write a Comment
User Comments (0)
About PowerShow.com