์ค์ผ์ค๋ฌ(Scheduler)
์ด๋ค ํ๋ก์ธ์ค์๊ฒ ์์์ ํ ๋นํ ์ง ๊ฒฐ์ ํ๋ OS์ปค๋์ ๋ชจ๋
ํ๋ก์ธ์ค ์ค์ผ์ค๋ฌ์ ์ข ๋ฅ์๋ ์ฅ๊ธฐ, ์ค๊ธฐ, ๋จ๊ธฐ๊ฐ ์๋ค.
ํ๋ก์ธ์ค ์ค์ผ์ค๋ฌ์ ์ข ๋ฅ
์ฅ๊ธฐ ์ค์ผ์ค๋ฌ(Long-term Scheduler) / job Scheduler
- ํ์ ๋ ๋ฉ๋ชจ๋ฆฌ์์ ์ด๋ค ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ์ฌ Ready Queue์ ๋ณด๋ผ์ง ๊ฒฐ์ ํด์ฃผ๋ ์์
์ ๋ปํ๋ค.
- ๊ฐ๋จํ๊ฒ ๋งํ์๋ฉด ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์ปค๋์ ๋ฑ๋กํ ๊ฒ์ธ์ง ์ ํ๋ ์์
์๋ฅผ ๋ค์ด ๋ด๊ฐ ์ํํด์ผํ ์ผ์ด 10๊ฐ์ธ๋ฐ, ๋ฉ๋ชจ๋ฆฌ์๋ 7๊ฐ๋ฐ์ ์ฌ๋ฆฌ์ง ๋ชปํจ
์ด๋, 7๊ฐ๋ฅผ ๊ณจ๋ผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ผํ๋๋ฐ ์ด๋ค๊ฒ์ ๊ณจ๋ผ์ ์ฌ๋ฆด์ง ๊ฒฐ์ ํ๋๊ฒ ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ
job์ ๊ณ ๋ฅด๋๊ฑฐ๋ผ๊ณ ํด์ job Scheduler ๋ผ๊ณ ๋ ๋ถ๋ฆผ
๋จ๊ธฐ ์ค์ผ์ค๋ฌ(short-term Scheduler) / CPU Scheduler
- ์ด๋ค ํ๋ก์ธ์ค๋ฅผ CPU์ ํ ๋นํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ ์์ , Ready Queue์ ์ฌ๋ผ๊ฐ ์๋ ํ๋ก์ธ์ค ์ค์ CPU๋ฅผ ์ฐจ์งํ ๋ ์์ ๊ณจ๋ผ์ฃผ๋ ์ญํ
์ฅ๊ธฐ ์ค์ผ์ค๋ฌ์ ์ํด 7๊ฐ์ ์์
์ด ๋ฉ๋ชจ๋ฆฌ์ ์์ง๋ง, CPU๋ ํ๋๋ฐ์ ์ํํ์ง ๋ชปํจ
์ด๋ 7๊ฐ์ค์ ํ๋๋ฅผ ๋ ๊ณจ๋ผ์ผํ๋๋ฐ ์ด ์ญํ ์ ํ๋๊ฒ ๋จ๊ธฐ ์ค์ผ์ค๋ฌ
๊ฒฐ๊ตญ CPU๋ฅผ ์ฐจ์งํ ์์
์ ์ค์ผ์ค๋งํด์ฃผ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ๋ง๋ก CPU Scheduler๋ผ๊ณ ๋ ๋ถ๋ฆผ
๐ก ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ๋ ์์ฆ์ ์๋ค?
์์ฆ์ 10๊ฐ๊ฐ ์คํ์ค๋น๋๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ก 10๊ฐ๊ฐ ์ ๋ถ ์ฌ๋ผ๊ฐ๋ค.
์ด์ ์ ์์๋ virtual memory management๊ฐ ๋ฐ๋ฌ๋์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ์์ฆ์๋ ์ฅ๊ธฐ์ค์ผ์ค๋ฌ๊ฐ ์๋ฏธ๊ฐ ์๋ค.
์ค๊ธฐ ์ค์ผ์ค๋ฌ(Mid-term Scheduler)
- ์ด๋ค ํ๋ก์ธ์ค๋ค์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ์ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ ์์
- ์ด๋ฌํ ํ๋ก์ธ์ค๊ฐ ๋ง์ ๊ฒฝ์ฐ ๊ณผ๋ถํ ๋ฐฉ์ง๋ฅผ ์ํด ํ๋ก์ธ์ค๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ง(Waiting)์ํค๋ฉด์ ๊ด๋ฆฌํ๋ค.
์ฅ๊ธฐ ์ค์ผ์ค๋ฌ์์ ์ ํ๋ 7๊ฐ๋ฅผ ์ํํ๊ณ ์๋ค๊ณ ๊ฐ์ ํ์.
CPU์์๋ 7๊ฐ๋ฅผ ์ํํ๋ ค๊ณ ํ์ง๋ง ๋๋ฌด ๋ง์ ๊ฐ๋นํ๊ธฐ ํ๋ ์ํ๋ผ์ ๋ช ๊ฐ๋ฅผ ๋ด๋ณด๋ด๋ ค๊ณ ํ๋ค.
์ด๋ 7๊ฐ ์ค์ ๋ญ ๊ณจ๋ผ์ผํ๋์ง ๊ฒฐ์ ํ๋๊ฒ ์ค๊ธฐ ์ค์ผ์ค๋ฌ
์ฆ, ํ ์์คํ
์์ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฌด ๋ง์ ํ๋ก๊ทธ๋จ์ด ๋์์ ์ฌ๋ผ๊ฐ๋ ๊ฒ ์กฐ์ ์ ๋ด๋นํ๋ค.
์ด ์น๊ตฌ๋ ์์ฆ ์ด์์ฒด์ ์๋ ์์ง๋ง ๊ฐ๋
์ ์์๋์.