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 |