Computer Science/๐ Operating System
[์ด์์ฒด์ ] ๊ต์ฐฉ ์ํ (Dead Lock, ๋ฐ๋๋ฝ)
J1Yun
2023. 3. 2. 14:47
728x90
๊ต์ฐฉ ์ํ(Dead Lock, ๋ฐ๋๋ฝ)
- ๋ ๊ฐ ์ด์์ ํ๋ก์ธ์ค๋ค์ด ์๋ก๊ฐ ๊ฐ์ง ์์์ ๋ฌดํ์ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๋ฉ์ถ์ด ์๋ ์ํ
- ํ๋ก์ธ์ค A๋ ์์ 1์ ๊ฐ์ง๊ณ ์ ์์ 2๋ฅผ ์๊ตฌ, ํ๋ก์ธ์ค B๋ ์์ 2๋ฅผ ๊ฐ์ง๋ฉด์ ์์ 1์ ์๊ตฌ
๊ต์ฐฉ ์ํ ๋ฐ์ ์กฐ๊ฑด
- ์ํธ ๋ฐฐ์ (Mutual Exclusion)
- ํ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค๋ง์ด ๊ณต์ ์์์ ์ฌ์ฉํ ์ ์์ด์ผ ํจ
- ์ ์ ์ ๋๊ธฐ(Hold and Wait)
- ๋ชจ๋ ํ๋ก์ธ์ค๋ ์ต์ ํ๋์ ์์์ ์ ์ ํ๋ฉด์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ง๊ณ ์๋ ์์์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ด์ผ ํจ
- ๋น์ ์ (Non Preemption)
- ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์์ ์๊ฒ ํ ๋น๋ ์์์ ๋ชจ๋ ์ฌ์ฉํด ๋ฐํํ ๋๊น์ง ๊ฐ์ ๋ก ๋บ์ด์ฌ ์ ์์ด์ผ ํจ
- ํํ ๋๊ธฐ(Circular Wait)
- ๊ณต์ ์์๊ณผ ํด๋น ์์์ ์ฌ์ฉํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค๋ค์ด ์ํ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด์ผ ํจ
- ์์ ์๊ฒ ํ ๋น๋ ์์์ ์ ์ ํ๋ฉด์ ์ or ๋ค ํ๋ก์ธ์ค์ ์์์ ์๊ตฌ
๊ต์ฐฉ ์ํ ํด๊ฒฐ ๋ฐฉ์
- ์๋ฐฉ(Prevention): ๊ต์ฐฉ ์ํ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ๋ฐ์ 4๊ฐ์ง ์กฐ๊ฑด ์ค ํ๋๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ
- ํํผ(Avoidance): ๊ต์ฐฉ ์ํ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์ธ์ ํ๋ฉด์ ์ ์ ํ ํผํด๊ฐ๋ ๋ฐฉ๋ฒ
- ํ์ง(Detection): ๊ต์ฐฉ ์ํ๊ฐ ๋ฐ์ํ๋ ์ง ์ ๊ฒํ๋ฉฐ ๋ฐ๊ฒฌํด๋ด๋ ๋ฐฉ๋ฒ
- ํ๋ณต(Recovery): ๊ต์ฐฉ ์ํ๊ฐ ๋ฐ์ํ ํ๋ก์ธ์ค์ ์์์ ๋์ด๋ ค๋ด๋ ๋ฐฉ๋ฒ
1. ์๋ฐฉ(Prevention)
- ์ํธ ๋ฐฐ์ ์กฐ๊ฑด ๋ถ์
- ๊ณต์ ์์์ ์ฌ๋ฌ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ํ๋ฒ์ ์ฌ์ฉํ ์ ์๋๋ก ํจ
- ์ ์ ์ ๋๊ธฐ ์กฐ๊ฑด ๋ถ์
- ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ธฐ ์ ํ์ํ ๋ชจ๋ ์์์ ํ ๋นํ์ฌ ๋๊ธฐ ๊ณผ์ ์ ์์ ๊ฑฐ๋ ์์์ ์ ์ ํ์ง ์์ ์ํ์์๋ง ์์์ ์๊ตฌํ ์ ์๋๋ก ํจ
- ์์ ๋ญ๋น ์ฆ๊ฐ
- ๋น์ ์ ์กฐ๊ฑด ๋ถ์
- ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ์์์ ์๊ตฌํ ๋ ์ด๋ฏธ ์ ์ ํ๊ณ ์๋ ์์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ์ ํ ์ ์๋๋ก ํจ
- ๊ธฐ์ ์ํ ๋ฐ์ ๊ฐ๋ฅ
- ํํ๋๊ธฐ ์กฐ๊ฑด ๋ถ์
- ์์์ ์ ํ ์์๋ก ๋ถ๋ฅํ์ฌ ๊ณ ์ ๋ฒํธ๋ฅผ ํ ๋นํ๊ณ , ๊ฐ ํ๋ก์ธ์ค๋ ํ์ฌ ์ ์ ํ ์์์ ๊ณ ์ ๋ฒํธ๋ณด๋ค ์์ด๋ ๋ค ์ด๋ ํ์ชฝ ๋ฐฉํฅ์ผ๋ก๋ง ์์์ ์๊ตฌํ๋๋ก ํจ
- ๋ชจ๋ ํ๋ก์ธ์ค์ ์์ ํ ๋น ์์๋ฅผ ๋ถ์ฌ
2. ํํผ(Avoidance)
- ์ํ์ ์๊ณ ๋ฆฌ์ฆ(Banker's Algorithm)
- ํ๋ก์ธ์ค์ ์์ ํ ๋น๋์ ๋ฏธ๋ฆฌ ํ์ ํด ์ต์ํ ํ๋์ ํ๋ก์ธ์ค์๊ฒ ํ ๋นํด์ค ๋งํผ์ ์์์ CPU๊ฐ ๋ณด์ ํ๊ณ ์์ด์ผ ํ๋ค๋ ๊ฐ๋
- ๊ฐ ํ๋ก์ธ์ค์๊ฒ ์์์ ํ ๋นํ์ ๋ ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉฐ ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋ ์ ์๋ ์ํ๋ฅผ ์์ ์ํ, ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ ์ ์๋ ์ํ๋ฅผ ๋ถ์์ ์ํ๋ผ๊ณ ํจ
- ํน์ ํ๋ก์ธ์ค๊ฐ ์์์ ์์ฒญํ์ ๋ ํด๋น ์์ฒญ์ผ๋ก ์์คํ ์ด ๋ถ์์ ์ํ์ ๋น ์ง๋ค๋ฉด ์ด๋ฅผ ๊ฑฐ์ ํ๋ ๋ฐฉ์
- ๊ณ์ํด์ ์์ ์ํ๋ฅผ ์ ์งํด์ผํ๊ธฐ ๋๋ฌธ์ ์์ ์ฌ์ฉ๋ฅ ์ด ๋ฎ์
- ํ๋ก์ธ๋ ์ต๋ ์์ ์๊ตฌ๋์ ๋ฏธ๋ฆฌ ํ์ ํด์ผํ๋ฉฐ ์์์ ๋ฐ๋์ ์ํ์์ผ์ผ ํ๋ ๋ถ๋ด
- ์์์ ์๊ณผ ์ฌ์ฉ์(ํ๋ก์ธ์ค) ์๊ฐ ์ผ์ ํด์ผ ํจ
3. ํ์ง(Detection)
- ๊ต์ฐฉ ์ํ ๋ฐ๊ฒฌ ์๊ณ ๋ฆฌ์ฆ
- Allocation, Request, Available ๋ฑ์ผ๋ก ์์คํ ์ ๋ฐ๋๋ฝ์ด ๋ฐ์ํ๋์ง ์ฌ๋ถ๋ฅผ ํ์
- ์ํ์ ์๊ณ ๋ฆฌ์ฆ์์ ํ๋ ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ ํ์ฌ ์์คํ ์ ์์ ํ ๋น ์ํ๋ฅผ ๊ฐ์ง๊ณ ํ์
- ์์ ํ ๋น ๊ทธ๋ํ ์ด์ฉ
4. ํ๋ณต(Recovery)
- ํ๋ก์ธ์ค ์ข
๋ฃ
- ๊ต์ฐฉ ์ํ์ ์๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ์ข ๋ฃ
- ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ์ค๋จ์ํค๋ ๋ฐฉ๋ฒ๊ณผ, ํ๋์ฉ ์ค๋จ์ํค๋ฉฐ ํ๋ณต๋๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ด ์์
- ์์ ์ ์
- ๊ต์ฐฉ์ํ์ ์๋ ํ๋ก์ธ์ค๋ก๋ถํฐ ์ ์ ์์์ ์ ์ (ํ์)ํ์ฌ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ํ ๋น
728x90