Скачать презентацию Multiprocessor Synchronization Algorithms 20225241 Lecturer Danny Hendler Скачать презентацию Multiprocessor Synchronization Algorithms 20225241 Lecturer Danny Hendler

902f5d1be9954d4fc671f85d56c0d37b.ppt

  • Количество слайдов: 24

Multiprocessor Synchronization Algorithms (20225241) Lecturer: Danny Hendler Multiprocessor Synchronization Algorithms (20225241) Lecturer: Danny Hendler

Grade structure • 3 (theoretic) problem sets – Must submit at least 2 – Grade structure • 3 (theoretic) problem sets – Must submit at least 2 – Weight 30% of final grade (15% each) • Take-home final exam – 70% of final grade Electronic submissions only!!! 2

Adminstrative details - Office: Alon 218 - Office hours: - Sundays, 2 pm-4 pm Adminstrative details - Office: Alon 218 - Office hours: - Sundays, 2 pm-4 pm - Or schedule an appointment - Course site: http: //www. cs. bgu. ac. il/~msa 141/ (or simply access through my home page) 3

Books • Distributed Computing: Fundamentals, Simulations, and Advanced Topics, Hagit Attiya and Jennifer Welch, Books • Distributed Computing: Fundamentals, Simulations, and Advanced Topics, Hagit Attiya and Jennifer Welch, John Wiley and Sons • The Art of Multiprocessor Programming Maurice Herlihy and Nir Shavit • Synchronization Algorithms and Concurrent Programming, Gadi Taubenfeld, Pearson/Prentice Hall. Book site: http: //www. faculty. idc. ac. il/gadi/book. htm 4

5 5

Moore’s law Exponential growth in computing power 6 Moore’s law Exponential growth in computing power 6

The Future of Computing Speeding up uni-processors is harder and harder Intel, Sun (RIP), The Future of Computing Speeding up uni-processors is harder and harder Intel, Sun (RIP), AMD, IBM now focusing on “multicore” architectures Soon, most desktops will be multiprocessors Soon, most laptops will be multiprocessors Soon, most cellular phonse will contain multiprocessors Soon, most TVs will contain multiprocessors How can we write correct and efficient algorithms for multiprocessors? 7

Distributed Systems • A distributed system is a collection of individual computing devices that Distributed Systems • A distributed system is a collection of individual computing devices that communicate with one another. E. g. : – VLSI chips – Shared-memory multiprocessor – Local-area network – The Internet 8

One sequential model, MANY distributed models • Shared-memory / Message-passing – Which operations are One sequential model, MANY distributed models • Shared-memory / Message-passing – Which operations are allowed (read, write, readmodify-write)? • Synchronous, timing-conditions, asynchronous • Are failures allowed? – Fail-stop, Byzantine failures, message omission • Is the number of processes known? 9

Motivating examples of Synchronization 10 Motivating examples of Synchronization 10

The Too-Much-Milk Problem Time Alice 5: 00 Arrive Home 5: 05 Look in fridge; The Too-Much-Milk Problem Time Alice 5: 00 Arrive Home 5: 05 Look in fridge; no milk 5: 10 Leave for grocery 5: 15 Bob Arrive home 5: 20 Arrive at grocery Look in fridge; no milk 5: 25 Buy milk Leave for grocery 5: 30 Arrive home; put milk in fridge 5: 40 Buy milk 5: 45 Arrive home; too much milk! Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 11

Solving the Too-Much-Milk Problem Required properties q Mutual Exclusion: Only one person checks&buys milk Solving the Too-Much-Milk Problem Required properties q Mutual Exclusion: Only one person checks&buys milk “at a time” q Progress: Someone always buys milk if it is needed Communication primitives q Leave a note (set a flag) q Remove a note (reset a flag) q Read a note (test the flag) Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 12

