๋ฐ๋๋ฝ (DeadLock)
โข
ํ๋ก์ธ์ค๊ฐ ์์์ ์ป์ง ๋ชปํด์ ๋ค์ ์ฒ๋ฆฌ๋ฅผ ํ์ง ๋ชปํ๋ ์ํ, ๊ต์ฐฉ์ํ ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค
โข
ํ๋ก์ธ์ค๋ ์์์ ์์ฒญํ๊ณ ์ป์ง ๋ชปํ๋ฉด ๋๊ธฐ์ํ(Waiting)์ผ๋ก ๋ค์ด๊ฐ๋๋ฐ ์์์ ์ป์ง ๋ชปํด ์์ํ waiting ์ํ๋ก ๋๊ธฐํ๊ณ ์คํํ์ง ๋ชปํ ๋ DeadLock์ด ๋ฐ์ํ๋ค๊ณ ํ๋ค.
โข
์์คํ
์ ์ผ๋ก ํ์ ๋ ์์์ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ๋ฐ์ํ๋ค.
๋ฐ๋๋ฝ์ ๋ฐ์์กฐ๊ฑด
์๋์ 4๊ฐ์ง ์กฐ๊ฑด์ด ๋ชจ๋ ์ฑ๋ฆฝํด์ผ ๋ฐ๋๋ฝ์ด ๋ฐ์ํ๋ค. (ํ๋๋ผ๋ ์ฑ๋ฆฝํ์ง ์์ผ๋ฉด ๋ฐ๋๋ฝ X)
์ํธ ๋ฐฐ์ (Mutual Exclusion)
โข
์์์ ํ๋ฒ์ ํ ํ๋ก์ธ์ค๋ง ์ฌ์ฉํ ์ ์๋ค.
์ ์ ๋๊ธฐ(Hold & wait)
โข
์ต์ํ ํ๋์ ์์์ ์ ์ ํ๊ณ ์์ผ๋ฉด์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋์ด ์ฌ์ฉํ๊ณ ์๋ ์์์ ์ถ๊ฐ๋ก ์ ์ ํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค๊ฐ ์กด์ฌํด์ผ ํจ
๋น์ ์ (No preemption)
โข
๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋ ์์์ ์ฌ์ฉ์ด ๋๋ ๋๊น์ง ๊ฐ์ ๋ก ๋นผ์์ ์ ์๋ค.
์ํ ๋๊ธฐ (Cricular wait)
โข
ํ๋ก์ธ์ค์ ์งํฉ์์ ์ํ ํํ๋ก ์์์ ๋๊ธฐํ๊ณ ์์ด์ผ ํ๋ค.
๋ฐ๋๋ฝ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
โข
๋ฐ๋๋ฝ์ด ๋ฐ์ํ์ง ์๋๋ก ์๋ฐฉ
โข
๋ฐ๋๋ฝ์ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์ธ์ ํ๋ฉด์๋ ์ ์ ํ๊ฒ ํํผ
โข
๋ฐ๋๋ฝ ๋ฐ์์ ํ์ฉํ์ง๋ง ๋ฐ๋๋ฝ์ ํ์งํ์ฌ ๋ฐ๋๋ฝ์์ ํ๋ณต
๋ฐ๋๋ฝ ์๋ฐฉ (Prevention)
๋ฐ๋๋ฝ์ ๋ฐ์ ์กฐ๊ฑด ์ค ํ๋๋ฅผ ์ ๊ฑฐํ๋ฉด์ ํด๊ฒฐํ๋ค.
์ด๋ฌํ ์กฐ๊ฑด์ ๋ฐฉ์งํด์ ๋ฐ๋๋ฝ์ ์๋ฐฉํ๋ ๋ฐฉ๋ฒ์ ์์คํ
์ ์ฒ๋ฆฌ๋์ด๋ ํจ์จ์ฑ์ ๋จ์ดํธ๋ฆฌ๋ ๋จ์ ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
์ํธ ๋ฐฐ์ ๋ถ์
โข
ํ ๋ฒ์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ์์์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค.
โข
์ถํ ๋๊ธฐํ ๊ด๋ จ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์ ์ ๋๊ธฐ ๋ถ์
โข
ํ๋ก์ธ์ค ์คํ์ ํ์ํ ๋ชจ๋ ์์์ ํ๊บผ๋ฒ์ ์๊ตฌํ๊ณ , ํ์ฉํ ๋๊น์ง ์์
์ ๋ณด๋ฅํด์, ๋์ค์ ๋๋ค๋ฅธ ์์์ ์ ์ ํ๊ธฐ ์ํ ๋๊ธฐ ์กฐ๊ฑด์ ์ฑ๋ฆฝํ์ง ์๋๋ก ํ๋ค.
๋น์ ์ ๋ถ์
โข
์ด๋ฏธ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ํ ๋น๋ ์์์ด ์ ์ ๊ถ์ด ์๋ค๊ณ ๊ฐ์ ํ ๋, ๋์ ์ฐ์ ์์์ ํ๋ก์ธ์ค๊ฐ ํด๋น ์์์ ์ ์ ํ ์ ์๋๋ก ํฉ๋๋ค.
์ํ ๋๊ธฐ ๋ถ์
โข
์์์ ๊ณ ์ ๋ฒํธ๋ฅผ ํ ๋นํ ํ ์์๋๋ก ์ผ์ ํ ๋ฐฉํฅ์ผ๋ก๋ง ์์์ ์๊ตฌํ์ฌ ์ํ ํํ๋ก ๋๊ธฐํ์ง ์๋๋ก ํฉ๋๋ค.
๋ฐ๋๋ฝ ํํผ (Avoidance)
ํํผ ์๊ณ ๋ฆฌ์ฆ์ย ์์์ ํ ๋นํ ํ์๋ ์์คํ
์ด ํญ์ Safe state์ ์์ ์ ์๋๋ก ํ ๋น์ ํ์ฉํ์๋ ๊ฒ์ด ๊ธฐ๋ณธ ํน์ง์
๋๋ค.
์์ ์ํ (Safe State)
โข
์์คํ
์ ํ๋ก์ธ์ค๋ค์ด ์์ฒญํ๋ ๋ชจ๋ ์์์, ๋ฐ๋๋ฝ์ ๋ฐ์์ํค์ง ์์ผ๋ฉด์๋ ์ฐจ๋ก๋ก ๋ชจ๋์๊ฒ ํ ๋นํด ์ค ์ ์๋ ์ํ
๋ถ์์ ์ํ
โข
๋ฐ๋๋ฝ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ํฉ์ด๋ฉฐ,ย ๊ต์ฐฉ ์ํ(๋ฐ๋๋ฝ)๋ ๋ถ์์ ์ํ์ผ ๋ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ถ์์ ์ํ๊ฐ ๊ต์ฐฉ ์ํ๋ณด๋ค ์ข ๋ ํฐ ์งํฉ์
๋๋ค.(์ฆ, ๊ต์ฐฉ ์ํ๊ฐ ๋ถ์์ ์ํ์ ๋ถ๋ถ์งํฉ)
์์ ์์ (Safe Sequence)
โข
ํน์ ํ ์์๋ก ํ๋ก์ธ์ค๋ค์๊ฒ ์์์ ํ ๋น, ์คํ ๋ฐ ์ข
๋ฃ ๋ฑ์ ์์
์ ํ ๋ย ๋ฐ๋๋ฝ์ด ๋ฐ์ํ์ง ์๋ ์์
๋ฐ๋๋ฝ ํํผ - ์ํ์ ์๊ณ ๋ฆฌ์ฆ (Banker's Algorithm)
์ด๋ค ์์์ ํ ๋น์ ํ์ฉํ๋์ง์ ๊ดํ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ ์, ์ฌ์ ์ ๊ฒฐ์ ๋ ๋ชจ๋ ์์๋ค์ ์ต๋ ๊ฐ๋ฅํ ํ ๋น๋์ ๊ฐ์ง๊ณ ์๋ฎฌ๋ ์ด์
ํด์ Safe state์ ๋ค ์ ์๋์ง ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํฉ๋๋ค.
์์ ์ํ๋ฉด ์์์ ํ ๋นํ๊ณ , ์๋๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ์์ ํด์ง๊น์ง ๋๊ธฐํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ํ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ฒฝ์ฐ, ์ด์ฒ๋ผ ๋ฏธ๋ฆฌ ์ต๋ ์์ ์๊ตฌ๋์ ์์์ผ ํ๊ณ , ํ ๋นํ ์ ์๋ ์์ ์๊ฐ ์ผ์ ํด์ผ ํ๋ ๋ฑ ์ฌ์ฉ์ ์์ด ์ ์ฝ์กฐ๊ฑด์ด ๋ง๊ณ , ๊ทธ์ ๋ฐ๋ฅธ ์์ ์ด์ฉ๋ ํ๋ฝ ๋ฑ ๋จ์ ๋ ์กด์ฌํฉ๋๋ค.
๋ฐ๋๋ฝ ํ์ง & ํ๋ณต
ํ์ง(Detection)
์์ ํ ๋น ๊ทธ๋ํ๋ฅผ ํตํด ๊ต์ฐฉ ์ํ๋ฅผ ํ์งํจ
์์ ์์ฒญ ์, ํ์ง ์๊ณ ๋ฆฌ์ฆ์ ์คํ์์ผ ๊ทธ์ ๋ํ ์ค๋ฒํค๋ ๋ฐ์ํจ
ํ๋ณต(Recovery)
๊ต์ฐฉ ์ํ ์ผ์ผํจ ํ๋ก์ธ์ค๋ฅผ ์ข
๋ฃํ๊ฑฐ๋, ํ ๋น๋ ์์์ ํด์ ์์ผ ํ๋ณต์ํค๋ ๋ฐฉ๋ฒ
ํ๋ก์ธ์ค ์ข
๋ฃ ๋ฐฉ๋ฒ
โข
๊ต์ฐฉ ์ํ์ ํ๋ก์ธ์ค๋ฅผ ๋ชจ๋ ์ค์ง (์ ์ ๋์์ค์ด๋ ํ๋ก์ธ์ค๋ค๋ ์ค๋จ๋๋ ๋ถ์์ฉ)
โข
๊ต์ฐฉ ์ํ๊ฐ ์ ๊ฑฐ๋ ๋๊น์ง ํ๋์ฉ ํ๋ก์ธ์ค ์ค์ง (๋งค๋ฒ ํ์ง ์๊ณ ๋ฆฌ์ฆ์ ํธ์ถ ๋ฐ ์ํํด์ผ ํ๋ฏ๋ก ์ค๋ฒํค๋ ๋ฐ์)
์์ ์ ์ ๋ฐฉ๋ฒ
โข
๊ต์ฐฉ ์ํ์ ํ๋ก์ธ์ค๊ฐ ์ ์ ํ๊ณ ์๋ ์์์ ์ ์ ํด ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ํ ๋น (ํด๋น ํ๋ก์ธ์ค ์ผ์์ ์ง ์ํด)
โข
์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก์ธ์ค๋ ์ํ ํ์ ์ ์ ํ๋ก์ธ์ค ์์ฃผ๋ก ํ๋ก์ธ์ค ์์ ์ ์