CPU ์ค์ผ์ค๋ง
ํ๋์ ๋ค์ด์ PC์ ์ปดํจํ ์ฑ๋ฅ์ด ์ฆ๊ฐํ๊ณ , ์ด์ ๋ฐ๋ผ ๋์์ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๋์ ์ฌ์ฉํ๋ ์ผ์ด ์ฆ๋ค.
์ด์์ฒด์ ์ ์ฅ์์๋ ๋์๋ค๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์๋ ํ๋ก์ธ์ค๋ค์ ๋ํด,
๋น๋ก CPU ์ฝ์ด๊ฐ ํ๋๋ผ์ ํ ๋ฒ์ ํ๋์ ํ๋ก์ธ์ค ๋ง์ ์คํ์ํฌ ์ ์๋ ์ํฉ์ผ์ง๋ผ๋,
์ฌ์ฉ์๋ก ํ์ฌ๊ธ ๋ชจ๋ ํ๋ก์ธ์ค๋ค์ด ๋ณ๋ ฌ์ ์ผ๋ก ์คํ๋๊ณ ์๋ค๋ ์ฐฉ๊ฐ์ ๋ถ๋ฌ์ผ์ผํฌ ์ ์์ด์ผ ํ๋ค.
๋ง์ฝ PC๋ฅผ ํตํด ์์ ์ ๋ค์ผ๋ฉด์ ์น์ํ์ ํ๋ ์ํฉ์์,
์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ ๋์ ๊ฒ์์ฐฝ์ ํ์ดํ์ด ์๋๋ค๋ฉด ์ด๋ ์ด์์ฒด์ ์ ์ญํ ์ ์ ๋๋ก ์ํํ๊ณ ์์ง ์์ ๊ฒ์ด๋ค.
์ด๋ฅผ ์ํด, ์ด์์ฒด์ ๋ CPU๋ฅผ ํ ๋นํ ์์ ๋ค์ ๋ํ ์ค์ผ์ค๋ง์ ์ํํ๋ค.
๋จ์ํ ์ค์ผ์ค๋ง์ ์ํ์ํค๋ ๋จ๊ณ๋ฅผ ๋์ด, ์ด๋ฅผ ์ ์ํํ ์ ์์ด์ผ ํ๋ค.
์ค์ผ์ค๋ง์ ํ๊ฐ ํญ๋ชฉ
๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ์ค์ผ์ค๋ง์ ํด์ผ ์ด๋ฅผ ์ ์ํํ๋ค๊ณ ํ ์ ์์๊น?
์ด๋ค ์ค์ผ์ค๋ง ๊ธฐ๋ฒ๋ค์ด ์กด์ฌํ๋์ง ์์๋ณด๊ธฐ์ ์์,
์ค์ผ์ค๋ง์์ ํ์ฉ๋๋ ๋ค์ํ ํ๊ฐ ํญ๋ชฉ์ ๋ํ ์ดํด๊ฐ ํ์ํ๋ค.
๋ํ์ ์ธ ์ค์ผ์ค๋ง์ ํ๊ฐ ํญ๋ชฉ์๋ ๋ค์์ ์์๋ค์ด ์กด์ฌํ๋ค.
- ๋ฐํ ์๊ฐ(turnaround time): ํน์ ์์ ์ด ์์ ๋ชฉ๋ก์ ๋์ฐฉํ๊ณ , ํด๋น ์์ ์ด ์๋ฃ๋ ๋๊น์ง ์์๋ ์๊ฐ
- ๊ณต์ ์ฑ(fairness): ํน์ ํ๋ก์ธ์ค์ ์น์ฐ์น์ง ์๊ณ ๋ชจ๋ ํ๋ก์ธ์ค์ ๊ณต์ ํ๊ฒ CPU๊ฐ ํ ๋น๋๋๊ฐ
- ์๋ต ์๊ฐ(response time): ํน์ ์์ ์ด ์์ ๋ชฉ๋ก์ ๋์ฐฉํ๊ณ , ํด๋น ์์ ์ด ์ฐฉ์๋ ๋๊น์ง ์์๋ ์๊ฐ
๊ทธ ์ธ์๋ CPU ์ด์ฉ๋ฅ , ์ค๋ฒํค๋ ๋ฑ์ด ์ถ๊ฐ๋ก ์กด์ฌํ๋ ํด๋น ๊ธ์์๋ ์ 3๊ฐ์ ๋ํด์๋ง ๋ค๋ฃจ๊ณ ์ ํ๋ค.
์ค์ผ์ค๋ง ๊ธฐ๋ฒ์ ๋ถ๋ฅ ๊ธฐ์ค
์ค์ผ์ค๋ง ๊ธฐ๋ฒ๋ค์ ๋ค์ํ ๋ถ๋ฅ ๊ธฐ์ค์ ๊ฐ๋๋ค. ๊ฐ๋จํ ์ด๋ฅผ ๋จผ์ ์๊ฐํ ๋ค ์ค์ผ์ค๋ง ๊ธฐ๋ฒ์๋ ์ด๋ค ๊ฒ๋ค์ด ์กด์ฌํ๋์ง ์๊ฐํ๊ฒ ๋ค.
์ ์ ํ vs ๋น์ ์ ํ
์ ์ ์ด๋ผ๋ ๋ง์ ์๋ฏธ๋,
์ด๋ฏธ CPU๋ฅผ ํ ๋น๋ฐ์ ์ฌ์ฉํ๊ณ ์๋ ํน์ ์์ ์ ๋ํด ์ด์์ฒด์ ๊ฐ CPU์ ์ ์ด๊ถ์ ๊ฐ์ ธ์ฌ ์ ์๋์ง์ ๋ํด์์ด๋ค.
๋ฐ๋ผ์ ๋น์ ์ ํ์ ๋ฐ๋๋ก ํ๋ฒ CPU์ ์์ ์ด ํ ๋น๋๋ฉด ํด๋น ์์ ์ด ๋๋ ๋๊น์ง CPU์ ์ ์ด๊ถ์ ์ด์์ฒด์ ๊ฐ ๋๋ ค๋ฐ์ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค.
์ ์ vs ๋์
์ฌ๊ธฐ์ ์ ์ ๊ณผ ๋์ ์ด๋ผ๋ ๋ง์ ๋์์ ๊ฐ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ์๋ฏธํ๋ค.
์ฆ ์ ์ ๋ฐฉ์์์๋ ํ๋ฒ ๊ฒฐ์ ๋ ํ๋ก์ธ์ค์ ์ฐ์ ์์๊ฐ ๋ณ๊ฒฝ๋์ง ์๋ ๊ฒ์ด๊ณ ,
๋ฐ๋๋ก ๋์ ๋ฐฉ์์์๋ ํ๋ฒ ๊ฒฐ์ ๋ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ ์ดํ ๋ณ๊ฒฝ๋ ์ ์๋ค.
๋จ์ผ ๋๊ธฐ์ด(queue) vs ๋ค์ค ๋๊ธฐ์ด
์ด๋ ๋ง ๊ทธ๋๋ก ํ๋ก์ธ์ค๋ค์ ๋๊ธฐ์ด์ด ํ๋์ธ์ง ์๋๋ฉด ์ฌ๋ฌ ๊ฐ์ธ์ง์ ๋ํ ์ฌ๋ถ์ด๋ค.
์ค์ผ์ค๋ง ๊ธฐ๋ฒ์ ์ข ๋ฅ
์ค์ผ์ค๋ง ๊ธฐ๋ฒ์๋ ๋ค์์ ๊ธฐ๋ฒ๋ค์ด ์กด์ฌํ๋ค.
- FCFS ์ค์ผ์ค๋ง
- SJF ์ค์ผ์ค๋ง
- STCF ์ค์ผ์ค๋ง
- RR ์ค์ผ์ค๋ง
- MLFQ ์ค์ผ์ค๋ง
- CFS ์ค์ผ์ค๋ง
FCFS ์ค์ผ์ค๋ง(FIFO)
First Come First Served์ ์ฝ์๋ก, ์๋ฏธ ๊ทธ๋๋ก ๋จผ์ ๋ค์ด์จ ์์ ์์๋๋ก ์์ ์ ์ํ์ํค๋ ๊ฒ์ ๋งํ๋ค.
ํด๋น ๋ฐฉ์์ ๋จผ์ ๋ค์ด์จ ์์ ์ด ๋๋ ๋๊น์ง ๋ค๋ฅธ ์์ ์ ์์ํ์ง ์๋ ๋น์ ์ ํ ์ค์ผ์ค๋ง์ด๊ณ ,
ํ๋ก์ธ์ค ๊ฐ ์ฐ์ ์์๊ฐ ๋ณํ์ง ์๋ ์ ์ ์ค์ผ์ค๋ง์ด๋ฉฐ, ๋จ์ผ ๋๊ธฐ์ด ์ค์ผ์ค๋ง์ด๋ค.
๋จผ์ ๋ค์ด์จ ์์ ์ ์ต์ฐ์ ์ผ๋ก ์ํํ๋ ๊ฒ์ ์ผํ๋ณด๊ธฐ์๋ ํ๋นํด ๋ณด์ด๊ณ ๊ณต์ ์ฑ์ ์ธก๋ฉด์์๋ ๋ฌธ์ ๊ฐ ์์ด ๋ณด์ด์ง๋ง,
๋ง์ฝ ๋จผ์ ๋ค์ด์จ ์์ ์ด ๋ค๋ฅธ ์์ ์ ๋นํด ๊ณผ๋ํ๊ฒ ๋ฉ์น๊ฐ ํฐ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ๋ ์ ์๋ค.
CPU ์ค์ผ์ค๋ง์ ๊ด์ ์์ ๊ณต์ ์ฑ์ด๋ ๊ฒฐ๊ตญ ๋ชจ๋ ํ๋ก์ธ์ค๋ค์ด ๋น์ทํ ์์ค์ผ๋ก CPU๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์,
๋จผ์ ๋ค์ด์จ ์์ ์ด ๋ค๋ฅธ ์์ ์ ๋นํด ๋ฉ์น์ ์ฐจ์ด๊ฐ ์กด์ฌํ๋ค๋ฉด ๋ค์ ๋ค์ด์จ ์์ ์ CPU๋ฅผ ๊ฑฐ์ ํ ๋น๋ฐ์ง ๋ชปํ ์๋ ์๋ค.
์ด๋ฌํ ์ํฉ์ Convoy Effect๋ผ๊ณ ํ๋๋ฐ
ํด๋น ์ํฉ์์๋ ๋ฐํ ์๊ฐ๊ณผ ์๋ต ์๊ฐ์ ์ธก๋ฉด์์๋ ์ฑ๋ฅ์ ๋ณด์ฅํ๊ธฐ๊ฐ ์ด๋ ต๋ค.
๋ฐ๋ผ์ ํด๋น ๋ฐฉ์์ ๋จ์ํ๊ณ ๊ตฌํํ๊ธฐ ์ฝ๋ค๋ ์ฅ์ ์ด ์์์๋ ์ ์ฌ์ฉ๋์ง ์๋ ๋ฐฉ์์ด๋ค.
SJF ์ค์ผ์ค๋ง
Shortest Job First์ ์ฝ์๋ก, ๋ง ๊ทธ๋๋ก ๊ฐ์ฅ ์งง์ ์์ ์ ๋จผ์ ์ํํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
ํด๋น ๋ฐฉ์์ ๋จ์ผ ๋๊ธฐ์ด๋ก ๊ตฌํ๋๋ค.
๋ํ ํด๋น ๋ฐฉ์์ ์ผ๋ฐ์ ์ผ๋ก ๋น์ ์ ํ์ผ๋ก ๊ตฌํ๋๋ฉฐ,
ํ๋ก์ธ์ค์ ์ฐ์ ์์๊ฐ ๊ฐ ํ๋ก์ธ์ค์ CPU ์ฌ์ฉ ์๊ฐ(CPU burst time)์ ๋ํ ์์ธก์น๋ก ๊ฒฐ์ ๋๋ ๋์ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ์ด๋ค.
SJF ์ค์ผ์ค๋ง์ ๋ชจ๋ ์์ ์ด ๋์์ ๋๊ธฐ์ด์ ๋ค์ด์ค๋ ์ํฉ์์๋ ์๋ต ์๊ฐ, ๊ณต์ ์ฑ์ ํ๊ฐ ๊ธฐ์ค ์ ์ต์ ์ ๊ธฐ๋ฒ์ด์ง๋ง,
ํ์ค์ ์ํฉ์ ๊ทธ๋ ์ง ์๋ค.
๋ฐ๋ผ์ ๋จผ์ ๋ฉ์น๊ฐ ํฐ ์์ ์ด ๋ค์ด์จ ๋ค์, ์์ฐจ์ ์ผ๋ก ์งง์ ์์ ์ด ๋ค์ด์จ๋ค๋ฉด
FCFS ์ค์ผ์ค๋ง์์ ๋ฐ์ํ๋ Convoy Effect๊ฐ ๋์ผํ๊ฒ ๋ฐ์ํ๋ค.
๋ํ ๊ฐ ์์ ์ CPU burst time์ ์ ํํ๊ฒ ์์ธกํ ์ ์๋ค๋ ๋ฌธ์ ์ ๋ ์กด์ฌํ๋ค.
STCF ์ค์ผ์ค๋ง
Shortest Time-to-Completion First์ ์ฝ์๋ก,
ํ์ฌ ๋๊ธฐ์ด์ ์กด์ฌํ๋ ์์ ๋ค ์ค ์๋ฃ๊น์ง ์์ฌ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ์์ ์ ์ฐ์ ์ผ๋ก ์ํ์ํจ๋ค.
ํด๋น ๋ฐฉ์์ ์ํด์๋ ํน์ ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ ์์ค์๋ ์ธ์ ๋ ์ง ์์ฌ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ์์ ์ผ๋ก ๋์ฒด๋ ์ ์์ด์ผ ํ๊ธฐ ๋๋ฌธ์
์ ์ ๋ฐฉ์์ ์ค์ผ์ค๋ง์ผ๋ก ๊ตฌํํด์ผ ํ๋ค.
๋ํ ์์ ์ ์ฐ์ ์์๊ฐ ์ค์๊ฐ์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์๋ ๋์ ์ค์ผ์ค๋ง์ด๋ฉด์ ๋จ์ผ ๋๊ธฐ์ด์ ๊ฐ๋ ์ค์ผ์ค๋ง์ด๋ค.
ํด๋น ๋ฐฉ์์ SJF ์ค์ผ์ค๋ง๊ณผ ๋ฌ๋ฆฌ, ๋ชจ๋ ์์ ์ด ๋์์ ๋๊ธฐ์ด์ ํฌํจ๋์ง ์๋๋ผ๋,
๋ฐํ ์๊ฐ๊ณผ ๊ณต์ ์ฑ ๋ง์ ๊ณ ๋ คํ์ ๋๋ ์ ๋ง ํ๋ฅญํ ๋ฐฉ์์ด๋ค.
ํ์ง๋ง ์๋ต ์๊ฐ์ ๊ณ ๋ คํ์ ๋๋ ์ด์ผ๊ธฐ๊ฐ ๋ฌ๋ผ์ง๋ค.
์์ฌ ์๊ฐ์ด ์๋์ ์ผ๋ก ๊ธด ์์ ๋ค์ CPU๋ฅผ ์ ์ ํ๊ธฐ ์ํด์๋ ์ค๋ ๋๊ธฐ ์๊ฐ์ ๊ฐ์ ธ์ผ ํ๊ณ ,
์ด๋ ์ด๋ฏธ ์์์ ์ธ๊ธํ ๋ชจ๋ ์ค์ผ์ค๋ง ๋ฐฉ์์์๋ ๋์ผํ๊ฒ ๋ฐ์ํ๋ ๋ฌธ์ ์ด๋ค.
๋ฐ๋ผ์ ์๋ต ์๊ฐ ๊ด์ ์์๋ ์ด๋ฏธ ์๊ฐ๋ ์ค์ผ์ค๋ง ๋ฐฉ์๋ค์ ๋ชจ๋ ์ข์ ๋ฐฉ์์ ์๋๋ค.
RR ์ค์ผ์ค๋ง
Round-Robin์ ์ฝ์๋ก,
ํด๋น ๋ฐฉ์์ ์ฌ์ ์ ํ์ ํํ ๊ฐ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์๊ฐ ๊ฐ์ ์ค์ ํ ํ ๋ชจ๋ ๋๊ธฐ์ด ๋ด ํ๋ก์ธ์ค๋ค์ ๋ํด
ํ์ ํํ ๋งํผ์ฉ๋ง CPU๋ฅผ ์ ์ ํ๊ฒ ํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
๋๊ธฐ์ด ๋ด ์กด์ฌํ๋ ๋ชจ๋ ์์ ๋ค์ด ํ์ ๊ถํ ๊ฐ๋งํผ ํ ๋ฒ์ฉ ์ํ๋๊ณ ๋๋ฉด,
์์์ ์ธ๊ธํ ๊ณผ์ ์ ๊ณ์ํด์ ์ํํ๋ค.
์์ ๊ฐ์ด ๋์ํ๋ ํด๋น ๋ฐฉ์์ ํน์ฑ์ ์ ์ ํ์ด๋ฉฐ ์ ์ ์ด๊ณ , ๋จ์ผ ๋๊ธฐ์ด ์ค์ผ์ค๋ง์ด๋ค.
ํด๋น ๋ฐฉ์์ ๊ณต์ ์ฑ์ ์ธก๋ฉด์์ ๋ณด์์ ๋ ์ ๋ง ํ๋ฅญํ ๋ฐฉ์์ด๋ค.
๋ํ ์๋ต ์๊ฐ์ ์ธก๋ฉด์์๋, ์์์ ์ด๋ฏธ ์ธ๊ธํ ์ค์ผ์ค๋ง ๋ฐฉ์๋ค์ ๋นํด ํจ์ฌ ๋์ ๋ฐฉ์์ด๋ค.
๋ค๋ง, ๋ฐํ ์๊ฐ์ ์ธก๋ฉด์์ ๋ณด์์ ๋๋ ๊ฑฐ์ ์ต์ ์ด๋ค.
์ผ๋ฐ์ ์ผ๋ก ๊ณต์ ์ฑ์ ์ฐ์ ์ํ๋ ๋ฐฉ์์์๋ ๋ฐํ ์๊ฐ๊ณผ ๊ฐ์ ํ๊ฐ ์ฒ๋๋ ๋์๊ฒ ๋์ฌ ์๋ฐ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๋น์ฐํ ๊ฒฐ๊ณผ์ด๋ค.
ํด๋น ๋ฐฉ์์ ๋ํ ํ์ ํํ ๊ฐ์ ์ด๋ป๊ฒ ์ค์ ํ๋๋์ ๋ฐ๋ผ์ ์ฑ๋ฅ์ด ๋ฌ๋ผ์ง๋ค.
๋ง์ฝ ํ์ ํํ ๊ฐ์ ์๋์ ์ผ๋ก ์๊ฒ ๊ฐ์ ธ๊ฐ๋ค๋ฉด, ํ๊ท ์๋ต ์๊ฐ์ ๋์ฑ ์ข์์ง ๊ฒ์ด๋ค.
๋ค๋ง ํ์ ํํ ๊ฐ์ด ๋๋ฌด ์์์ง๊ฒ ๋๋ฉด, ์ฝํ ์คํธ ์ค์์นญ์ด ๋๋ฌด ์์ฃผ ๋ฐ์ํ์ฌ ์ฑ๋ฅ ์ ์ข์ง ๋ชปํ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋ค.
๋ฐ๋ผ์ ๋ผ์ด๋๋ก๋น ๋ฐฉ์์์๋ ํด๋น trade-off๋ฅผ ๊ณ ๋ คํ์ฌ ์ ์ ํ ํ์ ํํ ๊ฐ์ ์ค์ ํ๋ ๊ฒ์ด ์ค์ํ๋ค.
ํด๋น ๋ฐฉ์์ ์์ ์ธ๊ธํ๋ฏ์ด ๋ฐํ ์๊ฐ์ ์ธก๋ฉด์์ ๊ทธ๋ฆฌ ์ข์ง ๋ชปํ ์ค์ผ์ค๋ง ๋ฐฉ์์ด์ง๋ง, ์ค์ ๋ก๋ ๋ง์ด ์ฐ์ด๋ ๋ฐฉ์์ด๋ค.
๊ทธ ์ด์ ๋ก๋,
ํ๋์ ์ปดํจํฐ์์ ์๋ต ์๊ฐ์ ๊ฐ์ฅ ์ฒด๊ฐ์ด ์๋๋ ์ฑ๋ฅ ์งํ ์ค ํ๋๋ผ๋ ์ ๊ณผ
๋ง ๊ทธ๋๋ก ์๋์ ์ผ๋ก ๋ฐํ ์๊ฐ์ด ์ ์ข์ ๊ฒ์ด์ง ์ปดํจํ ๊ธฐ์ ์ ๋ฐ์ ์ผ๋ก ์ ๋์ ์ผ๋ก๋ ๊ทธ ์ฐจ์ด๊ฐ ๋ฏธ๋ฏธํ๋ค๋ ์ ์ด ์๋ค.
MLFQ ์ค์ผ์ค๋ง
Multi-level Feedback Queue์ ์ฝ์๋ก,
ํด๋น ๋ฐฉ์์ ๊ฐ ์์ ์ CPU burst time์ ์์ธกํ๊ธฐ ์ด๋ ต๋ค๋ ํ๊ณ ์์์ ์๋ต ์๊ฐ๊ณผ ๋ฐํ ์๊ฐ์ ์ต์ ํํ๊ธฐ ์ํด ๋ฑ์ฅํ ๋ฐฉ์์ด๋ค.
์ด๋ฆ์์ ์ ์ ์๋ฏ์ด, ๋ค์ค ๋๊ธฐ์ด์ ์ฌ์ฉํ๋ ๋ฐฉ์์ธ๋ฐ ์ด๋ ๊ฐ ๋๊ธฐ์ด์ ํ๋์ ์ฐ์ ์์๋ฅผ ์๋ฏธํ๋ค.
์ฆ, ์ฐ์ ์์ ๋ณ๋ก ๋๊ธฐ์ด์ด ์กด์ฌํ๋ ๊ฒ์ด๋ค.
์ด ๋ ์ฐ์ ์์๋ ์ ์ ์ผ๋ก ์ ํด์ ธ ์๋ ๊ฒ์ด ์๋,
์ฒ์ ์์ ์ด ๋ค์ด์์ ๋๋ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๊ณ ์๋ค๊ฐ ์คํ์ด ๋จ์ ๋ฐ๋ผ ์ ์ฐจ ์ฐ์ ์์๊ฐ ๋ฎ์์ง๋ ๋ฐฉ์์ ์ฑํํ๋ค.
ํด๋น ๋ฐฉ์์ ๋ค์์ ๊ท์น์ ๋ฐ๋ผ ์ค์ผ์ค๋ง์ ์ํํ๋ค.
- ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ํ์ ์กด์ฌํ๋ ์์ ๋ถํฐ ์คํ
- ํน์ ํ์ ์ฌ๋ฌ ๊ฐ์ ์์ ์ด ์กด์ฌํ๋ค๋ฉด, ์ด๋ RR ๋ฐฉ์์ผ๋ก ์ค์ผ์ค๋ง
- ์๋ก์ด ์์ ์ด ๋ค์ด์ค๋ฉด ์ด๋ฅผ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ํ์ ๋ฐฐ์น
- ํน์ ์์ ์ด ํ์ ํํ ์ ๋ชจ๋ ์์งํ์ง ๋ชปํ ์ฑ CPU๋ฅผ ๋ฐํํ ๊ฒฝ์ฐ์ ๊ธฐ์กด ํ์ ๊ทธ๋๋ก ๋๊ณ , ํ์ ํํ ์ ๋ชจ๋ ์์งํ ๊ฒฝ์ฐ์๋ ํ๋จ๊ณ ๋ฎ์ ํ๋ก ์ด๋
- ์ฌ์ ์ ์ค์ ํด๋ ๊ธฐ๊ฐ์ด ์ง๋ ๊ฒฝ์ฐ ๋ชจ๋ ํ์ ์์ ์ ์ต์์ ํ๋ก ์ด๋(Aging)
์ด๋ฅผ ํตํด MLFQ๋ ์ฐ์ ์์๋ฅผ ๊ณ ๋ คํ๋ฉด์๋ ์์ ๋ค์ ์๋ต, ๋ฐํ ์๊ฐ์ ์ต์ ํํ๋ค.
๋ํ ๋ฎ์ ์ฐ์ ์์์ ์์ ๋ค์ด ๊ธฐ์ ์ํ์ ๋น ์ง๋ ๊ฒ์ ๊ณ ๋ คํ์ฌ Aging ๊ธฐ๋ฒ์ ์ถ๊ฐ์ ์ผ๋ก ์ ์ฉํ์ฌ ์ด๋ฅผ ํด๊ฒฐํ๋ค.
ํด๋น ๋ฐฉ์์ ์ ์ ํ, ๋์ , ๋ค์ค ๋๊ธฐ์ด ์ค์ผ์ค๋ง์ผ๋ก ๋ณผ ์ ์๋ค.
ํด๋น ๋ฐฉ์์ ๊ตฌํ์ ๋์ด๋๊ฐ ์๋ ๋ฐฉ์์ด์ง๋ง
์ค์๊ฐ์ผ๋ก ์๋ต์ ์ํํด์ผํ๋ ๋ํํ ์์ (ex. ํค๋ณด๋ ์ ๋ ฅ)์ ๋ํด ๋์์ง ์์ ์ฑ๋ฅ์ ๋ณด์ด๊ณ ,
๋ฉ์น๊ฐ ํฐ ์์ ๋ค์ด ์ง์์ ์ผ๋ก CPU๋ฅผ ํ ๋น๋ฐ์ ์ ์๊ฒ ํ๋ค๋ ์ ์์
๋ง์ ์ด์์ฒด์ ์์ ์ฑํํ๋ ๋ฐฉ์์ด๋ค. ํนํ, Windows ์ด์์ฒด์ ์์ ์ด๋ฅผ ๊ธฐ๋ณธ ์ค์ผ์ค๋ฌ๋ก ์ฌ์ฉํ๋ค.
CFS ์ค์ผ์ค๋ง
Completely Fair Scheduler์ ์ฝ์๋ก, ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ํด๋น ์ค์ผ์ค๋ง ๋ฐฉ์์ ๊ณต์ ์ฑ์ ์ต์ฐ์ ๋ชฉํ๋ก ์ก๋๋ค.
์ด๋ฅผ ์ํด ํด๋น ๋ฐฉ์์์๋ sched_latency์ min_granularity๋ผ๋ ๋ ๋ณ์๋ฅผ ๋จผ์ ์ค์ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋ ๊ฐ์ ๊ฐ๊ฐ 48ms์ 6ms๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ๊ฒ ๋ค.
์ฌ๊ธฐ์์ sched_latency๋ ํ์ฌ ๋๊ธฐ์ด์ ์กด์ฌํ๋ ๋ชจ๋ ์์ ๋ค์ด ๊ณต์ ํ๋ ํ๋์ ์ฌ์ดํด ์ฃผ๊ธฐ์ด๋ค.
๋ง์ฝ ๋๊ธฐ์ด ๋ด ํ๋ก์ธ์ค๊ฐ 4๊ฐ ์กด์ฌํ๋ค๋ฉด, 48ms๋ฅผ 4๋ก ๋๋ ๊ฐ๊ฐ 12ms์ฉ ํ ๋น๋ฐ๋๋ค.
์ด์ ๊ฐ ์์ ์ 12ms์ฉ ์ํํ๊ฒ ๋๊ณ , ๊ฐ ์์ ์ด ๊ฐ๋ vruntime์ด๋ผ๋ ๋ณ์์ ์คํ ์๊ฐ์ ์๋ ์์ผ๋ก ์๋ํ๋ค.
์ด ๋ ๋ค์ ์ํํ ์์ ์ vruntime์ด ๊ฐ์ฅ ์์ ์์ ์ ์ ํํ๊ฒ ๋๋ค.
๋ง์ฝ ๋๊ธฐ์ด ๋ด ํ๋ก์ธ์ค๊ฐ ๊ต์ฅํ ๋ง์ ์ํฉ์์๋, ๊ฐ ์์ ์ด ํ ๋น ๋ฐ๋ ์๊ฐ์ด ๊ต์ฅํ ์งง์ ๊ฒ์ด๋ค. ๋ํ ์ปจํ ์คํธ ์ค์์นญ์ด ๋ ์์ฃผ ๋ฐ์ํ์ฌ ์ฑ๋ฅ ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
์ด๋ฅผ ์ํด ์กด์ฌํ๋ ๊ฒ์ด min_granularity ๊ฐ์ธ๋ฐ, ๊ฐ ์์ ์ ํ ๋น๋๋ ์๊ฐ์ด ํด๋น ๊ฐ๋ณด๋ค ์์์ง๋๋ผ๋ ์ค์ผ์ค๋ฌ๋ ๋ฌด์กฐ๊ฑด min_granularity ๊ฐ ๋งํผ์ ์์ ์ ์ํ์ํจ๋ค.
CFS๊ฐ ๊ณต์ ์ฑ์ ์ต์ฐ์ ๋ชฉํ๋ก ์ก๊ธฐ๋ ํ๋, ๊ทธ๋ ๋ค๊ณ ์ฑ๋ฅ์ด ๊ทธ๋ ๊ฒ ๋์์ง๋ง์ ์๋ค.
CFS ๋ฐฉ์์์๋ ์ฑ๋ฅ์ ์ํด ์์ ๋ค์ Red-Black ํธ๋ฆฌ๋ฅผ ํตํด ๊ด๋ฆฌํ๋๋ฐ, ์ด๋ฅผ ํตํด ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก ์์ ๋ค์ ๊ด๋ฆฌํ๋ ๋ค๋ฅธ ๋ฐฉ์๊ณผ ๋น๊ตํ์ฌ ํด๋น ๋ถ์ผ์์ ๋ ๋์ ์ฑ๋ฅ์ ์ป์ ์ ์์๋ค. ํนํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๋ฐฉ์์ ๋นํด, ํ์ฅ์ฑ์ด ๋ ๋ฐ์ด๋๋ค.
CFS๋ ์์ ๊ฐ์ ํน์ง๋ค์ ํตํด ํ์ฅ์ฑ๊ณผ ์ฑ๋ฅ์ ์ด๋์ ๋ ๋ณด์ฅํ ์ ์์๊ณ , ์ด์ ๋ฆฌ๋ ์ค์์ ๊ธฐ๋ณธ ์ค์ ์ผ๋ก ์ฐ์ด๋ ์ค์ผ์ค๋ฌ์ด๋ค.
(nice ์กฐ์ ์ ํตํ ํ๋ก์ธ์ค ๊ฐ ํ ๋น ์๊ฐ ๊ฐ์ค์น ์กฐ์ ์ ๊ธ์ด ๋๋ฌด ๊ธธ์ด์ง ํ์ ๋ค๋ฃจ์ง ์๊ฒ ๋ค.)
์ฐธ์กฐ
OSTEP(Operating System Three Easy Pieces), 2015 - Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau