Introduction (рдкрд░рд┐рдЪрдп)
рд╣рдордиреЗ рджреЗрдЦрд╛:
- Prevention тЖТ deadlock рд╣реЛрдиреЗ рд╣реА рдирд╣реАрдВ рджреЗрддрд╛
- Avoidance тЖТ unsafe state рдХреЛ avoid рдХрд░рддрд╛ рд╣реИ
рд▓реЗрдХрд┐рди рдЕрдЧрд░ system рдореЗрдВ deadlock рд╣реЛ рд╣реА рдЬрд╛рдП,
рддреЛ рдЙрд╕реЗ рдЦрддреНрдо рдХреИрд╕реЗ рдХрд░реЗрдВрдЧреЗ?
рдЗрд╕реА рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ:
Deadlock Recovery
Deadlock Recovery рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ
Deadlock Recovery рд╡рд╣ technique рд╣реИ рдЬрд┐рд╕рдореЗрдВ system deadlock рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реЗ detect рдХрд░рдХреЗ resolve рдХрд░рддрд╛ рд╣реИред
Simple Definition
Deadlock Recovery = deadlock рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реЗ рд╣рдЯрд╛рдирд╛
Basic Idea
Deadlock рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж system рдХреЛ:
- Deadlock detect рдХрд░рдирд╛ рд╣реИ
- Deadlock рдХреЛ break рдХрд░рдирд╛ рд╣реИ
Recovery Methods
Deadlock рдХреЛ recover рдХрд░рдиреЗ рдХреЗ 2 main рддрд░реАрдХреЗ рд╣реЛрддреЗ рд╣реИрдВ:
1. Process Termination
Idea
рдХреБрдЫ processes рдХреЛ terminate рдХрд░рдХреЗ deadlock рддреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
Types
(a) All Processes Terminate рдХрд░рдирд╛
- Deadlock рдореЗрдВ involved рд╕рднреА processes рдХреЛ рдЦрддреНрдо рдХрд░ рджреЛ
Advantage
- Simple
Disadvantage
- рдмрд╣реБрдд data loss
(b) One by One Termination
- рдПрдХ-рдПрдХ рдХрд░рдХреЗ processes рдХреЛ terminate рдХрд░реЛ
- рдЬрдм рддрдХ deadlock рдЦрддреНрдо рди рд╣реЛ рдЬрд╛рдП
Advantage
- рдХрдо data loss
Disadvantage
- Time consuming
Process select рдХреИрд╕реЗ рдХрд░реЗрдВ
Terminate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП process рдЪреБрдирддреЗ рд╕рдордп рдзреНрдпрд╛рди рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- Process рдХреА priority
- Execution рдХрд┐рддрдирд╛ рд╣реБрдЖ рд╣реИ
- Resource рдХрд┐рддрдирд╛ use рдХрд┐рдпрд╛ рд╣реИ
- Cost рдХрд┐рддрдирд╛ рд╣реИ
2. Resource Preemption
Idea
Processes рд╕реЗ resource рд╡рд╛рдкрд╕ рд▓реЗрдХрд░ deadlock рддреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ
Working
- Resource temporarily process рд╕реЗ рд▓реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рджреВрд╕рд░реЗ process рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдмрд╛рдж рдореЗрдВ original process рдХреЛ рд╡рд╛рдкрд╕ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
Important Points
1. Victim Selection
рдХрд┐рд╕ process рд╕реЗ resource рд▓реЗрдирд╛ рд╣реИ
2. Rollback
Process рдХреЛ previous safe state рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛
3. Starvation Avoidance
рдПрдХ рд╣реА process рд╕реЗ рдмрд╛рд░-рдмрд╛рд░ resource рди рдЫреАрдирд╛ рдЬрд╛рдП
Example
рдорд╛рди рд▓реЛ:
- P1 рдХреЗ рдкрд╛рд╕ R1 рд╣реИ
- P2 рдХреЗ рдкрд╛рд╕ R2 рд╣реИ
- рджреЛрдиреЛрдВ рдПрдХ-рджреВрд╕рд░реЗ рдХрд╛ wait рдХрд░ рд░рд╣реЗ рд╣реИрдВ
Recovery:
- P2 рдХреЛ terminate рдХрд░ рджреЛ
рдпрд╛ - R2 рдХреЛ P2 рд╕реЗ рд▓реЗрдХрд░ P1 рдХреЛ рджреЗ рджреЛ
Deadlock рдЦрддреНрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛
Advantages
- Deadlock рдХреЛ remove рдХрд░ рджреЗрддрд╛ рд╣реИ
- System рдХреЛ рдлрд┐рд░ рд╕реЗ normal рдмрдирд╛ рджреЗрддрд╛ рд╣реИ
Disadvantages
- Data loss рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
- System unstable рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
- Recovery cost high рд╣реЛрддреА рд╣реИ
Important Comparison
| Technique | рдХрдм use рд╣реЛрддрд╛ рд╣реИ |
|---|---|
| Prevention | рдкрд╣рд▓реЗ |
| Avoidance | allocation рдХреЗ рд╕рдордп |
| Recovery | рдмрд╛рдж рдореЗрдВ |
Exam Focus Points
- Deadlock Recovery definition
- Process termination рдФрд░ resource preemption
- Victim selection рдФрд░ rollback
Conclusion
Deadlock Recovery рдПрдХ reactive approach рд╣реИ, рдЬрд┐рд╕рдореЗрдВ system deadlock рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реЗ detect рдХрд░рдХреЗ solve рдХрд░рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ effective рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ data loss рдФрд░ performance issues рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ last option рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред