๐ CS Study
์ด์์ฒด์
โ ํ๋ก์ธ์ค ( Process )
โ๏ธ ํ๋ก์ธ์ค๊ฐ ๋ฌด์์ธ๊ฐ ?
ํ๋ก์ธ์ค๋ ์คํ์ค์ธ ํ๋ก๊ทธ๋จ์ผ๋ก ๋์คํฌ๋ก๋ถํฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด CPU์ ํ ๋น์ ๋ฐ์ ์ ์๋ ์ํ์ด๋ค. ํ๋ก์ธ์ค๋ ์ด์์ฒด์ ๋ก๋ถํฐ ์ฃผ์ ๊ณต๊ฐ, ํ์ผ, ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ํ ๋น ๋ฐ๋๋ค.
โ๏ธํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๊ตฌ์กฐ๋ ์ด๋ป๊ฒ ์๊ฒผ๋ ?
์คํ์์ญ : ์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์, ๋ฆฌํด ๊ฐ ๋ฑ์ด ์์๋ก ์ ์ฅ๋์ด ๊ณ ์ ๋ ํฌ๊ธฐ์ ๊ณต๊ฐ์ด๋ค. ์ฃผ๋ก ํจ์๊ฐ ๋ถ๋ ธ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค๊ฐ ํจ์๊ฐ ์ข ๋ฃ๋ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ค.
ํ ์์ญ : ํ๋ก์ธ์ค๊ฐ ๋์์ค์ ๋์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํ ๋นํ๋ ๊ณต๊ฐ์ด๋ค.
๋ฐ์ดํฐ ์์ญ : ๋ฐ์ดํฐ ์์ญ์๋ ํ๋ก๊ทธ๋จ์ด ์์๋ ๋ ์์ฑ๋๋ ์ ์ญ๋ณ์, ์ ์ ๋ณ์ ๋ฑ์ด ์ ์ฅ๋๋ค.
- Blocked State Symbol ์์ญ : ๋ฐ์ดํฐ ์์ญ์๋ BBS ์์ญ์ด ํฌํจ๋์ด ์๋ค. BSS ์์ญ์ ์ด๊ธฐํ ๋์ง ์์ ์ ์ ๋ณ์์ ์ ์ญ๋ณ์๊ฐ ์ ์ฅ๋๋ค. ์ด๊ธฐํ ๋์ง ์์ ๋ณ์๋ค์ ๊ฐ์ ์ ์ฅํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ณต๊ฐ์ ๋ญ๋น๋ฅผ ์ค์ด๊ธฐ ์ํด BSS ์์ญ์ ๊ตฌ๋ถํ๋ค.
์ฝ๋์์ญ : ์ฝ๋ ์์ญ์ ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ ์ ์ฅํ๋ค.
โ๏ธ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ง๋ ๋ชจ๋ ์ํ
NEW : ์๋กญ๊ฒ ์์ฑ๋ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ง๋ ์ํ
READY : ์ค๋น ํ์์ ์ด์์ฒด์ ์ ์ํด CPU์ ๋ก๋๋๊ธธ ๊ธฐ๋ค๋ฆฌ๋ ์ํ
RUNNING : CPU์ ๋ก๋๋์ด ์คํ์ค์ธ ์ํ
WATING : I/O ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ ๋ ํด๋น ์ด๋ฒคํธ๊ฐ ์ฒ๋ฆฌ๋๋ ๋์, ํน์ ์ด๋ค ์ด๋ฒคํธ๋ฅผ ๊ธฐ๋ค๋ฆด ๋ Device queue์์ ๋๊ธฐํ๋ ์ํ
TERMINATED : ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ณ CPU์์ ์ ๊ฑฐ๋์์ ๋์ ์ํ
โ๏ธ ์ธํฐ๋ฝํธ์ ํธ๋ฉ์ ์ฐจ์ด
์ธํฐ๋ฝํธ๋ ํ๋์จ์ด์ ์ํด ๋ฐ์๋๋ค. ํ๋์จ์ด ์ฅ์น๊ฐ CPU๋ฅผ ์ฌ์ฉํด์ผ ํ ๋, ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์ํจ๋ค.
ํธ๋ฉ์ ์ํํธ์จ์ด์ ์ํด ๋ฐ์๋๋ค. ์ด๋ค ์ํํธ์จ์ด๊ฐ CPU์๊ฒ ์ํํธ์จ์ด ๋์์ ํ์ํ ๋์์ ์๊ตฌํ ๋ ํธ๋ฉ์ ๋ฐ์์ํจ๋ค.
โ๏ธ ์์คํ ์ฝ์ด๋
์์คํ ์ฝ์ ํ๋ก์ธ์ค๊ฐ ํธ๋ฉ์ ๋ฐ์์ํฌ ์ ์๋๋ก ํ๊ธฐ ์ํด OS์์ ์ ๊ณตํ๋ ์ธํฐํ์ด์ค์ด๋ค.
ํ๋ก์ธ์ค๋ ์์คํ ์ฝ์ ๋ฐ์์์ผ ์์ ์ด ์ง์ ์ธํฐ๋ฝํธ ์์ ์ ์ํํ์ง ์๊ณ ์ด์์ฒด์ ๊ฐ ์ด ์์ ์ ์ํํ๋๋ก ํ๋ค. ์ด์์ฒด์ ๋ ์์ฒญ๋ฐ์ ์์คํ ์ฝ์ ISR(Interrupt Service Routine) ์์ ์ฐพ์ ๋ฏธ๋ฆฌ ์ ์๋ ์์คํ ์ฝ ์ฒ๋ฆฌ ์์ ์ ์ํํ๋ค.
โ๏ธ PCB ( Process Control Block ) ์ด๋?
PCB๋ ํ๋ก์ธ์ค์ ๋ํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ด PCB๋ฅผ ์ฌ์ฉํด์ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ค. PCB๋ ํ๋ก์ธ์ค์ ์์ฑ๊ณผ ํจ๊ป ๋ง๋ค์ด์ง๋ค.
PCB๊ฐ ๊ฐ์ง๊ณ ์๋ ์ ๋ณด
- ํ๋ก์ธ์ค ID
- ํ๋ก์ธ์ค ์ํ
- ํ๋ก๊ทธ๋จ ์นด์ดํฐ
- ๊ณ์ ์ ๋ณด
- ์ค์ผ์ค๋ง ์ ๋ณด
- ๋ถ๋ชจ ํ๋ก์ธ์ค์ ์๋ ํ๋ก์ธ์ค์ ๋ํ ์นด์ดํฐ
- ๋ ์ง์คํฐ ์ ๋ณด
- ์ ์ถ๋ ฅ ์ํ
โ๏ธ ์ปจํ ์คํธ ์ค์์น๋
์ปจํ ์คํธ ์ค์์น๋ CPU๋ฅผ ์ ์ ํ๋ ํ๋ก์ธ์ค๊ฐ ์ธํฐ๋ฝํธ์ ์ํด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ก ๊ต์ฒดํ ๋, ๊ธฐ์กด ํ๋ก์ธ์ค์ ๋ ์ง์คํฐ ๊ฐ์ ์ ์ฅํ๊ณ ์๋ก์ด ํ๋ก์ธ์ค์ ๋ ์ง์คํฐ๊ฐ์ CPU ๋ ์ง์คํฐ๋ก ๋ก๋ํ๋ ๊ฒ์ ๋งํ๋ค.
์ด ๋, ๋ ์ง์คํฐ ๊ฐ์ ์ ์ฅํ๊ณ ์๋ก์ด ๊ฐ์ผ๋ก ๋ ์ง์คํฐ๋ฅผ ์ฑ์ฐ๋ ๋์ CPU๋ ๋ค๋ฅธ ์์ ์ ํ ์ ์์ผ๋ฏ๋ก ํฐ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ค.
โ๏ธ Orphan ํ๋ก์ธ์ค์ Zombie ํ๋ก์ธ์ค๋
Orpahn ํ๋ก์ธ์ค๋ ์๋ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ธฐ ์ ์ ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ wait ์์คํ ์ฝ๋ก ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ์ข ๋ฃ๋ ์ํ๋ฅผ ๋งํ๋ค. ๋ฆฌ๋ ์ค ์ด์์ฒด์ ์ ๊ฒฝ์ฐ์๋ Orphan ํ๋ก์ธ์ค๋ฅผ ๋ง๊ธฐ ์ํด ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ๋จผ์ ์ข ๋ฃ๋ ์๋ ํ๋ก์ธ์ค๋ฅผ ๋ฃจํธ ํ๋ก์ธ์ค์ธ init ํ๋ก์ธ์ค์ ์์์ผ๋ก ํธ์ ์ํค๊ณ ์ฃผ๊ธฐ์ ์ผ๋ก wait ์์คํ ์ฝ์ ํธ์ถํ์ฌ ์๋ ํ๋ก์ธ์ค๋ค์ ์ํ๋ฅผ ํ์ํ๋ค.
Zombie ํ๋ก์ธ์ค๋ ์๋ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋์์ง๋ง ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ ํด๋น ํ๋ก์ธ์ค๋ฅผ ํ์ํ์ง ๋ชปํ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค. ์๋ ํ๋ก์ธ์ค๋ ์ข ๋ฃ๋์ง๋ง ๋ถ๋ชจ ํ๋ก์ธ์ค๊ฐ wait์ ํ์ง ์์ ์ํ์์ ๋ฐ์ํ๋ค.
โ๏ธ ์ข๋น ํ๋ก์ธ์ค์ ๋ฌธ์
์ข๋น ํ๋ก์ธ์ค๋ ์ข ๋ฃ๋ ํ๋ก์ธ์ค์ด๊ธฐ ๋๋ฌธ์ CPU๋ฅผ ์ฌ์ฉํ์ง๋ ์์ง๋ง ๋ ์ด์ ์ฌ์ฉํ์ง ์๋ ๋ฆฌ์์ค๋ฅผ ๋ฐํํ์ง ์๊ณ ์ปค๋์ ํ๋ก์ธ์ค ํ ์ด๋ธ์ ๊ด๋ฆฌ๋์ด ๋ถํ์ํ ๊ณต๊ฐ์ ์ฐจ์งํ๋ค.
โ๏ธ ํ๋ก์ธ์ค ๊ฐ ํต์ ๋ฐฉ๋ฒ
์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์๋ก ํต์ ํ๊ธฐ ์ํด์๋ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ๋ฐฉ๋ฒ์ด๋ ๋ฉ์ธ์ง ํจ์ฑ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผ ํ๋ค.
๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ ํ ํ๋ก์ธ์ค์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ค์ ํ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ํด๋น ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ์ฌ ๋ฒํผ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ ๋ฐฉ์์ด๋ค.
๋ฉ์ธ์ง ํจ์ฑ ๋ฐฉ๋ฒ์ ์ปค๋ ์์ญ์ ํต์ ์ ์ํ ๋ฉ์ผ ๋ฐ์ค๋ฅผ ๋ง๋ค์ด๋๊ณ ์ด๊ณณ์ ๋ฒํผ๋ก ์ผ์ ํ๋ก์ธ์ค๋ค์ด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค.
โ๏ธ CPU ์ค์ผ์ค๋ฌ๋
Ready ํ์์ CPU์ ๋ก๋๋๊ธธ ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค๋ค ์ค ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ๋ก๋ํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ค. ๋จ๊ธฐ ์ค์ผ์ค๋ฌ๋ผ๊ณ ๋ ํ๋ค.
โ๏ธ ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ๋
job ์ค์ผ์ค๋ฌ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํ๋ก์ธ์ค์ค ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ค๋น ํ์ ๋ฃ์์ง ๊ฒฐ์ ๋๋ ์ค์ผ์ค๋ฌ์ด๋ค. ๋ํ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์๋ ํ๋ก์ธ์ค์ ์ซ์๋ฅผ ์ ์ดํด์ dgree of multiprogramming์ ๊ด๋ฆฌํ๋ค.
โ๏ธ ๋ค๋ฅธ ์ค์ผ์ค๋ฌ ?
์ค๊ธฐ์ค์ผ์ค๋ฌ๊ฐ ์๋ค. ๋ง์ฝ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฌด ๋ง์ ํ๋ก์ธ์ค๊ฐ ์ฌ๋ผ์ค๊ฒ ๋๋ฉด ์ค๊ธฐ ์ค์ผ์ค๋ฌ๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ๋ก ๋์คํฌ์ ์ค์ ์์ญ์ ์ ์ฅํ๋ค. ์ด๋ฅผ swap-out ์ด๋ผ๊ณ ํ๋ค.
โ๏ธ ๋ฉํฐ ํ์คํน๊ณผ ๋ฉํฐ ํ๋ก์ธ์ฑ์ ์ฐจ์ด
๋ฉํฐ ํ์คํน์ ํ๋์ ํ๋ก์ธ์๊ฐ ์ด์์ฒด์ ์ ์ค์ผ์ค๋ง์ ๋ฐ์ ์ฌ๋ฌ ์์ ์ ๋น ๋ฅด๊ฒ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์คํํ๋ ๋ฐฉ์์ด๋ค.
๋ฉํฐ ํ๋ก์ธ์ฑ์ ์ฌ๋ฌ ํ๋ก์ธ์๊ฐ ์ฌ๋ฌ ์์ ์ ๋ณ๋ ฌ์ ์ผ๋ก ์ํํ๋ ๊ฒ์ ๋งํ๋ค.
โ Thread ( ์ค๋ ๋ )
โ๏ธ ์ค๋ ๋๊ฐ ๋ฌด์์ธ๊ฐ
ํ๋ก์ธ์ค๊ฐ ์ํํ๋ ์์ ์ ์คํ๋จ์์ด๋ค. ์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด๋ถ์ ์กด์ฌํ๋ฉฐ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฐ์ ์์์ ์ฌ์ฉํ์ฌ ์์ ์ ์ํํ๋ค.
โ๏ธ ์ค๋ ๋์ ํ๋ก์ธ์ค์ ์ฐจ์ด
์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ค. ํ ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ๊ฐ์ง ์ ์๊ณ , ์ด ์ค๋ ๋๋ค์ ํด๋น ํ๋ก์ธ์ค์ ์์์ ์ผ๋ถ ์๋ก ๊ณต์ ํฉ๋๋ค. ํ๋ก์ธ์ค๋ ์์ฑ์ ์ฝ๋์์ญ, ๋ฐ์ดํฐ ์์ญ, ํ ์์ญ, ์คํ์์ญ์ ํ ๋น๋ฐ๋๋ค. ์ค๋ ๋๋ ์ฌ๊ธฐ์ ์คํ ์์ญ๋ง ๊ฐ ์ค๋ ๋๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์ ์งํ๊ณ ๋๋จธ์ง ์์ญ๋ค์ ํ๋ก์ธ์ค ๋ด์ ์ค๋ ๋๋ค์ด ํจ๊ป ๊ณต์ ํ๋ค.
โ๏ธ ๊ฐ ์ค๋ ๋๊ฐ ๋ ๋ฆฝ์ ์ธ ์คํ ์์ญ์ ๊ฐ์ง๋ ์ด์
์คํ ์์ญ์ ๋ฐ๋ก ๊ด๋ฆฌํ๊ธฐ์ ๊ฐ ์ค๋ ๋๋ ์๋ก ๋ค๋ฅธ ์์ ์ ์ํํ ์ ์๋ค. ํจ์ ํธ์ถ ์ ํ ์ค๋ ๋๊ฐ ํธ์ถํ ํจ์์ ๋ํ ์คํ์ ๋ณด๊ฐ ๋ค๋ฅธ ์ค๋ ๋์ ์ํฅ์ ์ค๋ค๋ฉด ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ ์๋ฏธ๊ฐ ์๋ค. ๊ฐ ์ค๋ ๋๋ ํ๋ก์ธ์ค์ ์์ ํ๋ฆ์ ๋ด๋นํด์ผํ๋ฏ๋ก ์๋ก ๋ค๋ฅธ ์์ ํ๋ฆ์ ๊ฐ์ง๋ ๊ฒ์ด ํ์ฉ๋์ด์ผ ํ๋ค. ์ด๋ฅผ ์ํด ์คํ์์ญ์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ์ง๊ณ ์ด์ ๋๋ถ์ด์ ํ๋ก๊ทธ๋จ ์นด์ดํฐ ๋ ์ง์คํฐ ์ญ์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ์ง๊ฒ ๋๋ค.
โ๏ธ ๋ฉํฐ ์ค๋ ๋ฉ๊ณผ ์ฌ์ฉํ๋ ์ด์
๋ฉํฐ ์ค๋ ๋ฉ์ ํ๋์ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ๊ฐ์ ์ค๋ ๋๋ก ๊ตฌ์ฑํด์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ํ ํ๋ก์ธ์ค๋ฅผ ๋ณ๋ ฌ์ ์ผ๋ก ์คํํ ์ ์๋๋ก ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ํ ํ๋ก์ธ์ค ๋ด๋ถ์ ์ค๋ ๋๋ ์๋ก ํ ์์ญ์ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋ณ ๋ค๋ฅธ ํต์ ๊ธฐ์ ์ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ค๋ ๋๋ผ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ์ ์๋ค. ๋ํ ์ค๋ ๋๋ ์๋ก ๊ณต์ ํ๋ ์์ญ์ด ๋ง์ด ๋๋ฌธ์ CPU ์บ์์ hit ๋น์จ์ด ๋ ๋๊ณ ์ด ๋๋ฌธ์ ๋ฉํฐํ๋ก์ธ์ฑ๋ณด๋ค ์ปจํ ์คํธ ์ค์์นญ์ ๋น์ฉ์ด ๋ ์ ๋ ดํ๋ค.
โ๏ธ ์ฌ์ฉ์ ์์ค ์ค๋ ๋์ ์ปค๋ ์์ค ์ค๋ ๋์ ์ฐจ์ด
์ฌ์ฉ์ ์์ค ์ค๋ ๋๋ ์ฌ์ฉ์ ์์ญ์ ์ค๋ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ๊ตฌํ๋๋ค. ๋ชจ๋ ๊ตฌํ๊ณผ ๋์์ ์ฌ์ฉ์ ์์ญ์์ ์งํ๋๊ธฐ ๋๋ฌธ์ ์ปค๋์ ์ฌ์ฉ์ ์์ค ์ค๋ ๋์ ์กด์ฌ ์ ๋ฌด๋ฅผ ์์ง ๋ชปํ๋ค.
์ปค๋ ์์ค ์ค๋ ๋๋ ์ด์์ฒด์ ๊ฐ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ค.
โ๏ธ ๋ฉํฐ ์ค๋ ๋ฉ์ ๋ฌธ์ ์
๋ฉํฐ ์ค๋ ๋ฉ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ชจ๋ ์ค๋ ๋๋ค์ด ๋ฐ์ดํฐ ์์ญ, ํ ์์ญ, ์ฝ๋ ์์ญ์ ๊ณต์ ํ๊ฒ ๋๋ค. ์ด ๋ ๋ค์์ ์ค๋ ๋๊ฐ ๋ฐ์ดํฐ ์์ญ๊ณผ ํ ์์ญ์ ๋ฐ์ดํฐ์ ๋์์ ์ ๊ทผํ๊ฒ ๋๋ฉด ๋๊ธฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Mutex๋ Semaphore ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
โ CPU ์ค์ผ์ค๋ง
โ๏ธ ์ ์ ํ ์ค์ผ์ค๋ง๊ณผ ๋น์ ์ ํ ์ค์ผ์ค๋ง์ ์ฐจ์ด
์ ์ ํ ์ค์ผ์ค๋ง์ CPU์ ํ ๋น๋ ํ๋ก์ธ์ค๊ฐ ์์ ์ด ์์ ํ ๋๋์ง ์๋๋ก ๊ฐ์ ์ ์ผ๋ก ๊ธฐ์กด ํ๋ก์ธ์ค๋ฅผ ์๋ก์ด ํ๋ก์ธ์ค๋ก ๊ต์ฒดํด๋ฒ๋ฆฌ๋ ์ค์ผ์ค๋ง ๋ฐฉ๋ฒ์ด๋ค.
๋น์ ์ ํ ์ค์ผ์ค๋ง์ ๋ฐ๋๋ก CPU์ ํ ๋น๋ ํ๋ก์ธ์ค์ ์์ ์ด ์์ ํ ๋๋ ์ดํ์ CPU์ ํ ๋น๋๋ ํ๋ก์ธ์ค๋ฅผ ๊ต์ฒดํ๋ ์ค์ผ์ค๋ง ๋ฐฉ๋ฒ์ด๋ค.
โ๏ธ FCFS ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
์ค๋น ํ์ ๋จผ์ ๋์ฐฉํ ํ๋ก์ธ์ค๋ฅผ CPU์ ํ ๋นํ๋ ํ๋ก์ธ์ค๋ก ์ ํํ๋ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
โ๏ธ FCFS๋ฅผ ์์ฃผ ์ฌ์ฉ ํ ๊น?
์๋๋ค. FCFS ์๊ณ ๋ฆฌ์ฆ์ ํญ์ ๋จผ์ ๋์ฐฉํ ํ๋ก์ธ์ค๋ฅผ ์ ํํ๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ๊ฐ์ฅ ๋ฆ๊ฒ ๋์ฐฉํ ํ๋ก์ธ์ค๊ฐ ์ผ๋ง ๊ฑธ๋ฆฌ์ง ์๋ ์์ ์ ์ํํ๋ ํ๋ก์ธ์ค์ผ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ํด๋น ํ๋ก์ธ์ค๊ฐ ์ค์ ๋ก ์์ ์ ํ์ํ ์๊ฐ์ ์งง์ง๋ง ์คํ์ ์ํด ์ค๋น ํ์์ ์ค๋ซ๋์ ๊ธฐ๋ค๋ ค์ผ ํ๋ ํฐ ์ทจ์ฝ์ ์ ๊ฐ์ง๊ณ ์๋ค.
โ๏ธ SJF ์๊ณ ๋ฆฌ์ฆ์ ์ด๋จ๊น?
SJF ์๊ณ ๋ฆฌ์ฆ์ ์ํ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ ์ค๋น ํ์ ํ๋ก๋ ์ค๋ค์ ๋๊ธฐ์๊ฐ์ ์ต์ํํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ฐ๋ผ์ ์ด์์ฒด์ ์ ์ค์ผ์ค๋ง์ ๊ฐ์ฅ ์ ํฉํ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ ์ ์๋ค.
โ๏ธ ์ด ์๊ณ ๋ฆฌ์ฆ์ ์์ฃผ ์ฌ์ฉ ํ ๊น?
์๋๋ค. ์ค์ ๋ก ์ด๋ค ํ๋ก์ธ์ค์ ์ํ์๊ฐ์ ์คํํ์ง ์๊ณ ์์๋ผ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ๊ตฌํ์ด ๋ถ๊ฐ๋ฅํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ํ์ง๋ง ๋ค์ ํ๋ก์ธ์ค์ ์ํ์๊ฐ์ด ์ด์ ์ํ์๊ฐ๊ณผ ๋น์ทํ ๊ฒ์ด๋ผ๋ ๊ฐ์ ์ ํ์ฌ ์ํ์ ์์ธก์ ํตํด ๊ตฌํํ ์๋ ์๋ค.
โ๏ธ ๊ทธ๋ ๋ค๋ฉด ์ค์ ๋ก๋ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ์ ์ฌ์ฉํ ๊น
RR ์ด๋ Priority ์ค์ผ์ค๋ง์ ํจ๊ป ์ฌ์ฉํ๋ค. RR ์ค์ผ์ค๋ง์ Time quantum ์ด๋ผ๊ณ ๋ถ๋ฅด๋ ํ์ ์คํํ๋ฅผ ์ฌ์ฉํด์ ์ค์ผ์ค๋ง์ ํ๋ค.
์ด์์ฒด์ ๋ ์ค๋น ํ์ ์๋ ํ๋ก์ธ์ค๋ค์ ์ ํํ Time quantum ์๊ฐ ๋งํผ๋ง CPU์ ํ ๋น์ํค๊ณ ์๊ฐ์ด ๋๋๋ฉด ๊ณง๋ฐ๋ก ๋ค์ ํ๋ก์ธ์ค์ ๊ต์ฒด์ํจ๋ค. ์ด๋ ๊ฒ ์ค์ผ์ค๋ง์ ํ๋ฉด ๋ค์์ ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฌ๋ฒ์ ๋๋ ์ ์คํํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์์๋๊ฐ ์ค์ํ ์์คํ ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์๋ค.
Priority ์ค์ผ์ค๋ง์ ์ค๋น ํ์ ์๋ ํ๋ก์ธ์ค๋ค์ ์ฐ์ ์์์ ๋ฐ๋ผ CPU์ ํ ๋นํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ์ค๋น ํ์ ๋์ฐฉํ์ ๋, ์ฐ์ ์์๊ฐ ๋๋ค๋ฉด ๋์ฐฉ์๊ฐ๊ณผ๋ ๊ด๊ณ์์ด ๋จผ์ ์ ํ๋๋ค.
โ๏ธ RR ์๊ณ ๋ฆฌ์ฆ์ ๋จ์ ์ ?
Time Quantum ์ ์์กด์ ์ด๋ค. ๋ง์ฝ Time quantum์ด ์ค๋น ํ์ ์๋ ๊ฐ ํ๋ก๋ ์ค์ ์ํ์๊ฐ๋ณด๋ค ๊ธธ๋ค๋ฉด, FCFS๊ณผ ๋์ผํ ์ค์ผ์ค๋ง์ด ๋๋ค. ๋ฐ๋๋ก Time quantum์ด ๋๋ฌด ์งง๋ค๋ฉด, ํ๋ก์ธ์ค์ ์ปจํ ์คํธ ์ค์์นญ์ด ์ง๋์น๊ฒ ๋ง์ด ๋ฐ์ํ ์ ์๋ค.
โ๏ธ Priority ์ค์ผ์ค๋ง ๋จ์ ์?
์ฐ์ ์์์ ๋ฐ๋ผ ์ค์ผ์ค๋ง์ ํ๊ฒ๋๋ฉด ์ฐ์ ์์๊ฐ ์๋์ ์ผ๋ก ๋ฎ์ ํ๋ก์ธ์ค๊ฐ ์คํ๋์ง ๋ชปํ๊ณ ์ฅ์๊ฐ๋์ ์ค๋น ํ์ ๋จ์์์ ์ ์๋ค. ์ด๋ฐ ํ์์ Stravation ํน์ Identinite Blocking ์ด๋ผ๊ณ ํ๋ค.
โ๏ธ ์ด ๋ฌธ์ ๋ ์ด๋ป๊ฒ ํด๊ฒฐ ?
๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. ์ฒซ๋ฒ์งธ๋ Aging๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ์ค๋น ํ์ ์ค๋ ๋จธ๋ฌด๋ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ์ ์ง์ ์ผ๋ก ๋์ฌ์ฃผ๋ ๋ฐฉ์์ด๋ค. ๋ค๋ฅธ ๋ฐฉ๋ฒ์ RR ์๊ณ ๋ฆฌ์ฆ์ ์์ด์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. RR์ ๊ณต์ ํ๊ฒ ๋ชจ๋ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ์ ์ ํ๊ฒ ํ๋ค. ์ฐ์ ์์์ ๋ฐ๋ผ ํ๋ก์ธ์ค๋ค์ด ์ ๋ ฌ๋๊ณ ํ๋ก์ธ์ค๋ค์ ๋ํด RR์ ์ฌ์ฉํ๋ค๋ฉด ํ์ ๋ค์ ์์นํ ํ๋ก์ธ์ค๋ CPU ์ ์ ์ ๊ธฐํ๋ฅผ ๋ฐ์ ์ ์๊ฒ ๋๋ค.
โ๏ธ ๋ฉํฐ ๋ ๋ฒจ ํ๋ ?
์ค๋น ํ๋ฅผ ์ฌ๋ฌ๊ฐ์ ํ๋ก ๊ตฌ์ฑํ๊ณ ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ๋ค์ด์ฌ ๋๋ง๋ค ์ค์๋์ ๋ฐ๋ผ ๊ฐ๊ฐ ๋ค๋ฅธ ํ์ ๋ฃ์ด ๊ด๋ฆฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๊ฐ ํ๋ ์๋ก ๋ค๋ฅธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค. ํ์ง๋ง ๊ฐ ํ๋ก์ธ์ค๊ฐ ํ ํ์์ ๋ค๋ฅธ ํ๋ก ์ด๋ํ ์ ์์ด ์ ์ฐํ์ง ๋ชปํ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ์ด๋ค.
โ๏ธ ๋ฉํฐ ๋ ๋ฒจ ํผ๋๋ฐฑ ํ๋ ?
์ฌ๋ฌ ํ๋ก ๋๋ ์ค๋น ํ์ ์์ ๊ณ์ธต์ time quantum ์ ๋์ด CPU ์ฌ์ฉ์๊ฐ์ ๋ฐ๋ผ ํ๋ก์ธ์ค์ ์์น๋ฅผ ๋ฐ๊ฟ์ฃผ๊ณ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๋จ๊ณ๋ณ๋ก ๋ค๋ฅด๊ฒ ์ ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
โ๏ธ ์ค์๊ฐ ์ค์ผ์ค๋ง์๋ ์ด๋ค ๋ฐฉ๋ฒ์ด ์์๊น
Rate Monotonic ์ค์ผ์ค๋ง์ด ์๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ํ๋ก์ธ์ค์ ์ฐ์ ์์์ ๋ฐ๋ผ CPU์ ํ๋ก์ธ์ค๋ฅผ ์ค์ผ์ค๋งํ๋ค. ์ด ๋, ์ฐ์ ์์๋ ๊ฐ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ง๋ CPU ์์ฒญ ์ฃผ๊ธฐ์ ๋ฐ๋ผ ์ฃผ๊ธฐ๊ฐ ์งง์ ํ๋ก์ธ์ค๊ฐ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
๋ค์์ Earlist Deadline First ์ค์ผ์ค๋ง์ด๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ ํ๋ก์ธ์ค์ ๋ง๊ฐ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๋ค. ๋ง๊ฐ์๊ฐ์ด ๋น ๋ฅด๋ฉด ๋์ ์ฐ์ ์์๊ฐ ๋ถ์ฌ๋๋ค. ๊ฐ ํ๋ก์ธ์ค๋ค์ ์์ ์ด ์คํ๊ฐ๋ฅํ ์ํ๊ฐ ๋๋ฉด ์์คํ ์ ์์ ์ ๋ง๊ฐ์๊ฐ์ ์๋ฆฌ๊ณ ์ด ๋ง๊ฐ์๊ฐ์ผ๋ก ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๊ฒ ๋๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ก ์ ์ผ๋ก ์๋ฒฝํ์ง๋ง ํ๋ก์ธ์ค๊ฐ ๊ต์ฒด๋๋ฉด์ ๋ฐ์ํ๋ ์ปจํ ์คํธ ์ค์์นญ์ ์ค๋ฒํค๋ ๋๋ฌธ์ ๋๋ ์ด๊ฐ ์๊ฒจ ์ค์ ๋ก๋ ๊ตฌํ์ด ๋ถ๊ฐ๋ฅํ๋ค.
โ ๋๊ธฐํ
โ๏ธ Race Condition์ด๋
์ค๋ ๋๊ฐ ๋ฐ์ดํฐ์ ์ด๋ค ์์๋ก ์ ๊ทผํ๋์ง์ ๋ฐ๋ผ ์คํ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋ ์ํฉ
โ๏ธ ์๊ณ๊ตฌ์ญ์ด ๋ฌด์์ด๊ณ ์๊ณ๊ตฌ์ญ ๋ฌธ์ ํด๊ฒฐ์ ์ํ ํ์ ์๊ตฌ ์กฐ๊ฑด
์๊ณ๊ตฌ์ญ์ ์ด๋ค ์ฝ๋์ ์์ญ์์ ๋ค์์ ํ๋ก์ธ์ค๊ฐ ์๋ก ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ ๋ถ๋ถ. ํ๋ฒ์ ์ฌ๋ฌ ์ค๋ ๋๊ฐ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ฉด ๋๊ธฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์๊ณ๊ตฌ์ญ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์ธ๊ฐ์ง ์๊ตฌ์กฐ๊ฑด์ ๋ง์กฑ์์ผ์ผ ํ๋ค.
- ์ํธ๋ฐฐ์ : ์ด๋ค ํ๋ก์ธ์ค๊ฐ ์๊ณ ๊ตฌ์ญ์ ์๋ค๋ฉด ๋ค๋ฅธ ์ค๋ ๋๋ ์๊ณ๊ตฌ์ญ์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
- ์๊ณ๊ตฌ์ญ์ ์ค๋ ๋๊ฐ ์๊ณ ๋ค์์ ์ค๋ ๋๊ฐ ์๊ณ๊ตฌ์ญ ์ง์ ์ ์ํด ๋๊ธฐ์ค์ด๋ผ๋ฉด ํ๋์ ์ค๋ ๋๋ฅผ ์ ์ ํ๊ฒ ๊ณจ๋ผ ์๊ณ๊ตฌ์ญ์ ์ง์ ์์ผ์ผ ํ๋ค.
- ํ๋ฒ ์๊ณ๊ตฌ์ญ์ ์ง์ ํ๋ ์ค๋ ๋๋ ๋ค์ ์คํ์ ๋ํ ์ ํ์ ๋ฐ์์ผ ํ๋ค.
โ๏ธ ์๊ณ๊ตฌ์ญ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ํ๋์จ์ด์ ์ธ ๋ฐฉ๋ฒ
Test&Set๊ณผ Compare-and-Swap์ด ์๋ค. ๋ ๋ฐฉ๋ฒ ๋ชจ๋ ์๊ณ๊ตฌ์ญ ์ง์ ์ ์ํ ์์์ ์ธ ์ฐ์ฐ์ ๋ณด์ฅํ๋ค. ์ด๋ฅผ ํตํด ์ํธ๋ฐฐ์ ์ ์งํ์กฐ๊ฑด์ ๋ง์กฑ์ํจ๋ค. ํ์ง๋ง ํ๋ฒ ์๊ณ๊ตฌ์ญ์ ์ง์ ํ๋ ์ค๋ ๋๊ฐ ๋ค์ ์๊ณ๊ตฌ์ญ์ผ๋ก ์ฌ์ง์ ํ๋ ๊ฒ์ ์ ํํ์ง ์๊ธฐ ๋๋ฌธ์ ํ์ ๋๊ธฐ ์๊ตฌ์กฐ๊ฑด์ ๋ง์กฑ์ํค์ง๋ ๋ชปํ๋ค.
โ๏ธ ์ธ๋งํฌ์ด๋
Wait, Signal์ ์์์ ๋ช ๋ น์ ์ฌ์ฉํด์ ๊ณต์ ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ์ธ๋งํฌ์ด๋ ์ ์๊ฐ์ ๊ฐ์ง๊ณ ์ด ๊ฐ์ด ์๊ณ๊ตฌ์ญ ๋ด์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ์์์ ๊ฐ์๋ฅผ ์๋ฏธํ๋ค. ์ด๋ค ์ค๋ ๋๊ฐ ์์์ ํ๋ํ๋ฉด ์ธ๋งํฌ์ด์ ๊ฐ์ด ๊ฐ์ํ๊ณ , ๋ฐฉ์ถํ๋ฉด ์ธ๋งํฌ์ด์ ๊ฐ์ด ์ฆ๊ฐํ๋ค.
โ๏ธ ์ธ๋งํฌ์ด์ ๋จ์
์ค๋ ๋๊ฐ ์๊ณ๊ตฌ์ญ์ ์๋ฆฌ๊ฐ ์๊ธธ ๋๊น์ง ๋ฌดํ๋ฃจํ๋ฅผ ๋๋ฉฐ ๊ธฐ๋ค๋ฆฌ๊ฒ ํ๋ ์คํ๋ฝ์ผ๋ก ๊ตฌํ๋์ด ์๋ค. ์ด ๋๋ฌธ์ ๋ถํ์ํ CPU Time์ ์ฌ์ฉํ๋ค๋ ๋จ์ ์ด ์๋ค.
โ๏ธ ๊ทธ๋ผ ๋ฎคํ ์ค๋ ๋ฌด์์ธ๊ฐ
๋ฎคํ ์ค๋ ๋ฝ์ ํ๋ํ ์ค๋ ๋๋ง์ด ๋ฝ์ ๋ฐฉ์ถํ ์ ์๋ ๋ฐ๋ฉด์ ์ธ๋งํฌ์ด๋ signal ํจ์์ ์ํด ๋ฝ์ ํ๋ํ๊ณ ์์ง ์์ ์ค๋ ๋๋ ์ธ๋งํฌ์ด์ ๊ฐ์ ์ฆ๊ฐ์์ผ ๋ค๋ฅธ ์ค๋ ๋๋ฅผ ์๊ณ๊ตฌ์ญ์ผ๋ก ์ง์ ์ํฌ ์ ์๋ค.
โ๏ธ DeadLock์ด๋
ํ๋ก์ธ์ค๋ ์ค๋ ๋๊ฐ ์๋ก์ ์์์ ์ป๊ธฐ ์ํด ๋ฌดํ์ ํ๊ฒ ๋๊ธฐํ๊ณ ์๋ ์ํ
โ๏ธ DeadLock์ ๋ฐ์์กฐ๊ฑด
4๊ฐ์ง ์กฐ๊ฑด
- ์ํธ๋ฐฐ์ : ํ ์ค๋ ๋๋ง ์์์ ์ ๊ทผํ ์ ์๋ค.
- ์ ์ ๋๊ธฐ : ์ด๋ฏธ ํ๋์ ์์์ ์ ์ ํ๊ณ ์๋ ์ํ์์ ๋ค๋ฅธ ์ค๋ ๋์ ํ ๋น๋ ์์์ ์ ์ ํ๋ ค๋ ์ค๋ ๋๊ฐ ์กด์ฌํด์ผํ๋ค.
- ๋น์ ์ : ํ ์ค๋ ๋์ ํ ๋น๋ ์์์ ์ค์ค๋ก ๋ฐฉ์ถํ ๋๊น์ง ์ ์ ๋ ์ ์๋ค.
- ์ํ๋๊ธฐ : ์์์ ์ ์ ํ๋ ค๋ ์ค๋ ๋๋ค์ด ์ํํํ๋ก ์์ ์ ์ ๋ฅผ ์ํด ๋๊ธฐํด์ผ ํ๋ค.
โ๏ธ DeadLock์ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ
4๊ฐ์ง ๋ฐฉ๋ฒ
- ์๋ฐฉ : ๊ต์ฐฉ ์ํ๊ฐ ๋ฐ์ํ๋ ๋ค ์กฐ๊ฑด์ค ํ๋๋ง ํด๊ฒฐํ๋ค.
- ํํผ : ์์ ํ ๋น ๊ทธ๋ํ๋ ์ํ์ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ์ง ์๋๋ก ํ๋ค.
- ํ๋ณต : ๋ฐ์ํ ๊ต์ฐฉ์ํ๋ฅผ ํด๊ฒฐํ๋ค.
- ๋ฌด์ : ๊ต์ฐฉ์ํ๋ฅผ ๋ฌด์ํ๋ค.
โ๏ธ ์์ ํ ๋น ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ์ด๋
๊ฐ ์ค๋ ๋๊ฐ ๊ณต์ ์์์ ๊ทธ๋ํ์ ์ ์ ์ผ๋ก ๋ง๋ ๋ค. ํ ์ค๋ ๋๊ฐ ๋ค๋ฅธ ์ค๋ ๋์๊ฒ ์์ฒญ์ ํ ๋๋ ์์ฒญ ๊ฐ์ ์ ๋ ์ค๋ ๋ ์ฌ์ด์ ๋ง๋ ๋ค. ๊ทธ๋ฆฌ๊ณ ํ ์ค๋ ๋๊ฐ ์์์ ํ๋ํ๋ฉด ํ ๋น์ ์ ๋ง๋ค๊ฒ ๋๋ค. ์ด ๋ ๊ฐ ์ ์ ๋ค ์ฌ์ด์ ์ฌ์ดํด์ด ๋ฐ์ํ๋ฉด ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ๋จํ๋ค.
โ๏ธ ์ํ์ ์๊ณ ๋ฆฌ์ฆ์ด๋
์์ ์ํ์ ๋ถ์์ ์ํ ๊ฐ๋ ์ ์ฌ์ฉํ๋ค. ์์ ์ํ๋ ์ค๋ ๋๊ฐ ์๊ตฌํ๋งํผ ์์ํ ๋น์ด ๊ฐ๋ฅํ ์ํ๋ฅผ ๋งํ๊ณ , ์ด๋๋ ๊ต์ฐฉ์ํ๊ฐ ๋ฐ์ํ์ง ์๋๋ค. ๋ถ์์ ์ํ๋ ์๊ตฌ๋ฐ์ ๋งํผ์ ์์์ ๊ฐ์ง๊ณ ์์ง ์์ ์ํ๋ฅผ ๋งํ๋ค. ์ด์์ฒด์ ๋ ์์ ํ ๋น ์์ฒญ์ ๋ฐ์์๋ ํด๋น ์์์ ํ ๋นํ ์ดํ์ ์์ ์ํ๊ฐ ์ ์ง๋๋์ง ๋ฏธ๋ฆฌ ๊ฒ์ฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ์ํ๊ฐ ์ ์ง๋๋ ์์ ์๊ตฌ๋ง์ ์๋ฝํ๊ณ ๋ถ์์ ์ํ๋ฅผ ๋ง๋๋ ์์ฒญ์ ๋ชจ๋ ๊ฑฐ์ ํ๋ค.
โ ๋ฉ๋ชจ๋ฆฌ
โ๏ธ MMU๋?
CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์์ ์ฃผ์์ ์์ญ์ ์ค์ ํ๋ ์ญํ ์ ํ๋ค. MMU ๋ด๋ถ์๋ ์ฌ๋ฐฐ์น ๋ ์ง์คํฐ๊ฐ ์กด์ฌํด์ CPU๊ฐ ์๊ตฌํ๋ ๋ฉ๋ชจ๋ฆฌ์ ์์น์ ์ค์ ๋ฉ๋ชจ๋ฆฌ์์ ํ๋ก๊ทธ๋จ์ ์์น๋ฅผ ๋ง์ถฐ์ค๋ค. ์ฆ, ๋ ผ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ ์ฃผ์๋ก ๋ณํํ๋ ์์ ์ ํ๋ค.
โ๏ธ Swapping์ด๋?
ํ์ฌ ์คํ ์ค์ด์ง ์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์จ ํ๋ก์ธ์ค ๋์คํฌ์ ์์ ์ ์ฅํ๊ณ ํ์ํ ๋ ๋ค์ ๋ถ๋ฌ์ค๋ฉฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๋ค.
โ๏ธ Swapping์ ๋ฌธ์ ์
์์ ์ ์ฅ์ ๋์คํฌ์ ํ๊ธฐ ๋๋ฌธ์ ์ค์์ ์๋๊ฐ ์ค๋๊ฑธ๋ฆฐ๋ค. ์ค์ ๋ก ์ฌ์ฉํ ๋๋ ์ ์ฒด ํ๋ก์ธ์ค๋ฅผ ์ค์ํํ๋๊ฒ์ด ์๋๋ผ ํ๋ก์ธ์ค์ ์ผ๋ถ์ธ ํ์ด์ง๋ง ์ค์ํ๊ฑฐ๋ ๋์คํฌ๋ด์ ํ์ผ์์คํ ๊ณผ ๋ถ๋ฆฌ๋ ์ค์๊ณต๊ฐ์ ๋ง๋๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ค.
โ๏ธ ์ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐฉ๋ฒ
- ์ต์ด์ ํฉ : ๋ฉ๋ชจ๋ฆฌ์ ์์์ด๋ ๋์ง์ ๋ถํฐ ํ์ํ๋ฉด์ ์์ฒญ๋ฐ์ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ ์ ์๋ ๊ณต๊ฐ์ด ๋ฐ๊ฒฌ๋๋ฉด ๊ณง๋ฐ๋ก ํ ๋น
- ์ต์ ์ ํฉ : ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ์ ๋จ์ ๊ณต๊ฐ์ ๋ค ํ์ธํด๋ณด๊ณ ์์ฒญ๋ฐ์ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ ์ ์๋ ๊ฐ์ฅ ์์ ๊ณต๊ฐ์ ํ ๋น
- ์ต์ ์ ํฉ : ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ์ ๋จ์ ๊ณต๊ฐ์ ๋ค ํ์ธํด๋ณด๊ณ ์์ฒญ๋ฐ์ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ ์ ์๋ ๊ฐ์ฅ ํฐ ๊ณต๊ฐ์ ํ ๋น
โ๏ธ ๋ฉ๋ชจ๋ฆฌ๋จํธํ์ ๋ํด์
๋ด๋ถ ๋จํธํ๋ ํ๋ก์ธ์ค๋ฅผ ๋์ผํ ํฌ๊ธฐ์ ํ์ด์ง๋ก ๋ถํ ํ ๋, ํ์ด์ง๋ฅผ ๋ชจ๋ ๋ค ์ฌ์ฉํ์ง ์๊ณ ๋ง์ง๋ง ํ์ด์ง์ ์ผ๋ถ๋ง์ ์ฌ์ฉํ์ฌ ํ์ด์ง ๋ด๋ถ์ ๋น ๊ณต๊ฐ์ด ๋จ๊ฒ๋๋ ์ํ์ด๋ค. ์ธ๋ถ ๋จํธํ๋ ํ๋ก์ธ์ค๋ฅผ ์ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋นํ ๋, ํฉ์ด์ง ๋น ๊ณต๊ฐ์ ํฉ์น๋ฉด ํ๋ก์ธ์ค๋ฅผ ๋ก๋ํ ์ ์๋ ๋งํผ์ ์ฌ์ ๊ณต๊ฐ์ด ์์ง๋ง ๊ฐ๊ฐ์ ๋น ๊ณต๊ฐ๋ค์ด ์์ฒญ๋ฐ์ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ ์ ์๋ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง์ง ๋ชปํด ํ๋ก์ธ์ค๋ฅผ ๋ก๋ํ ์ ์๋ ์ํ
โ๏ธ ํ์ด์ง ํ ์ด๋ธ์ด๋
ํ ํ๋ก์ธ์ค์ ๋ํ ๋ ผ๋ฆฌ์ฃผ์์ ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ๋งตํํ ์ ๋ณด๋ฅผ ๊ฐ์ง ํ ์ด๋ธ์ด๋ค. ํ์ด์ง ํ ์ด๋ธ์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๊ณ ๊ฐ ํ๋ก์ธ์ค๋ค์ PTBR ( Page Table Base Register )๋ฅผ ์ฌ์ฉํด์ ํ์ด์ง ํ ์ด๋ธ์ ํฌ์ธํฐ๋ฅผ ์ ์ฅํ๋ค. ๋ฐ๋ผ์ ํ๋ก์ธ์ค๊ฐ ๋ณ๊ฒฝ๋ ๋๋ ํ์ด์ง ํ ์ด๋ธ์ ๊ต์ฒดํ๋ ๊ฒ์ด ์๋๋ผ ํฌ์ธํฐ ์ฃผ์๋ง ๋ฐ๊ฟ์ ์ค๋ฒํค๋๋ฅผ ์ต์ํํ๋ค.
โ๏ธ TLB๋ฅผ ์ ์ฐ๊ณ ์ด๋ป๊ฒ ์ฐ๋๊ฑด์ง ?
ํ์ด์ง ํ ์ด๋ธ์ ๊ด์ ์์ CPU๊ฐ ์์ฒญํ๋ ์ฃผ์๊ฐ ์ค์ ํ์ด์ง๊น์ง ๋๋ฌํ๊ธฐ ์ํด์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ฒ ์ฝ์ด์ผ ํ๋ค. ๋จผ์ ๋ ์ง์คํฐ์ ์ ์ฅ๋ ํ์ด์ง ํ ์ด๋ธ ํฌ์ธํฐ๋ฅผ ์ฝ์ด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํ์ด์ง ํ ์ด๋ธ์ ์ฝ๊ณ , ํ์ด์ง ํ ์ด๋ธ์ ๋งตํ๋ ๋ฌผ๋ฆฌ์ฃผ์์ ์ ๊ทผํด ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ ํ๋ฒ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฝ๊ฒ ๋๋ค. ์ด ๋ ๋ฐ์ํ๋ ์ง์ฐ์๊ฐ์ ์ต์ํํ๊ธฐ ์ํด์ TLB๋ฅผ ์ฌ์ฉํ๋ค.
CPU ์์ฒญํ๋ ์ฃผ์๋ฅผ ์ฐพ๊ธฐ ์ํด ๋ฐ๋ก ํ์ด์ง์ ์ ๊ทผํ์ง ์๊ณ TLB์ ํด๋น ๋ ผ๋ฆฌ์ฃผ์์ ๋ํ ๋งตํ ์ฃผ์๊ฐ ์๋์ง ํ์ธํ๋ค. ๋ง์ฝ ๋งตํ์ ๋ณด๊ฐ ์กด์ฌํ๋ค๋ฉด ํ์ด์ง ํ ์ด๋ธ์ ๊ฑฐ์น์ง ์๊ณ ๊ณง๋ฐ๋ก ๋งตํ๋ ๋ฌผ๋ฆฌ ์ฃผ์์ ์ ๊ทผํ๋ค. ๋ง์ฝ ์ ๋ณด๊ฐ ์๋ค๋ฉด ํ์ด์ง ํ ์ด๋ธ์ ์ฝ์ด ๋ฌผ๋ฆฌ์ฃผ์๋ฅผ ํ์ธํ ๋ค ์์ ์ ์ํํ๋ค.
โ๏ธ ๊ณต์ ํ์ด์ง๋?
๋๊ฐ์ ์ฝ๋ ์์ญ์ ์ฌ์ฉํ๋ ๋ค์์ ํ๋ก์ธ์ค๊ฐ ์์ ๋ ํ๋์ ํ์ด์ง๋ง ์ ์งํ๊ณ ๊ฐ ํ๋ก์ธ์ค์ ํ์ด์ง ํ ์ด๋ธ์ด ํด๋น ํ์ด์ง๋ฅผ ๊ฐ๋ฅดํค๊ฒ ํ๋ ๊ธฐ๋ฒ์ด๋ค. ์ด๋ฅผ ํตํด ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ์ค๋ณต์ผ๋ก ์ฌ์ฉํ๋ ํ์ด์ง๋ฅผ ํ๋๋ง ์ ์งํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฝํ ์ ์๋ค.
โ๏ธ ์๊ตฌํ์ด์ง์ด๋ ?
ํ๋ก์ธ์ค์ ํ์ด์ง๋ฅผ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ ๋น์ฅ ์ฌ์ฉํ ํ์ด์ง๋ง ๋ก๋ํ์ฌ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. ํ์ด์ง ํ ์ด๋ธ์ ์ํธ๋ฆฌ์ valid bit์ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก ๊ตฌํํ๋ค. ๋ง์ฝ CPU์ ์ ๊ทผํ๋ ค๋ ํ์ด์ง๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์๋ค๋ฉด invalid bit ๋ฅผ ํ์ํ๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ค๋ฉด valid bit ๋ก ํ์ํ๋ค.
โ๏ธ ํ์ด์ง ํดํธ๊ฐ ์ผ์ด๋ฌ์ ๋ ์ด๋ค ์ผ์ด ์ผ์ด๋๋์ง ?
CPU๊ฐ ์์ฒญํ ๋ ผ๋ฆฌ์ฃผ์๊ฐ ํ์ด์ง ํ ์ด๋ธ ์์ invalid ๋นํธ๋ก ์ค์ ๋์ด ์๋ค๋ฉด ํ์ด์ง ํ ์ด๋ธ์ด CPU๋ก ์ธํฐ๋ฝํธ๋ฅผ ๋ณด๋ธ๋ค. ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์ CPU๋ ์ด์์ฒด์ ์๊ฒ Page Fault Routing์ ์๊ตฌํ๋ค. ์ด์์ฒด์ ๋ backing store ํน์ ์ค์ ๊ณต๊ฐ์์ CPU๊ฐ ์ํ๋ ํ์ด์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ๋ก ๊ฐ์ ธ์จ๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ด์ง ํ ์ด๋ธ์ valid bit๋ฅผ valid๋ก ๋ฐ๊ฟ์ค๋ค.
โ๏ธ ์ง์ญ์ฑ์ ์๋ฆฌ
์๊ฐ์ ์ง์ญ์ฑ์ ์ต๊ทผ์ ์ฐธ์กฐํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ๋ค์ ์ฐธ์กฐํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ๊ฒ์ด๊ณ , ๊ณต๊ฐ์ ์ง์ญ์ฑ์ ์ด๋ค ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฐธ์กฐํ์ ๋ ๋ค์์ ์ฐธ์กฐํ ๋ฉ๋ชจ๋ฆฌ๋ ํด๋น ์ฃผ์ ๊ทผ์ฒ์ ์์ ํ๋ฅ ์ด ๋๋ค๋ ๊ฒ์ด๋ค.
โ๏ธ ํ์ด์ง ๊ต์ฒด ์๊ณ ๋ฆฌ์ฆ์ ์ข ๋ฅ
FIFO : ๊ฐ์ฅ ๋จผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์๋ ํ์ด์ง๋ฅผ ๋์คํฌ๋ก ๋ด๋ณด๋ธ๋ค.
OPT : ํ์ฌ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํ๋ก์ธ์ค ์ค ๊ฐ์ฅ ์ค๋ซ๋์ ์ฌ์ฉ๋์ง ์์ ํ์ด์ง๋ฅผ ์ ํ ( SJF์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ตฌํ ๋ถ๊ฐ๋ฅ )
LFU : ์ผ์ ์ฃผ๊ธฐ๋์ ์ฐธ์กฐํ์๊ฐ ๊ฐ์ฅ ์ ์ ํ์ด์ง๋ฅผ ์ ํ
LRU : ๋ง์ง๋ง์ผ๋ก ๊ฐ์ฅ ์ค๋ซ๋์ ์ฐธ์กฐ๋์ง ์์ ํ์ด์ง๋ฅผ ์ ํ
'๐ป > CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฃ๊ตฌ์กฐ (1) | 2024.01.02 |
---|