380 likes | 520 Views
Semaphores (Avoiding Train Wrecks). Kevin O’Gorman CS 170 22 April 2002. Signalling. . . . A1 statement A2 sem.signal(). . . . B1 sem.wait() B2 statement. sem = 0. Signalling. . . . A1 statement A2 sem.signal(). . . . B1 sem.wait() B2 statement. sem = 0. Signalling.
E N D
Semaphores(Avoiding Train Wrecks) Kevin O’Gorman CS 170 22 April 2002
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = -1
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = -1
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = -1
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . Success!
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 1
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 1
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 1
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 1
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 1
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . . B1 sem.wait() B2 statement . . . sem = 0
Signalling . . . A1 statement A2 sem.signal() . . . . . B1 sem.wait() B2 statement . . Success!