3. ์๊ณ๊ตฌ์ญ(Critical section) ๋ฌธ์
์์ ์์์ ๋ณด์๋ ๋ฌธ์ ๋ฅผ ์๊ณ๊ตฌ์ญ ๋ฌธ์ ๋ผ ํ๋ค. ์๊ณ๊ตฌ์ญ์ ์ฌ๋ฌ ๊ฐ์ ์ฐ๋ ๋๊ฐ ์ํ๋๋ ์์คํ ์์ ๊ฐ ์ฐ๋ ๋๋ค์ด ๊ณต์ ํ๋ ๋ฐ์ดํฐ(๋ณ์, ํ ์ด๋ธ, ํ์ผ ๋ฑ)๋ฅผ ๋ณ๊ฒฝํ๋ ์ฝ๋ ์์ญ์ ๋งํ๋ค. ์ด๋ ๋๊ธฐํ์์ ์ค์ํ ๋ฌธ์ ์ค ํ๋์ด๋ค. ์ํ๊ณ์ข ๋ฌธ์ ์์์ ์๊ณ๊ตฌ์ญ์ ๋ค์๊ณผ ๊ฐ๋ค.
3.1 ํด๊ฒฐ ๋ฐฉ๋ฒ
์๊ณ๊ตฌ์ญ์ ํด๊ฒฐํ๊ธฐ ์ํด์๋ 3๊ฐ์ง ์กฐ๊ฑด์ด ๋ง์กฑํด์ผํ๋ค.
- Mutual exclusion(์ํธ๋ฐฐํ)
- ์ค์ง ํ ์ฐ๋ ๋๋ง์ด ์ง์ ๊ฐ๋ฅํ๋ค. ํ ์ฐ๋ ๋๊ฐ ์๊ณ๊ตฌ์ญ์์ ์ํ ์ค์ธ ์ํ์์๋ ๋ค๋ฅธ ์ฐ๋ ๋๋ ์ ๋ ์ด ๊ตฌ์ญ์ ์ ๊ทผํ ์ ์๋ค.
- Progress(์งํ)
- ํ ์๊ณ๊ตฌ์ญ์ ์ ๊ทผํ๋ ์ฐ๋ ๋๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ ์ ํ ์๊ฐ ์ด๋ด์ ์ด๋ฃจ์ด์ ธ์ผํ๋ค.
- ๋๊ฐ ๋จผ์ ๋ค์ด๊ฐ ๊ฒ์ธ์ง ๋น ๋ฅด๊ฒ ๊ฒฐ์ ํด๋ผ
- Bounded waiting(์ ํ๋๊ธฐ)
- ์๊ณ๊ตฌ์ญ์ผ๋ก ์ง์ ํ๊ธฐ ์ํด ๋๊ธฐํ๋ ๋ชจ๋ ์ฐ๋ ๋๋ ์ ํ ์๊ฐ ์ด๋ด์ ํด๋น ์๊ณ๊ตฌ์ญ์ผ๋ก ์ง์ ํ ์ ์์ด์ผ ํ๋ค.
- ๊ธฐ๋ค๋ฆฌ๋ ๋ชจ๋ ์ฐ๋ ๋๊ฐ ์ง์ ๊ฐ๋ฅํ๋๋ก ๋ง๋ค์ด๋ผ.
4. ํ๋ก์ธ์ค/์ฐ๋ ๋ ๋๊ธฐํ์ ๋ชฉ์
- ์ํ๋ ๊ฒฐ๊ณผ๊ฐ์ ๋์ถํ๋๋ก ์๊ณ๊ตฌ์ญ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค.
- ํ๋ก์ธ์ค์ ์คํ ์์๋ฅผ ์ํ๋๋๋ก ์ ์ดํ๋ค.
- Busy wait ๋ฑ๊ณผ ๊ฐ์ ๋นํจ์จ์ฑ์ ์ ๊ฑฐํ๋ค.
Reference
- KOCW ์ํฌ์ฌ ๊ต์๋ - ์ด์์ฒด์
- ์ํฌ์ฌ ๊ต์๋ ๋ธ๋ก๊ทธ(์ํ ๊ธฐ์ถ ๋ฌธ์ )
- codemcd ๋์ ์ ๋ฆฌ๊ธ
- Operating System Concepts, 9th Edition - Abraham Silberschatz