CS-206 Concurrency
Lecture 4
Mutual
Exclusion
A
B
cola
Spring 2015
Prof. Babak Falsafi
parsa.epfl.ch/courses/cs206/
Adapted from slides originally developed by Maurice Herlihy and Nir
Shavit from the Art of Multiprocessor Programming, and Babak Falsafi
EPFL Copyright 2015
EPFL CS-206 – Spring 2015
Lec.4 - 1
Where are We?
M
T
Lecture
& Lab
W
16-Feb
17-Feb
18-Feb
19-Feb 20-Feb
23-Feb
24-Feb
25-Feb
26-Feb 27-Feb
2-Mar
3-Mar
4-Mar
5-Mar
9-Mar
10-Mar
11-Mar
12-Mar 13-Mar
16-Mar
17-Mar
18-Mar
19-Mar 20-Mar
23-Mar
24-Mar
25-Mar
26-Mar 27-Mar
30-Mar
31-Mar
1-Apr
2-Apr
3-Apr
6-Apr
7-Apr
8-Apr
9-Apr
10-Apr
13-Apr
14-Apr
15-Apr
16-Apr 17-Apr
20-Apr
21-Apr
22-Apr
23-Apr 24-Apr
27-Apr
28-Apr
29-Apr
30-Apr
1-May
4-May
5-May
6-May
7-May
8-May
11-May 12-May
13-May
14-May 15-May
18-May 19-May
20-May
21-May 22-May
25-May 26-May
27-May
28-May 29-May
EPFL CS-206 – Spring 2015
T
F
6-Mar
u Mutual
Exclusion in
practice
w How
do we share?
w How do we share well?
w Protocols
w Properties
u Next
week
w Mutual
Exclusion 2
w Formal definiton
Lec.4 - 2
Recall: Counter in Shared Memory
code
Local
variables
temp = value;
value = temp + 1;
cache
cache
Bus
1
cache
Bus
shared
memory
Need Mutual Exclusion
EPFL CS-206 – Spring 2015
Lec.4 - 3
Sharing requires coordination
u Illustrated
u Our
through a fable
Fable
w Alice
& Bob have pets: a dog and a cat
w The pets like to play in a pond
w But, they don’t get a long
w So, need a protocol to share the pond
w Agree on guidelines as to how to share
w The protocol would guarantee mutual exclusion
EPFL CS-206 – Spring 2015
Lec.4 - 4
Mutual Exclusion,
or “Alice & Bob share a pond”
A
EPFL CS-206 – Spring 2015
B
Lec.4 - 5
Alice has a pet
A
EPFL CS-206 – Spring 2015
B
Lec.4 - 6
Bob has a pet
A
EPFL CS-206 – Spring 2015
B
Lec.4 - 7
The Problem
A
B
The pets don’t
get along
EPFL CS-206 – Spring 2015
Lec.4 - 8
Formalizing the Problem
u Two
types of formal properties in asynchronous
computation:
u Safety Properties
w Nothing
u Liveness
bad happens ever
Properties
w Something
EPFL CS-206 – Spring 2015
good happens eventually
Lec.4 - 9
Formalizing our Problem
u Mutual
Exclusion
w Both
pets never in pond simultaneously
w This is a safety property
u No
Deadlock
w if
only one wants in, it gets in
w if both want in, one gets in
w This is a liveness property
EPFL CS-206 – Spring 2015
Lec.4 - 10
Simple Protocol
u Idea
w Just
look at the pond
u Gotcha
(means “potential problems”)
w Not
atomic
w Trees obscure the view
EPFL CS-206 – Spring 2015
Lec.4 - 11
Interpretation
u Threads
can’t “see” what other threads are doing
u Explicit communication required for coordination
EPFL CS-206 – Spring 2015
Lec.4 - 12
Cell Phone Protocol
u Idea
w Alice
calls Bob (or vice-versa)
u Gotcha
w Bob
takes shower
w Alice may need to recharge battery
w Bob out of cell phone tower reach…
EPFL CS-206 – Spring 2015
Lec.4 - 13
Interpretation
u Message-passing
doesn’t work
u Recipient might not be
w Listening
w There
at all
u Communication
must be
w Persistent
(like writing)
w Not transient (like speaking)
EPFL CS-206 – Spring 2015
Lec.4 - 14
Alice comes up with a clever solution
u Beer/Cola
cans!
w Used
to send a signal
w Sort of like conveying a “ready” bit
w Fallen can = ready, upright can = not ready
u One
or more beer cans by Alice’s window (on windowsill)
u Each with string running to Bob’s house
u To send a signal, Bob pulls string
u …and knock the can over
EPFL CS-206 – Spring 2015
Lec.4 - 15
EPFL CS-206 – Spring 2015
cola
cola
Can Protocol
Lec.4 - 16
Bob conveys a bit
B
cola
A
EPFL CS-206 – Spring 2015
Lec.4 - 17
Bob conveys a bit
A
B
cola
EPFL CS-206 – Spring 2015
Lec.4 - 18
Can Protocol
u Idea
w Cans
by Alice’s window
w Strings lead to Bob’s house
w Bob pulls strings, knocks over cans
u Gotcha
w Cans
cannot be reused
w Bob runs out of cans
w What if Alice takes a long time to reset (goes on vacation)?
EPFL CS-206 – Spring 2015
Lec.4 - 19
Interpretation
u Sending
a signal (interrupt to set a bit)
w Does
not solve mutual exclusion
w Sender sets fixed bit in receiver’s space
w Receiver resets bit when ready
w Requires unbounded number of interrupt bits
EPFL CS-206 – Spring 2015
Lec.4 - 20
Flag Protocol
A
EPFL CS-206 – Spring 2015
B
Lec.4 - 21
Alice’s Protocol (sort of)
A
EPFL CS-206 – Spring 2015
B
Lec.4 - 22
Bob’s Protocol (sort of)
A
EPFL CS-206 – Spring 2015
B
Lec.4 - 23
Alice’s Protocol
u Raise
flag
u Wait until Bob’s flag is down
u Unleash pet
u Lower flag when pet returns
EPFL CS-206 – Spring 2015
Lec.4 - 24
Bob’s Protocol
u Raise
flag
u Wait until Alice’s flag is down
u Unleash pet
u Lower flag when pet returns
EPFL CS-206 – Spring 2015
Lec.4 - 25
Bob’s Protocol (2nd try)
u Raise
flag
u While Alice’s flag is up
w Lower
flag
w Wait for Alice’s flag to go down
w Raise flag
u Unleash
pet
u Lower flag when pet returns
EPFL CS-206 – Spring 2015
Lec.4 - 26
Bob’s Protocol
u Raise
flag
u While Alice’s flag is up
Bob defers to
Alice
w Lower
flag
w Wait for Alice’s flag to go down
w Raise flag
u Unleash
pet
u Lower flag when pet returns
EPFL CS-206 – Spring 2015
Lec.4 - 27
The Flag Principle
u Raise
the flag
u Look at other’s flag
u Flag Principle:
w If
each raises and looks, then
w Last to look must see both flags up
EPFL CS-206 – Spring 2015
Lec.4 - 28
Proof of Mutual Exclusion
u Assume
both pets in pond
w Derive
a contradiction
w By reasoning backwards
u Consider
the last time Alice and Bob each looked before
letting the pets in
u Without loss of generality assume Alice was the last to
look…
EPFL CS-206 – Spring 2015
Lec.4 - 29
Proof
Bob last raised flag
Alice last raised her flag
Alice’s last look
Bob’s last look
time
Alice must have seen Bob’s Flag. A Contradiction
EPFL CS-206 – Spring 2015
Lec.4 - 30
Proof of No Deadlock
u If
only one pet wants in, it gets in
u Deadlock requires both continually trying to get in
u If Bob sees Alice’s flag, he gives her priority (a gentleman…)
EPFL CS-206 – Spring 2015
Lec.4 - 31
Remarks
u Protocol
w Bob’s
u Protocol
w If
is unfair
pet might never get in
uses waiting
Bob is eaten by his pet, Alice’s pet might never get in
EPFL CS-206 – Spring 2015
Lec.4 - 32
Moral of Story
u Mutual
Exclusion cannot be solved by
w transient
communication (cell phones)
w interrupts (cans)
u It
can be solved by
w one-bit
shared variables
w that can be read or written
EPFL CS-206 – Spring 2015
Lec.4 - 33
The Fable Continues
u Alice
and Bob fall in love & marry
u Then they fall out of love & divorce
w She
gets the pets
w He has to feed them
u Leading
to a new coordination problem:
w Producer-Consumer
w Used
everywhere in parallel computing/distributed systems
w E.g., network buffers (shared between processor & network)
w E.g., OS scheduler (queues holding active threads)
EPFL CS-206 – Spring 2015
Lec.4 - 34
Bob Puts Food in the Pond
A
EPFL CS-206 – Spring 2015
Lec.4 - 35
Alice releases her pets to Feed
mmm…
mmm…
EPFL CS-206 – Spring 2015
B
Lec.4 - 36
Producer/Consumer
u Alice
and Bob can’t meet
w Each
has restraining order (by court) on other
w So he puts food in the pond
w And later, she releases the pets
u Avoid
w Releasing
pets when there’s no food
w Putting out food if uneaten food remains
EPFL CS-206 – Spring 2015
Lec.4 - 37
Producer/Consumer
u Need
a mechanism so that
w Bob
lets Alice know when food has been put out
w Alice lets Bob know when to put out more food
EPFL CS-206 – Spring 2015
Lec.4 - 38
Surprise Solution
B
cola
A
EPFL CS-206 – Spring 2015
Lec.4 - 39
Bob puts food in Pond
B
cola
A
EPFL CS-206 – Spring 2015
Lec.4 - 40
Bob knocks over Can
A
B
cola
EPFL CS-206 – Spring 2015
Lec.4 - 41
Alice Releases Pets
A
yum…
yum…
B
cola
EPFL CS-206 – Spring 2015
Lec.4 - 42
Alice Resets Can when Pets are Fed
B
cola
A
EPFL CS-206 – Spring 2015
Lec.4 - 43
Pseudocode
while (true) {
while (can.isUp()){};
pet.release();
pet.recapture();
can.reset();
}
Alice’s code
EPFL CS-206 – Spring 2015
Lec.4 - 44
Pseudocode
while (true) {
while (can.isUp()){};
pet.release();
pet.recapture();
can.reset();
while (true) {
}
while (can.isDown()){};
Bob’s code
pond.stockWithFood();
can.knockOver();
Alice’s code
EPFL CS-206 – Spring 2015
}
Lec.4 - 45
Correctness
u Mutual
w Pets
u No
Exclusion
and Bob never together in pond
Starvation
if Bob always willing to feed, and pets always famished, then pets
eat infinitely often
EPFL CS-206 – Spring 2015
Lec.4 - 46
Correctness
u Mutual
w Pets
u No
Exclusion
safety
and Bob never together in pond
Starvation
liveness
if Bob always willing to feed, and pets always famished, then pets
eat infinitely often.
u Producer/Consumer
safety
The pets never enter pond unless there is food, and Bob never
provides food if there is unconsumed food.
EPFL CS-206 – Spring 2015
Lec.4 - 47
Could Also Solve Using Flags
A
EPFL CS-206 – Spring 2015
B
Lec.4 - 48
Waiting
u Both
solutions use waiting
w while(mumble){}
u In
some cases waiting is problematic
w If
one participant is delayed
w So is everyone else
w But delays are common & unpredictable
EPFL CS-206 – Spring 2015
Lec.4 - 49
The Fable drags on …
u Bob
and Alice still have issues
u So they need to communicate
u They agree to use billboards …
EPFL CS-206 – Spring 2015
Lec.4 - 50
Readers/Writers
u Alice
& Bob agree to write messages on a billboard
u Alice starts writing one letter at a time
w First
she writes “wash the car”
w Then writes “sell the house”
w What does Bob read?
EPFL CS-206 – Spring 2015
Lec.4 - 51
Billboards are Large
B D
A C E
2
3
1
EPFL CS-206 – Spring 2015
3
1
Letter
Tiles
From Scrabble™ box
Lec.4 - 52
Write One Letter at a Time …
W A S
4
1
1
H
4
B D
A C E
2
3
1
EPFL CS-206 – Spring 2015
3
1
Lec.4 - 53
To post a message
W A S H T H E C A R
4
1
1
4
1
4
1
3
1
1
whew
EPFL CS-206 – Spring 2015
Lec.4 - 54
Let’s send another message
S E L L
1
1
1
1
L A V A
1
1
4
1
L A
M PS
1
1
3
EPFL CS-206 – Spring 2015
3
1
Lec.4 - 55
Uh-Oh
S E L L
1
1
1
1
T H E
1
4
1
C A R
3
1
1
L
1
OK
EPFL CS-206 – Spring 2015
Lec.4 - 56
Readers/Writers
u Devise
a protocol so that
w Writer
writes one letter at a time
w Reader reads one letter at a time
w Reader sees “snapshot”
w Old message or new message
w No mixed messages
EPFL CS-206 – Spring 2015
Lec.4 - 57
Readers/Writers (continued)
u Easy
with mutual exclusion
u But mutual exclusion requires waiting
w One
waits for the other
w Everyone executes sequentially
u Remarkably
w We
can solve R/W without mutual exclusion
EPFL CS-206 – Spring 2015
Lec.4 - 58
Why do we care?
u We
want as much of the code as possible to execute
concurrently (in parallel)
u A larger sequential part implies reduced performance
u Amdahl’s law: this relation is not linear…
EPFL CS-206 – Spring 2015
Lec.4 - 59
Parallelizing Readers/Writers
u Use
two billboards
w While
Bob reads from one…
w Alice writes to the other
u How
do they know where to read/write?
w Third
billboard
w Tells Bob which board to read
EPFL CS-206 – Spring 2015
Lec.4 - 60
Wait-free protocol
S1 E1 L1 L1
T1
H4
2
W4 A1 S1 H4
T1 H4 E1
C3 A1 R1
H4
H
H
H4444
W..a..s..h…
EPFL CS-206 – Spring 2015
Lec.4 - 61
Wait-free protocol
S1 E1 L1 L1
T1 H4 E1
2
D2 O4 G3
W4 A1 S1 H4
T1 H4 E1
C3 A1 R1
1
Wash the
car! Got it!
EPFL CS-206 – Spring 2015
Lec.4 - 62
Wait-free protocol
S1 E1 L1 L1
T1 H4 E1
1
D2 O4 G3
W4 A1 S1 H4
T1 H4 E1
C3 A1 R1
Yay, new
message on
board 1!
EPFL CS-206 – Spring 2015
Lec.4 - 63
Wait-free protocol
S1 E1 L1 L1
T1 H4 E1
1
D2 O4 G3
M4 O4 V4 E4
Sell the dog?
Ok!
EPFL CS-206 – Spring 2015
A4 H4 E1
N4
C3 A1 R1
Lec.4 - 64
Wait-free protocol
u Is
this protocol entirely wait-free?
u Is
the protocol correct?
u How
do you fix it?
EPFL CS-206 – Spring 2015
Lec.4 - 65
Summary
u Need
protocols to coordinate
u Mutual exclusion properties
w Safety
w Liveness
w Fairness
u Producer/Consumer
sharing
u Reducing sequential execution/waiting
EPFL CS-206 – Spring 2015
Lec.4 - 66
© Copyright 2025