1 / 21

EEE 435 Principles of Operating Systems

EEE 435 Principles of Operating Systems. Deadlock Avoidance, Prevention, and Wrap-Up (Modern Operating Systems 3.5, 3.6, and 3.7). Quick Review. How do we detect deadlocks with multiple instances of each resource? What are our four conditions for deadlock?. Outline. Deadlock Avoidance

vern
Télécharger la présentation

EEE 435 Principles of Operating Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EEE 435Principles of Operating Systems Deadlock Avoidance, Prevention, and Wrap-Up (Modern Operating Systems 3.5, 3.6, and 3.7)

  2. Quick Review • How do we detect deadlocks with multiple instances of each resource? • What are our four conditions for deadlock? Dr Alain Beaulieu

  3. Outline • Deadlock Avoidance • Deadlock Prevention Dr Alain Beaulieu

  4. Deadlock Avoidance • So far we have seen two solutions to our deadlock problem: ignoring them and recovering from them • Wouldn’t it be better if, through careful allocation of resources, we could prevent deadlocks from happening? • This is known as Deadlock Avoidance Dr Alain Beaulieu

  5. Deadlock Avoidance • To avoid deadlocks, it is important not to proceed to a state that is unsafe • A state is said to be safe if it is not deadlocked and there is some scheduling order in which every process can run to completion even if all of the processes were to immediately require their maximum number of resources to complete their work Dr Alain Beaulieu

  6. Deadlock Avoidance • If every process requests their maximum resources, is the starting state safe? Since every process could run to completion, the initial state was safe! Dr Alain Beaulieu

  7. Deadlock Avoidance • What if process A requested a single resource first and it was granted? Since not all processes could complete, the state moved to was unsafe!!! It is that move to an unsafe state that we need to detect.... Dr Alain Beaulieu

  8. Deadlock Avoidance • One way to avoid deadlocks for single instances of multiple resources is the Banker’s Algorithm • Modeled on the way a Banker might grant loan requests from his customers • Idea is that the customers have a maximum amount of credit which is set. It is guaranteed that if they were allocated their maximum amount of credit that they will be able to complete the work for which the loan was needed and subsequently repay the bank Dr Alain Beaulieu

  9. Deadlock Avoidance • Banker’s algorithm: • When a request for money from a customer is made, the algorithm checks if that would lead to an unsafe state, and if so, the request is denied • The determination of safe is as we saw previously SAFE UNSAFE Dr Alain Beaulieu

  10. Deadlock Avoidance • The Banker’s algorithm works for single resources with multiple instances, but what about multiple resources? • The algorithm can be generalized using data structures similar to those we used to detect a deadlock • A vector of existing(E) and available(A) resources • A matrix of resources currently assigned to each process (C) • A matrix of the resources each process might still need (the maximum) to complete Dr Alain Beaulieu

  11. Deadlock Avoidance • Banker’s Algorithm for Multiple Resources: 1) Look for a row, R, whose unmet resource needs (ie: potential maximum) are smaller than or equal to vector A. If no such row exists, the system is unsafe because if all processes request their maximum resources then none will be able to continue 2) Assume the process of the chosen row R requests all the resources it may need and completes. Mark that process as terminated and add all its resources to vector A Dr Alain Beaulieu

  12. Deadlock Avoidance • Banker’s Algorithm for Multiple Resources: 3) Repeat steps 1 and 2 until either all processes are marked as terminated (in which case the initial state was safe) or until it is shown that an unsafe state is present Dr Alain Beaulieu

  13. Deadlock Avoidance • Is this state safe? Dr Alain Beaulieu

  14. Deadlock Avoidance • Is avoiding deadlocks through careful allocation practical? • Disadvantage: checking for every request adds overhead • Disadvantage: processes must know all the resources they will ever possibly need in advance • Disadvantage: processes on the system may change, further complicating the algorithm • Answer: few, if any, existing systems use the Banker’s Algorithm for avoiding deadlocks Dr Alain Beaulieu

  15. Deadlock Prevention • If we can break one of the four conditions for deadlock then they will never happen • Attacking the Mutual Exclusion Condition • This is almost impossible to remove. Instead of having deadlocks, we will have race conditions and corrupted data on CD-ROMs that accepted burn information from two processes simultaneously • Nevertheless, sometimes resources can be abstracted. Instead of writing to the printer, in Windows you write to a print spooler and your job comes out in its turn Dr Alain Beaulieu

  16. Deadlock Prevention • Attacking the Hold and Wait Condition • Require all processes to request all resources before beginning execution. This works (and is sometimes used) but it has problems • Problem: usually processes don’t know what resources they’ll need. If they always did, we could use the Banker’s algorithm without problem • Problem: if the processing of data takes a long time before the output device is used then many CPU cycles will be wasted. No advantage to multiprogramming • Alternative: require a process to release all of its resources before requesting new resources Dr Alain Beaulieu

  17. Deadlock Prevention (side note) • Two-Phase Locking • An avoidance method that breaks the Hold and Wait condition used in the real world with databases • A process wishing to update a number of related records tries to lock them all. If any of the records are locked, it unlocks all previously locked records and tries again • If it succeeds, it updates the records and releases the locks • Not a healthy choice for a real-time system though... Dr Alain Beaulieu

  18. Deadlock Prevention • Attacking the No Preemption Condition • This is essentially not possible. Very few devices can stand being preempted during use and it would require a large amount of hardware change to allow it (it it is possible at all!) Dr Alain Beaulieu

  19. Deadlock Prevention • Attacking the Circular Wait Condition • Allow processes to hold only 1 resource at a time • Plainly unfeasible. Why? • Provide a global numbering of resources; require all programs to request resources in that order • This way a cycle can never occur...one process will always request another resource that has already been allocated and go to sleep • Problem: it may be difficult to find an ordering that suits all processes. You may not know which type of CD burner to acquire until you have read some information from the tape drive... Dr Alain Beaulieu

  20. Deadlock Prevention • Summary • The following methods are available to us to try and prevent deadlocks. Most are difficult, if not totally impractical. Most systems will opt for the Ostrich algorithm instead... Dr Alain Beaulieu

  21. Quiz Time! Questions? Dr Alain Beaulieu

More Related