์šด์˜์ฒด์ œ

CH9-2 Uniprocessor Scheduling

meteorqz6 2025. 6. 8. 21:06

Feedback

์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธด ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚ฎ์ถ”๋Š” ๋ฐฉ์‹

์‹คํ–‰ ์‹œ๊ฐ„์„ ์˜ˆ์ธกํ•˜์ง€ ์•Š๊ณ ๋„ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์งง์€ ํ”„๋กœ์„ธ์Šคํ•œํ…Œ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹

starvation ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค

 

q = 2^i - i๋Š” ํ์˜ ๋ฒˆํ˜ธ๋กœ, 0๋ฒˆ ํ๋Š” 2^0: 1์‹œ๊ฐ„ ์‹คํ–‰  ๊ฐ€๋Šฅ, 1๋ฒˆ ํ๋Š” 2^1: 2์‹œ๊ฐ„ ์‹คํ–‰ ๊ฐ€๋Šฅ,,, , n๋ฒˆ ํ๋Š” 2^n: n์‹œ๊ฐ„ ์‹คํ–‰ ๊ฐ€๋Šฅ

ํ์˜ ๋ฒˆํ˜ธ๊ฐ€ ํด์ˆ˜๋ก ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ ธ์„œ starvation ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

 

Multi-level Feedback Queue

- ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”ผ๋“œ๋ฐฑ ํ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

0๋ฒˆ ํ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค: ์•„์ง ํ•œ ๋ฒˆ๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š์Œ

1๋ฒˆ ํ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค: 1์ดˆ ์ด์ƒ ์‹คํ–‰ํ•จ

2๋ฒˆ ํ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค: 2์ดˆ ์ด์ƒ ์‹คํ–‰ํ•จ

...

n๋ฒˆ ํ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค: n์ดˆ ์ด์ƒ ์‹คํ–‰ํ•จ

 

0๋ฒˆ ํ์—์„œ ๋‚˜์™€์„œ CPU๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋‹ค๊ฐ€ ํƒ€์ž„์•„์›ƒ์ด ๋˜๋ฉด 1๋ฒˆ ํ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

1๋ฒˆ ํ์—์„œ ๋‚˜์™€์„œ CPU๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋‹ค๊ฐ€ ํƒ€์ž„์•„์›ƒ์ด ๋˜๋ฉด 2๋ฒˆ ํ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. (0๋ฒˆ ํ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ)

...

n๋ฒˆ ํ์—์„œ ๋‚˜์™€์„œ CPU๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋‹ค๊ฐ€ ํƒ€์ž„์•„์›ƒ์ด ๋˜๋ฉด n๋ฒˆ ํ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. (0๋ฒˆ๋ถ€ํ„ฐ n-1๋ฒˆ๊นŒ์ง€์˜ ํ๊ฐ€ ๋ชจ๋‘ ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ)

 

Fair-Share Scheduling

- ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์˜ ๋ฌถ์Œ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ฐ€์ •ํ•œ๋‹ค. 

- ๊ฐœ๋ณ„ ํ”„๋กœ์„ธ์Šค์˜ ์„ฑ๋Šฅ๋ณด๋‹ค๋Š” ์ž์‹ ์ด ์‹คํ–‰ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์˜ ์„ฑ๋Šฅ์— ๋” ๊ด€์‹ฌ์ด ์žˆ๋‹ค.

- ๋งŒ์•ฝ์— ๊ทธ๋ฃน 1์— 10๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ, ๊ทธ๋ฃน 2์— 1๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ ์ค‘์ผ ๋•Œ, ์ผ๋ฐ˜์ ์ธ ์Šค์ผ€์ค„๋ง์€ ๊ทธ๋ฃน 1์—๊ฒŒ ๊ทธ๋ฃน 2๋ณด๋‹ค 10๋ฐฐ ๋งŽ์€ CPU ์‹œ๊ฐ„์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐฉ์‹์€ ๋‘ ๊ทธ๋ฃน์—๊ฒŒ ๊ฑฐ์˜ ๋™๋“ฑํ•œ CPU ์‹œ๊ฐ„์„ ํ• ๋‹นํ•˜์—ฌ ๊ทธ๋ฃน ๊ฐ„์˜ ๊ณต์ •์„ฑ์„ ๋งž์ถ˜๋‹ค.

 

