Download presentation

Presentation is loading. Please wait.

Published bySavanah Spurrell Modified over 3 years ago

1
**Synchronization Algorithms and Concurrent Programming**

Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld Chapter 1 Introduction Version: June 2014 Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

2
**Synchronization Algorithms and Concurrent Programming**

Chapter 1 Synchronization Algorithms and Concurrent Programming ISBN: , 1st edition A note on the use of these power-point slides: I am making these slides freely available to all (faculty, students, readers). They are in PowerPoint form so you can add, modify, and delete slides and slide content to suit your needs. They obviously represent a lot of work on my part. In return for use, I only ask the following: That you mention their source, after all, I would like people to use my book! That you note that they are adapted from (or perhaps identical to) my slides, and note my copyright of this material. Thanks and enjoy! Gadi Taubenfeld All material copyright 2014 Gadi Taubenfeld, All Rights Reserved To get the most updated version of these slides go to: Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

3
**Synchronization Type of synchronization Contention Coordination**

Why synchronization is Difficult? Easy between humans Communication between computers is restricted reading and writing of notes sending and receiving messages Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

4
**Too Much Milk Section 1.2.2 Chapter 1**

Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

5
**The Too-Much-Milk Problem**

Time Alice Bob 5:00 Arrive Home 5:05 Look in fridge; no milk 5:10 Leave for grocery 5:15 Arrive home 5:20 Arrive at grocery 5:25 Buy milk 5:30 Arrive home; put milk in fridge 3:40 3:45 Arrive home; too much milk! Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

6
**Solving the Too-Much-Milk Problem**

Correctness properties Mutual Exclusion: Only one person buys milk “at a time” Progress: Someone always buys milk if it is needed Communication primitives Leave a note (set a flag) Remove a note (reset a flag) Read a note (test the flag) Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

7
**Important Distinction**

Safety Property Nothing bad happens ever Example: mutual exclusion Liveness Property Something good happens eventually Example: progress Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

