deadlock
play

Deadlock CS 450 : Operating Systems Michael Lee <lee@iit.edu> - PowerPoint PPT Presentation

Deadlock CS 450 : Operating Systems Michael Lee <lee@iit.edu> deadlock |dedlk| noun 1 [in sing. ] a situation, typically one involving opposing parties, in which no progress can be made : an attempt to break the deadlock . - New


  1. resources available, request & allocations, running programs will the system deadlock? yes no deadlock prevention

  2. description of a program and its inputs will the system halt (or run forever)? yes no the halting problem

  3. e.g., write the function: halt(f) ¡ � ¡bool ¡ - return true if f will halt - return false otherwise

  4. def ¡halt(f): ¡ ¡ ¡ ¡ ¡# ¡your ¡code ¡here ¡ halt(loop_forever) ¡ ¡# ¡=> ¡False def ¡loop_forever(): ¡ ¡ ¡ ¡ ¡while ¡True: ¡pass ¡ halt(just_return) ¡ ¡ ¡# ¡=> ¡True def ¡just_return(): ¡ ¡ ¡ ¡ ¡return ¡True

  5. def ¡halt(f): ¡ ¡ ¡ ¡ ¡# ¡your ¡code ¡here ¡ def ¡gotcha(): ¡ halt(gotcha) ¡ ¡ ¡ ¡if ¡halt(gotcha): ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡loop_forever() ¡ ¡ ¡ ¡ ¡else: ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡just_return() #$^%&#@!!!

  6. proof by contradiction: 
 the halting problem is undecidable

  7. generally speaking, deadlock prediction can be reduced to the halting problem

  8. i.e., determining if a system is deadlocked is, in general, provably impossible !!

  9. § Deadlock Detection & Recovery

  10. ¶ Basic approach: cycle detection

  11. e.g., Tarjan’s strongly connected components algorithm; O(|V|+|E|)

  12. need only run on mutex resources and “involved” processes … still, would be nice to reduce the 
 size of the resource allocation graph

  13. actual resources involved are unimportant — only care about relationships between processes

  14. P 5 P 1 P 2 P 3 P 4 Resource Allocation Graph

  15. P 5 P 1 P 2 P 3 P 4 “Wait-for” Graph

  16. P 5 P 5 P 1 P 2 P 3 P 1 P 2 P 3 P 4 P 4 Substantial optimization!

  17. … but not very useful when we have multi- instance resources (false positives are likely)

Recommend


More recommend