[ ๋ฉด์ ์ ์ํ cs ์ ๊ณต์ง์ ๋ ธํธ ์ ๋ฆฌ ] 3.์ด์์ฒด์ : ํ๋ก์ธ์ค์ ์ค๋ ๋ 2
3.3 ํ๋ก์ธ์ค์ ์ค๋ ๋
3.3.5 ๋ฉํฐํ๋ก์ธ์ฑ
3.3.6 ์ค๋ ๋์ ๋ฉํฐ์ค๋ ๋ฉ
3.3.7 ๊ณต์ ์์๊ณผ ์๊ณ ์์ญ
3.3.8 ๊ต์ฐฉ ์ํ
3.3 ํ๋ก์ธ์ค์ ์ค๋ ๋
3.3.5 ๋ฉํฐํ๋ก์ธ์ฑ
๋ฉํฐํ๋ก์ธ์ฑ์ ๋ฉํฐํ๋ก์ธ์ค๋ฅผ ํตํด ๋์์ ๋ ๊ฐ์ง ์ด์์ ์ผ์ ์ํํ ์ ์๋ ๊ฒ์ ๋งํ๋ฉฐ, ์ด๋ฅผ ํตํด ํ๋ ์ด์์ ์ผ์ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ ์ ์๊ณ ํน์ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ํ๋ก์ธ์ค ์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํด๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์ด์ฉํด์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฏ๋ก ์ ๋ขฐ์ฑ์ด ๋์ ๊ฐ์ ์ด ์๋ค.
- ์น ๋ธ๋ผ์ฐ์
- ๋ธ๋ผ์ฐ์ ํ๋ก์ธ์ค : ์ฃผ์ ํ์์ค, ๋ถ๋งํฌ ๋ง๋, ๋ค๋ก ๊ฐ๊ธฐ ๋ฒํผ, ์์ผ๋ก ๊ฐ๊ธฐ ๋ฒํผ ๋ฑ์ ๋ด๋นํ๋ฉฐ ๋คํธ์ํฌ ์์ฒญ์ด๋ ํ์ผ ์ ๊ทผ ๊ฐ์ ๊ถํ์ ๋ด๋นํ๋ค.
- ๋ ๋๋ฌ ํ๋ก์ธ์ค : ์น์ฌ์ดํธ๊ฐ ๋ณด์ด๋ ๋ชจ๋ ๊ฒ์ ์ ์ดํ๋ค.
- ํ๋ฌ๊ทธ์ธ ํ๋ก์ธ์ค : ์น ์ฌ์ดํธ์์ ์ฌ์ฉํ๋ ํ๋ฌ๊ทธ์ธ์ ์ ์ดํ๋ค.
- GPU ํ๋ก์ธ์ค : GPU๋ฅผ ์ด์ฉํด์ ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๋ถ๋ถ์ ์ ์ดํ๋ค.
- IPC(Inter Process Communication, ํ๋ก์ธ์ค๊ฐ ํต์ )
ํ๋ก์ธ์ค๋ค ์ฌ์ด์ ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ์ ๋๋ ๊ทธ์ ๋ํ ๋ฐฉ๋ฒ์ด๋ ๊ฒฝ๋ก๋ฅผ ๋ปํ๋ค.
ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ฅผ ์๋ก ๋ค ์ ์๋๋ฐ ํด๋ผ์ด์ธํธ๋ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ์๋ฒ๋ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์๋ตํ๋ ๊ฒ๋ IPC์ ์์ด๋ค.
IPC์ ์ข ๋ฅ๋ ์๋์ ๊ฐ์ผ๋ฉฐ, ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ ํ ๊ณต์ ๋๋ ์ค๋ ๋๋ณด๋ค๋ ์๋๊ฐ ๋จ์ด์ง๋ค.
- ๊ณต์ ๋ฉ๋ชจ๋ฆฌ(shared memory)
์ฌ๋ฌ ํ๋ก์ธ์ค์ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ๋ํ ์ ๊ทผ ๊ถํ์ด ๋ถ์ฌ๋์ด ํ๋ก์ธ์ค๊ฐ ์๋ก ํต์ ํ ์ ์๋๋ก ๊ณต์ ๋ฒํผ๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋งํ๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก๋ ๊ฐ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ๊ทผํ ์ ์์ง๋ง ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํตํด ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ ์ ์๋ค. IPC ๋ฐฉ์ ์ค ์ด๋ ํ ๋งค๊ฐ์ฒด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ด ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ฒด๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ ๋ฐ์ดํฐ๋ณต์ฌ์ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ์ง ์์ ๊ฐ์ฅ ๋น ๋ฅด๋ฉฐ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋๊ธฐํ๊ฐ ํ์ํ๋ค.
(ํ๋์จ์ด ๊ด์ ์์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ CPU๊ฐ ์ ๊ทผํ ์ ์๋ ํฐ ๋๋ค ์ ๊ทผ ๋ฉ๋ชจ๋ฆฌ์ธ RAM์ ๊ฐ๋ฆฌํค๊ธฐ๋ ํ๋ค.) - ํ์ผ
๋์คํฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ ๋๋ ํ์ผ ์๋ฒ์์ ์ ๊ณตํ ๋ฐ์ดํฐ๋ฅผ ๋งํ๋ฉฐ, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ธ์ค ๊ฐ ํต์ ์ ํ๋ค. - ์์ผ
๋์ผํ ์ปดํจํฐ์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ๋คํธ์ํฌ์ ๋ค๋ฅธ ์ปดํจํฐ๋ก ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ ์กํ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํ๋ฉฐ TCP์ UDP๊ฐ ์๋ค. - ์ต๋ช
ํ์ดํ(unamed pipe)
ํ๋ก์ธ์ค ๊ฐ์ FIFO๋ฐฉ์์ผ๋ก ์ฝํ๋ ์์ ๊ณต๊ฐ์ธ ํ์ดํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ, ๋จ๋ฐฉํฅ ๋ฐฉ์์ ์ฝ๊ธฐ ์ ์ฉ, ์ฐ๊ธฐ ์ ์ฉ ํ์ดํ๋ฅผ ๋ง๋ค์ด์ ์๋ํ๋ ๋ฐฉ์์ ๋งํ๋ค. ์ด๋ ๋ถ๋ชจ-์์ ํ๋ก์ธ์ค ๊ฐ์๋ง ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ค๋ฅธ ๋คํธ์ํฌ์์์๋ ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ๋ค. - ๋ช
๋ช
๋ ํ์ดํ(named pipe)
ํ์ดํ ์๋ฒ์ ํ๋ ์ด์์ ํ์ดํ ํด๋ผ์ด์ธํธ ๊ฐ์ ํต์ ์ ์ํ ๋ช ๋ช ๋ ๋จ๋ฐฉํฅ ๋๋ ์ด์ค ํ์ดํ๋ฅผ ๋งํ๋ค. ํด๋ผ์ด์ธํธ/์๋ฒ ํต์ ์ ์ํ ๋ณ๋์ ํ์ดํ๋ฅผ ์ ๊ณตํ๋ฉฐ ์ฌ๋ฌ ํ์ดํ๋ฅผ ๋์์ ์ฌ์ฉํ ์ ์๋ค. ์ปดํจํฐ์ ํ๋ก์ธ์ค๋ผ๋ฆฌ ๋๋ ๋ค๋ฅธ ๋คํธ์ํฌ์์ ์ปดํจํฐ์๋ ํต์ ํ ์ ์๋ค. ๋ณดํต์ ์๋ฒ์ฉ ํ์ดํ์ ํด๋ผ์ด์ธํธ์ฉ ํ์ดํ๋ก ๊ตฌ๋ถํด์ ์๋ํ๋ฉฐ ํ๋์ ์ธ์คํด์ค๋ฅผ ์ด๊ฑฐ๋ ์ฌ๋ฌ ๊ฐ์ ์ธ์คํด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํต์ ํ๋ค. - ๋ฉ์์ง ํ(queue)
๋ฉ์์ง๋ฅผ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ํํ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ด๋ ์ปค๋์ ์ ์ญ๋ณ์ ํํ ๋ฑ ์ปค๋์์ ์ ์ญ์ ์ผ๋ก ๊ด๋ฆฌ๋๋ฉฐ ๋ค๋ฅธ IPC๋ฐฉ์์ ๋นํด์ ์ฌ์ฉ ๋ฐฉ๋ฒ์ด ๋งค์ฐ ์ง๊ด์ ์ด๊ณ ๊ฐ๋จํ๋ฉฐ, ๋ค๋ฅธ ์ฝ๋์ ์์ ์์ด ๋จ์ง ๋ช ์ค์ ์ฝ๋๋ฅผ ์ถ๊ฐ์์ผ ๊ฐ๋จํ๊ฒ ๋ฉ์์ง ํ์ ์ ๊ทผํ ์ ์๋ ์ฅ์ ์ด ์๋ค.
๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํตํด IPC๋ฅผ ๊ตฌํํ ๋ ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ ๋น๋๊ฐ ๋์ผ๋ฉด ๋๊ธฐํ ๋๋ฌธ์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฒ์ด ๋งค์ฐ ๋ณต์กํด์ง๋๋ฐ, ์ด๋ ๋์์ผ๋ก ๋ฉ์์ง ํ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
3.3.6 ์ค๋ ๋์ ๋ฉํฐ์ค๋ ๋ฉ
- ์ค๋ ๋
ํ๋ก์ธ์ค์ ์คํ ๊ฐ๋ฅํ ๊ฐ์ฅ ์์ ๋จ์๋ฅผ ๋งํ๋ฉฐ, ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ๊ฐ์ง ์ ์๋ค.
์ฝ๋, ๋ฐ์ดํฐ, ์คํ, ํ์ ๊ฐ๊ฐ ์์ฑํ๋ ํ๋ก์ธ์ค์๋ ๋ฌ๋ฆฌ ์ค๋ ๋๋ ์ฝ๋, ๋ฐ์ดํฐ, ํ์ ์ค๋ ๋๋ผ๋ฆฌ ์๋ก ๊ณต์ ํ๋ฉฐ ๊ทธ ์ธ์ ์์ญ์ ๊ฐ์ ์์ฑ๋๋ค. - ๋ฉํฐ์ค๋ ๋ฉ
๋ฉํฐ์ค๋ ๋ฉ์ ํ๋ก์ธ์ค ๋ด ์์ ์ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋, ๋ฉํฐ์ค๋ ๋๋ก ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฒ์ด๋ฉฐ ์ค๋ ๋๋ผ๋ฆฌ ์๋ก ์์์ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ํจ์จ์ฑ์ด ๋๋ค.
์๋ฅผ ๋ค์ด ์น ์์ฒญ์ ์ฒ๋ฆฌํ ๋ ์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ๋์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์น ์๋ฒ์ ๊ฒฝ์ฐ ํจ์ฌ ์ ์ ๋ฆฌ์์ค๋ฅผ ์๋นํ๋ฉฐ, ํ ์ค๋ ๋๊ฐ ์ค๋จ(blocked)๋์ด๋ ๋ค๋ฅธ ์ค๋ ๋๋ ์คํ(running) ์ํ์ผ ์ ์๊ธฐ ๋๋ฌธ์ ์ค๋จ๋์ง ์์ ๋น ๋ฅธ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ฉฐ ๋์์ฑ(์๋ก ๋ ๋ฆฝ์ ์ธ ์์ ๋ค์ ์์ ๋จ์๋ก ๋๋๊ณ ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ฌ์ฃผ๋ ๊ฒ)์๋ ํฐ ์ฅ์ ์ด ์๋ค. ํ์ง๋ง ํ ์ค๋ ๋์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๋ค๋ฅธ ์ค๋ ๋์๋ ์ํฅ์ ๋ผ์ณ ์ค๋ ๋๋ก ์ด๋ฃจ์ด์ ธ ์๋ ํ๋ก์ธ์ค์ ์ํฅ์ ์ค ์ ์๋ ๋จ์ ์ด ์๋ค.
๋ฉํฐ์ค๋ ๋์ ์๋ก๋ ์น ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ฌ ํ๋ก์ธ์ค๋ฅผ ์๋ก ๋ค ์ ์์ผ๋ฉฐ, ์ด ํ๋ก์ธ์ค ๋ด์๋ ๋ฉ์ธ ์ค๋ ๋, ์์ปค ์ค๋ ๋, ์ปดํฌ์งํฐ ์ค๋ ๋, ๋ ์คํฐ ์ค๋ ๋๊ฐ ์กด์ฌํ๋ค.
3.3.7 ๊ณต์ ์์๊ณผ ์๊ณ ์์ญ
- ๊ณต์ ์์(shared resoursce)
์์คํ ์์์ ๊ฐ ํ๋ก์ธ์ค, ์ค๋ ๋๊ฐ ํจ๊ป ์ ๊ทผํ ์ ์๋ ๋ชจ๋ํฐ, ํ๋ฆฐํฐ, ๋ฉ๋ชจ๋ฆฌ, ํ์ผ, ๋ฐ์ดํฐ ๋ฑ์ ์์์ด๋ ๋ณ์ ๋ฑ์ ์๋ฏธํ๋ค.
์ด ๊ณต์ ์์์ ๋ ๊ฐ ์ด์์ ํ๋ก์ธ์ค๊ฐ ๋์์ ์ฝ๊ฑฐ๋ ์ฐ๋ ์ํฉ์ ๊ฒฝ์์ํ(race condition)์ด๋ผ๊ณ ํ๋๋ฐ, ๋์์ ์ ๊ทผ์ ์๋ํ ๋ ์ ๊ทผ์ ํ์ด๋ฐ์ด๋ ์์ ๋ฑ์ด ๊ฒฐ๊ด๊ฐ์ ์ํฅ์ ์ค ์ ์๋ ์ํ์ธ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด ์ข ์ ์ฝ์ธ์ 100๊ฐ์ธ๋ฐ ํ๋ก์ธ์ค A์ ํ๋ก์ธ์ค B๊ฐ ๋์์ ์ ๊ทผํ์ฌ ํ์ด๋ฐ์ด ์๋ก ๊ผฌ์ฌ ์ ์ ๊ฒฐ๊ด๊ด์ 300์ธ๋ฐ 200์ด ์ถ๋ ฅ๋๋ค.
- ์๊ณ์์ญ(critical section)
๋ ์ด์์ ํ๋ก์ธ์ค, ์ค๋ ๋๊ฐ ๊ณต์ ์์์ ์ ๊ทผํ ๋ ์์๋ฑ์ ์ด์ ๋ก ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋ ์ฝ๋ ์์ญ์ ๋งํ๋ค.
์๊ณ ์์ญ์ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋ฎคํ ์ค, ์ธ๋งํฌ์ด, ๋ชจ๋ํฐ ์ธ ๊ฐ์ง๊ฐ ์์ผ๋ฉฐ ์ด ๋ฐฉ๋ฒ ๋ชจ๋ ์ํธ ๋ฐฐ์ (ํ ํ๋ก์ธ์ค๊ฐ ์๊ณ ์์ญ์ ๋ค์ด๊ฐ์ ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ๋ค์ด๊ฐ ์ ์์), ํ์ ๋๊ธฐ(ํน์ ํ๋ก์ธ์ค๊ฐ ์์ํ ์๊ณ ์์ญ์ ๋ค์ด๊ฐ์ง ๋ชปํ๋ฉด ์๋จ), ์ตํต์ฑ(ํ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ผ์ ๋ฐฉํดํด์๋ ์๋จ)์ด๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ค. ์ด ๋ฐฉ๋ฒ๋ค์ ํ ๋๊ฐ ๋๋ ๋ฉ์ปค๋์ฆ์ ์ ๊ธ(lock)์ธ๋ฐ, ์๋ฅผ ๋ค์ด ์๊ณ ์์ญ์ ํ์ฅ์ค์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด A๋ผ๋ ์ฌ๋์ด ํ์ฅ์ค์ ๋ค์ด๊ฐ ๋ค์ ๋ฌธ์ ์ ๊ทธ๊ณ ๋ค์ ์ฌ๋์ด ์ด๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ค A๊ฐ ๋์ค๋ฉด ํ์ฅ์ค์ ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ค.
- ๋ฎคํ
์ค(mutex)
ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ๊ณต์ ์์์ lock()์ ํตํด ์ ๊ธ ์ค์ ํ๊ณ ์ฌ์ฉํ ํ์๋ unlock()์ ํตํด ์ ๊ธ ํด์ ํ๋ ๊ฐ์ฒด์ด๋ค.
์ ๊ธ์ด ์ค์ ๋๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ์ค๋ ๋๋ ์ ๊ธด ์ฝ๋ ์์ญ์ ์ ๊ทผํ ์ ์๊ณ ํด์ ๋ ๊ทธ์ ๋ฐ๋์ด๋ฉฐ, ๋ฎคํ ์ค๋ ์ ๊ธ ๋๋ ์ ๊ธ ํด์ ๋ผ๋ ์ํ๋ง์ ๊ฐ์ง๋ค. - ์ธ๋งํฌ์ด(semaphore)
์ผ๋ฐํ๋ ๋ฎคํ ์ค๋ก, ๊ฐ๋จํ ์ ์ ๊ฐ๊ณผ ๋ ๊ฐ์ง ํจ์ wait(Pํจ์๋ผ๊ณ ํ๊ธฐ๋ ํจ) ๋ฐ signal(Vํจ์๋ผ๊ณ ํ๊ธฐ๋ ํจ)๋ก ๊ณต์ ์์์ ๋ํ ์ ๊ทผ์ ์ฒ๋ฆฌํ๋ค.
wait()๋ ์์ ์ ์ฐจ๋ก๊ฐ ์ฌ ๋ ๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ํจ์์ด๋ฉฐ, signal()์ ๋ค์ ํ๋ก์ธ์ค๋ก ์์๋ฅผ ๋๊ฒจ์ฃผ๋ ํจ์์ด๋ค.
ํ๋ก์ค์ธ๋ ์ค๋ ๋๊ฐ ๊ณต์ ์์์ ์ ๊ทผํ๋ฉด ์ธ๋งํฌ์ด์์ wait() ์์ ์ ์ํํ๊ณ , ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ๊ณต์ ์์์ ํด์ ํ๋ฉด ์ธ๋งํฌ์ด์์ signal() ์์ ์ ์ํํ๋ค. ์ธ๋งํฌ์ด์๋ ์กฐ๊ฑด ๋ณ์๊ฐ ์๊ณ ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ์ธ๋งํฌ์ด ๊ฐ์ ์์ ํ ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ์ค๋ ๋๋ ๋์์ ์ธ๋งํฌ์ด ๊ฐ์ ์์ ํ ์ ์๋ค.
* ๋ฐ์ด๋๋ฆฌ ์ธ๋งํฌ์ด
0๊ณผ 1์ ๋ ๊ฐ์ง ๊ฐ๋ง ๊ฐ์ง ์ ์๋ ์ธ๋งํฌ์ด์ด๋ค. ๊ตฌํ์ ์ ์ฌ์ฑ์ผ๋ก ์ธํด ๋ฎคํ ์ค๋ ๋ฐ์ด๋๋ฆฌ ์ธ๋งํฌ์ด๋ผ๊ณ ํ ์ ์์ง๋ง ์๋ฐํ ๋งํ๋ฉด ๋ฎคํ ์ค๋ ์ ๊ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ํธ๋ฐฐ์ ๊ฐ ์ผ์ด๋๋ '์ ๊ธ ๋ฉ์ปค๋์ฆ'์ด๊ณ , ์ธ๋งํฌ์ด๋ ์ ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํธ ๋ฐฐ์ ๊ฐ ์ผ์ด๋๋ '์ ํธ ๋ฉ์ปค๋์ฆ'์ด๋ค. ์ฌ๊ธฐ์ ์ ํธ ๋ฉ์ปค๋์ฆ์ ํด๋ํฐ์์ ๋ ธ๋๋ฅผ ๋ฃ๋ค๊ฐ ์น๊ตฌ๋ก๋ถํฐ ์ ํ๊ฐ ์ค๋ฉด ๋ ธ๋๊ฐ ์ค์ง๋๊ณ ํตํ ์ฒ๋ฆฌ ์์ ์ ๊ดํ ์ธํฐํ์ด์ค๊ฐ ๋ฑ์ฅํ๋ ๊ฒ์ ์์๋ก ๋ค ์ ์๋ค.
* ์นด์ดํ ์ธ๋งํฌํฐ
์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ์ ์๋ ์ธ๋งํฌ์ด์ด๋ฉฐ ์ฌ๋ฌ ์์์ ๋ํ ์ ๊ทผ์ ์ ์ดํ๋๋ฐ ์ฌ์ฉ๋๋ค.
* ๋ชจ๋ํฐ
๋ ์ด์์ ์ค๋ ๋๋ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ์์์ ์์ ํ๊ฒ ์ ๊ทผํ ์ ์๋๋ก ๊ณต์ ์์์ ์จ๊ธฐ๊ณ ํด๋น ์ ๊ทผ์ ๋ํด ์ธํฐํ์ด์ค๋ง ์ ๊ณตํ๋ค.
๋ชจ๋ํฐ๋ ์ธ๋งํฌ์ด๋ณด๋ค ๊ตฌํํ๊ธฐ ์ฌ์ฐ๋ฉฐ ๋ชจ๋ํฐ์์ ์ํธ ๋ฐฐ์ ๋ ์๋์ธ ๋ฐ๋ฉด, ์ธ๋งํฌ์ด์์๋ ์ํธ ๋ฐฐ์ ๋ฅผ ๋ช ์์ ์ผ๋ก ๊ตฌํํด์ผ ํ๋ค๋ ์ฐจ์ด์ ์ด ์๋ค.
3.3.8 ๊ต์ฐฉ ์ํ
๊ต์ฐฉ์ํ(deadlock)๋ ๋ ๊ฐ ์ด์์ ํ๋ก์ธ์ค๋ค์ด ์๋ก๊ฐ ๊ฐ์ง ์์์ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ์ค๋จ๋ ์ํ๋ฅผ ๋งํ๋ค.
ํ๋ก์ธ์ค A๊ฐ ํ๋ก์ธ์ค B์ ์ด๋ค ์์์ ์์ฒญํ ๋ ํ๋ก์ธ์ค B๋ A๊ฐ ์ ์ ํ๊ณ ์๋ ์์์ ์์ฒญํ๋ ๊ฒ์ด๋ค.
- ๊ต์ฐฉ ์ํ์ ์์ธ
- ์ํธ ๋ฐฐ์ : ํ ํ๋ก์ธ์ค๊ฐ ์์์ ๋ ์ ํ๊ณ ์์ผ๋ฉฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ ์ ๊ทผ์ด ๋ถ๊ฐ๋ฅํ๋ค.
- ์ ์ ๋๊ธฐ : ํน์ ํ๋ก์ธ์ค๊ฐ ์ ์ ํ ์์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ์์ฒญํ๋ ์ํ์ด๋ค.
- ๋น์ ์ : ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์์์ ๊ฐ์ ์ ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค.
- ํํ ๋๊ธฐ : ํ๋ก์ธ์ค A๋ ํ๋ก์ธ์ค B์ ์์์ ์๊ตฌํ๊ณ , ํ๋ก์ธ์ค B๋ ํ๋ก์ธ์ค A์ ์์์ ์๊ตฌํ๋ ๋ฑ ์๋ก๊ฐ ์๋ก์ ์์์ ์๊ตฌํ๋ ์ํฉ์ ๋งํ๋ค.
- ๊ต์ฐฉ ์ํ์ ํด๊ฒฐ ๋ฐฉ๋ฒ
- ์์์ ํ ๋นํ ๋ ์ ์ด์ ์กฐ๊ฑด์ด ์ฑ๋ฆฝ๋์ง ์๋๋ก ์ค๊ณํ๋ค.
- ๊ต์ฐฉ ์ํ ๊ฐ๋ฅ์ฑ์ด ์์ ๋๋ง ์์ ํ ๋น๋๋ฉฐ, ํ๋ก์ธ์ค๋น ์์ฒญํ ์์๋ค์ ์ต๋์น๋ฅผ ํตํด ์์ ํ ๋น ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ํ์
ํ๋ '์ํ์ ์๊ณ ๋ฆฌ์ฆ'์ ์ด๋ค.
* ์ํ์ ์๊ณ ๋ฆฌ์ฆ : ์ด ์์์ ์๊ณผ ํ์ฌ ํ ๋นํ ์์์ ์์ ๊ธฐ์ค์ผ๋ก ์์ ๋๋ ๋ถ์์ ์ํ๋ก ๋๋๊ณ ์์ ์ํ๋ก ๊ฐ๋๋ก ์์์ ํ ๋นํ๋ ์๊ณ ๋ฆฌ์ฆ - ๊ต์ฐฉ ์ํ๊ฐ ๋ฐ์ํ๋ฉด ์ฌ์ดํด์ด ์๋์ง ์ฐพ์๋ณด๊ณ ์ด์ ๊ด๋ จ๋ ํ๋ก์ธ์ค๋ฅผ ํ ๊ฐ์ฉ ์ง์ด๋ค.
- ๊ต์ฐฉ ์ํ๋ ๋งค์ฐ ๋๋ฌผ๊ฒ ์ผ์ด๋๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋น์ฉ์ด ๋ ์ปค์ ๊ต์ฐฉ ์ํ๊ฐ ๋ฐ์ํ๋ฉด ์ฌ์ฉ์๊ฐ ์์
์ ์ข
๋ฃํ๋ค.
(ํ๋ ์ด์์ฒด์ ๊ฐ ํํ ๋ฐฉ๋ฒ์ผ๋ก ํ๋ก์ธ์ค ์คํ ์ค '์๋ต์์' ์ด ๋ฐ๋ก ์ด๋ฐ ๊ฒฝ์ฐ์ด๋ค.)