Deadlock Problem

Introduction (рдкрд░рд┐рдЪрдп)

Operating System рдореЗрдВ рдХрдИ processes рдПрдХ рд╕рд╛рде run рдХрд░рддреА рд╣реИрдВ рдФрд░ resources (CPU, memory, files рдЖрджрд┐) рдХреЛ share рдХрд░рддреА рд╣реИрдВред

рдХрдИ рдмрд╛рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ processes рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ resources рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреА рд░рд╣рддреА рд╣реИрдВ рдФрд░ рдХреЛрдИ рднреА process рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝ рдкрд╛рддрд╛ред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ Deadlock рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

Deadlock рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ

Deadlock рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрд╣рд╛рдБ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ processes рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ resources рдХрд╛ wait рдХрд░рддреЗ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХреЛрдИ рднреА process execute рдирд╣реАрдВ рдХрд░ рдкрд╛рддрд╛ред

Simple Definition

Deadlock = рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдЬрд┐рд╕рдореЗрдВ processes рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП wait рдХрд░рддреА рд░рд╣рддреА рд╣реИрдВ

Example

рдорд╛рди рд▓реЛ:

  • Process P1 рдХреЗ рдкрд╛рд╕ Resource R1 рд╣реИ рдФрд░ рд╡рд╣ R2 рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ
  • Process P2 рдХреЗ рдкрд╛рд╕ Resource R2 рд╣реИ рдФрд░ рд╡рд╣ R1 рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдЕрдм:

  • P1 рдХреЛ R2 рдЪрд╛рд╣рд┐рдП
  • P2 рдХреЛ R1 рдЪрд╛рд╣рд┐рдП
  • рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдХреЗ рдкрд╛рд╕ рдЬреЛ resource рд╣реИ, рдЙрд╕реЗ рдЫреЛрдбрд╝ рдирд╣реАрдВ рд░рд╣реЗ

рдЗрд╕рд▓рд┐рдП рджреЛрдиреЛрдВ process рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП wait рдХрд░рддреЗ рд░рд╣реЗрдВрдЧреЗ
рдпрд╣реА Deadlock рд╣реИ

Real Life Example

рдорд╛рди рд▓реЛ рджреЛ рд▓реЛрдЧ рдПрдХ рд╕рдВрдХрд░реЗ рд░рд╛рд╕реНрддреЗ (bridge) рдкрд░ рдЖрдордиреЗ-рд╕рд╛рдордиреЗ рдЖ рдЬрд╛рддреЗ рд╣реИрдВ:

  • рдХреЛрдИ рдкреАрдЫреЗ рдирд╣реАрдВ рд╣рдЯрддрд╛
  • рджреЛрдиреЛрдВ рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝ рд╕рдХрддреЗ

рджреЛрдиреЛрдВ рд╡рд╣реАрдВ рдлрдБрд╕ рдЬрд╛рддреЗ рд╣реИрдВ

рдпрд╣ Deadlock рдХрд╛ real-life example рд╣реИ

Deadlock рд╣реЛрдиреЗ рдХреА Conditions

Deadlock рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ conditions рдХрд╛ рдПрдХ рд╕рд╛рде рд╣реЛрдирд╛ рдЬрд░реВрд░реА рд╣реИ:

1. Mutual Exclusion

Resource рдПрдХ рд╕рдордп рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ process use рдХрд░ рд╕рдХрддрд╛ рд╣реИ

2. Hold and Wait

Process рдПрдХ resource hold рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ resource рдХрд╛ wait рдХрд░рддрд╛ рд╣реИ

3. No Preemption

Resource рдХреЛ forcefully рдЫреАрдирд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛

4. Circular Wait

Processes рдПрдХ circular chain рдореЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рдХрд╛ wait рдХрд░рддреЗ рд╣реИрдВ

Example:

P1 тЖТ P2 тЖТ P3 тЖТ P1

Deadlock Graph Concept

Deadlock рдХреЛ graph рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • Nodes = Processes рдФрд░ Resources
  • Edges = request рдпрд╛ allocation

рдЕрдЧрд░ graph рдореЗрдВ cycle рдмрдирддрд╛ рд╣реИ, рддреЛ deadlock рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрддреА рд╣реИ

Deadlock рдХреЗ Effects

  • System рдХреА performance рд░реБрдХ рдЬрд╛рддреА рд╣реИ
  • Processes stuck рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ
  • Resources block рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ
  • System hang рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

Important Point

Deadlock рддрднреА рд╣реЛрдЧрд╛ рдЬрдм рдЪрд╛рд░реЛрдВ conditions рдПрдХ рд╕рд╛рде true рд╣реЛрдВ

рдЕрдЧрд░ рдПрдХ рднреА condition remove рдХрд░ рджреА рдЬрд╛рдП, рддреЛ deadlock рдирд╣реАрдВ рд╣реЛрдЧрд╛

Deadlock рдХреЛ handle рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ

Deadlock рдХреЛ handle рдХрд░рдиреЗ рдХреЗ рдЪрд╛рд░ main рддрд░реАрдХреЗ рд╣реЛрддреЗ рд╣реИрдВ:

  • Prevention
  • Avoidance
  • Detection
  • Recovery

(рдЗрдирдХреЛ рд╣рдо рдЕрдЧрд▓реЗ topics рдореЗрдВ detail рдореЗрдВ рдкрдврд╝реЗрдВрдЧреЗ)

Key Points

  • Deadlock = infinite waiting
  • 4 conditions рдЬрд░реВрд░реА рд╣реИрдВ
  • Circular wait рдмрд╣реБрдд important concept рд╣реИ

Conclusion

Deadlock Operating System рдХреА рдПрдХ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ processes рдПрдХ-рджреВрд╕рд░реЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реБрдП stuck рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ system рдЖрдЧреЗ рдирд╣реАрдВ рдмрдврд╝ рдкрд╛рддрд╛ред

рдЗрд╕рд▓рд┐рдП deadlock рдХреЛ рд╕рдордЭрдирд╛ рдФрд░ рдЙрд╕реЗ avoid рдХрд░рдирд╛ system design рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрд░реВрд░реА рд╣реИред

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top