์šด์˜์ฒด์ œ

CH9-1 Uniprocessor Scheduling

meteorqz6 2025. 6. 8. 16:07

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