CPU ์ค์ผ์ค๋ง์ด๋?
ํ๋ก์ธ์ค๋ ์์ฑ๋ ํ ์ฌ๋ฌ ์ํ๋ฅผ ๊ฑฐ์นจ (์์ฑ, ์ค๋น, ์คํ, ์๋ฃ, ๋๊ธฐ ์ํ)
์ด๋, ์ด์์ฒด์ ์ CPU ์ค์ผ์ค๋ฌ๋ ์ค๋น ์ํ์ ํ๋ก์ธ์ค ์ค์์ ์ด๋ค ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ํ ๋นํ ์ง ๊ฒฐ์ ํด์ผํจ!
์ด ๊ณผ์ ์ CPU ์ค์ผ์ค๋ง์ด๋ผ ํจ
โก๏ธ CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ์ ํ๋ก์ธ์ค์์ ํด์ผ ํ๋ ์ผ์ ์ค๋ ๋ ๋จ์๋ก CPU์ ํ ๋น
CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๋ชฉํ
: CPU ์ด์ฉ๋ฅ ์ ๋๊ฒ, ์ฃผ์ด์ง ์๊ฐ์ ๋ง์ ์ผ์ ํ๊ฒ, ์ค๋น ํ์ ์๋ ํ๋ก์ธ์ค๋ ์ ๊ฒ, ์๋ต์๊ฐ์ ์งง๊ฒ ์ค์ ํ๋ ๊ฒ
CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ข ๋ฅ
CPU ์ค์ผ์ค๋ฌ๋ ์ธ์ ์ค์ผ์ค๋ง์ ๊ฒฐ์ ํ ๊น?
1) ์คํ์ํ์์ ๋๊ธฐ์ํ๋ก ์ ํ๋ ๋
2) ์คํ์ํ์์ ์ค๋น์ํ๋ก ์ ํ๋ ๋
3) ๋๊ธฐ์ํ์์ ์ค๋น์ํ๋ก ์ ํ๋ ๋
4) ์ข ๋ฃ๋ ๋
1๋ฒ๊ณผ 4๋ฒ ์ํฉ์์๋ง ์ค์ผ์ค๋ง์ด ๋ฐ์ํ๋ ๊ฒ์ ๋น์ ์ ํ(non-preemptive) ์ค์ผ์ค๋ง
์ด์ธ์ ๋ชจ๋ ์ค์ผ์ค๋ง์ ์ ์ ํ(preemptive) ์ค์ผ์ค๋ง
๋น์ ์ ํ(non-preemptive) ์ค์ผ์ค๋ง
๋น์ ์ ํ ๋ฐฉ์์ ํ๋ก์ธ์ค๊ฐ ์ค์ค๋ก CPU ์์ ๊ถ์ ํฌ๊ธฐํ๋ ๋ฐฉ์
→ ์ด๋ค ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ ์ ํ๊ณ ์๋ค๋ฉด ๋บ์ ์ ์์
- ๊ฐ์ ๋ก ํ๋ก์ธ์ค๋ฅผ ์ค์งํ์ง ์์
- ์ปจํ
์คํธ ์ค์์นญ์ผ๋ก ์ธํ ๋ถํ๊ฐ ์ ์
- ์ปจํ ์คํธ ์ค์์นญ (๋ฌธ๋งฅ ๊ตํ): ์ฌ๋ฌ๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ณ ์์ ๋ ๊ธฐ์กด์ ์คํ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ๊ฒ
- ํ๋ก์ธ์ค์ ๋ฐฐ์น์ ๋ฐ๋ผ์ ํจ์จ์ฑ ์ฐจ์ด๊ฐ ๋ง์ด ๋๊ฒ ๋จ
๋น์ ์ ํ ์ค์ผ์ค๋ง์ ์ข ๋ฅ
FCFS (First Come, First Served)
: ๊ฐ์ฅ ๋จผ์ ์จ ๊ฒ์ ๊ฐ์ฅ ๋จผ์ ์ฒ๋ฆฌํ๋ ์๊ณ ๋ฆฌ์ฆ
- ๊ธธ๊ฒ ์ํ๋๋ ํ๋ก์ธ์ค ๋๋ฌธ์ Convoy effect๊ฐ ๋ฐ์ํ๋ค๋ ๋จ์ ์ด ์์
- Convoy effect(ํธ์ ํจ๊ณผ): ๋ช ๊ฐ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ํ๋ก์ธ์ค๋ก ์ธํด ์ ์ฒด OS๊ฐ ๋๋ ค์ง๋ ํ์
SJF (Shortest Job First)
: ์คํ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ฅ ๋จผ์ ์คํํ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ค์ ๋ก๋ ํ๋ก์ธ์ค์ CPU ์คํ ์๊ฐ์ ์์ธกํ๋ ๊ฒ์ด ์ด๋ ต๋ค๋ ๋ฌธ์ ๊ฐ ์์
- ๊ธด ์๊ฐ์ ํ์๋ก ํ๋ ํ๋ก์ธ์ค๊ฐ ์ฐ์ ์์๊ฐ ๊ณ์ ๋ฐ๋ฆฌ๋ฉด์ ์คํ๋์ง ๋ชปํ๊ณ ๋ฌด๊ธฐํ์ผ๋ก ๋๊ธฐํ๋ ๊ธฐ์ ํ์(Starvation)์ด ์ผ์ด๋จ
์ฐ์ ์์ (Priority)
: ๊ฐ๊ฐ์ ํ๋ก์ธ์ค์ ์ฐ์ ์์ ๋๋ฒ๊ฐ ์๋ ์๊ณ ๋ฆฌ์ฆ
- ๊ธด ์๊ฐ์ ๊ฐ์ง ํ๋ก์ธ์ค๊ฐ ์คํ๋์ง ์๋ ํ์์ด ์ผ์ด๋๋ SJF ์ค์ผ์ค๋ง์ ๋จ์ ์ ๋ณด์ํจ
- ์ค๋๋ ์์ ์ ์ฐ์ ์์๋ฅผ ๋์ฌ์ฃผ๋ ์
์ ์ ํ(preemptive) ์ค์ผ์ค๋ง
์ ์ ํ ๋ฐฉ์์ ํ๋ ์ด์์ฒด์ ๊ฐ ์ฐ๋ ๋ฐฉ์์ผ๋ก ์ง๊ธ ์ฌ์ฉํ๊ณ ์๋ ํ๋ก์ธ์ค๋ฅผ ์๊ณ ๋ฆฌ์ฆ์ ์ํด ์ค๋จ์์ผ ๋ฒ๋ฆฌ๊ณ ๊ฐ์ ๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค์ CPU ์์ ๊ถ์ ํ ๋นํ๋ ๋ฐฉ์
- ์ฒ๋ฆฌ ์๊ฐ์ด ๋งค์ฐ ๊ธด ํ๋ก์ธ์ค์ CPU ์ฌ์ฉ ๋
์ ์ ๋ง์ ์ ์์ด ํจ์จ์ ์ธ ์ด์์ด ๊ฐ๋ฅ
- ์ฆ์ ์ปจํ ์คํธ ์ค์์นญ์ผ๋ก ์ธํด ์ค๋ฒํค๋(Overhead)๊ฐ ์ปค์ง ์ ์๋ค๋ ๋จ์ ์ด ์์
- ์ค๋ฒํค๋(Overhead): ์ด๋ค ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด ๋ค์ด๊ฐ๋ ๊ฐ์ ์ ์ธ ์ฒ๋ฆฌ ์๊ฐ · ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ๋งํจ
์ ์ ํ ์ค์ผ์ค๋ง์ ์ข ๋ฅ
๋ผ์ด๋ ๋ก๋น (RR, Round Robin)
: ํ๋ ์ปดํจํฐ๊ฐ ์ฐ๋ ์ค์ผ์ค๋ง์ ์ฐ์ ์์ ์ค์ผ์ค๋ง์ ์ผ์ข ์ผ๋ก ๊ฐ๊ฐ์ ํ๋ก์ธ์ค์ ๋์ผํ ํ ๋น ์๊ฐ์ ๋ถ์ฌํด์ ํด๋น ์๊ฐ ๋์๋ง CPU๋ฅผ ์ด์ฉํ๊ฒ ํจ
- ํ ๋น ์๊ฐ ๋ด์ ์ฒ๋ฆฌ๋ฅผ ์๋ฃํ์ง ๋ชปํ๋ฉด ๊ฐ์ ์ค๋จ ํ ๋ค์ ์์
์ผ๋ก ๋์ด๊ฐ๋ฏ๋ก ์ ์ ํ ๋ฐฉ์
- ์๊ฐ ์์ ์ฒ๋ฆฌ๋ฅผ ๋ชปํ๋ฉด ๋ค์ ์ค๋น ํ์ ๋ค๋ก ๋์๊ฐ๋ ๊ฒ
- ์๋ต ์๊ฐ์ ๋น ๋ฅด๊ฒ ํ ์ ์๋ค๋ ์ฅ์ ์ ๊ฐ์ง
- ์ผ๋ฐ์ ์ผ๋ก ์ ์ฒด ์์ ์๊ฐ์ ๊ธธ์ด์ง์ง๋ง ํ๊ท ์๋ต ์๊ฐ์ ์งง์์ง๋ค๋ ํน์ง์ด ์์
ex) q๋งํผ์ ํ ๋น ์๊ฐ์ด ๋ถ์ฌ๋๊ณ N๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์ด์์ (N-1)*q ์๊ฐ์ด ์ง๋๋ฉด ์๊ธฐ ์ฐจ๋ก๊ฐ ์ค๊ฒ๋จ
ํ ๋น ์๊ฐ์ด ๋๋ฌด ํฌ๋ฉด FCFS๊ฐ ๋๊ณ ์งง์ผ๋ฉด ์ปจํ ์คํธ ์ค์์นญ์ด ์ฆ์์ ธ์ ์ค๋ฒํค๋ → ๋น์ฉ ์ฆ๊ฐ
SRF (Shortest Remaining Time First)
: ํ์ฌ ์คํ๋๊ณ ์๋ ํ๋ก์ธ์ค์ ๋จ์ ์๊ฐ๋ณด๋ค ๋ ๋นจ๋ฆฌ ๋๋ ์ ์๋ ์งง์ ํ๋ก์ธ์ค๊ฐ ๋ค์ด์ค๋ฉด ํ์ฌ ์คํ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ค๋จํ๊ณ ์งง์ ํ๋ก์ธ์ค๋ฅผ ์คํํ๋๋ก ๋ฐ๊ฟ
- ์ค๊ฐ์ ์คํ ์๊ฐ์ด ๋ ์งง์ ์์ ์ด ๋ค์ด์๋ ๊ธฐ์กด ์งง์ ์์ ์ ๋ชจ๋ ์ํํ๊ณ ๊ทธ ๋ค์ ์งง์ ์์ ์ ์ด์ด๋๊ฐ๋๋น์ ์ ํ ์ค์ผ์ค๋ง์ธ SJF์ ๋ค๋ฆ
- ํ๊ท ๋๊ธฐ ์๊ฐ์ ์ค์ผ ์ ์์ง๋ง ์ญ์ ๋ค์ ํ๋ก์ธ์ค์ CPU burst time์ ์์ธกํ๋ ๊ฒ์ด ์ด๋ ต๋ค๋ ๋ฌธ์ ๊ฐ ์กด์ฌํจ
๋ค๋จ๊ณ ํ (Multilevel Queue)
: ์ฐ์ ์์์ ๋ฐ๋ฅธ ์ค๋น ํ๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํ๊ณ , ํ๋ง๋ค ๋ผ์ด๋ ๋ก๋น์ด๋ FCFS ๋ฑ ๋ค๋ฅธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ๊ฒ
- ํ ๊ฐ์ ํ๋ก์ธ์ค ์ด๋์ด ์ ๋๋ฏ๋ก ์ค์ผ์ค๋ง ๋ถ๋ด์ด ์ ์ง๋ง ์ ์ฐ์ฑ์ด ๋จ์ด์ง๋ ํน์ง์ด ์์
- ์ฐ์ ์์๊ฐ ๋์ ํ๋ถํฐ ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ๋ฎ์ ํ์ ํ๋ก์ธ์ค๊ฐ ์ฒ๋ฆฌ๊ฐ ์๋๋ ๊ธฐ์(Starvation)ํ์์ด ๋ํ๋ ์๋ ์์