Deadlock: Deadlock Detection and Recovery
Deadlock Detection
โ Deadlock ๋ฐฉ์ง๋ฅผ ์ํ ์ฌ์ ์์ ์ ํ์ง ์์
- Deadlock์ด ๋ฐ์ ๊ฐ๋ฅ
โ ์ฃผ๊ธฐ์ ์ผ๋ก deadlock ๋ฐ์ ํ์ธ
- ์์คํ ์ด deadlock ์ํ์ธ๊ฐ?
- ์ด๋ค ํ๋ก์ธ์ค๊ฐ deadlock ์ํ์ธ๊ฐ?
โ Resource Allocation Graph(RAG) ์ฌ์ฉ
Resource Allocation Graph(RAG)
โ Deadlock ๊ฒ์ถ์ ์ํด ์ฌ์ฉ
โ Directed, Bipartite Graph
โ Directed graph G = (N, E)
- N = ${N_p, N_r}$ where
- $N_p$ is the set of processes = ${P1, P2, ..., P_N}$
- and $N_r$ is the set of resources = ${R1, R2, ..., R_m}$
โ Edge๋ $N_p$์ $N_r$ ์ฌ์ด์๋ง ์กด์ฌ
- $e = (P_i, R_j)$: ์์ ์์ฒญ
- $e = (R_j, P_i)$: ์์ ํ ๋น
โ $R_k$: k type์ ์์
โ $t_k$: $R_k$์ ๋จ์ ์์ ์
- For each $R_k ∈ N_r, ∃ T_k$ which is the number of units of $R_k$
โ |(a, b)|: (a, b) edge์ ์
โ RAG example
Deadlock Detection Method
โ Graph reduction
- ์ฃผ์ด์ง RAG์์ edge๋ฅผ ํ๋์ฉ ์ง์๊ฐ๋ ๋ฐฉ๋ฒ
- Completely reduced
- ๋ชจ๋ edge๊ฐ ์ ๊ฑฐ ๋จ
- Deadlock์ ๋น ์ง ํ๋ก์ธ์ค๊ฐ ์์
- Irreducible
- ์ง์ธ ์ ์๋ edge๊ฐ ์กด์ฌ
- ํ๋ ์ด์์ ํ๋ก์ธ์ค๊ฐ deadlock ์ํ
Graph Reduction
โ Unblocked process
- ํ์ํ ์์์ ๋ชจ๋ ํ ๋น ๋ฐ์ ์ ์๋ ํ๋ก์ธ์ค
- $P_i$๊ฐ ์์ฒญํ๋ ๋ชจ๋ ์์์ ์๊ฐ ํด๋น ์์๋ค์ ํ์ฌ ๋จ์์๋ ์๋ณด๋ค ์ ์ ๊ฒฝ์ฐ unblocked
Graph Reduction Procedure
- Unblocked process ์ ์ฐ๊ฒฐ๋ ๋ชจ๋ edge์ ๊ฑฐ
- ๋ ์ด์ unblocked process๊ฐ ์์ ๋๊น์ง 1 ๋ฐ๋ณต
โ ์ต์ข graph์์...
- ๋ชจ๋ edge๊ฐ ์ ๊ฑฐ ๋จ(Completely reduced)
- ํ์ฌ ์ํ์์ deadlock์ด ์์
- ์ผ๋ถ edge๊ฐ ๋จ์(irreducible)
- ํ์ฌ deadlock์ด ์กด์ฌ
example 1
example 2
Graph Reduction ์ ๋ฆฌ
โ High Overhead
- ๊ฒ์ฌ ์ฃผ๊ธฐ์ ์ํฅ์ ๋ฐ์
- Node์ ์์ ์ํฅ์ ๋ฐ์
โ Low overhead deadlock detection methods(special case)
- single unit resources(Cycle detection)
- single unit request in expedient state(knot detection)
Deadlock Avoidance ve Detection
โ Deadlock Avoidance
- ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ์๊ฐ: ์์ผ๋ก ์ผ์ด๋ ์ผ์ ๊ณ ๋ ค
- Deadlock์ด ๋ฐ์ํ์ง ์์
โ Deadlock Detection
- ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ์๊ฐ: ํ์ฌ ์ํ๋ง ๊ณ ๋ ค
- Deadlock ๋ฐ์ ์ Recovery ๊ณผ์ ์ด ํ์
Deadlock Recovery
โ Deadlock์ ๊ฒ์ถ ํ ํ ํด๊ฒฐํ๋ ๊ณผ์
Deadlock Recovery Methods
- Process termination
- Deadlock ์ํ์ ์๋ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃ ์ํด
- ๊ฐ์ ์ข ๋ฃ ๋ ํ๋ก์ธ์ค๋ ์ดํ ์ฌ์์ ๋จ
- Resource preemption
- Deadlock ์ํ ํด๊ฒฐ ์ํด ์ ์ ํ ์์ ์ ํ
- ์ ์ ๋ ์์์ ๊ฐ์ง๊ณ ์๋ ํ๋ก์ธ์ค์์ ์์์ ๋นผ์์
- ์์์ ๋นผ์๊ธด ํ๋ก์ธ์ค๋ ๊ฐ์ ์ข ๋ฃ ๋จ
Process Termination
โ Deadlock ์ํ์ธ ํ๋ก์ธ์ค ์ค ์ผ๋ถ ์ข ๋ฃ
โ Termination cost model
- ์ข ๋ฃ ์ํฌ deadlock ์ํ์ ํ๋ก์ธ์ค ์ ํ
- Termination cost
- ์ฐ์ ์์ (Process priority)
- ์ข ๋ฅ (Process type)
- ์ด ์ํ ์๊ฐ (Accumulated execution time of the process)
- ๋จ์ ์ํ ์๊ฐ (Remaining time of the process)
- ์ข ๋ฃ ๋น์ฉ (Accounting cost)
- Etc.
โ Process termination
- Lowest-termination cost process first
- Simple
- Low overhead
- ๋ถํ์ํ ํ๋ก์ธ์ค๋ค์ด ์ข ๋ฃ ๋ ๊ฐ๋ฅ์ฑ
- Minimum cost recovery
- ์ต์ ๋น์ฉ์ผ๋ก deadlock ์ํ๋ฅผ ํด์ ํ ์ ์๋ process ์ ํ (๋ชจ๋ ๊ฒฝ์ฐ์ ์ ๊ณ ๋ ค)
- Complex
- High overhead($O(2^k)$)
Resource Preemption
โ deadlock ์ํ ํด๊ฒฐ์ ์ํด ์ ์ ํ ์์ ์ ํ
โ ํด๋น ์์์ ๊ฐ์ง๊ณ ์๋ ํ๋ก์ธ์ค๋ฅผ ์ข
๋ฃ ์ํด
- Deadlock ์ํ๊ฐ ์๋ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ ๋ ์๋ ์์
- ํด๋น ํ๋ก์ธ์ค๋ ์ดํ ์ฌ์์
โ ์ ์ ํ ์์ ์ ํ
- Preeption cost model ํ์
- Minimul cost recovery method ์ฌ์ฉ ($O(r)$)
Checkpoint-restart method
โ ํ๋ก์ธ์ค์ ์ํ ์ค ํน์ ์ง์ (checkpoint)๋ง๋ค context ์ ์ฅ
โ Rollback์ ์ํด ์ฌ์ฉ
- ํ๋ก์ธ์ค ๊ฐ์ ์ข ๋ฃ ํ, ๊ฐ์ฅ ์ต๊ทผ์ checkpotint์ ์ ์ฅ
'โญ Group_Study > Operating System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[5์ฃผ์ฐจ] Memory Management - Fixed Partition Multiprogramming (0) | 2023.01.03 |
---|---|
[5์ฃผ์ฐจ] Memory Management: Backgrounds (0) | 2023.01.02 |
[4์ฃผ์ฐจ] Deadlock: Deadlock Avoidance (1) | 2022.12.27 |
[4์ฃผ์ฐจ] Deadlock: Deadlock Prevention (0) | 2022.12.26 |
[4์ฃผ์ฐจ] Deadlock: Deadlock Model (0) | 2022.12.23 |
๋๊ธ