|
UNIVERSITY OF WISCONSIN-MADISON
Computer Sciences Department | ||
|
CS 537
Spring 2001 | A. Arpaci-Dusseau | |
| Quiz #5: March 21st -- Deadlock |
| Name: | Student ID #: |
a. Mutual exclusion
b. Hold and wait
c. No preemption
d. Circular wait
_____ Impose a total ordering (or ranking) on how resources are acquired
_____ When a process requests a resource that is already held,
force the process holding the resource to release it
_____ Only allow a process to request a resource when the process has none
_____ Allow all processes to access the resource simultaneously
_____ Require each process to grab all desired resources at once
Can running each of the following code segments lead to deadlock of process 0 and process 1? Simply answer "yes" or "no".
Code Sample 1 Process 0: Process 1: lock1.acquire(); lock1.acquire(); lock2.acquire(); lock2.acquire(); lock1.release(); lock1.release(); lock2.release(); lock2.release(); |
Code Sample 2 Process 0: Process 1: lock1.acquire(); lock2.acquire(); lock2.acquire(); lock1.acquire(); lock1.release(); lock1.release(); lock2.release(); lock2.release(); |
Code Sample 3 Process 0: Process 1: lock1.acquire(); lock2.acquire(); lock2.acquire(); lock2.release(); lock1.release(); lock1.acquire(); lock2.release(); lock1.release(); |
Running which of the above code samples could lead to the situation shown in the following resource-allocation graph? Indicate all of the possible code samples that apply.