9์ฅ์์๋ ์์คํ ์์ CPU๊ฐ ํ๋์ธ ์์คํ ์์์ CPU ๊ด๋ฆฌ์ ๋ํ ๋ด์ฉ์ ๋ค๋ฃฌ๋ค.
Aim of Scheduling: ์ค์ผ์ค๋ง์ ๋ชฉ์
- Response time: ์ฌ์ฉ์๊ฐ ์์คํ ์ ์์ ์ ์์ฒญํ ์๊ฐ๋ถํฐ ์๋ต์ ๋ฐ์ ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ
- Throughput: ๋จ์ ์๊ฐ๋น ์์คํ ์ด ์๋ฃํ๋ ์์ ์ ์
- Processor efficiency: ์ ์ฒด ์๊ฐ ์ค CPU๊ฐ ์ค์ ๋ก ์์ ์ ์ฒ๋ฆฌํ๋ฉฐ ๋ฐ์๊ฒ ์คํ๋ ์๊ฐ์ ๋น์จ
- Fairness: ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ CPU ์์์ ๊ณตํํ๊ฒ ํ ๋น๋ฐ๋๋ก ๋ณด์ฅํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค.
Types of Scheduling
1. Long-term Scheduling
- ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ ๋ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ๋ ๋ ํ์ ๋ฃ์์ง๋ฅผ ๊ฒฐ์
- batch job์ ์ํ ์ค์ผ์ค๋ง์ด๋ค.
2. Medium-term Scheduling
- swapping๊ณผ ๊ด๋ จ์ด ์๋ค.
- ๋ฉ๋ชจ๋ฆฌ์ ์๋ ํ๋ก์ธ์ค ์ค ์ผ๋ถ๋ฅผ ํ๋ ๋์คํฌ๋ก ๋ด๋ณด๋๊ฑฐ๋ ํ๋ ๋์คํฌ์ ์๋ ํ๋ก์ธ์ค๋ฅผ ๋ค์ ๋ฉ๋ชจ๋ฆฌ๋ก ๋ถ๋ฌ์ค๋ ์ญํ ์ ํ๋ค.
3. Short-term Scheduling
- ready ํ์ ์๋ ํ๋ก์ธ์ค ์ค์์ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ๋ค์ ์์๋ก CPU์ ํ ๋นํ์ฌ ์คํํ ์ง ๊ฒฐ์
- ๊ฐ์ฅ ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ค.
Short-Term Scheduling Criteria
User-oriented(์ฌ์ฉ์ ์งํฅ ๊ธฐ์ค)
- Response Time: ์ฌ์ฉ์๊ฐ ์์ฒญ์ ๋ณด๋ธ ์์ ๋ถํฐ ์ถ๋ ฅ๋ ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ
- Turnaround Time: ํ๋ก์ธ์ค๊ฐ ์คํ๋ ์์ ๋ถํฐ ๋ชจ๋ ์คํ์ ์๋ฃํ ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ
- ์ฌ์ฉ์ ์ ์ฅ์์ ๋ ๋ค ์งง์ ๊ฒ ์ข๋ค.
System-oriented(์์คํ ์งํฅ ๊ธฐ์ค)
- ํจ์จ์ ์ธ CPU ํ์ฉ(Processor efficiency)
- CPU ํจ์จ์ฑ์ ๋์ด๋ ค๋ฉด ์ค์์นญ์ ํ๋ฉด ์ ๋๋ค.
- Throughput: ๋จ์ ์๊ฐ๋น ์๋ฃ๋ ํ๋ก์ธ์ค์ ๊ฐ์
- Throughput์ด ๋์์๋ก ์์คํ ์ด ์ผ์ ์๊ฐ ๋์ ๋ ๋ง์ ์์ ์ ์ฒ๋ฆฌํ๋ค๋ ๋ป์ด๋ค.
Predictablity(์์ธก ๊ฐ๋ฅ์ฑ), Fairness(๊ณต์ ์ฑ)์ ์ซ์๋ก ํํํ๊ธฐ ์ด๋ ค์ด ํน์ฑ์ด๋ค.
์์ธก ๊ฐ๋ฅ์ฑ๊ณผ ๊ณต์ ์ฑ์ด ๋ฎ์ผ๋ฉด ํน์ ํ๋ก์ธ์ค๊ฐ ๊ณ์ํด์ ์ฐ์ ์์์ ๋ฐ๋ ค ์คํํ์ง ๋ชปํด์ starvation ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
Priorities
๊ฐ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๊ณ ์ด๋ฅผ ๋ฐํ์ผ๋ก ๋ค์์ ์คํํ ํ๋ก์ธ์ค๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐฉ์
- ํญ์ ๋ ๋ ํ์ ์๋ ํ๋ก์ธ์ค ์ค ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ ํํด์ CPU์ ํ ๋นํ๋ค.
- ๋ ๋ ํ๋ ์ฐ์ ์์์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ๊ฐ ์๋ค. ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๋ผ๋ฆฌ ๋ชจ์๋์ ๋ ๋ ํ, ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก์ธ์ค๋ผ๋ฆฌ ๋ชจ์๋์ ๋ ๋ ํ ์ด๋ฐ ์์ด๋ค.
- starvation ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์์ด์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ ์ญ์ ๊ณ ๋ คํด์ผ ํ๋ค.(starvation์ด ๋ฐ์ํด์๋ ์ ๋๋ค.)
Scheduling Algorithms
์ค์ผ์ค๋ง์ ํ๋ค = ํ๋ก์ธ์ค๋ฅผ ์คํ์ํค๋ ์์๋ฅผ ๋ค๋ฅด๊ฒ ํ๋ค
service time = burst time
response time = service time + waiting time
1. First-Come-First-Served(FCFS)
- ๋จผ์ ์จ ์์๋๋ก ์ฒ๋ฆฌ
- ์ฐ์ ์์: ํ์ ๋์ฐฉํ ์๊ฐ
- non-preemption: ์ผ๋จ ์คํ์ ์์ํ ํ๋ก์ธ์ค๊ฐ ์ค์ค๋ก ์ข ๋ฃํ๊ฑฐ๋ I/O ๋๊ธฐ ์ํ์ ๋ค์ด๊ฐ ๋๊น์ง ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๋ผ์ด๋ค ์ ์๋ ๋ฐฉ์
→ ํ์ ์์์ ์ฌ์ฉํด ๊ฐ์ ๋ก ์คํ์ ๋ฉ์ถ๊ฒ ํ ์ ์๋ค.
- ์คํ ์๊ฐ์ด ๋งค์ฐ ๊ธด ํ๋ก์ธ์ค๊ฐ ๋จผ์ CPU๋ฅผ ์ฐจ์งํ๋ฉด ์คํ ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค๋ค์ด ํ์ผ์์ด ๊ธฐ๋ค๋ ค์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ๋ค.
ํ์ ๋์ฐฉํ ์๊ฐ์ด ๋น ๋ฅผ์๋ก ์ฐ์ ์์๊ฐ ๋๋ค.
waiting time | service time | |
A | 0 (0์ ๋์ฐฉ) | 3 |
B | 1 (2์ ๋์ฐฉ: 3-2=1) | 6 |
C | 5 (4์ ๋์ฐฉ: 9-4=5) | 4 |
D | 7 (6์ ๋์ฐฉ: 13-6=7) | 5 |
E | 10 (8์ ๋์ฐฉ: 18-8=10) | 2 |
FCFS: ((0+3)+(1+6)+(5+4)+(7+5)+(10+2))/5 = 43/5
2. Round-Robin(= Time Sharing = Time Slicing)
- preemption: clock์ ์ด์ฉํด์ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ๋ก ์ค๋จ์ํค๋ ์ ์ ๋ฐฉ์์ ์ฌ์ฉ
- quantum์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ ํ๋ ์๊ฐ ๋์๋ง CPU๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ์ฃผ๊ธฐ์ ์ผ๋ก clock interrupt๋ฅผ ๋ฐ์์ํจ๋ค.
- ํ ๋น๋ ํํ ์ ๋ชจ๋ ์ฌ์ฉํ ํ๋ก์ธ์ค๋ ์คํ์ ๋ง์น์ง ๋ชปํ๋๋ผ๋ ๊ฐ์ ๋ก ์ค๋จ๋๋ค. ์ดํ ์ด ํ๋ก์ธ์ค๋ ๋ ๋ ํ์ ๋งจ ๋ค๋ก ๋ณด๋ด์ง๋ค.
- ์ฐ์ ์์: ํ์ ๋์ฐฉํ ์๊ฐ
RR: ((1+3)+(10+6)+(9+4)+(9+5)+(5+2))/5 = 54/5
์ด ์์ ์์๋ FCFS๋ณด๋ค response time์ด ๊ธธ๋ค.
ํ์ง๋ง ํ์ ํํ ์ ์ด๋ป๊ฒ ์ค์ ํ๋๋์ ๋ฐ๋ผ response time์ด ๋ฌ๋ผ์ง๋ค.
์ฆ, RR์ด ๋ฌด์กฐ๊ฑด FCFS๋ณด๋ค ์ฑ๋ฅ์ด ์ข๋ค ๋๋ ์ข์ง ์๋ค๋ผ๊ณ ๋จ์ ์ง์ ์ ์๋ค.
3. Shortest Process Next
- ์ฐ์ ์์: ํ๋ก์ธ์ค์ ์คํ ์๊ฐ
- service time์ด ์งง์ ํ๋ก์ธ์ค๋ถํฐ ๋จผ์ ์คํ์ํจ๋ค.
- non-preemption
- ์งง์ ํ๋ก์ธ์ค๋ค์ด ๊ณ์ํด์ ๋์ฐฉํ ๊ฒฝ์ฐ, ์คํ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค๋ ๊ณ์ํด์ ์คํ์ด ๋ฐ๋ฆฌ๊ฒ ๋์ด ์ธ์ ์คํํ ์ง ์์ธกํ๊ธฐ ์ด๋ ค์์ง๋ค.
- SPN์ ํ๋ก์ธ์ค์ ์์ ์คํ ์๊ฐ์ ํฌ๊ฒ ์์กดํ๋ค.
- ์คํ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค๋ ์๋ก์ด ์งง์ ํ๋ก์ธ์ค๋ค์ด ๊ณ์ํด์ ๋ค์ด์ค๋ฉด ์์๊ฐ ๊ณ์ ๋ฐ๋ ค ์์ํ ์คํ๋์ง ๋ชปํ๋ starvation ๊ฐ๋ฅ์ฑ์ด ์๋ค.
SPN: ((0+3)+(1+6)+(7+4)+(9+5)+(1+2))/5 = 38/5
FCFS, RR - ์์ธก ๊ฐ๋ฅ์ฑ์ด ๋๊ณ starvation ๋ฐ์ ๊ฐ๋ฅ์ฑ์ ์๋ค.
SPN - ์์ธก ๊ฐ๋ฅ์ฑ์ด ๋ฎ๊ณ ์ต์ ์ ๊ฒฝ์ฐ์๋ starvation์ด ๋ฐ์ํ ์ ์๋ค.
CALCULATING PROGRAM 'BURST': ์คํ ์๊ฐ์ ์์ธกํ๋ ๋ฐฉ๋ฒ
(1) Simple Average(์ฐ์ ํ๊ท )
(2) Exponential Averaging
์ต์ ๋ฐ์ดํฐ์ ๋ ํฐ ๊ฐ์ค์น๋ฅผ ๋๊ณ , ๊ณผ๊ฑฐ ๋ฐ์ดํฐ์ผ์๋ก ๊ฐ์ค์น๋ฅผ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ค์ฌ์ ์์ธก์ ๋ฐ์ํ๋ ๋ฐฉ์์ด๋ค.
'๊ฐ์ฅ ์ต๊ทผ์ด ์ผ์ด๋ ์ผ์ด ๋ฏธ๋์ ๋ ํฐ ์ํฅ์ ๋ฏธ์น ๊ฒ์ด๋ค'๋ผ๋ ๊ฐ์ ์ ๊ธฐ๋นํ๋ค.
Use of Exponential Averaging
์ฆ๊ฐํ๋ ํจ์, ๊ฐ์ํ๋ ํจ์ ๋ ๋ค Exponential Averaging์ ์ฌ์ฉํด์ ์์ธกํ๋ฉด ์ด๋ ์ ๋ ์ค์ ๊ฐ๊ณผ ์ผ์นํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค.
4. Shortest Remaining Time
- SPN์ preemptiveํ๊ฒ ์ ์ฉ์ํจ ๋ฐฉ์
- Remaining Time(์ ์ฒด ์คํ ์๊ฐ์ด ์๋๋ผ ์ด๋ค ์์ ์ ๋จ์ ์๋ ์คํ ์๊ฐ)์ ๋น๊ตํด์ ์ฐ์ ์์๋ฅผ ์ ํ๋ค.
- SRT๋ ์คํ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค์ ์์ธก ๊ฐ๋ฅ์ฑ์ด ๋ฎ๊ณ starvation ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
SRT: ((0+3)+(7+6)+(0+4)+(9+5)+(0+2))/5 = 36/5
5. Highest Response Ratio Next(HRRN)
- non-preemption
ratio = (waiting time + service time) / service time = w/s + 1
ratio๊ฐ ํด์๋ก ์ฐ์ ์์๊ฐ ๋๋ค. (waiting time์ด ๊ธธ์๋ก, service time์ด ์งง์์๋ก ratio๊ฐ ์ปค์ง๋ค.)
- ์คํ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์คํํ์ง๋ง ๋๊ธฐ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค์๋ ์ฐ์ ์์๋ฅผ ์ฃผ๊ธฐ ๋๋ฌธ์ starvation ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์ฌ๋ผ์ง๊ณ ์์ธก ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค.
HRRN: ((0+3)+(1+6)+(5+4)+(9+5)+(5+2))/5 = 40/5
[5๊ฐ์ง ์ค์ผ์ค๋ง ๋ฐฉ์ ์ ๋ฆฌ]
์ฐ์ ์์ | ํ ๋์ฐฉ์๊ฐ | ์คํ์๊ฐ | ๋๊ธฐ์๊ฐ + ์คํ์๊ฐ |
non-preemption | FCFS | SPN | HRRN |
preemption | RR | SRT |
FCFS, RR์ ์์ธก ๊ฐ๋ฅ์ฑ๊ณผ ๊ณต์ ์ฑ์ ์ค์์ํ๋ ๋ฐฉ์์ด๋ค.
SPN, SRT๋ response time์ ์ต์ํํ๋ ๊ฒ์ ์ค์ํ๊ณ ์์ธก ๊ฐ๋ฅ์ฑ๊ณผ ๊ณต์ ์ฑ์ ๊ณ ๋ คํ์ง ์์ ๋ฐฉ์์ด๋ค.
HRRN์ ์์ ๋ ๊ทธ๋ฃน์ ์ค๊ฐ ์ ๋์ ์ฑ๋ฅ๊ณผ ๊ณต์ ์ฑ๊ณผ ์์ธก ๊ฐ๋ฅ์ฑ๋ ๊ณ ๋ คํ๊ณ ์๋ ๋ฐฉ์์ด๋ค.
'์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
CH10-1 Multiprocessor and Real-Time Scheduling (1) | 2025.06.09 |
---|---|
CH9-2 Uniprocessor Scheduling (0) | 2025.06.08 |
CH8-3 Virtual Memory (0) | 2025.06.07 |
CH8-2 Virtual Memory (1) | 2025.06.06 |
CH8-1 Virtual Memory (0) | 2025.06.05 |