You are on page 1of 17

CS423UG Operating Systems

Process Synchronization III


Indranil Gupta
Lecture 10
Sep 16, 2005
Today’s Agenda

 Classical synchronization problems


I. Producer-Consumer problem
II. Bounded Buffer Problem
III. Reader Writer Problem
IV. Dining Philosophers Problem
V. Sleeping Barber Problem
 IPC

CS 423UG- Operating Systems, Indranil Gupta 2


III. Reader-Writer Problem
 A reader: read data
 A writer: write data
 Rules:
 Multiple readers may read the data simultaneously
 Only one writer can write the data at any time
 A reader and a writer cannot access data simultaneously
 Locking table: whether any two can be in the critical section
simultaneously

Reader Writer

Reader OK No
Writer No No
CS 423UG- Operating Systems, Indranil Gupta 3
Reader-Writer Solution

 Does it work? Why?


 Ask Systematic questions, and look at What if ? scenarios…
 Play the devil’s advocate!

Semaphore mutex, wrt; // shared and initialized to 1;


int readcount; // shared and initialized to 0

// Writer // Reader

Down(mutex);
readcount:=readcount+1;
Down(wrt); if readcount == 1 then Down(wrt);
...... Up(mutex);
writing performed ....
..... reading performed
Down(mutex);
Up(wrt); readcount:=readcount-1;
if readcount == 0 then Up(wrt);
Up(mutex);

CS 423UG- Operating Systems, Indranil Gupta 4


IV. Dining Philosophers: an intellectual
game
0
 N philosophers and N 1 0
forks 1 4

 Philosophers eat/think
 Eating needs 2 forks 2 4

 Pick one fork at a time


3 3
2

N=5

CS 423UG- Operating Systems, Indranil Gupta 5


Does this solve the Dining Philosophers Problem?

A non-solution to the dining philosophers problem


 Deadlock: everyone picks up their left fork first, then waits… => Starvation!

CS 423UG- Operating Systems, Indranil Gupta 6


Dining Philosophers Solution

(s[n] inited
to 0’s)

CS 423UG- Operating Systems, Indranil Gupta 7


Dining Philosophers Solution

Can prove that this solution is deadlock-free and starvation-free


CS 423UG- Operating Systems, Indranil Gupta 8
V. The Sleeping Barber Problem

 N customer chairs (waiting chairs)


 One barber who can cut one
customer’s hair at any time
 No waiting customer => barber
sleeps
 Customer enters =>
 If all waiting chairs full, customer
leaves
 Otherwise, if barber asleep, wake up
barber and make him work
 Otherwise, barber is busy – wait in a
chair

CS 423UG- Operating Systems, Indranil Gupta 9


The Sleeping Barber Solution (1)

CS 423UG- Operating Systems, Indranil Gupta 10


The Sleeping Barber Solution (2)

CS 423UG- Operating Systems, Indranil Gupta 11


The Sleeping Barber Solution (3)

CS 423UG- Operating Systems, Indranil Gupta 12


Solution to sleeping barber problem.
Epilogue: IPC (Interprocess
Communication)
 Real life analogy: email!
 Can two processes on a machine send “email” to each
other?
 IPC: An indirect way of coordination, where the
OS (and/or network) helps processes!

 An IPC primitive: Message Passing


 Send (destination, &message)
 Receive (source, &message)
 Message size: Fixed or Variable size.
CS 423UG- Operating Systems, Indranil Gupta 13
Message Passing

Example: Unix pipes

CS 423UG- Operating Systems, Indranil Gupta 14


IPC=Indirect Communication: Implicit
Coordination provided through library/system
calls
send(A,message) /* send a
message to mailbox A */
receive(A,message) /* receive
a message from mailbox A
*/

 Mailbox is an abstract
Example: Unix message queues
object into which a message
can be placed in, or
removed from.
CS 423UG- Operating Systems, Indranil Gupta 15
Advantage of Indirect Communication
 Allows greater variety of schemes:
 two processes per link
 1 link per pair of processes
 Uni- or bi-directional
 allow 1 process to receive a message from a link
 allow 1 process to receive all messages from a link
 What if a process sends when queue is full?
Receive when queue is empty?
 Pipe and message queue implementations themselves
use sempahores/mutexes within them!

Unix: msgget() and msgsnd() for message queues


CS 423UG- Operating Systems, Indranil Gupta 16
Reminders

 Reading for this week’s lectures were


Sections 2.3-2.4
 Reading for next week: Chapter 3 (full)
 MP1 due next Monday

CS 423UG- Operating Systems, Indranil Gupta 17

You might also like