Deadlock Example
Transfer_Money( A, B, M ) {
wait ( A.sem )
wait ( B.sem )
A.Balance = A.Balance - M
B.Balance = B.Balance + M
signal ( A.sem )
signal ( B.sem )
}
P1 wishes to execute Transfer_Money( X, Y, 100.00 )
P2 wishes to execute Transfer_Money( Y, X, 10.00 )
Deadlock occurs if P1 is stuck on Y.sem
and P2 is stuck on X.sem
Previous slide
Next slide
Back to first slide
View graphic version