๐์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
๐FCFS(first-come-first-service)
๐๊ฐ๋
- non-preemptive sheduling
- ์ค์ผ์ค๋ง ๊ธฐ์ค : ์ ์ฐฉ์์ผ๋ก ์ฒ๋ฆฌ(ready queue ๊ธฐ์ค)
โ๏ธํน์ง
- high resource utilization(high Tr/Tc) ์ฆ, scheduling overhead๊ฐ ๋ฎ๋ค.
- batch system์ ์ ํฉ / interactive system์ ๋ถ์ ํฉ
- ๊ธด ํ๊ท ์๋ต์๊ฐ
- convoy effect
- ๋๋ 1์ด๋ฉด ๋๋๋ ์์
์ธ๋ฐ ๋ด์์ 10์ด๊ฑธ๋ฆฌ๋ ์์
์ด ์งํ์ค์ด๋ผ ๊ธฐ๋ค๋ฆผ
- ์ํ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค์ ์ํด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ๊ธด ๋๊ธฐ์๊ฐ์ ๊ฐ๊ฒ ๋๋ ํ์
๐RR(round-robin)
๐๊ฐ๋
- preemptive sheduling
- ์ค์ผ์ค๋ง ๊ธฐ์ค : ์ ์ฐฉ์์ผ๋ก ์ฒ๋ฆฌ(ready queue ๊ธฐ์ค)
- ๋จ, ์์ ์ฌ์ฉ์ ํ์๊ฐ(time quantum)์ด ์กด์ฌํ๋ฉฐ ํ๋ก์ธ์ค๋ ํ ๋น๋ ์๊ฐ์ด ์ง๋๋ฉด ์์ ๋ฐ๋ฉ
โ๏ธํน์ง
- ํน์ ํ๋ก์ธ์ค์ ์์ ๋
์ ๋ฐฉ์ง
- context switch overhead๊ฐ ํฌ๋ค
- ๋ํํ(interactive), ์๋ถํ ์์คํ
์ ์ ํฉ
- time quantum์ด ์์คํ
์ฑ๋ฅ์ ๊ฒฐ์ ํ๋ ์ค์ํ ์์
- time quantum to infinite : ์ฌ์ค์ FCFS
- time quantum to zero : processor sharing(ํ๋ก์ธ์๋ฅผ ๋์์ ์ฐ๋ ๋๋)
- ์ด๋ ์ฒด๊ฐ ํ๋ก์ธ์ ์๋ = ์ค์ ํ๋ก์ธ์ ์ฑ๋ฅ์ 1/n
- ๊ทธ๋ฌ๋ high context switch overhead
๐SPN(shortest-process-Next) ๋๋ SJF(shortest-job-fist)
๐๊ฐ๋
- non preemptive scheduling
- ์ค์ผ์ค๋ง ๊ธฐ์ค : ์คํ์๊ฐ(burst time)์ด ๊ฐ์ฅ ์์ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ฒ๋ฆฌ
โ๏ธํน์ง
- ํ๊ท ๋๊ธฐ์๊ฐ(WT) ์ต์ํ
- ์์คํ
๋ด ํ๋ก์ธ์ค์ ์ต์ํ
- ์ค์ผ์ค๋ง ๋ถํ ๊ฐ์, ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ
- ๋ง์ ํ๋ก์ธ์ค๋ค์๊ฒ ๋น ๋ฅธ ์๋ต ์๊ฐ ์ ๊ณต
- ๋ฌดํ๋๊ธฐ ํ์ ๋ฐ์ : BT(burst time)๊ฐ ๊ธด ํ๋ก์ธ์ค๋ ์์์ ํ ๋น๋ฐ์ง ๋ชปํ ์ ์์
- ์ ํํ ์คํ์๊ฐ(BT)์ ์ ์ ์์ : ์คํ์๊ฐ ์์ธก ๊ธฐ๋ฒ์ด ํ์ํ๋ค.
๐SRTN(shortest-remaining-time-next)
๐๊ฐ๋
- preemptive scheduling
- ์ค์ผ์ค๋ง ๊ธฐ์ค : ์์ฌ ์คํ ์๊ฐ์ด ๋์ ์ ํ๋ก์ธ์ค๊ฐ ready๋๋ฉด ์ ์
- SPN์ ๋ณํ
โ๏ธํน์ง
- BT์์ธก ํ์
- ์์ฌ์คํ์ ๊ณ์ ์ถ์ ํจ => overhead
- context switching overhead
๐HRRN(high-response-ratio-next)
๐๊ฐ๋
- non preemptive scheduling
- SPN์ ๋ณํ : SPN + aging concepts
- aging concepts : ํ๋ก์ธ์ค ๋๊ธฐ์๊ฐ(WT)๋ฅผ ๊ณ ๋ คํ์ฌ ๊ธฐํ ์ ๊ณต
- ์ค์ผ์ค๋ง ๊ธฐ์ค : response ratio๊ฐ ๋์ ํ๋ก์ธ์ค ์ฐ์
- response ratio
- ์๋ต๋ฅ ( WT+BT / BT )
- ํ์ํ ์คํ์๊ฐ ๋๋น ์ผ๋ง๋ ๊ธฐ๋ค๋ ธ๋? ์งํ
โ๏ธํน์ง
- SPN ์ฅ์ + starvation(๋ฌดํ๋๊ธฐ ํ์) ๋ฐฉ์ง
- ์คํ์๊ฐ ์์ธก ๊ธฐ๋ฒ ํ์ => overhead
๐MLQ(muilti-level-queue)
๐๊ฐ๋
- ์์
๋ณ ๋ณ๋์ ready queue๋ฅผ ๊ฐ์ง๋ค
- ์ต์ด ๋ฐฐ์ ๋ queue๋ฅผ ๋ฒ์ด๋์ง ์๋๋ค
- ๊ฐ๊ฐ์ queue๋ ์์ ๋ง์ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ ์ฌ์ฉ
- queue ์ฌ์ด์์๋ ์ฐ์ ์์ ๊ธฐ๋ฐ์ ์ค์ผ์ค๋ง ์ฌ์ฉ
โ๏ธํน์ง
- ์ฌ๋ฌ queue๊ด๋ฆฌ๋ก overhead
- ์ฐ์ ์์ ๋ฎ์ queue๋ startvation ๋ฐ์
๐MFQ(muilti-level-feedback-queue)
๐๊ฐ๋
- preemptive scheduling
- ํ๋ก์ธ์ค queue๊ฐ ์ด๋์ด ํ์ฉ๋ MLQ
- feedback์ ํตํด ์ฐ์ ์์ ์กฐ์
โ๏ธํน์ง
- dynamic priority
- favor short BT processes ๋๋ favor I/O bounded processes
- improve adaptability : ๊ฐ ํ์ ์๊ฐ ํ ๋น๋ ์กฐ์ ๋ก ํ๋ก์ธ์ค ํน์ฑ์ ๋ง๊ฒ ์์คํ
์ด์
- BT๋ฅผ ์์ธกํ์ง ์์๋ SPN, SRTN, HRRN์ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค.
- ์ค๊ณ, ๊ตฌํ์ด ๋ณต์กํ๋ค
- overhead ํฌ๋ค, starvation ๋ฐ์
โ๏ธqueue๊ฐ์ ์ฐ์ ์์ ๊ฒฐ์ ๋ฐฉ๋ฒ
- I/O bounded processes
์
์ถ๋ ฅ ์์ฃผ ํ๋ก์ธ์ค๋ค์ ์์ ๋จ๊ณ ํ๋ก(์ฐ์ ์์ ๋์)
์? => I/O๋ ์ผ๋ฐ์ ์ผ๋ก cpu๋ฅผ ์ ์๋ง ์ฐ๊ธฐ ๋๋ฌธ์
- aging ๊ธฐ๋ฒ
๋๊ธฐ์๊ฐ์ด ์ง์ ๋ ์๊ฐ์ ์ด๊ณผํ ํ๋ก์ธ์ค๋ค์ ์์ ๋จ๊ณ ํ๋ก
โ๏ธparameters for MFQ scheduling
- Queue์
- Queue๋ณ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
- ์ฐ์ ์์ ์กฐ์ ๊ธฐ์ค
- ์ต์ด์ Queue ๋ฐฐ์ ๋ฐฉ๋ฒ
...
๐ฎ์ถ์ฒ : https://www.youtube.com/watch?v=hzXVQIlSSos&list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN