4The Mutual Exclusion ProblemThe mutual exclusion problem is the guarantee of mutually exclusive access to a shared resource, or resources when there are several competing processes. A situation as described above, where several processes may access the same resource and the final result depends on who runs when, is called a race condition, and the problem is essentially avoiding such conditions. The problem was first introduced by Edsgar W. Dijkstra in 1965. 5General SolutionIn order to solve the problem, we add the entry and exit code, in a way which guarantees that the mutual exclusion and deadlock freedom properties are satisfied.remainder codeSurprise, surprise the rest of the code.entry codeThe part of the code in which the shared resources reside.critical sectionexit code 6Assumptions

The remainder code may not influence other processes.

Shared objects appearing in the entry or exit code may not be referred to in the remainder or critical section.

A process can not fail when not in the remainder.

Once a process starts executing the CS and exit code, it always finishes them.

7Related Concepts

Mutual Exclusion No two processes are in their critical section at the same time.

Deadlock Freedom If a process is trying to enter its critical section, then some process, not necessarily the same one, will eventually enter the critical section.

Starvation Freedom If a process is trying to enter its critical section, eventually it will succeed.

8Algorithms for two processes 9Algorithms for two processesWe start with describing two algorithms that solve the mutual exclusion problem for two processes. They will be used for introducing the problem and possible solutions using atomic registers. Throughout the presentation, it shall be known that the only atomic operations on shared registers are reads and writes. In addition, we will use the statement await condition as an abbreviation for while !condition do skip. 10Petersons Algorithm

Developed by Gary L. Peterson in 1981.

The algorithm makes use of a register called turn, which can take the values 0 and 1, the identifiers for the two possible processes, and two boolean registers b0 and b1.

Both processes can read and write to turn, read b0 and b1, but only process i can write to bi .

11Petersons AlgorithmInitially b0 b1 false, turn is immaterial.

Process 1

b1 true

turn 1

await (b0 false or turn 0)

critical section

b1 false

Process 0

b0 true

turn 0

await (b1 false or turn 1)

critical section

b0 false

12Petersons AlgorithmCheck if there is contention. If not, I can go in the CS. ElseCheck if I crossed the barrier first. If so I can go in the CS, else I have to wait.

Process i

bi true

turn i

await (b1-i false or turn 1-i)

critical section

bi false

Indicate I am in contention for the critical section.Cross the turn barrier and indicate the crossing for later observation.Do my thangIndicate I am not contending anymore. 13Properties

Satisfies mutual exclusion and starvation freedom.

Contention-free time complexity is four accesses to the shared memory.

Process time complexity is unbounded.

Three shared registers are used.

14Kessels single-writer algorithm

A variation of petersons algorithm which uses single-writer registers.

Uses 2 registers, which can take the values 0 and 1, and 2 boolean registers.

Developed by J. L. W. Kessels in 1982.

15Kessels single-writer algorithmInitially b0 b1 false, turn0 and turn1 are immaterial. Only process i can write to bi and turni. locali is local for process i.

Process 1

b1 true

local1 1 - turn0

turn1 local1

await (b0 false or local1 turn0)

critical section

b1 false

Process 0

b0 true

local0 turn1

turn0 local0

await (b1 false or local0 ? turn1)

critical section

b0 false

16Properties

Same as Petersons algorithm, besides the use of 4 shared registers.

In addition, satisfies local spinning.

? 17Local Spinning

Accessing a physically remote register is costly.

When a process waits, using an await statement, it does so by spinning (busy-waiting) on registers.

It is much more efficient to spin on a locally-accessible registers.

18Kessels single-writer algorithmInitially b0 b1 false, turn0 and turn1 are immaterial. Only process i can write to turni. locali is local for process i.

Process 1

b1 true

local1 1 - turn0

turn1 local1

await (b0 false or local1 turn0)

critical section

b1 false

Process 0

b0 true

local0 turn1

turn0 local0

await (b1 false or local0 ? turn1)

critical section

b0 false

19Tournament Algorithms 20Tournament Algorithms

A generalization method which enables the construction of an algorithm for n processes from any given solution for 2 processes.

Developed by Gary L. Peterson and Michael J. Fischer in 1977.

21Tournament Algorithms 22Tournament Algorithms

An important side affect is that a process may enter the critical section an arbitrary number of times before some other process in a different subtree.

23Lamports Fast Algorithm 24Lamports Fast algorithm

An algorithm for n processes.

Provides fast access to the critical section in the absence of contention.

