๋ ๊ฐ ์ด์์ ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ์๋ก ์์์ ์ป์ง ๋ชปํด์ ๋ค์ ์ฒ๋ฆฌ๋ฅผ ํ์ง ๋ชปํ๋ ์ํ
๋ฌดํํ ๋ค์ ์์์ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋ ์ํ๋ฅผ ๋งํ๋ค.
์์คํ ์ ์ผ๋ก ํ์ ๋ ์์์ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉํ๋ ค๊ณ ํ ๋ ๋ฐ์ํ๋ค.
(๋ง์น, ์ธ๋๋ฌด ๋ค๋ฆฌ์ ์ ๋์์ ์๋ก๊ฐ ๋น์ผ์ฃผ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ๋ง ์๋ ๊ฒ๊ณผ ๊ฐ๋ค.)
- ๋ฐ๋๋ฝ์ด ์ผ์ด๋๋ ๊ฒฝ์ฐ
ํ๋ก์ธ์ค1๊ณผ 2๊ฐ ์์1, 2๋ฅผ ๋ชจ๋ ์ป์ด์ผ ํ๋ค๊ณ ๊ฐ์ ํด๋ณด์
t1 : ํ๋ก์ธ์ค1์ด ์์1์ ์ป์ / ํ๋ก์ธ์ค2๊ฐ ์์2๋ฅผ ์ป์
t2 : ํ๋ก์ธ์ค1์ ์์2๋ฅผ ๊ธฐ๋ค๋ฆผ / ํ๋ก์ธ์ค2๋ ์์1์ ๊ธฐ๋ค๋ฆผ
ํ์ฌ ์๋ก ์ํ๋ ์์์ด ์๋๋ฐฉ์ ํ ๋น๋์ด ์์ด์ ๋ ํ๋ก์ธ์ค๋ ๋ฌดํ์ wait ์ํ์ ๋น ์ง
โ ์ด๊ฒ์ด ๋ฐ๋ก DeadLock!!!!!!
(์ฃผ๋ก ๋ฐ์ํ๋ ๊ฒฝ์ฐ)
๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ ํ๊ฒฝ์์ ํ์ ๋ ์์์ ์ป๊ธฐ ์ํด ์๋ก ๊ฒฝ์ํ๋ ์ํฉ ๋ฐ์
ํ ํ๋ก์ธ์ค๊ฐ ์์์ ์์ฒญํ์ ๋, ๋์์ ๊ทธ ์์์ ์ฌ์ฉํ ์ ์๋ ์ํฉ์ด ๋ฐ์ํ ์ ์์. ์ด๋ ํ๋ก์ธ์ค๋ ๋๊ธฐ ์ํ๋ก ๋ค์ด๊ฐ
๋๊ธฐ ์ํ๋ก ๋ค์ด๊ฐ ํ๋ก์ธ์ค๋ค์ด ์คํ ์ํ๋ก ๋ณ๊ฒฝ๋ ์ ์์ ๋ '๊ต์ฐฉ ์ํ' ๋ฐ์
4๊ฐ์ง ๋ชจ๋ ์ฑ๋ฆฝํด์ผ ๋ฐ๋๋ฝ ๋ฐ์
(ํ๋๋ผ๋ ์ฑ๋ฆฝํ์ง ์์ผ๋ฉด ๋ฐ๋๋ฝ ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ)
-
์์์ ํ๋ฒ์ ํ ํ๋ก์ธ์ค๋ง ์ฌ์ฉํ ์ ์์
-
์ต์ํ ํ๋์ ์์์ ์ ์ ํ๊ณ ์์ผ๋ฉด์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋์ด ์ฌ์ฉํ๊ณ ์๋ ์์์ ์ถ๊ฐ๋ก ์ ์ ํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค๊ฐ ์กด์ฌํด์ผ ํจ
-
๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋น๋ ์์์ ์ฌ์ฉ์ด ๋๋ ๋๊น์ง ๊ฐ์ ๋ก ๋นผ์์ ์ ์์
-
ํ๋ก์ธ์ค์ ์งํฉ์์ ์ํ ํํ๋ก ์์์ ๋๊ธฐํ๊ณ ์์ด์ผ ํจ
-
๊ต์ฐฉ ์ํ ๋ฐ์ ์กฐ๊ฑด ์ค ํ๋๋ฅผ ์ ๊ฑฐํ๋ฉด์ ํด๊ฒฐํ๋ค (์์ ๋ญ๋น ์์ฒญ ์ฌํจ)
- ์ํธ๋ฐฐ์ ๋ถ์ : ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ์์ ์ฌ์ฉ
- ์ ์ ๋๊ธฐ ๋ถ์ : ํ๋ก์ธ์ค ์คํ์ ๋ชจ๋ ์์์ ํ ๋น
- ๋น์ ์ ๋ถ์ : ์์ ์ ์ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ์์์ ์๊ตฌํ ๋ ๊ฐ์ง ์์ ๋ฐ๋ฉ
- ์ํ๋๊ธฐ ๋ถ์ : ์์์ ๊ณ ์ ๋ฒํธ ํ ๋น ํ ์์๋๋ก ์์ ์๊ตฌ
-
๊ต์ฐฉ ์ํ ๋ฐ์ ์ ํผํด๋๊ฐ๋ ๋ฐฉ๋ฒ
์ํ์ ์๊ณ ๋ฆฌ์ฆ(Banker's Algorithm)
- ์ํ์์ ๋ชจ๋ ๊ณ ๊ฐ์ ์๊ตฌ๊ฐ ์ถฉ์กฑ๋๋๋ก ํ๊ธ์ ํ ๋นํ๋๋ฐ์ ์ ๋ํจ
- ํ๋ก์ธ์ค๊ฐ ์์์ ์๊ตฌํ ๋, ์์คํ ์ ์์์ ํ ๋นํ ํ์๋ ์์ ์ํ๋ก ๋จ์์๊ฒ ๋๋์ง ์ฌ์ ์ ๊ฒ์ฌํ์ฌ ๊ต์ฐฉ ์ํ ํํผ
- ์์ ์ํ๋ฉด ์์ ํ ๋น, ์๋๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ์์ ํด์ง๊น์ง ๋๊ธฐ
์์ ํ ๋น ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ(Resource-Allocation Graph Algorithm)
- ์์๊ณผ ํ๋ก์ธ์ค์ ๋ํด ์์ฒญ ๊ฐ์ ๊ณผ ํ ๋น ๊ฐ์ ์ ์ ์ฉํ์ฌ ๊ต์ฐฉ ์ํ๋ฅผ ํํผํ๋ ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก์ธ์ค๊ฐ ์์์ ์๊ตฌ ์ ์์ฒญ ๊ฐ์ ์ ํ ๋น ๊ฐ์ ์ผ๋ก ๋ณ๊ฒฝ ํ์ ์ ์ฌ์ดํด์ด ์์ฑ ๋๋์ง ํ์ธํ๋ค
- ์ฌ์ดํด์ด ์์ฑ๋๋ค ํ์ฌ ๋ฌด์กฐ๊ฑด ๊ต์ฐฉ์ํ์ธ ๊ฒ์ ์๋๋ค
- ์์์ ํ๋์ ์ธ์คํด์ค๋ง ์กด์ฌ ์ ๊ต์ฐฉ ์ํ๋ก ํ๋ณํ๋ค
- ์์์ ์ฌ๋ฌ ์ธ์คํด์ค๊ฐ ์กด์ฌ ์ ๊ต์ฐฉ ์ํ ๊ฐ๋ฅ์ฑ์ผ๋ก ํ๋ณํ๋ค
- ์ฌ์ดํด์ ์์ฑํ์ง ์์ผ๋ฉด ์์์ ํ ๋นํ๋ค
๊ต์ฐฉ ์ํ๊ฐ ๋๋๋ก ํ์ฉํ ๋ค์ ํ๋ณต์ํค๋ ๋ฐฉ๋ฒ
-
์์ ํ ๋น ๊ทธ๋ํ๋ฅผ ํตํด ๊ต์ฐฉ ์ํ๋ฅผ ํ์งํจ
์์ ์์ฒญ ์, ํ์ง ์๊ณ ๋ฆฌ์ฆ์ ์คํ์์ผ ๊ทธ์ ๋ํ ์ค๋ฒํค๋ ๋ฐ์ํจ
-
๊ต์ฐฉ ์ํ ์ผ์ผํจ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๊ฑฐ๋, ํ ๋น๋ ์์์ ํด์ ์์ผ ํ๋ณต์ํค๋ ๋ฐฉ๋ฒ
- ๊ต์ฐฉ ์ํ์ ํ๋ก์ธ์ค๋ฅผ ๋ชจ๋ ์ค์ง
- ๊ต์ฐฉ ์ํ๊ฐ ์ ๊ฑฐ๋ ๋๊น์ง ํ๋์ฉ ํ๋ก์ธ์ค ์ค์ง
- ๊ต์ฐฉ ์ํ์ ํ๋ก์ธ์ค๊ฐ ์ ์ ํ๊ณ ์๋ ์์์ ์ ์ ํด ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ํ ๋น (ํด๋น ํ๋ก์ธ์ค ์ผ์์ ์ง ์ํด)
- ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก์ธ์ค๋ ์ํ ํ์ ์ ์ ํ๋ก์ธ์ค ์์ฃผ๋ก ํ๋ก์ธ์ค ์์ ์ ์
-
๋ฐ๋๋ฝ(๊ต์ฐฉ ์ํ)๊ฐ ๋ญ๊ฐ์? ๋ฐ์ ์กฐ๊ฑด์ ๋ํด ๋งํด๋ณด์ธ์.
-
ํํผ ๊ธฐ๋ฒ์ธ ์ํ์ ์๊ณ ๋ฆฌ์ฆ์ด ๋ญ์ง ์ค๋ช ํด๋ณด์ธ์.
-
๊ธฐ์์ํ๋ฅผ ์ค๋ช ํ๋ ์์ฌํ๋ ์ฒ ํ์ ๋ฌธ์ ์ ๋ํด ์ค๋ช ํด๋ณด์ธ์.
๊ต์ฐฉ ์ํ ํด๊ฒฐ์ฑ
- n๋ช ์ด ์์ ์ ์๋ ํ ์ด๋ธ์์ ์ฒ ํ์๋ฅผ n-1๋ช ๋ง ์ํ
- ํ ์ฒ ํ์๊ฐ ์ ๊ฐ๋ฝ ๋๊ฐ๋ฅผ ๋ชจ๋ ์ง์ ์ ์๋ ์ํฉ์์๋ง ์ ๊ฐ๋ฝ ์ง๋๋ก ํ์ฉ
- ๋๊ตฐ๊ฐ๋ ์ผ์ชฝ ์ ๊ฐ๋ฝ์ ๋จผ์ ์ง์ง ์๊ณ ์ค๋ฅธ์ชฝ ์ ๊ฐ๋ฝ์ ๋จผ์ ์ง๋๋ก ํ์ฉ