β’
μΌλΆ μμμ κ°μ§κ³ μμΌλ©΄μ λ΄κ° λͺ»κ°μ§ μμμ μꡬνλ κ²
Deadlock
μΌλ ¨μ νλ‘μΈμ€λ€μ΄ μλ‘κ° κ°μ§ μμμ κΈ°λ€λ¦¬λ©° block λ μν
4κ°μ§ 쑰건
β’
mutual exclusion(μνΈ λ°°μ )
β¦
맀 μκ° νλμ νλ‘μΈμ€λ§ λ
μ μ μΌλ‘ μμμ μ¬μ©
β’
no preemption(λΉμ μ )
β¦
νλ‘μΈμ€λ μμμ μ€μ€λ‘ λ΄μ΄λκ³ , κ°μ λ‘ λΉΌμκΈ°μ§λ μμ
β’
hold and wait(보μ λκΈ°)
β¦
μμμ κ°μ§ νλ‘μΈμ€κ° λ€λ₯Έ μμμ κΈ°λ€λ¦΄ λ 보μ μμμ λμ§ μκ³ κ³μ κ°μ§κ³ μμ
β’
circular wait(μν λκΈ°)
β¦
μμμ κΈ°λ€λ¦¬λ νλ‘μΈμ€κ°μ μ¬μ΄ν΄μ΄ νμ±λ¨
Resources
β’
νλμ¨μ΄, μννΈμ¨μ΄ λ±μ ν¬ν¨νλ κ°λ
β¦
IO device, CPU cycle, memory space, semaphore λ±
β’
νλ‘μΈμ€κ° μμμ μ¬μ©νλ μ μ°¨
β¦
request, allocate, use, release
Resource Allocation Graph
β’
Vertex
β¦
Process P
β¦
resource R
β’
Edge
β¦
request edge P β R
β¦
assignment edge R β P
β’
κ·Έλνμ cycle μ΄ μμΌλ©΄ deadlockdl μλλ€.
β’
κ·Έλνμ cycle μ΄ μμΌλ©΄
β¦
μμλΉ μΈμ€ν΄μ€κ° νλλ°μ μμΌλ©΄ deadlock
β¦
μμλΉ μ¬λ¬ μΈμ€ν΄μ€κ° μμΌλ©΄ deadlock κ°λ₯μ±
β’
μΌμͺ½ κ·Έλ¦Όμμλ 2κ°μ μ¬μ΄ν΄
β¦
R2 β P1 β R1 β P2 β R3 β P3 β R2
β¦
R2 β P2 β R3 β P3 β R2
β¦
R2 κ° 2κ°μ μΈμ€ν΄μ€κ° μλλΌλ R2 μ μΈμ€ν΄μ€ λͺ¨λ μ¬μ΄ν΄μ λ¬Όλ €μκΈ°λλ¬Έμ λ°λλ½ μν
β’
μ€λ₯Έμͺ½ κ·Έλ¦Όμ 1κ°μ μ¬μ΄ν΄
β¦
R1, R2 μΈμ€ν΄μ€κ° κ°κ° 2κ°μ΄κ³ κ·Έ μ€ νλμ μμμ μ΄λ €μκΈ°λλ¬Έμ λ°λλ½ X
Deadlock μ²λ¦¬ λ°©λ²
β’
deadlock prevention
β¦
λ―Έμ°μ λ°©μ§
β¦
μμ ν λΉ μ deadlock μ 쑰건 μ€ μ΄λ νλκ° λ§μ‘±λμ§ μλλ‘ νλ κ²
β¦
hold and wait
βͺ
λ°©λ²1: νλ‘μΈμ€ μμ μ λͺ¨λ νμν μμμ ν λΉλ°κ² νλ λ°©λ²
βͺ
λ°©λ²2: μμμ΄ νμν κ²½μ° λ³΄μ μμμ λͺ¨λ λκ³ λ€μ μμ²
β¦
no preemption
βͺ
νλ‘μΈμ€κ° μ΄λ€ μμμ κΈ°λ€λ €μΌ νλ κ²½μ° μ΄λ―Έ 보μ ν μμμ΄ μ μ λ¨
βͺ
CPU, memory λ± state λ₯Ό μ½κ² save νκ³ restore ν μ μλ μμμμ μ£Όλ‘ μ¬μ©
β¦
circular wait
βͺ
μμμ ν λΉ μμλ₯Ό μ ν¨
β¦
utilization μ ν, throughput κ°μ, starvation λ¬Έμ
β’
deadlock avoidance
β¦
λ―Έμ°μ λ°©μ§
β¦
μμ μμ²μ λν λΆκ°μ μΈ μ 보λ₯Ό μ΄μ©νμ¬ deadlock μ κ°λ₯μ±μ΄ μλ κ²½μ°λ§ μμ ν λΉ
β¦
μμ€ν
state κ° μλ state λ‘ λμμ¬ μ μλ κ²½μ°μλ§ μμ ν λΉ
β¦
νλ‘μΈμ€κ° μΈ μμμ μμ μκ³ μλ€κ³ κ°μ νκ³ λΆμνμ¬ λ°λλ½ ννΌ
β¦
resource allocation graph algorithm
β¦
bankerβs algorithm
β’
deadlock detection and recovery
β¦
deadlock λ°μμ νμ©νλ κ·Έμ λν detection 루ν΄μ λ¬ deadlock λ°κ²¬μ recover
β¦
μμμ λΉΌκ³ λ κ°λ¨νκ² κ·Έλ¦°λ€.
β¦
N^2 μ μκ°λ³΅μ‘λ β dfs λΌμ
β¦
recovery
βͺ
λͺ¨λ λ°λλ½λ νλ‘μΈμ€λ₯Ό abort
βͺ
λ°λλ½μ μ°λ£¨λ νλ‘μΈμ€λ₯Ό νλμ© abort
βͺ
μμμ λΉΌμκ³ process restart
β’
deadlock ignorance
β¦
μ±
μ X
β¦
λλΆλΆμ OS κ° μ±ν
β deadlock μ λλ¬Όκ² λ°μνλ€κ³ λ³΄κ³ μ΄μ λν λλΉλ₯Ό νλ κ²μ μ€λ²ν€λλ₯Ό λμ΄κΈ°λλ¬Έμ ignorance