STEP 3 Pretend to allocate requested resources to Pi by modifying the state as

# Step 3 pretend to allocate requested resources to pi

• edwardtoo165
• 45

This preview shows page 30 - 42 out of 45 pages.

± STEP 3: Pretend to allocate requested resources to Pi by modifying the state as follows: Available := Available - Request (i) ; Allocation ( i ) := Allocation ( i ) + Request ( i ) ; Need ( i ) := Need ( i ) - Request ( i ) ; ± If safe resources are allocated to Pi . ± If unsafe Pi must wait and the old resource-allocation state is restored.
Example of Banker’s Algorithm ° 5 processes ± P0 - P4; ° 3 resource types ± A(10 instances), B (5 instances), C (7 instances) ° Snapshot at time T0 Allocation Max Available A B C A B C A B C P0 0 1 0 7 5 3 3 3 2 P1 2 0 0 3 2 2 P2 3 0 2 9 0 2 P3 2 1 1 2 2 2 P4 0 0 2 4 3 3
Example (cont.) ° The content of the matrix Need is defined to be Max - Allocation . ° The system is in a safe state since the sequence < P 1, P 3, P 4, P 2, P 0> satisfies safety criteria. Need A B C P0 7 4 3 P1 1 2 2 P2 6 0 0 P3 0 1 1 P4 4 3 1
Example: P1 requests (1,0,2) ° Check to see that Request Available ± ((1,0,2) (3,3,2)) true. Allocation Need Available A B C A B C A B C P0 0 1 0 7 4 3 2 3 0 P1 3 0 2 0 2 0 P2 3 0 2 6 0 0 P3 2 1 1 0 1 1 P4 0 0 2 4 3 1
Example (cont.) ° Executing the safety algorithm shows that sequence <P1, P3, P4, P0, P2> satisfies safety requirement. ° Can request for (3,3,0) by P4 be granted? ° Can request for (0,2,0) by P0 be granted?
Deadlock Detection ° Allow system to enter deadlock state ° Detection Algorithm ° Recovery Scheme
Single Instance of each resource type ° Maintain wait-for graph ° Nodes are processes ° Pi Pj if Pi is waiting for Pj . ° Periodically invoke an algorithm that searches for a cycle in the graph. ° An algorithm to detect a cycle in a graph requires an order of n ^2 operations, where n is the number of vertices in the graph.
Several instances of a resource type ° Data Structures ± Available : Vector of length m . If Available [ j ] = k , there are k instances of resource type Rj available. ± Allocation : n × m matrix. If Allocation [ i , j ] = k , then process Pi is currently allocated k instances of resource type Rj . ± Request : An n × m matrix indicates the current request of each process. If Request [ i , j ] = k , then process Pi is requesting k more instances of resource type Rj .
Deadlock Detection Algorithm ° Step 1: Let Work and Finish be vectors of length m and n , respectively. Initialize ± Work := Available ± For i = 1,2,…, n , if Allocation ( i ) 0, then Finish [ i ] := false , otherwise Finish [ i ] := true. ° Step 2: Find an index i such that both: ± Finish [ i ] = false ± Request ( i ) Work ± If no such i exists, go to step 4.
Deadlock Detection Algorithm ° Step 3: Work := Work + Allocation( i ) ± Finish [ i ] := true ± go to step 2 ° Step 4: If Finish [ i ] = false for some i , 1 i n , then the system is in a deadlock state. Moreover, if Finish [ i ] = false , then Pi is deadlocked. Algorithm requires an order of m × (n^2) operations to detect whether the system is in a deadlocked state.
Example of Detection Algorithm ° 5 processes - P 0 - P 4; 3 resource types - A (7 instances), B (2 instances), C (6 instances) ° Snapshot at time T 0: < P 0, P 2, P 3, P 1, P 4> will result in Finish [ i ] = true for all i . Allocation Max Available A B C A B C A B C P0 0 1 0 0 0 0 0 0 0 P1 2 0 0 2 0 2 P2 3 0 3 0 0 0 P3 2 1 1 1 0 0 P4 0 0 2 0 0 2
Example (cont.) ° P2 requests an additional instance of type C.

#### You've reached the end of your free preview.

Want to read all 45 pages?

• One '20

### What students are saying

• As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

Kiran Temple University Fox School of Business ‘17, Course Hero Intern

• I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

Dana University of Pennsylvania ‘17, Course Hero Intern

• The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

Jill Tulane University ‘16, Course Hero Intern