๐์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
๐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