ํ๋ก์ธ์ค ๋๊ธฐํ๊ฐ ๋ฐ์ํ๋ ์์์ ๋ชฉ์ , ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ํด๊ฒฐํ๊ธฐ ์ํ ์์น์ ๋ํด ์์๋ณธ๋ค.
1. ํ๋ก์ธ์ค ๋๊ธฐํ๋?
ํ๋์ ์์์ ํ ์๊ฐ์ ํ๋์ ํ๋ก์ธ์ค(์ฐ๋ ๋)๋ง์ด ์ด์ฉํ๋๋ก ์ ์ดํ๋ ๊ฒ
1.1 ๋ฐฐ๊ฒฝ
ํ๋ ์ปดํจํฐ์ ๋ฉ๋ชจ๋ฆฌ์๋ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์กด์ฌํ๋๋ฐ, ์ด๋ฌํ ํ๋ก์ธ์ค๋ค์ด ํ๋์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ ๊ทผํ ๋๋ ๋งค์ฐ ์ ์คํด์ผ ํ๋ค. ์ด์ฒ๋ผ ํ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ ์ํฅ์ ๋ฐ๊ฑฐ๋ ์ฃผ๋ ํ๋ก์ธ์ค๋ฅผ Cooperating process๋ผ๊ณ ํ๋ค. ๋ฐ๋๋ก ์๋ฌด๋ฐ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๋ ๋ฆฝ์ ์ธ ํ๋ก์ธ์ค๋ Independent process์ด๋ค.
ํ๋ ์ปดํจํฐ ํ๊ฒฝ์๋ cooperating process๊ฐ ํจ์ฌ ๋ง์ด ์กด์ฌํ๊ณ , ์ด๋ค์ ์๋ก ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ ํ๋ฆ์ ๋ํ ๋๊ธฐํ๊ฐ ๋งค์ฐ ์ค์ํ๋ค. ํ๋ก์ธ์ค ์ฌ์ด์ ๋๊ธฐํ๋ฅผ ํ๋ ๊ฒ์ ํ๋ก์ธ์ค ๋๊ธฐํ(Process Synchronization) ๋ผ๊ณ ํ๋ค.(ํ์ฌ์๋ ๋๋ถ๋ถ ์ฐ๋ ๋ ๊ธฐ์ค์ผ๋ก ์ค์์นญ์ ํ๋ฏ๋ก, Thread synchronization์ผ๋ก ๋ง์ด ๋ถ๋ฆฐ๋ค.)
1.2 ํ์์ฑ
๋ํ์ ์ธ ์๋ก ๊ธฐ์ฐจํ ์๋งค๊ฐ ์๋ค. ์ด๋ ์๊ฐ์ ํ ์ข์์ ๊ธฐ์ฐจํ๋ ๋ฐ๋์ ํ๋๋ง ์กด์ฌํด์ผํ๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฅผ ์๋งคํ๋ ค๋ ์ฌ์ฉ์(ํ๋ก์ธ์ค)๋ ์ฌ๋ฌ ๋ช ์ด๋ค. ์ด ์ฌ์ฉ์๋ค์ด ๋์์ ํ๋์ ์ข์ ๊ธฐ์ฐจํ๋ฅผ ๊ตฌ๋งคํ๋ ค๊ณ ํ๋ฉด ์ด๋ ํ ์ผ์ด ๋ฐ์ํ ๊น? ์ค์ ํ๊ฒฝ์์๋ ๋น์ฐํ๊ฒ๋ ๋๊ธฐํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์์คํ ์ด๋ฏ๋ก ํ ์ฌ๋๋ง์ด ๊ธฐ์ฐจํ๋ฅผ ์๋งคํ ์ ์์ ๊ฒ์ด๋ค. ๋ง์ฝ ๋๊ธฐํ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๋ฉด ํ ๊ธฐ์ฐจํ๋ฅผ ์ฌ๋ฌ ์ฌ๋์ด ์๋งคํ๋ ๋ถ์์ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค.
1.3 ๋ชฉํ
ํ๋ก์ธ์ค ๋๊ธฐํ๋ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ํ๋ ์์์ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๊ฒ์ด๋ค. ๊ฐ๋ น ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ํ๋์ ๊ณต์ ๋ ์์์ ์ ๊ทผํ๋ ค๊ณ ํ ๋ ์ด ํ๋ก์ธ์ค๋ค์ ์์๋ฅผ ์ ํ์ฌ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ์ ์ง์์ผ์ฃผ์ด์ผ ํ๋ค. ์ด ๋ถ๋ถ์ ๋ํ ์์ธํ ๋ชฉ์ ์ ์๋์ ์๋ฅผ ํ์ ํ๋ฉฐ ๋ฌธ์ ๋ฅผ ์ธ์งํ ํ์ ๋ช ํํ๊ฒ ์ฌ์ ์ํ๊ฒ ๋ค.
Reference
- KOCW ์ํฌ์ฌ ๊ต์๋ - ์ด์์ฒด์
- ์ํฌ์ฌ ๊ต์๋ ๋ธ๋ก๊ทธ(์ํ ๊ธฐ์ถ ๋ฌธ์ )
- codemcd ๋์ ์ ๋ฆฌ๊ธ
- Operating System Concepts, 9th Edition - Abraham Silberschatz