[05] κ΅μ°© μν
- κ΅μ°© μν (deadlock)
: μΌμ΄λμ§ μμ μ¬κ±΄μ κΈ°λ€λ¦¬λ©° μ§νμ΄ λ©μΆ°λ²λ¦¬λ νμ
: Aνλ‘μΈμ€κ° Bμμμ μ μ νλ©° Bνλ‘μΈμ€κ° κ°μ§ Aμμμ κΈ°λ€λ¦¬λ©°, Bνλ‘μΈμ€λ Aνλ‘μΈμ€κ° κ°μ§ Bμμμ κΈ°λ€λ¦¬λ μν©
- μμ ν λΉ κ·Έλν (resource-allocation graph)
: νλ‘μΈμ€λ μμΌλ‘, μμμ μ’ λ₯λ μ¬κ°νμΌλ‘ κ·Έλ¦Ό
: μ¬μ©ν μ μλ μμ κ°μλ μμ μ¬κ°ν λ΄ μ μΌλ‘ ννν¨
: νλ‘μΈμ€κ° μ΄λ€ μμμ ν λΉ λ°μ μ¬μ© μ€μ΄λΌλ©΄ μμμμ νλ‘μΈμ€λ₯Ό ν₯ν΄ νμ΄ν νμ
: νλ‘μΈμ€κ° μ΄λ€ μμμ κΈ°λ€λ¦¬κ³ μλ€λ©΄ νλ‘μΈμ€μμ μμμΌλ‘ νμ΄ν ν¨μ
- κ΅μ°© λ°μ 쑰건
1) μνΈ λ°°μ (mutual exclusion) : ν΄λΉ μμμ νλμ νλ‘μΈμ€λ§ μ΄μ© κ°λ₯ ν λ, ν νλ‘μΈμ€κ° μ¬μ©νλ μμμ λ€λ₯Έ νλ‘μΈμ€κ° μ¬μ©ν μ μμ λ
2) μ μ μ λκΈ°(hold and wait) : μμμ ν λΉ λ°μ μνμμ λ€λ₯Έ μμμ ν λΉ λ°κΈ°λ₯Ό κΈ°λ€λ¦¬λ μν
3) λΉμ μ (nonpreemptive) : λΉμ μ μμμ κ·Έ μμμ μ΄μ©νλ νλ‘μΈμ€μ μμ μ΄ λλμΌλ§ λΉλ‘μ μ΄μ© κ°λ₯ν¨
4) μν λκΈ°(circular wait) : νλ‘μΈμ€ μμ² λ° ν λΉ λ°μ μμμ΄ μμ ννλ₯Ό μ΄λ£Έ (μμ ν λΉ κ·Έλν)
< κ΅μ°© μν ν΄κ²° λ°©λ² >
1) μλ°©
: μνΈλ°°μ λΆμ - μ¬λ¬ κ°μ νλ‘μΈμ€κ° 곡μ μμμ μ¬μ©ν μ μκ² ν¨
: μ μ λκΈ° λΆμ - νλ‘μΈμ€κ° μ€νλκΈ° μ νμν λͺ¨λ μμμ ν λΉν¨
: λΉμ μ λΆμ - μμμ μ μ ν νλ‘μΈμ€κ° λ€λ₯Έ μμμ μꡬν λ μ μ νκ³ μλ μμμ λ°λ©νκ³ , μꡬν μμμ μ¬μ©νκΈ° μν΄ κΈ°λ€λ¦Ό
: μν λκΈ° - μμμ κ³ μ ν λ²νΈλ₯Ό ν λΉνκ³ λ²νΈ μμλλ‘ μμμ μꡬ
2) ννΌ
: κ΅μ°© μνκ° λ°μνμ§ μλλ‘ μ‘°μ¬ν μμμ ν λΉν¨
: λΆμμ μν - κ΅μ°© μνκ° λ°μν μ μμ (vs μμ μν)
: μμ μμμ΄ - κ΅μ°© μν μμ΄ μμ νκ² νλ‘μΈμ€λ€μ μμμ ν λΉν μ μλ μμ (μμ μν)
3) κ²μΆ ν ν볡
: μ μ μ ν΅ν ν볡 - κ΅μ°© μνκ° ν΄κ²°λ λκΉμ§ ν νλ‘μΈμ€μ© μμμ λͺ°μμ£Όλ λ°©μ
: νλ‘μΈμ€ κ°μ μ’ λ£λ₯Ό ν΅ν ν볡