๊ทธ๋ฃน 1 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: ํ”„๋กœ์„ธ์Šค A

๊ทธ๋ฃน 2 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜: ํ”„๋กœ์„ธ์Šค B, ํ”„๋กœ์„ธ์Šค C

 

ํ”„๋กœ์„ธ์Šค A๋ฅผ ์‹คํ–‰ํ•œ ํ›„์— ํƒ€์ž„์•„์›ƒ์ด ๋˜๋ฉด B, C ์ค‘ ํ•˜๋‚˜๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค.

 

A → B or C → A → B or C ...

 

Traditional UNIX Scheduling (CPU๊ฐ€ 1๊ฐœ์ธ ์‹œ์Šคํ…œ์„ ๊ฐ€์ •)

UNIX๋Š” ๊ณต์ •์„ฑ์„ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์š”์†Œ๋กœ ์ƒ๊ฐํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ณ  starvation ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค.

 

- ๋‹ค๋‹จ๊ณ„ ํ”ผ๋“œ๋ฐฑ ํ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ™์€ ์šฐ์„ ์ˆœ์œ„ ํ ์•ˆ์—์„œ๋Š” ๋ผ์šด๋“œ ๋กœ๋นˆ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ฆ‰, ๊ฐ™์€ ๋ ˆ๋ฒจ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์€ ๊ณตํ‰ํ•˜๊ฒŒ CPU ์‹œ๊ฐ„์„ ์กฐ๊ธˆ์”ฉ ๋‚˜๋ˆ  ์“ด๋‹ค.

- ํ ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฐฉ์‹์ด ๋ผ์šด๋“œ ๋กœ๋นˆ ๋ฐฉ์‹์ด๋ผ ๊ณต์ •ํ•˜๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์Šค์ผ€์ค„๋ง๋œ๋‹ค.

- 1์ดˆ์— ํ•œ ๋ฒˆ์”ฉ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์† CPU๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ ํ”„๋กœ์„ธ์Šค๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์•„์ง„๋‹ค.

 

- Base Priority: ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ ์ •๋œ ์šฐ์„ ์ˆœ์œ„ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€

 

swapper (์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’๋‹ค)

block I/O device control

character I/O device control

user processes (์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ๋‹ค)

 

- nice: ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋™์ ์œผ๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’

- nice ๊ฐ’์„ ํ†ตํ•ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์šฐ์„ ์ˆœ์œ„ ๊ทธ๋ฃน ๋‚ด์—์„œ ์ข€ ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋‚˜ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ–๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

CPUj(i) = Uj(i-1)/2+Uj(i-2)/4+Uj(i-3)/8+Uj(i-4)/16+ ……

๋ฐ”๋กœ ์ง์ „์˜ ์‹ค์ œ CPU ์‚ฌ์šฉ๋Ÿ‰์—๋Š” ๊ฐ€์žฅ ํฐ ๊ฐ€์ค‘์น˜์ธ 1/2๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค. 

 

์ตœ๊ทผ CPU๋ฅผ ๋งŽ์ด ์“ด ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚ฎ์ถ”๊ณ  ์ตœ๊ทผ์— CPU๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ ํ”„๋กœ์„ธ์Šค์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์—ฌ์„œ ๊ณจ๊ณ ๋ฃจ CPU๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ ๋ชฉํ‘œ์ด๋‹ค.

 

Scheduling Formula

CPU๋ฅผ ๋งŽ์ด ์“ด ํ”„๋กœ์„ธ์Šค๋Š” CPU ๊ฐ’์ด ๋†’์•„์ ธ์„œ ์šฐ์„ ์ˆœ์œ„(P)๊ฐ’์ด ์ปค์ง€๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ ์‹ค์ œ ์šฐ์„ ์ˆœ์œ„๋Š” ๋‚ฎ์•„์ง„๋‹ค.

'์šด์˜์ฒด์ œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

CH10-2 Multiprocessor and Real-Time Scheduling  (0) 2025.06.13
CH10-1 Multiprocessor and Real-Time Scheduling  (1) 2025.06.09
CH9-1 Uniprocessor Scheduling  (0) 2025.06.08
CH8-3 Virtual Memory  (0) 2025.06.07
CH8-2 Virtual Memory  (1) 2025.06.06