Scheduler
Process Scheduling์ ์ํ Queue์ ์ข
๋ฅ (3๊ฐ์ง)
Job Queue
ํ์ฌ ์์คํ ๋ด์ ์๋ ๋ชจ๋ process์ ์งํฉ
Ready Queue
ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์์ผ๋ฉด์ CPU๋ฅผ ์ก์์ ์คํ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ process์ ์งํฉ
Device Queue
Device I/O ์์ ์ ๋๊ธฐํ๊ณ ์๋ process์ ์งํฉ
Scheduler์ ์ข
๋ฅ
์ฅ๊ธฐ ์ค์ผ์ค๋ฌ (Job scheduler)
๋ฉ๋ชจ๋ฆฌ๋ ํ์ ๋์ด ์๋๋ฐ ๋ง์ ํ๋ก์ธ์ค๋ค์ด ํ๊บผ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ฌ ๊ฒฝ์ฐ, ๋์ฉ๋ ๋ฉ๋ชจ๋ฆฌ (์ผ๋ฐ์ ์ผ๋ก ๋์คํฌ)์ ์์๋ก ์ ์ฅ๋๋ค
โ ์ด pool์ ์ ์ฅ๋์ด ์๋ process ์ค,
์ด๋ค process์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ์ฌ ready queue๋ก ๋ณด๋ผ์ง ๊ฒฐ์
ํ๋ ์ญํ ์ ํ๋ค
๋ฉ๋ชจ๋ฆฌ
์๋์คํฌ
์ฌ์ด์ ์ค์ผ์ค๋ง์ ๋ด๋นํ๋คprocess์ memory๋ฅผ ๋น๋กฏํ ๊ฐ์ข ๋ฆฌ์์ค๋ฅผ ํ ๋นํ๋ค (admit)
์คํ์ค์ธ ํ๋ก์ธ์ค์ ์๋ฅผ ์ ์ดํ๋ค
ํ๋ก์ธ์ค์ ์ํ๋ฅผ new โ ready (in memory)๋ก ๋ฐ๊พผ๋ค
์ฐธ๊ณ )
memory์ ํ๋ก๊ทธ๋จ์ด ๋๋ฌด ๋ง์ด ์ฌ๋ผ๊ฐ๋, ๋๋ฌด ์ ๊ฒ ์ฌ๋ผ๊ฐ๋ ์ฑ๋ฅ์ด ์ข์ง ์์ ๊ฒ์ด๋ค.
์ฐธ๊ณ ๋ก time sharing system์์๋ ์ฅ๊ธฐ ์ค์ผ์ค๋ฌ๊ฐ ์๋ค
๊ทธ๋ฅ ๊ณง๋ฐ๋ก memory์ ์ฌ๋ผ๊ฐ ready ์ํ๊ฐ ๋๋ค
๋จ๊ธฐ ์ค์ผ์ค๋ฌ (CPU scheduler)
CPU
์๋ฉ๋ชจ๋ฆฌ
์ฌ์ด์ ์ค์ผ์ค๋ง์ ๋ด๋นReady Queue
์ ์กด์ฌํ๋ process ์ค์ ์ด๋ค process๋ฅผ running ์ํฌ์ง ๊ฒฐ์ Process์
CPU๋ฅผ ํ ๋น
scheduler dispatch
ํ๋ก์ธ์ค์ ์ํ๋ฅผ ready โ running โ waiting โ ready๋ก ๋ณ๊ฒฝ์ํจ๋ค
์ค๊ธฐ ์ค์ผ์ค๋ฌ
Swapping!
์ฌ์ ๊ณต๊ฐ ๋ง๋ จ์ ์ํด process๋ฅผ ํต์งธ๋ก ๋ฉ๋ชจ๋ฆฌ โ ๋์คํฌ๋ก ์ซ์๋ (
swapping
)process ์๊ฒ์ memory๋ฅผ deallocation
process์์ memory ํ ๋น์ ํด์ ํ๋ค!!
ํ ์์คํ ์์ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฌด ๋ง์ ํ๋ก๊ทธ๋จ์ด ๋์์ ์ฌ๋ผ๊ฐ๋ ๊ฒ์ ์กฐ์ ํ๋ ์ค์ผ์ค๋ฌ
ํ๋ก์ธ์ค์ ์ํ๋ฅผ ready โ suspended๋ก ๋ฐ๊พผ๋ค
Process state - suspended ๋?
์ธ๋ถ์ ์ธ ์ด์ ๋ก process์ ์ํ์ด ์ ์ง๋ ์ํ๋ก, memory์์ ๋ด๋ ค๊ฐ ์ํ๋ฅผ ์๋ฏธํ๋ค
process ์ ๋ถ ๋์คํฌ๋ก
swap out
๋๋คBlocked
์ํ๋ ๋ค๋ฅธ I/O ์์ ์ ๊ธฐ๋ค๋ฆฌ๋ ์ํ์ด๊ธฐ ๋๋ฌธ์, ์ค์ค๋ก ready๋ก ๋์๊ฐ ์ ์์ง๋ง,์ด ์ํ๋ ์ธ๋ถ์ ์ธ ์ด์ ๋ก suspending ๋์๊ธฐ ๋๋ฌธ์ ์ค์ค๋ก ๋์๊ฐ ์ ์๋ค
Last updated