Important Distinction q Safety Property – Nothing bad ever happens – Example: mutual exclusion Important Distinction q Safety Property – Nothing bad ever happens – Example: mutual exclusion q Liveness Property – Something good happens eventually – Example: progress Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 13

Solution 1 Alice if (no milk) { if (no note) { leave note buy Solution 1 Alice if (no milk) { if (no note) { leave note buy milk remove note } } Bob if (no milk) { if (no note) { leave note buy milk remove note } } Does it work? C mutual exclusion No, may end up with “two milk”. üprogress Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 14

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

Solution 3 Alice leave note A while (note B) {skip} if (no milk) {buy Solution 3 Alice leave note A while (note B) {skip} if (no milk) {buy milk} remove note A Bob leave note B if (no note A) { if (no milk) {buy milk} } remove note B Does it work? Only if we make a timing assumption! ümutual exclusion C progress Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 16

Solution 4 Using 4 labeled notes A 1 A 2 B 1 the fridge’s Solution 4 Using 4 labeled notes A 1 A 2 B 1 the fridge’s door Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 18

Solution 4 Alice leave A 1 if B 2 {leave A 2} else {remove Solution 4 Alice leave A 1 if B 2 {leave A 2} else {remove A 2} while B 1 and ((A 2 and B 2) or (no A 2 and no B 2)) {skip} if (no milk) {buy milk} remove A 1 Bob leave B 1 if (no A 2) {leave B 2} else {remove B 2} while A 1 and ((A 2 and no B 2) or (no A 2 and B 2)) {skip} if (no milk) {buy milk} remove B 1 A correct, fair, symmetric algorithm! Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 19

Solution 4 A 1 A 2 B 2 X X Alice’s turn B 2 Solution 4 A 1 A 2 B 2 X X Alice’s turn B 2 A 2 B 1 X X Bob’s turn A 1 A 2 B 2 B 1 Alice’s turn A 1 A 2 B 2 B 1 Bob’s turn Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 21

A variant of Solution 4 The order of the first two statements is replaced A variant of Solution 4 The order of the first two statements is replaced Is it correct ? Alice if B 2 {leave A 2} else {remove A 2} leave A 1 while B 1 and ((A 2 and B 2) or (no A 2 and no B 2)) {skip} if (no milk) {buy milk} remove A 1 No, may end up with two milk. Bob if (no A 2) {leave B 2} else {remove B 2} leave B 1 while A 1 and ((A 2 and no B 2) or (no A 2 and B 2)) {skip} if (no milk) {buy milk} remove B 1 B 2 A 1 B 2 B 2 B 1 Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 22

A variant of Solution 4 The order of the first two statements is replaced A variant of Solution 4 The order of the first two statements is replaced Is it correct ? Alice if B 2 {leave A 2} else {remove A 2} leave A 1 while B 1 and ((A 2 and B 2) or (no A 2 and no B 2)) {skip} if (no milk) {buy milk} MILK remove A 1 No, may end up with two milk. Bob if (no A 2) {leave B 2} else {remove B 2} leave B 1 while A 1 and ((A 2 and no B 2) or (no A 2 and B 2)) {skip} if (no milk) {buy milk} MILK remove B 1 B 2 A 1 B 2 B 1 B 2 C mutual exclusion üprogress Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 23

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

The coordinated attack problem • Communication is done by sending messengers across valley • The coordinated attack problem • Communication is done by sending messengers across valley • Messengers may be lost or captured by the enemy • We seek a deterministic solution 1 2 Enemy Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 25

The coordinated attack problem Theorem: There is no algorithm that solves this problem! Proof The coordinated attack problem Theorem: There is no algorithm that solves this problem! Proof (informal): • Assume to the contrary that such an algorithm exists. • Let P be an algorithm that solves it with the 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. • So there is a correct algorithm P’ that sends one message less. • A contradiction. The model is too weak! Synchronization Algorithms and Concurrent Programming Gadi Taubenfeld © 2006 26