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.