DeadLock
๊ต์ฐฉ์ํ๊ฐ ๋ฌด์์ธ๊ฐ์?
๊ต์ฐฉ์ํ(DeadLock) ๋, ์์คํ ์์์ ๋ํ ์๊ตฌ๊ฐ ๋ค์ํจ ์ํ์ด๋ค.
์ฆ, ๋ ์ด์์ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ์ ํ๊ณ ์๋ ์์์ ์๋ก ๊ธฐ๋ค๋ฆด ๋ ๋ฌดํ ๋๊ธฐ์ ๋น ์ง๋ ์ํฉ์ ๋งํ๋ค.

์๋ก ์ํ๋ ์์์ด ์๋๋ฐฉ์ ํ ๋น๋์ด ์์ด์ ๋ ํ๋ก์ธ์ค๋ ๋ฌดํ์
wait์ํ์ ๋น ์ง๋ค.์ด๋ฐ ๊ฒ์ DeadLock์ด๋ผ ํ๋ค.
๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ๊ธฐ ์ํด์๋ ์ด๋ค ์กฐ๊ฑด์ด ์์ด์ผ ํ๋์?
์ํธ ๋ฐฐ์ (Mutual Exclusion)
์์์ ํ ๋ฒ์ ํ ํ๋ก์ธ์ค๋ง ์ฌ์ฉํ ์ ์๋ค.
์ฌ์ฉ ์ค์ธ ์์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉํ๋ ค๋ฉด ์์ฒญํ ์์์ด ํด์ ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค.
์ ์ ๋๊ธฐ(Hold and Wait)
์์์ ์ต์ํ ํ๋ ๋ณด์ ํ๊ณ , ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ ์์์ ์ ์ ํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค๊ฐ ์กด์ฌํด์ผ ํ๋ค.
๋น์ ์ (No Preemption)
๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋ ์์์ ์ฌ์ฉ์ด ๋๋ ๋๊น์ง ๊ฐ์ ๋ก ๋นผ์์ ์ ์๋ค.
์ํ ๋๊ธฐ(Circular Wait)
๋๊ธฐ ํ๋ก์ธ์ค์ ์งํฉ์ด ์ํ ํํ๋ก ์์์ ๋๊ธฐํ๊ณ ์์ด์ผ ํ๋ค.
๊ต์ฐฉ์ํ์ ํด๊ฒฐ๋ฒ์ ๋ฌด์์ธ๊ฐ์?
๋ฐ๋๋ฝ์ด ๋ฐ์ํ์ง ์๋๋ก ์๋ฐฉ(
Prevention)ํ๊ธฐ๋ฐ๋๋ฝ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์ธ์ ํ๋ฉด์๋ ์ ์ ํ๊ฒ ํํผ(
Avoidance)ํ๊ธฐ๋ฐ๋๋ฝ ๋ฐ์์ ํ์ฉํ์ง๋ง ๋ฐ๋๋ฝ์ ํ์ง(
Detection)ํ์ฌ, ๋ฐ๋๋ฝ์์ ํ๋ณตํ๊ธฐ
์๋ฐฉํ๊ธฐ
๊ต์ฐฉ์ํ๊ฐ ์ ์ด์ ์ผ์ด๋์ง ์๋๋ก ๋ฐฉ์งํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ต์ฐฉ์ํ์ ๋ฐ์์กฐ๊ฑด 4๊ฐ์ง ์ค ํ๋๋ฅผ ๋ถ์ ํจ์ผ๋ก์จ ๊ต์ฐฉ์ํ๋ฅผ ์๋ฐฉํ๋ค.
์์ ๋ญ๋น๊ฐ ๋งค์ฐ ์ฌํ๋ค.
์ํธ๋ฐฐ์ ๋ถ์ : ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ์์ ์ฌ์ฉ
์ ์ ๋๊ธฐ ๋ถ์ : ํ๋ก์ธ์ค ์คํ ์ ๋ชจ๋ ์์์ ํ ๋น
๋น์ ์ ๋ถ์ : ์์ ์ ์ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ์์์ ์๊ตฌํ ๋ ๊ฐ์ง ์์ ๋ฐ๋ฉ
์ํ๋๊ธฐ ๋ถ์ : ์์์ ๊ณ ์ ๋ฒํธ ํ ๋น ํ ์์๋๋ก ์์ ์๊ตฌ
ํํผํ๊ธฐ
๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ์์ ํ ๋น์ ํ์ง ์๊ณ ์์ ํ ์ํ์์๋ง ์์ ์์ฒญ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๊ต์ฐฉ์ํ ํํผ๋ฅผ ํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ ์ด ํ์ํ๋ค.
ํ๋ก์ธ์ค ์ ๊ณ ์
์์์ ์ข ๋ฅ์ ์ ๊ณ ์
ํ๋ก์ธ์ค๊ฐ ์๊ตฌํ๋ ์ต๋ ์์์ ์๋ฅผ ์์์ผ ํจ
ํ๋ก์ธ์ค๋ ์์ ์ฌ์ฉ ํ ๋ฐ๋์ ๋ฐ๋ฉ
Safe statesafe sequence(๊ต์ฐฉ์ํ๋ฅผ ๋ฐ์์ํค์ง ์๊ณ ์์์ ํ ๋นํ๋ ์์)๊ฐ ์กด์ฌํ๋ฉฐ, ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ์ ์์ ์ผ๋ก ์ข ๋ฃ๋ ์ ์๋ ์ํ๋ฅผ ์๋ฏธํ๋ค.
Unsafe state๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ํ๋ฅผ ์๋ฏธํ๋ค.
๊ต์ฐฉ์ํ๋ฅผ ํํผํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ
์ํ์ ์๊ณ ๋ฆฌ์ฆ
์ํ์ด ์ต์ํ ํ ๋ช ์๊ฒ ๋์ถํด์ค ์ ์๋ ๊ธ์ก์ ํญ์ ๋ณด์ ํ๊ณ ์์ด์ผ ํ๋ค๋ ๊ฐ๋ ์์ ๋์จ ์ด๋ฆ์ด๋ค.
ํ๋ก์ธ์ค๊ฐ ์์์ ์๊ตฌํ ๋, ์์คํ ์ ์์์ ํ ๋นํ ํ์๋ ์์ ์ํ๋ก ๋จ์์๊ฒ ๋๋์ง ์ฌ์ ์ ๊ฒ์ฌํ์ฌ ๊ต์ฐฉ ์ํ๋ฅผ ํํผํ๋ค.
์์ ์ํ๋ฉด ์์์ ํ ๋นํ๊ณ , ์๋๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ์์์ ํด์งํ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ๋ค.
์์ ํ ๋น ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ
๊ต์ฐฉ์ํ ๋ฐ๊ฒฌ์ ์ํด ํ๋ก์ธ์ค์ ์์๊ณผ์ ๊ด๊ณ์ ํ ๋น ์ํ๋ฅผ ํํํ๋ ๊ทธ๋ํ
ํ์งํ๊ณ ํ๋ณตํ๊ธฐ
๋จผ์ ์์คํ ์ด ๊ต์ฐฉ์ํ ์๋ฐฉ์ด๋ ํํผ๋ฒ์ ์ฌ์ฉํ์ง ์์์ ๋, ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ ์ฌ๊ธฐ์์ ํ๋ณตํ๊ธฐ ์ํด ๊ต์ฐฉ์ํ๋ฅผ ํ์งํ๊ณ , ํ๋ณตํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค.
ํ์ง
๋ง ๊ทธ๋๋ก ์์คํ ์ ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ๋์ง์ ๋ํ ์ฌ๋ถ๋ฅผ ํ์ํ๊ณ ํ๋ณต ๊ธฐ๋ฒ ์๊ณ ๋ฆฌ์ฆ์ ํ์ฉํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
ํ์ง ๊ธฐ๋ฒ์ ์ง์์ ์ผ๋ก ๊ต์ฐฉ์ํ๋ฅผ ํ์ธํ๋ ์์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ์ค๋ฒํค๋(์ฑ๋ฅ ์ ํ)๊ฐ ๋ฐ์ํ๊ฒ ๋๋ค.
ํ๋ณต
๊ต์ฐฉ์ํ๋ฅผ ํด๊ฒฐํ๋ ๊ธฐ๋ฒ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ๋๋๋ค.
์ฌ์ฉ์ ์ฒ๋ฆฌ : ๊ต์ฐฉ์ํ๊ฐ ์๋ ํ๋ก์ธ์ค ์ค ํ๋์ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉ์๊ฐ ๊ฐ์ ์ข ๋ฃ
์์คํ ์ฒ๋ฆฌ
ํ๋ก์ธ์ค ์ค์ง
๊ต์ฐฉ์ํ์ ์ํด์๋ ๋ชจ๋ ํ๋ก์ธ์ค๋ฅผ ์ค์ง
๊ต์ฐฉ์ํ๊ฐ ํด๊ฒฐ๋ ๋๊น์ง ํ ํ๋ก์ธ์ค์ฉ ์ค์ง
์์ ์ ์
ํ๋ก์ธ์ค๋ค๋ก๋ถํฐ ์์์ ๋นผ์์ ๊ต์ฐฉ์ํ๊ฐ ํด๊ฒฐ๋ ๋๊น์ง ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์๊ฒ ์์์ ํ ๋น
์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก์ธ์ค๋ ์ํ ํ์๊ฐ ์ ์ ํ๋ก์ธ์ค ์์ฃผ๋ก ํ๋ก์ธ์ค ์์ ์ ์
์ฐธ๊ณ
Last updated