Uses 2 registers which are long enough to store a process identifier, and a boolean registers array.

Developed in 1987 by Lamport.

25Lamports Fast algorithm

Process is program

start bi true

x i

if y ? 0 then bi false

await y 0

goto start fi

y i

if x ? i then bi false

for j 1 to n do await !bj od

if y ? i then await y 0

goto start fi fi

critical section

y 0

bi false

26Indicate contending bi trueContention? y ? 0 ?yesWait until CS is releasednoThe last to cross the barrier!Barrier y iContinue only after it is guaranteed that no one can cross the barrierContention? x ? i ?yesnoLast to cross the barrier? y i ?yescritical sectionnoexit codeWait until CS is released 27Properties

Satisfies mutual exclusion and deadlock freedom.

Starvation of individual processes is possible.

Fast access In the absence of contention, only 7 accesses to the shared memory are required.

Process time complexity is unbounded.

n 2 shared registers are used.

28Starvation Free Algorithms 29Starvation Free Algorithms

In many practical systems, since contention is rare deadlock freedom is a sufficient property.

For other systems, it might be a too weak requirement, such as in cases where a process stays a long time in the critical section.

30The Bakery Algorithm

Based on the same policy as in a bakery, where each customer gets a number which is larger then the numbers waiting in line, and the lowest number holder gets served.

Assumed to be up to n processes contending to enter the CS.

Each process is identified by a unique number from 1n.

31The Bakery Algorithm

The algorithm makes use of a boolean array choosing1n and an integer array number1n. Entries choosingi and numberi can be read by all processes but written only by process i.

The relation lt, is used on pairs of integers and is called the lexicographic order relation. It is defined by (a, b) lt (c, d) if a lt c or if a c and b lt d.

32The Bakery Algorithm

Initially all entries in number and choosing are 0 and false respectively.

process is program

chossing i true

number i 1 maximum(number1,,numbern)

choosing i false

for j 1 to n do

await choosing j false

await (number j 0 or (number i , i) lt (number j , j))

od

critical section

number i 0

33Properties

Satisfies mutual exclusion and first-come-first-served.

The algorithm is not fast even in the absence of contention a process is required to access the shared memory 3(n-1) times.

34Properties

Uses 2n shared registers.

Non-atomic registers it is enough to assume that the registers are safe, meaning that writes which are concurrent with reads will return an arbitrary value.

The size of numberi is unbounded.

35The Bakery Algorithm 36The Black-White Bakery Algorithm

A variant of the bakery algorithm developed by Gadi Taubenfeld in 2004.

By using a single additional shared bit the amount of space required is bounded.

The shared bit represents a color for the customers tickets, while the idea is that there is a priority to the holders of a ticket which color is different then the shared bit.

Any deadlock free mutual exclusion algorithm for n processes must use at least n shared registers.

Proved by James E. Burns and Nancy A. Lynch in 1980.

41Definitions

Event an action carried by a specific process.

x, y and z will denote runs.

When x is a prefix of y, (y x) denotes the suffix of y obtained by removing x.

42Definitions

x y is an extension of x by y.

We always know where (remainder, entry, CS, exit) a process is.

If a run involves only process p, then all events in the run involve only process p.

43Definitions

Run x looks like run y to process p.

Process p is hidden in run x.

Process p covers register r in run x.

44Illustrations

Run x looks like run y to process p.

run x

p reads 5 from r1

q writes 6 to r1

p writes 7 to r1

q writes 8 to r1

p reads 8 from r1

run y

p reads 5 from r1

p writes 7 to r1

q writes 6 to r1

q reads 6 from r1

q writes 8 to r1

p reads 8 from r1

q writes 6 to r1

45Illustrations

Process p is hidden in run x.

p reads 5 from r1

q reads 5 from r1

p writes 7 to r1

q writes 8 to r1

p reads 8 from r1

q writes 6 to r1

46Illustrations

Process p covers register r in run x.

p covers r1 at this point

p writes 7 to r1

q writes 8 to r1

p reads 8 from r1

p writes 2 to r1

47Lemma 1

Let x be a run which looks like run y to every process in a set P. if z is an extension of x which involves only processes in P then y (z x) is a run.

xyP events onlythen, this is also a runz 48Lemma 2

If a process p is in its CS in run z, then p is not hidden in z.

p is in its critical sectionthen, p is not hiddenz 49Lemma 3

Let x be a run in which all the processes are hidden. Then, for any process p, there exists a run y which looks like x to p, where all processes except maybe p are in their remainders.

