Deadlocks Dec 11, 2007 CPE Operating Systems
Conditions of a Deadlock (7.2.1) Mutual exclusion Hold and wait No preemption Circular wait
Methods for Handling Deadlocks Never allow a deadlock state Allow deadlock and then recover Ignore the problem
Deadlock Prevention (7.4) Prevent deadlock conditions from occurring Mutual exclusion Hold and wait No preemption Circular wait
Deadlock Avoidance (7.5) Figure 7.5
Example Max NeedsNeeds at T0 (safe) Needs at T1 (unsafe) P0422 P11055 P2923 Total number of resources = 12
Resource Allocation Graph
Banker’s Algorithm Available: Vector of length m. If available [j] = k, there are k instances of resource type R j available. Max: n x m matrix. If Max [i,j] = k, then process P i may request at most k instances of resource type R j. Allocation: n x m matrix. If Allocation[i,j] = k then P i is currently allocated k instances of R j. Need: n x m matrix. If Need[i,j] = k, then P i may need k more instances of R j to complete its task. Need [i,j] = Max[i,j] – Allocation [i,j]. Let n = number of processes, and m = number of resources types.
Example 5 processes P 0 through P 4 ; 3 resource types: A (10 instances), B (5instances), and C (7 instances). Snapshot at time T 0 : AllocationMaxAvailable A B C A B C A B C P P P P P
Safety Algorithm Work NeedFinish P0 P1 P2 P3 P4 R1R2R3
Safety Algorithm Work NeedFinish P0 P1 P2 P3 P4 R1R2R3
Example (Cont.) The content of the matrix Need is defined to be Max – Allocation. Need A B C P P P P P The system is in a safe state since the sequence satisfies safety criteria.
Process P1 makes a request for: 1 instance of A 2 instance of C Request Vector = (1,0,2)
Safety Algorithm after (1,0,2) request Work NeedFinish P0 P1 P2 P3 P4 R1R2R3
Example: P 1 Request (1,0,2) Check that Request Available (that is, (1,0,2) (3,3,2) true. AllocationNeedAvailable A B CA B CA B C P P P P P Executing safety algorithm shows that sequence satisfies safety requirement. Can request for (3,3,0) by P 4 be granted? Can request for (0,2,0) by P 0 be granted?
Deadlock Detection (7.6)
Wait-for Graphs (single instance system only) Resource-Allocation GraphCorresponding wait-for graph
Wait-for Graph does not work with multiple instance resources
Banker’s Algorithm as a deadlock detection tool for multiple instance systems
Deadlock Recovery (7.7)
Process Termination Abort all deadlock processes Abort one at a time until deadlock cycle is eliminated
Resource Preemption Selecting a victim – minimize cost. Rollback – return to some safe state, restart process for that state. Starvation – same process may always be picked as victim, include number of rollback in cost factor.
หัวข้อ present ที่เหลือ Memory Management 1. Paging - บท Demand Paging - บท 9.2 Storage Management 3. File Protection - บท RAID structure - บท Linux File system - บท 21.7 System security 6. Program Threats - บท 18.2 ( ยกเว้น Viruses) 7. Computer Viruses - บท System & Network threats - บท Cryptography - บท 18.4