6. ์ค์ผ์ค๋ง
1. ์ค์ผ์ค๋ง
๊ฐ๋ : ๋ค์ค ํ๋ก๊ทธ๋๋ฐ์ ๋ชฉ์ ์ ํญ์ ์คํํ ์ ์๋ ํ๋ก์ธ์ค๊ฐ ์๋๋ก ํ์ฌ CPU ์ฌ์ฉ ํจ์จ์ ๊ทน๋ํ ํ๋๋ฐ ์๋ค.
CPU - I/O ๋ฒ์คํธ ์ฃผ๊ธฐ
ํ๋ก์ธ์ค๋ ์คํ๋๋ ๋์ CPU ์คํ๊ณผ ์ ์ถ๋ ฅ ๋๊ธฐ๋ผ๋ ๋ ์ฃผ๊ธฐ๋ฅผ ๋ฐ๋ณตํ๋ค.
๊ณ์ฐ ์ค์ฌ ํ๋ก์ธ์ค์ ๊ฒฝ์ฐ ์ ์ ์์ ๋งค์ฐ ๊ธด CPU ๋ฒ์คํธ๋ฅผ ๊ฐ์ง๋ฉฐ, ์ ์ถ๋ ฅ ์ค์ฌ ํ๋ก์ธ์ค๋ ๋ง์ ์์ ์งง์ CPU ๋ฒ์คํธ๋ฅผ ๊ฐ์ง๋ค.
CPU ์ค์ผ์ค๋ฌ
CPU๊ฐ ์ ํด ์ํ๊ฐ ๋๋ฉด ์ค๋น์๋ฃ ํ์ ์๋ ํ๋ก์ธ์ค๋ฅผ ํ๋ ์ ํํด์ ์คํํ๋ค. ์ด ์ ํ์ ๋จ๊ธฐ ์ค์ผ์ค๋ฌ๊ฐ ํ๋ค.
CPU ์ค์ผ์ค๋ง์ ๋ํ ๊ฒฐ์ ์ 4๊ฐ์ง ์ํฉ์์ ์ผ์ด๋๋ค.
1. ํ ํ๋ก์ธ์ค๊ฐ ์คํ ์ํ์์ ๋๊ธฐ ์ํ๋ก ์ ํ๋ ๋(์
์ถ๋ ฅ ์์ฒญ, ์์ ํ๋ก์ธ์ค๋ค ์ค ํ๋๊ฐ ์ข
๋ฃ๋๋๊ฒ์ ๊ธฐ๋ค๋ฆฌ๊ธฐ ์ํด wait๋ฅผ ํธ์ถํ ๋)
2. ํ๋ก์ธ์ค๊ฐ ์คํ ์ํ์์ ์ค๋น์๋ฃ ์ํ๋ก ์ ํ๋ ๋(์ธํธ๋ฝํธ ๋ฐ์)
3. ํ๋ก์ธ์ค๊ฐ ๋๊ธฐ ์ํ์์ ์ค๋น์๋ฃ ์ํ๋ก ์ ํ๋ ๋(์
์ถ๋ ฅ ์๋ฃ)
4. ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃํ ๋
- ๋น์ ์ (nonpreemptive) ์ค์ผ์ค๋ง: ํ๋ก์ธ์ค๊ฐ CPU์ ํ ๋น๋๋ฉด ๊ทธ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ฑฐ๋ ๋๊ธฐ์ค ์ํ๋ก ์ ํ๋ ๋๊น์ง๋ง CPU๋ฅผ ์ ์ ํ๋ค. ์คํ์ ์ํด์๋ ๋ฐ๋์ ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ์ ํ๋์ด์ผ ํ๋ค.
- ์ ์ (preemptive) ์ค์ผ์ค๋ง: ์ด์๋ ๋ฐ๋๋ก ์ ํ์ ์ฌ์ง๊ฐ ์๋ค. ํน์ ์กฐ๊ฑด์ด ๋ง์กฑ๋๋ฉด ํ์ฌ ์คํ์ค์ธ ํ๋ก์ธ์ค์ ์์ฌ์ ์๊ด์์ด ์คํ์ ์ค๋จํ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ CPU์ ํ ๋นํ๋ค. ์คํ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ์ ์ด๋ฅผ ๋๋นํด์ผ ํ๋ค.
์ ๋ฆฌํ์๋ฉด 1๊ณผ 4๋ non-preemptive ํ๊ธฐ ๋๋ฌธ์ ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ํ ๋น๋์ด์ผ ํ์ง๋ง, 2์ 3์ preemptiveํด์ผ ํ ์ ์๋ค.
Dispatcher
์ค์ผ์ค๋ฌ๊ฐ ์ ํํ ํ๋ก์ธ์ค๋ฅผ CPU์ ํ ๋นํด์ฃผ๋ ์์๋ฅผ ๋งํ๋ค. ๋์คํจ์ฒ๋ ๋ฌธ๋งฅ์ ํ + ๋ชจ๋ ์ ํ์ ์๋ฌด๋ฅผ ๋งก๊ณ ์๋ค.
๋์คํจ์ฒ๊ฐ ํ๋์ ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ํจ์น ์ง์ฐ์ด๋ผ ํ๋ค.
2. ์ค์ผ์ค๋ง ๊ธฐ์ค
User-Oriented scheduling (Minimize)
- ์ ์ฒด ์ฒ๋ฆฌ ์๊ฐ (turnaround time) : ํ๋์ ํ๋ก์ธ์ค๊ฐ ์ ์๋ ์์ ์์ ์ข ๋ฃ ๋ ๋๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ์ผ๋ก, ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๊ธฐ ์ํด ๊ธฐ๋ค๋ฆฌ๋ฉฐ ์๋นํ ์๊ฐ+์ค๋น์๋ฃ ํ์์ ๋๊ธฐํ ์๊ฐ+CPU์์ ์คํํ ์๊ฐ+์ ์ถ๋ ฅ ์๊ฐ
- ๋๊ธฐ ์๊ฐ (waiting time) : ํ ํ๋ก์ธ์ค๊ฐ ์ค๋น์๋ฃ ํ์์ ๋๊ธฐํ ์ด ์๊ฐ
- ์๋ต ์๊ฐ (response time): ์๋น์ค๋ฅผ ์์ฒญํ ํ์ ๊ทธ ์๋น์ค์ ๋ํ ์ฒซ ๋ฐ์์ด ๋์ค๊ธฐ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ
ํ๊ท ์๋ต ์๊ฐ(์์ฒญ ์ ์ ํ ์๋ต ์์๊น์ง์ ์๊ฐ)์ ์ต์ํํ๋ ๋์์ ์ ์ ํ ์๋ต์ ๋ฐ๋ ๋ํํ ์ฌ์ฉ์ ์๋ฅผ ์ต๋ํํฉ๋๋ค.
System-Oriented scheduling (Maximize)
- ์ฒ๋ฆฌ์จ (throughput) : ์๊ฐ๋น ์๋ฃ๋๋ ํ๋ก์ธ์ค์ ์
- CPU ์ฌ์ฉ ํจ์จ (CPU utilization) : CPU๋ฅผ ์ผ๋ง๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋๊ฐ, ์์ฌ๊ณ ์์ ํ๋ค๋ฉด 100%
์์คํ ๊ด์ ์์๋ ์ต๋ํํ๊ณ ์ฌ์ฉ์ ๊ด์ ์์๋ ์ต์ํํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์ด์์ ์ด๋ค.
์ถ๊ฐ๋ก
- fairness: ์ด๋ค ํ๋ก์ธ์ค๋ starvation์ด ์์ด์ผ ํ๋ค. (ํ์ง๋ง, response time์ ์ค์ด๊ธฐ ์ํด ๋ ๊ณต์ ํ ์ ๋ ์๋ค.)
- Balance resource: keep all resources of the System busy
Other (non-performance related) system- oriented scheduling policy goals:
3. ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
- ์ ์ - SRTF, ์ฐ์ ์์, RR, MLQ(RR+์ฐ์ ์์), MLFQ(MLQ+ํ๋ค ์ฌ์ด ์ด๋ ํ์ฉ)
- ๋น์ ์ - FCFS, SJF, ์ฐ์ ์์
1)FCFS(First-Come First-Served)
๋จผ์ ์์ฒญํ ํ๋ก์ธ์ค ์์ผ๋ก ์ค์ผ์ค๋ง ํ๋ค. FIFO ํ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํ
convoy effect ๋ฐ์ ๊ฐ๋ฅํ๋ค. ํ๋์ ํฐ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์๋ณดํ ๋๊น์ง ๋ค๋ฅธ ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ๊ธฐ๋ค๋ฆฌ๋ ํ์์ ๋งํ๋ค.
- Non-preemptive
- Response time: slow if there is a large varaiance in process execution times -> ํ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ง๋์น๊ฒ ์ค๋ ์ ์ = convoy effect
- Throughput: low
- Fairness: short process & I/O bound process์๊ฒ penalty
- Starvation: ๋ฐ์ ์ํจ, ์์ฐจ์ ์ด๋ฏ๋ก
- Overhead: minimal, context switching์ด ๊ฑฐ์ ์ผ์ด๋์ง ์์
2)SRTF(Shortest-Remaining-Time-First)
๋ค์ CPU๋ฒ์คํธ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค ์์ผ๋ก ์ค์ผ์ค๋งํ๋ค.
ํ๋ก์ธ์ค๊ฐ ๊ฐ์ CPU ๋ฒ์คํธ ์๊ฐ์ ๊ฐ์ง๋ฉด FCFS ์ ์ฑ ์ ๋ฐ๋ฅธ๋ค.
- Preemptive
- Response time: ์ข์ ํธ์ด๋ค. process๊ฐ ๋์ ์ผ๋ก ํ ๋น๋ ๋ ํ๊ท waiting time์ ์ต์ํ ํด์ค๋ค.
- Throughput: ๋๋ค. ์งง์๊ฑฐ ๋จผ์ ์คํํ๋ฏ๋ก
- Fairness: long process๋ค์ด penalty. ๊ทธ๋ฌ๋ ๊ธด ์ ๋ค๋ ์์ํ ์งง์์ง ์๋ค.
- Starvation: long process๋ค์๊ฒ ์์ ์ ์๋ค.
- Overhead: ํด ์ ์๋ค. context swtiching and recording and estimating CPU burst times
3)SJF(Shortest-Job-First)
์ ํ๋ก์ธ์ค๊ฐ ์ค๋น์๋ฃ ํ์ ๋์ฐฉํ๋ฉด ์ด ํ๋ก์ธ์ค์ ๋ค์ CPU ๋ฒ์คํธ ์๊ฐ๊ณผ ํ์ฌ ์ํ์ค์ธ ํ๋ก์ธ์ค์ ๋จ์ CPU ๋ฒ์คํธ ์๊ฐ์ ๋น๊ตํ์ฌ, ์ ํ๋ก์ธ์ค์ ๋ค์ ์๊ฐ์ด ์ํ ์ค ํ๋ก์ธ์ค์ ๋จ์ ์๊ฐ๋ณด๋ค ์ ์ผ๋ฉด ๊ธฐ์กด ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ๋ก ์ข ๋ฃํ๊ณ ์ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ๋ค.
tie์ผ ๊ฒฝ์ฐ, FCFS๋ฅผ ์ฌ์ฉํ๋ค. ํ๋ก์ธ์ค์ ๊ณผ๊ฑฐ ์ฑ๋ฅ๊ณผ ์์ธก์ ๊ธฐ๋ฐ์ผ๋ก ๊ธธ์ด๋ฅผ ์์ธกํ๊ธฐ์ ๊ทผ์ฌ์น๋ฅผ ์ฌ์ฉํ๋ค.
- Non-preemptive
- Response time: good for short proecesses. FCFS๋ณด๋จ ์ข์์ก์ผ๋ ๊ธด ํ๋ก์ธ์ค๊ฐ ์งง์ ํ๋ก์ธ์ค ์์์ ์คํ์ ์ค๋ ๊ธฐ๋ค๋ ค์ผํ๋ค
- Throughput: ๋๋ค.
- Fairness: long process๋ค์๊ฒ penalty
- Starvation: long process๋ค์๊ฒ ์์ ์ ์๋ค
- Overhead: ํด ์ ์๋ค. recording and estimating CPU burst times
4)Priority Scheduling(ํ์ฌ OS์์ ์ฌ์ฉํ๋ ๊ฒ)
์ฐ์ ์์๋ ์ค์๋, ๋, ์ ์น ๋ฑ์ ๊ธฐ์ค์ผ๋ก ์ธ๋ถ์ ์ผ๋ก ์ ์
์ฐ์ ์์๋ ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ ์ฌํญ, ํ์ผ ์๊ตฌ ์ฌํญ, CPU ์๊ตฌ ์ฌํญ vs I/O ์๊ตฌ ์ฌํญ ๋ฑ์ ๋ฐ๋ผ ๋ด๋ถ์ ์ผ๋ก ์ ์
SJF ๋ํ ์ผ์ข ์ priority๊ฐ ์กด์ฌํ๋ ๊ฒ์ด๋ค.
Priority Scheduling๋ preemtpive(Mac, Windows)๋ ๋๊ณ , non-preemptive(์๋ฒ ๋๋์ปดํจํฐ, ์ค์๊ฐ OS์ ๊ฒฝ์ฐ)๋ ๋๋ค.
- ํ๋ก์ธ์ค๊ฐ ready queue๋์ฐฉ ์ ์๋ก ๋์ฐฉํ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ๋น๊ตํ์ฌ ๋ฐ๊พธ๋ preemptive
- ์ค๋น์๋ฃ ํ์ head์ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ๋ฃ๋ non-preemptive
starvation: low-priority procsses์๊ฒ ๋ฐ์ ๊ฐ๋ฅํ๋ฉฐ, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด aging ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
- aging
์ค๋ ์๊ฐ ์์คํ ์์ ๋๊ธฐํ๋ ํ๋ก์ธ์ค๋ค์ ์ฐ์ ์์๋ฅผ ์ ์ง์ ์ผ๋ก ์ฆ๊ฐ์ํค๋ ๋ฐฉ๋ฒ (Ready queue์์ ๊ธฐ๋ค๋ฆฌ๋ํ๋ก์ธ์ค์ ๋ํด์, ๋ฐ๋ผ์ I/O ํ๋ฉด์ ์๋๊ฑด ๋๊ธฐ์๊ฐ์ด ์๋๋ค.)
Priority๋ PCB์ ์ ์ฅ๋๋ค.
5)๋ผ์ด๋๋ก๋น
์๋ถํ ์์คํ ์ ์ํด ์ค๊ณ
time slice ( = time quantum)์ ์ ์ํ๊ณ , ํด๋น ํ๋ก์ธ์ค๋ฅผ ์ต๋ํ time slice๋์ ์คํํ๊ณ , ์ด ์ฌ์ด์ ์๋ฃ๋์ง ์์ผ๋ฉด ready queue์ tail์ ์ถ๊ฐํ๋ค.
time slice์์ ์๋ฃ๋๋ฉด ready queue์ head์์ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์ ํํ๊ณ ํด๋น ํ๋ก์ธ์ค๋ฅผ time slice๋์ ์คํํ๋ค.
ready queue๋ ์ํํ๋ก ๋์ํ๋ค. CPU ์ค์ผ์ค๋ฌ๋ ready queue์์ ์ฒซ๋ฒ์งธ ํ๋ก์ธ์ค๋ฅผ ์ ํํด ํ ๋ฒ์ time slice ์ดํ์ ์ธํธ๋ฝํธ๋ฅผ ๊ฑธ๋๋ก ํ์ด๋จธ๋ฅผ ์ค์ ํ ํ, ํ๋ก์ธ์ค๋ค์ dispatch
- Preemptive
- Response time: ์งง์ ํ๋ก์ธ์ค๋ค์๊ฒ ์ข๋ค. ๊ธด ํ๋ก์ธ์ค๋ค์ ๊ธฐ๋ค๋ ค์ผ ํ ์๋ ์๋ค.
- Throughput: time slice์ ์ํด ๊ฒฐ์ ๋๋ค.
- time slice๊ฐ ๋๋ฌด ์์ผ๋ฉด context switching์ด ๋๋ฌด ์์ฃผ ์ผ์ด๋์ ์์ข๋ค.
- ๋๋ฌด ํฌ๋ฉด FCFS์ ๋์ผํด์ง๋ค.
- Fairness: I/O bound process์๊ฒ penalty(I/O bound process๊ฐ CPU์์์ ์คํ์๊ฐ์ ๋ชจ๋ ์ฌ์ฉํ์ง ๋ชปํ๊ณ I/O ์์ ์ ์ํํ๋ ๋์ ์ผ๋ถ ์๊ฐ์ด ๋ญ๋น ๋ ์ ์๋ค.) -> ๋์๋ณ๋ ฌ์ฑ ์ข์์ง๋ค.(์๋ผ CPU๋ค์ด๋์ง์๊ฒ ๋๊ธฐ๋๋ฌธ)
- Starvation: ์ผ์ด๋์ง ์๋๋ค. ๋ชจ๋ ๋์ผํ time slice๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ
- Overhead: ๋ฎ๋ค. ๊ธฐ๊ณ์ ์ผ๋ก ๋ค์๊ฑฐ ๋๋ฆฌ๊ธฐ์ ๋ฎ์ํธ
6)๋ค์ค๋ ๋ฒจ ํ ์ค์ผ์ค๋ง(MLQ)
์์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก Ready queue๊ฐ ํ๊ฐ์ด๋ค. ์ด์ , ์ค๋น์๋ฃ ํ๋ฅผ ์ฌ๋ฌ ๊ฐ์ ํ๋ก ๋๋์ด ์ฌ์ฉํ๋ค.
ํ๋ก์ธ์ค์ ํน์ฑ์ ๋ฐ๋ผ ํน์ ํ์ ํ ๋น๋๋ฉฐ, ์ด๋ ๊ฐ ํ๋ ๋ ์์ ์ธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค.
preemptively or non-preemptively
foreground - background
์์์ ps์น๋ฉดํ๋ก์ธ์ค๊ฐ๋ค๋ณด์ด๋๋ฐ, ์ด๋foreground
background๋ก ๋๋ฆฌ๋ ค๋ฉด &๋ก ๋๋ฆฌ๋ฉด๋๋ค.
System(kernel process 3๊ฐ์ง: scheduler, Pager ), interactive(e.g. office, game), editing, computing
e.g. 80% of CPU time to foreground, using RR & 20% of CPU time to background, using FCFS
1) ์์ ์ฐ์ ์์ ํ๋ ํ์ ์ฐ์ ์์ ํ๋ณด๋ค ์ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋๋ก ํ ์ ์๋ค. ์ด๋, preemptiveํ๋ค.
2) ํ ๊ฐ์ ์ผ์ ๋น์จ๋ก CPU ์๊ฐ์ ํ ๋นํด ์ค ์ ์๋ค.
7)๋ค์ค๋ ๋ฒจ ํผ๋๋ฐฑ ํ ์ค์ผ์ค๋ง(MLFQ)
MLQ๋ ์ ์ฐ์ฑ์ด ๋จ์ด์ง๋ค๋ ๋จ์ ์ด ์๋ค. (ํ๋ก์ธ์ค๋ค์ด ์์คํ ์ง์ ์ ์๊ตฌ์ ์ผ๋ก ํ๋์ ํ์ ํ ๋น๋๊ณ ๋ค๋ฅธ ํ๋ก ์ด๋๋ถ๊ฐ)
์ด์๋ฌ๋ฆฌ MLFQ๋ ํ๋ก์ธ์ค๊ฐ ํ๊ฐ์ ์ด๋ํ ์ ์๋๋ก ํด์ค๋ค. ์ฆ, ์ด๋ค ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๋๋ฌด ๋ง์ด ์ฌ์ฉํ๋ฉด ๋ฎ์ ์ฐ์ ์์ ํ๋ก ์ด๋ํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
preemptively or non-preemptively
CPU ๋ฒ์คํธ ์๊ฐ ํน์ฑ์ด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ ๋ถ๋ฆฌํ์ฌ starvation๊ณผ convoy effect๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ด ์ฃผ ๋ชฉํ์ด๋ค.
๋ํ์ ํ๋ก์ธ์ค์ ์ ์ถ๋ ฅ ์ค์ฌ ํ๋ก์ธ์ค๋ ์์ ํ์ ํ ๋น๋๊ณ CPU ์ค์ฌ ํ๋ก์ธ์ค๋ ํ์ ํ์ ํ ๋น๋๋ค.
MLFQ๋ฅผ ๊ฒฐ์ ํ๋ ํ๋ผ๋ฏธํฐ๋ก๋ ํ์ ๊ฐ์, ๊ฐ ํ์ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ, ํ๋ก์ธ์ค๋ฅผ ๋์ ์ฐ์ ์์ ํ๋ก ์ฌ๋ ค์ฃผ๋ ์๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ, ํ๋ก์ธ์ค๋ฅผ ๋ฎ์ ์ฐ์ ์์ ํ๋ก ๋ด๋ ค์ฃผ๋ ์๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ, ํ๋ก์ธ์ค๊ฐ ์ค๋น์๋ฃ ํ์ ๋ค์ด์ฌ ๋ ์ด๋ค ํ์ ํ ๋นํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
์ฐ์ ์์๊ฐ ๋์ ํ์์ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ์์ํ๊ณ , ๊ฐ CPU ๋ฒ์คํธ๊ฐ ์๋ฃ๋๋ฉด ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก ์ด๋
์ค๋๋ ํ๋ก์ธ์ค๋ ์ฐ์ ์์๊ฐ ๋์ ํ๋ก ์ด๋ -> aging๊ณผ ๋น์ทํ ๋ฐฉ์์ผ๋ก starvation ์๋ฐฉ
Feedback = ๊ณผ๊ฑฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฏธ๋๋ฅผ ์์ธก - ๊ณผ๊ฑฐ์ CPU๋ฅผ ๋ง์ด ์ฌ์ฉํ์ง ์์ ์์ (SRT์ ๊ฐ๊น์ด ์์ )์ ์ ํธ
- Kernel processes have negative values.
- Userprocesses have positive values.
์ฐธ๊ณ ๋ฌธํ
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/6_CPU_Scheduling.html
Operating Systems: CPU Scheduling
CFS ( Completely Fair Scheduler ) Performance The Linux CFS scheduler provides an efficient algorithm for selecting which task to run next. Each runnable task is placed in a red-black tree—a balanced binary search tree whose key is based on the value of
www.cs.uic.edu