Process Scheduling
SPN, SRTN, HRRN
SPN (Shortest-Process-Next)
- Non-preemptive scheduling
- ์ค์ผ์ค๋ง ๊ธฐ์ค (Criteria)
- ์คํ์๊ฐ (burst time ๊ธฐ์ค)
- Burst time์ด ๊ฐ์ฅ ์์ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ฒ๋ฆฌ
- SJF(Shortest Job First) scheduling
- ์ฅ์
- ํ๊ท ๋๊ธฐ์๊ฐ(Waiting Time, WT) ์ต์ํ
- ์์คํ
๋ด ํ๋ก์ธ์ค ์ ์ต์ํ
- ์ค์ผ์ค๋ง ๋ถํ ๊ฐ์, ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ -> ์์คํ
ํจ์จ ํฅ์
- ๋ง์ ํ๋ก์ธ์ค๋ค์๊ฒ ๋น ๋ฅธ ์๋ต ์๊ฐ ์ ๊ณต
- ๋จ์
- Starvation (๊ธฐ์ํ์, ๋ฌดํ๋๊ธฐ) ํ์ ๋ฐ์
- BT(Burst Time)๊ฐ ๊ธด ํ๋ก์ธ์ค๋ ์์์ ํ ๋น ๋ฐ์ง ๋ชป ํ ์ ์์
- Aging ๋ฑ์ผ๋ก ํด๊ฒฐ (e.g HRRN)
- ์ ํํ ์คํ์๊ฐ์ ์ ์ ์์
- ์คํ์๊ฐ ์์ธก ๊ธฐ๋ฒ์ด ํ์
์ฌ์ง ์ถ์ฒ - https://youtu.be/keY9Wi7scEs
- ๋์ฐฉํ ํ๋ก์ธ์ค๋ค ์ค Burst Time์ด ์งง์ ํ๋ก์ธ์ค ๋ถํฐ ์คํ๋๋ค.
- ํ๋ก์ธ์ค 2๋ BT์ด ๊ธธ์ด WT์ด ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๋นํด ๊ธธ์ด์ง๋ค.
SRTN (Shortest Remaining Time Next)
- SPN์ ๋ณํ
- Preemptive scheduling
- ์์ฌ ์คํ ์๊ฐ์ด ๋ ์ ์ ํ๋ก์ธ์ค๊ฐ ready ์ํ๊ฐ ๋๋ฉด ์ ์ ๋จ
- ์ฅ์
- ๋จ์
- ํ๋ก์ธ์ค ์์ฑ์, ์ด ์คํ ์๊ฐ ์์ธก์ด ํ์ํจ
- ์์ฌ ์คํ์ ๊ณ์ ์ถ์ ํด์ผ ํจ = overhead
- Context switching overhead
-> ๊ตฌํ ๋ฐ ์ฌ์ฉ์ด ๋นํ์ค์
HRRN (High-Response-Ratio-Next)
- SPN์ ๋ณํ
- SPN์ ๋จ์ ์ธ Starvation ๋ณด์
- SPN + Aging concepts, None-preemptive scheduling
- Aging concepts
- ๋น์ ์ ์ธ ํํ
๋
ธ์ฝ์ ๋ฐฐ๋ ค
- ํ๋ก์ธ์ค์ ๋๊ธฐ ์๊ฐ(WT)์ ๊ณ ๋ คํ์ฌ ๊ธฐํ๋ฅผ ์ ๊ณต
- ์ค์ผ์ค๋ง ๊ธฐ์ค (Criteria)
- Response ratio๊ฐ ๋์ ํ๋ก์ธ์ค ์ฐ์
- Response ratio = WT+BT / BT (์๋ต๋ฅ )
- SPN์ ์ฅ์ + Starvation ๋ฐฉ์ง
- ์คํ ์๊ฐ ์์ธก ๊ธฐ๋ฒ ํ์ (overhead)
Basic Scheduling algorithms
- Fairness (๊ณตํ์ฑ)
- FCFS (First-Come-First-Service)
- RR (Round-Roin)
- Efficiency/Performance (ํจ์จ์ฑ, ์ฑ๋ฅ)
- SPN (Shortest-Proess-Next)
- SRTN (Shortest Remaining Time Next)
- HRRN (High-Response-Ratio-Next)
๋ฌธ์ ์
- ์คํ์๊ฐ ์์ธก ๋ถํ
๋ฌธ์ ์ ์ ํด๊ฒฐํ algorithms
- Efficiency/Performance (ํจ์จ์ฑ, ์ฑ๋ฅ)
- MLQ (Multi-level Queue)
- MFQ (Multi-level Feedback Queue)
MLQ, MFQ
MLQ (Multi-level Queue)
- ์์
(or ์ฐ์ ์์)๋ณ ๋ณ๋์ ready queue๋ฅผ ๊ฐ์ง
- ์ฌ๋ฌ๊ฐ์ ready queue๋ฅผ ๊ฐ์ง
- ์ต์ด ๋ฐฐ์ ๋ queue๋ฅผ ๋ฒ์ด๋์ง ๋ชปํจ
- ๊ฐ๊ฐ์ queue๋ ์์ ๋ง์ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ ์ฌ์ฉ
- Queue ์ฌ์ด์๋ ์ฐ์ ์์ ๊ธฐ๋ฐ์ ์ค์ผ์ค๋ง ์ฌ์ฉ
- E.g., fixed-priority preemptive scheduling
- ์ฅ์
- ๋จ์
- ์ฌ๋ฌ ๊ฐ์ Queue ๊ด๋ฆฌ ๋ฑ ์ค์ผ์ค๋ง overhead
- ์ฐ์ ์์๊ฐ ๋ฎ์ queue๋ starvation ํ์ ๋ฐ์ ๊ฐ๋ฅ
์ฌ์ง ์ถ์ฒ - https://youtu.be/actKUqea6Xc
- Queue๊ฐ ์ฌ๋ฌ ๊ฐ์ด๋ฉฐ ์๋ก ์ฌ๋ผ๊ฐ์๋ก ์ฐ์ ์์๊ฐ ๋์์ง๋ค.
MFQ (Multi-level Feedback Queue)
- ํ๋ก์ธ์ค์ Queue๊ฐ ์ด๋์ด ํ์ฉ๋ MLQ
- Feedback์ ํตํด ์ฐ์ ์์ ์กฐ์
- ํ์ฌ๊น์ง์ ํ๋ก์ธ์ ์ฌ์ฉ ์ ๋ณด(ํจํด) ํ์ฉ
- ํน์ฑ
- ๋์ ์ฐ์ ์์ (Dynamic priority)
- ์ ์ ์ค์ผ์ค๋ง (Preemptive scheduling)
- Favor short burst-time processes
- Favor I/O bounded processes
- Improve adaptability
- ํ๋ก์ธ์ค์ ๋ํ ์ฌ์ ์ ๋ณด ์์ด SRN, SRTN, HRRN ๊ธฐ๋ฒ์ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์์
์ฌ์ง ์ถ์ฒ - https://youtu.be/actKUqea6Xc
- ํ๊ฐ ์ฌ๋ฌ๊ฐ ์กด์ฌํ๋ฉฐ ํ๋ค ๊ฐ์ ์ด๋์ด ๊ฐ๋ฅํ๋ค.
- ๋จ์
- ์ค๊ณ ๋ฐ ๊ตฌํ์ด ๋ณต์ก, ์ค์ผ์ค๋ง overhead๊ฐ ํผ
- Starvation ๋ฌธ์ ๋ฑ
- ๋ณํ
- ๊ฐ ์ค๋น ํ๋ง๋ค ์๊ฐ ํ ๋น๋์ ๋ค๋ฅด๊ฒ ๋ฐฐ์
- ํ๋ก์ธ์ค์ ํน์ฑ์ ๋ง๋ ํํ๋ก ์์คํ
์ด์ ๊ฐ๋ฅ
- ์
์ถ๋ ฅ ์์ฃผ ํ๋ก์ธ์ค(I/O bounded process)๋ค์ ์์ ๋จ๊ณ์ ํ๋ก ์ด๋, ์ฐ์ ์์ ๋์
- ํ๋ก์ธ์ค๊ฐ block๋ ๋ ์์์ ์ค๋น ํ๋ก ์ง์
ํ๊ฒ ํจ
- ์์คํ
์ ์ฒด์ ํ๊ท ์๋ต ์๊ฐ ์ค์, ์
์ถ๋ ฅ ์์
๋ถ์ฐ ์ํด
- ๋๊ธฐ ์๊ฐ์ด ์ง์ ๋ ์๊ฐ์ ์ด๊ณผํ ํ๋ก์ธ์ค๋ค์ ์์ ํ๋ก ์ด๋
- Parameters for MFQ scheduling
- Queue์ ์
- Queue๋ณ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
- ์ฐ์ ์์ ์กฐ์ ๊ธฐ์ค
- ์ต์ด Queue ๋ฐฐ์ ๋ฐฉ๋ฒ
<์ฐธ๊ณ >