8
**Solution 1 Alice if (no note) { if (no milk) { leave Note buy milk**

remove note } Bob Does it work? mutual exclusion progress No, may end up with too much milk. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

9
**Solution 2 Using labeled notes Alice leave note A if (no note B) {**

Chapter 1 Solution 2 Using labeled notes Alice leave note A if (no note B) { if (no milk) {buy milk} } remove note A Bob leave note B if (no note A) { remove note B Does it work? mutual exclusion progress No, may end up with no milk. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

10
**Solution 3 Alice leave note A while (note B) {skip}**

Chapter 1 Solution 3 Bob’s code is as before Alice leave note A while (note B) {skip} if (no milk) {buy milk} remove note A Bob leave note B if (no note A) { } remove note B Does it work? mutual exclusion progress No ! a timing assumption is needed Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

11
**Is solution #3 a good solution? No**

Chapter 1 Is solution #3 a good solution? No A timing assumption is needed! Unfair to one of the processes It is asymmetric and complicated Alice is busy waiting – consuming CPU cycles without accomplishing useful work Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

12
**BUT, Bob may forever get stuck in the repeat-until loop !!!**

Chapter 1 Solution 3+ Alice code is as before BUT, Bob may forever get stuck in the repeat-until loop !!! Alice leave note A while (note B) {skip} if (no milk) {buy milk} remove note A Bob repeat leave note B if (note A) { remove note B; while (note A) {skip} } until (note B) remove note B Additional requirement [informal definition] Thirst-freedom: Nobody ever gets stuck forever. (Both Alice and Bob eventually complete their programs.) Does it work? mutual exclusion progress Yes, BUT … Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

13
**Solution 4 Using 4 labeled notes A1 A2 B2 B1 the fridge’s door**

Chapter 1 Solution 4 Using 4 labeled notes A1 A2 B2 B1 the fridge’s door This correct solution is based on an algorithm by J.L.W. Kessels (1982), which in turn is based on an algorithm by G. Peterson (1981). See Section 2.1 in the textbook. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

14
**Solution 4 Notations solid line without color:**

Chapter 1 Solution 4 Notations solid line without color: we do not care if there is a note color: there is a note dotted line: there is no note A1 A2 X B2 X B2 ` Alice’s turn who will buy milk ? Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

15
**Solution 4 A1 A2 X B2 X B2 A1 A2 B2 B1 A1 A2 B2 B1 Alice’s turn**

Chapter 1 Solution 4 A1 A2 X B2 X B2 A1 A2 B2 B1 A1 A2 B2 B1 Alice’s turn Alice’s turn Alice’s turn B2 A2 X B2 X B1 A1 A2 B2 B1 A1 A2 B2 B1 Bob’s turn Bob’s turn Bob’s turn Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

16
**Solution 4 Alice leave A1 if B2 {leave A2} else {remove A2}**

while B1 and ((A2 and B2) or (no A2 and no B2)) {skip} if (no milk) {buy milk} remove A1 Bob leave B1 if (no A2) {leave B2} else {remove B2} while A1 and ((A2 and no B2) or (no A2 and B2)) remove note B1 A correct, fair, symmetric algorithm! mutual exclusion progress both Alice and Bob eventually complete their programs Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

17
**A variant of Solution 4 The order of the first two statements is replaced**

Is it correct ? Alice if B2 {leave A2} else {remove A2} leave A1 while B1 and ((A2 and B2) or (no A2 and no B2)) {skip} if (no milk) {buy milk} remove A1 Bob if (no A2) {leave B2} else {remove B2} leave B1 while A1 and ((A2 and no B2) or (no A2 and B2)) remove note B1 MILK MILK mutual exclusion progress No, may end up with two milk. A1 B2 B1 Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

18
**Question Alice and Bob have a daughter C.**

Chapter 1 Question Alice and Bob have a daughter C. Make it work for all the three of them. In Chapter 2, we solve a generalization of the too-much-milk problem, called the mutual exclusion problem, for any number of participants (not just two or three). Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

19
**Question x is an atomic register, initially 0 Process A**

Process A for i = 1 to 5 { x:=x+1 } Process B Q: What are all the possible values for x after both processes terminate? A: 2 through 10 inclusive. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

20
**The smallest value is 2 1 1 2 1 A B 4 3 5 2 4 1 2 1 2 3 Chapter 1**

1 1 2 1 A B 4 3 5 2 4 1 2 1 2 3 Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

21
**Question x is an atomic register, initially 0 Process A x:=x+1; x:=x+1**

Process A x:=x+1; x:=x+1 Process B Process C x:=10 Q: What are all the possible values for x after the three processes terminate? A: 2,3,4,10,11,12,13,14. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

22
**The Coordinated Attack Problem**

Section 1.2.3 Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

23
**The coordinated attack problem**

Blue army wins if both blue camps attack simultaneously Design an algorithm to ensure that both blue camps attack simultaneously Enemy 1 2 The problem is due to Jim Gray (1977) Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

24
**The coordinated attack problem**

Communication is done by sending messengers across the valley Messengers may be lost or captured by the enemy Enemy 1 2 Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

25
**The coordinated attack problem**

Theorem: There is no algorithm that solves the problem ! Proof: Assume to the contrary that such an algorithm exits. Let P be an algorithm that solves with fewest # of messages, when no message is lost. P should work even when the last messenger is captured. So P should work even if the last messenger is never sent. But this is a new algorithm with one less message. A contradiction. The (asynchronous) model is too weak. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

26
**Synchronization Contention vs. coordination Chapter 1**

Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

27
**Synchronization Contention Too-much-milk (1) mutual exclusion (2,3,4)**

Concurrent Data Structures (4) l-exclusion (6) multiple resources: dinning philosophers (7) readers & writer (8) group-exclusions (8) ... Coordination The coordinated attack (1) barrier synchronization (5) Concurrent Data Structures (4) producer-consumer (8) Choice Coordination (8) Consensus (data coordination) (9) .... (The numbers refer to chapters in the book.) Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

28
**The mutual exclusion problem**

Chapters 2+3 The mutual exclusion problem The first problem we cover in detail. A generalization of the too-much-milk problem. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

29
**Blocking and Non-blocking Synchronization Concurrent data structures**

Chapter 4 Blocking and Non-blocking Synchronization Concurrent data structures counter, stack, queue, link list P1 P2 P3 data structure Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

30
**Blocking data structure Chapter 4 P1 P2 P3 Chapter 1**

Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

31
**Non-blocking data structure Chapter 4 P1 P2 P3 Chapter 1**

Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

32
**Coarse-Grained Locking**

Chapter 1 Coarse-Grained Locking Easier to program, but not scalable. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

33
**Fine-Grained Locking Efficient and scalable, but**

Chapter 1 Fine-Grained Locking Efficient and scalable, but too complicated (deadlocks, etc.). Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

34
**Barrier Synchronization**

Chapter 1 Chapter 5 Barrier Synchronization P1 P1 P1 P2 P2 P2 Barrier Barrier Barrier P3 P3 P3 P4 P4 P4 time all except P4 arrive four processes approach the barrier Once all arrive, they continue Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

35
**Example: Prefix Sum begin a b c d e f a a+b a+b+c a+b+c+d a+b+c +d+e**

Chapter 1 Example: Prefix Sum begin a b c d e f time a a+b a+b+c a+b+c+d a+b+c +d+e a+b+c +d+e+f end Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

36
**Example: Sequential Prefix Sum**

Chapter 1 Example: Sequential Prefix Sum begin a b c d e f a a+b c d e f a a+b a+b+c d e f time a a+b a+b+c a+b+c+d e f a a+b a+b+c a+b+c+d a+b+c+d+e f a a+b a+b+c a+b+c+d a+b+c +d+e a+b+c +d+e+f end Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

37
**Example: Parallel Prefix Sum**

Chapter 1 Example: Parallel Prefix Sum begin a b c d e f a a+b b+c c+d d+e e+f time a a+b a+b+c a+b+c+d b+c+d+e c+d+e+f a a+b a+b+c a+b+c+d a+b+c +d+e a+b+c +d+e+f end Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

38
**Example: Parallel Prefix Sum**

Chapter 1 Example: Parallel Prefix Sum begin a b c d e f barrier a a+b b+c c+d d+e e+f time barrier a a+b a+b+c a+b+c+d b+c+d+e c+d+e+f a a+b a+b+c a+b+c+d a+b+c +d+e a+b+c +d+e+f end Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

39
**Consensus 1 1 1 1 1 1 1 requirements: validity agreement termination**

Chapter 1 Chapter 9 Consensus 1 1 1 1 1 1 1 requirements: validity agreement termination Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

40
**Impossibility of Consensus with One Faulty Process**

Chapter 1 Impossibility of Consensus with One Faulty Process Theorem: There is no algorithm that solve the consensus problem using atomic read/write registers in the presence of a single faulty process. We give a detailed proof of this important result in Chapter 9 of the book. What can be done? Strong primitives. Timing assumptions. Randomizations. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

41
**Models of Computation Section 1.4 Chapter 1**

Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

42
**Communication models of computation**

Concurrent programming Shared memory safe registers atomic registers (read/write) test&set swap compare-and-swap load-link/store-conditional read-modify-write semaphore monitor What is the relative power of these communication primitives? Answer: see Chapter 9. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

43
**Communication models of computation**

Message passing send/receive multi-cast broadcast network topology Distributed message passing systems are not covered in the book Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

44
**Time models of computation**

This book Synchronous (CRCW, EREW) Partially synchronous Asynchronous less powerful realistic extremely powerful unrealistic Parallel Concurrent/ Distributed What is the relative power of these timing models? Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

45
**Shared Memory Models models of computation**

Chapter 1 Shared Memory Models models of computation P . . . P P . . . P P . . . P C C M M M M Simple Shared Memory Coherent Caching Distributed Shared Memory Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

46
**Fault-tolerance models of computation**

What can fail? processes shared memory links Type of faults crash omission Byzantine How many can fail ? constant, n/3, ... Wait-freedom, Non-blocking, Lock-freedom what is it ? Self-stabilization Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

47
**Processes & Concurrency models of computation**

Chapter 1 Processes & Concurrency models of computation # of Processes: known, unknown, infinite Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

48
**Processes & Concurrency models of computation**

Chapter 1 Processes & Concurrency models of computation Processes: known, unknown, infinite Concurrency: finite, bounded, unbounded Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

49
**Processes & Concurrency models of computation**

Chapter 1 Processes & Concurrency models of computation Processes: known, unknown, infinite Concurrency: finite, bounded, unbounded Faults: known, unknown Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

50
**Processes & Concurrency models of computation**

Chapter 1 Processes & Concurrency models of computation Processes: known, unknown, infinite Concurrency: finite, bounded, unbounded Faults: known, unknown Participation: required / not required Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

51
**Model Summary Multiple processes (or threads) Shared memory**

Communication via shared objects Unpredictable asynchronous delays Cover all the classical synchronization problems Focus more on principles, less on performance Look for simple elegant short algorithms Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

52
**Processes, Threads and Scheduling**

Section 1.5 Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

53
**Terminology Hardware Processors Software Threads, processes**

Sometimes OK to confuse them, sometimes not. Scheduler Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

54
**Processes and Threads A process is a program in execution**

User space Threads Threads Kernel space Kernel Kernel Three processes each with one or more threads One process with three threads In this book it is always ok to confuse between processes and threads. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

55
**Processes and Threads A process is a program in execution**

Shared by all threads in a process Address space, global variables, open files, ... Private to each thread Program counter, registers, stack. User-level threads Thread management is done by the application. Kernel-level threads Threads are managed by the kernel (but run in user space). Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

56
**Five states a process can be in**

Chapter 1 Five states a process can be in CPU scheduler picks this process CPU scheduler picks another process admit exit New Ready Running terminated event occurs waits for I/O or other event Blocked Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

57
**Processes and Scheduling**

1 n -1 n Scheduler Non-preemptive the scheduler can not interrupt a running process. Preemptive the scheduler can interrupt a running process. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

58
**Scheduling Algorithms**

First-come-first-served schedules processes in the order they become ready. Shortest-job-first schedule the process with the shortest time. Priority scheduling schedule the process with the highest priority. Round robin – each process is scheduled for a small number of time units (milliseconds). Many other possibilities exist. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

59
**Scheduling The Priority Inversion Problem**

Process P1 with priority 5 enters its CS, and is preempted before releasing it. Process P2 with priority 10 is scheduled but can not enter its CS and busy-waits. Process P1 wants to release its critical section (to enable P2 to enter) but never gets scheduled. In the sequel, we will assume that processes have the same priority. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

60
**Problems & Models Problems Models Algorithms Upper and lower bounds**

mutex read/write barrier test&set readers& writers swap consensus LL/SC Algorithms Upper and lower bounds Impossibility results Simulations & Implementations Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

61
**The Mutual Exclusion Problem**

The first problem we cover in detail A generalization of the too-much-milk problem Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

62
**The mutual exclusion problem**

remainder code entry code critical section exit code The problem is to design the entry and exit code in a way that guarantees that the mutual exclusion and deadlock-freedom properties are satisfied. Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

63
**The mutual exclusion problem**

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, eventually enters its critical section. Starvation-freedom: If a process is trying to enter its critical section, then this process must eventually enter its critical section. remainder entry code critical section exit code Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

64
**Question: true or false ?**

entry code of A exit code of A critical section remainder entry code of B exit code of B Algorithm C Algorithm A Algorithm B remainder entry code critical section exit code Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

65
**Question: true or false ?**

Algorithm C A and B are deadlock-free C is deadlock-free. A and B are starvation-free C is starvation-free. A or B satisfies mutual exclusion C satisfies mutual exclusion. A is deadlock-free and B is starvation-free C is starvation-free. A is starvation-free and B is deadlock-free C is starvation-free. remainder entry code of A entry code of B critical section exit code of B exit code of A Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

66
**Properties & complexity**

Time complexity Fast Adaptive Fairness FIFO, ... Fault-tolerance Local-spinning Space complexity Communication primitives Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

67
**Complexity Measures Counting steps process step complexity**

process time complexity contention-free time complexity Counting time units system response time process response time Counting communications distributed shared memory coherent caching Space complexity Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014

68
**History of the mutex problem**

Chapter 1 History of the mutex problem 1965 Defined by Dijkstra First solution by Dekker General solution by Dijkstra Fischer, Knuth, Lynch, Rabin, Rivest, ... 1974 Lamport’s bakery algorithm 1981 Peterson’s solution There are hundreds of published solutions Lots of related problems E. W. Dijkstra (Photo by Hamilton Richards 2002) Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

69
Chapter 1 Next Chapter In Chapter 2 we will start looking at basic solutions to the mutual exclusion problem using atomic registers. -- Gadi Chapter 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2014 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006

Similar presentations

Presentation is loading. Please wait....

OK

OS Spring’04 Concurrency Operating Systems Spring 2004.

OS Spring’04 Concurrency Operating Systems Spring 2004.

© 2018 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on energy cogeneration Ppt on result analysis system Ppt on rise of buddhism and jainism Download ppt on conic sections for class 11 Ppt on water softening techniques for managing Ppt on current account deficit usa Convert pdf ppt to ppt online maker Ppt on needle stick injury management Ppt online shopping presentation Ppt on festival of india