Proof by induction on the number of steps of processes other then p.

50Lemma 4

Let x be a run where all the processes are hidden. Then, for any process p, there is an extension z of x which involves only p in which p covers some register that is not covered by any other process.

51Proof

From lemma 3, there exists a run y which looks like x to p, where all processes except maybe p are in their remainders. By the deadlock freedom property, starting from y process p is able to enter the CS on its own.

52Proof

By lemma 1, since y looks like x to p, p should be able to do the same starting from x.

Suppose p only writes registers covered by other processes before entering the CS.

53Proof

Then, when all covered registers are written one after the other we get a run in which p is hidden and is in its CS.

By lemma 2, this is not possible.

54Main Lemma

Let x be a run in which all the processes are in their remainders. Then, for every set of processes P there is an extension z of x which involves only processes in P, in which the processes in P are hidden and cover P distinct registers.

Proof by induction on the size of P.

55An Upper Bound

There is a deadlock free mutual exclusion algorithm for n processes which uses n shared bits.

As a prove we will see the One-Bit Algorithm developed independently by J. E. Burns (1981) and L. Lamport (1986).

56The One-Bit Algorithm

Up to n processes may be contending to enter the CS, each with a unique identifier from 1n.

Uses a boolean array b, where all processes can read all entries, but only process i can write bi.

57The One-Bit Algorithm

Initially all entries in b are false.

Process is program

repeat

bi true j 1

while (bi true) and (j lt i) do

if bj true then bi false await bj false fi

j j 1

od

until bi true

for j i 1 to n do await bj false od

critical section

bi false

58Properties

Satisfies mutual exclusion and deadlock freedom.

Starvation of individual processes is possible.

Not fast even in the absence of contention a process needs to access all of the n shared bits.

59Properties

Not symmetrical a process with a smaller identifier has higher priority.

Uses only n shared bits, hence it is space optimal .

Non-atomic registers it is enough to assume that the registers are safe, meaning that writes which are concurrent with reads will return an arbitrary value.

60Questions

?

61Thank you for listening

About PowerShow.com

PowerShow.com is a leading presentation/slideshow sharing website. Whether your application is business, how-to, education, medicine, school, church, sales, marketing, online training or just for fun, PowerShow.com is a great resource. And, best of all, most of its cool features are free and easy to use.

You can use PowerShow.com to find and download example online PowerPoint ppt presentations on just about any topic you can imagine so you can learn how to improve your own slides and
presentations for free. Or use it to find and download high-quality how-to PowerPoint ppt presentations with illustrated or animated slides that will teach you how to do something new, also for free. Or use it to upload your own PowerPoint slides so you can share them with your teachers, class, students, bosses, employees, customers, potential investors or the world. Or use it to create really cool photo slideshows - with 2D and 3D transitions, animation, and your choice of music - that you can share with your Facebook friends or Google+ circles. That's all free as well!

For a small fee you can get the industry's best online privacy or publicly promote your presentations and slide shows with top rankings. But aside from that it's free. We'll even convert your presentations and slide shows into the universal Flash format with all their original multimedia glory, including animation, 2D and 3D transition effects, embedded music or other audio, or even video embedded in slides. All for free. Most of the presentations and slideshows on PowerShow.com are free to view, many are even free to download. (You can choose whether to allow people to download your original PowerPoint presentations and photo slideshows for a fee or free or not at all.) Check out PowerShow.com today - for FREE. There is truly something for everyone!

presentations for free. Or use it to find and download high-quality how-to PowerPoint ppt presentations with illustrated or animated slides that will teach you how to do something new, also for free. Or use it to upload your own PowerPoint slides so you can share them with your teachers, class, students, bosses, employees, customers, potential investors or the world. Or use it to create really cool photo slideshows - with 2D and 3D transitions, animation, and your choice of music - that you can share with your Facebook friends or Google+ circles. That's all free as well!

For a small fee you can get the industry's best online privacy or publicly promote your presentations and slide shows with top rankings. But aside from that it's free. We'll even convert your presentations and slide shows into the universal Flash format with all their original multimedia glory, including animation, 2D and 3D transition effects, embedded music or other audio, or even video embedded in slides. All for free. Most of the presentations and slideshows on PowerShow.com are free to view, many are even free to download. (You can choose whether to allow people to download your original PowerPoint presentations and photo slideshows for a fee or free or not at all.) Check out PowerShow.com today - for FREE. There is truly something for everyone!