CPU ์ค์ผ์ค๋ง (CPU Scheduling)
- ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋๋ CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ด ์ด๋ค ํ๋ก๊ทธ๋จ์ CPU ์์ ๊ถ์ ์ค ๊ฒ์ธ์ง ๊ฒฐ์ ํฉ๋๋ค.
- CPU ์ด์ฉ๋ฅ ์ ๋๊ฒ, ์ฃผ์ด์ง ์๊ฐ์ ๋ง์ ์ผ์ ํ๊ฒ, ์ค๋น ํ(ready queue)์ ์๋ ํ๋ก์ธ์ค๋ ์ ๊ฒ, ์๋ต ์๊ฐ์ ์งง๊ฒ ์ค์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
- ์ ์ ํ ์ค์ผ์ค๋ง๊ณผ ๋น์ ์ ํ ์ค์ผ์ค๋ง์ด ์์ต๋๋ค.
โป CPU๋ ?
CPU(Central Processing Unit)๋ ์ฐ์ ๋ ผ๋ฆฌ์ฐ์ฐ์ฅ์น, ์ ์ด์ฅ์น, ๋ ์ง์คํฐ๋ก ๊ตฌ์ฑ๋์ด ์๋ ์ปดํจํฐ ์ฅ์น๋ฅผ ๋งํ๋ฉฐ, ์ธํฐ๋ฝํธ์ ์ํด ๋จ์ํ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ ๋ช ๋ น์ด๋ฅผ ํด์ํด์ ์คํํ๋ ์ผ๊พผ์ ๋๋ค.
1. ๋น์ ์ ํ ๋ฐฉ์ (non-preemptive)
ํ๋ก์ธ์ค๊ฐ ์ค์ค๋ก CPU ์์ ๊ถ์ ํฌ๊ธฐํ๋ ๋ฐฉ์์ด๋ฉฐ, ๊ฐ์ ๋ก ํ๋ก์ธ์ค๋ฅผ ์ค์งํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ปจํ ์คํธ ์ค์์นญ์ผ๋ก ์ธํ ๋ถํ๊ฐ ์ ์ต๋๋ค. ๋ชจ๋ ํ๋ก์ธ์ค์ ๋ํ ์๊ตฌ๋ฅผ ๊ณต์ ํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ง๋ง ์งง์ ์์ ์ ์ํํ๋ ํ๋ก์ธ์ค๊ฐ ๊ธด ์์ ์ข ๋ฃ ์๊น์ง ๋๊ธฐํด์ผํ ์๋ ์์ต๋๋ค.
FCFS / FIFO ( Frist Come, First Served / First In Frist Out) |
โ ๊ฐ์ฅ ๋จผ์ ์จ ๊ฒ์ ๊ฐ์ฅ ๋จผ์ ์ฒ๋ฆฌํ๋ ์๊ณ ๋ฆฌ์ฆ โ ๋จ์ : ๊ธธ๊ฒ ์ํ๋๋ ํ๋ก์ธ์ค ๋๋ฌธ์ ์ค๋น ํ์์ ์ค๋ ๊ธฐ๋ค๋ฆฌ๋ ํ์(convoy effect)์ด ๋ฐ์ |
SJF ( Shortest Job First ) |
โ ์คํ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ฅ ๋จผ์ ์คํํ๋ ์๊ณ ๋ฆฌ์ฆ โ ๋จ์ : ๊ธด ์๊ฐ์ ๊ฐ์ง ํ๋ก์ธ์ค๊ฐ ์คํ๋์ง ์์ ๊ธฐ์ ํ์์ด ์ผ์ด๋๋ฉฐ ํ๊ท ๋๊ธฐ ์๊ฐ์ด ๊ฐ์ฅ ์งง์. |
์ฐ์ ์์ ( Priority ) |
โ ๊ฐ ํ๋ก์ธ์ค ๋ณ๋ก ์ฐ์ ์์๋ฅผ ํ ๋นํ๊ณ , ์ฐ์ ์์์ ๋ฐ๋ผ cpu๋ฅผ ํ ๋นํ๋ ์๊ณ ๋ฆฌ์ฆ โ SJF ์ค์ผ์ค๋ง์ ๊ฒฝ์ฐ ๊ธด ์๊ฐ์ ๊ฐ์ง ํ๋ก์ธ์ค๊ฐ ์คํ๋์ง ์๋ ํ์์ด ์๋ค. ์ฐ์ ์์๋ฅผ ๋ถ์ฌํจ์ผ๋ก์ ๋จ์ ์ ๋ณด์ํ ์๊ณ ๋ฆฌ์ฆ |
2. ์ ์ ํ ๋ฐฉ์ (preemptive)
ํ๋ ์ด์์ฒด์ ๊ฐ ์ฐ๋ ๋ฐฉ์์ด๋ฉฐ, ์ง๊ธ ์ฌ์ฉํ๊ณ ์๋ ํ๋ก์ธ์ค๋ฅผ ์๊ณ ๋ฆฌ์ฆ์ ์ํด ์ค๋จ์์ผ ๋ฒ๋ฆฌ๊ณ ๊ฐ์ ๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค์ cpu ์์ ๊ถ์ ํ ๋นํ๋ ๋ฐฉ์์ ๋๋ค. ๋น๊ต์ ์๋ต์ด ๋น ๋ฅธ ์ฅ์ ์ด ์์ง๋ง ๋์ ์ฐ์ ์์ ํ๋ก์ธ์ค๋ค์ด ๊ณ์ ๋ค์ด์ค๋ ๊ฒฝ์ฐ ์ค๋ฒ๋ ๋๋ฅผ ์ด๋ํฉ๋๋ค.
๋ผ์ด๋๋ก๋น ( RR, Round Robin ) |
โ ํ๋ ์ปดํจํฐ๊ฐ ์ฐ๋ ์ค์ผ์ค๋ง์ธ ์ฐ์ ์์ ์ค์ผ์ค๋ง(priority scheduling)์ ์ผ์ข
โ ๊ฐ ํ๋ก์ธ์ค๋ ๋์ผํ ํ ๋น ์๊ฐ์ ์ฃผ๊ณ ๊ทธ ์๊ฐ ์์ ๋๋์ง ์์ผ๋ฉด ๋ค์ ์ค๋น ํ (ready queue)์ ๋ค๋ก ๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ |
SRF ( Shortest Remain Time ) |
โ SRF๋ ์ค๊ฐ์ ๋ ์งง์ ์์ ์ด ๋ค์ด์ค๋ฉด ์ํํ๋ ํ๋ก์ธ์ค๋ฅผ ์ค์งํ๊ณ ํด๋น ํ๋ก์ธ์ค๋ฅผ ์ํํ๋ ์๊ณ ๋ฆฌ์ฆ |
๋ค๋จ๊ณ ํ ( MLQ, MultiLevel Queue ) |
โ ์ฐ์ ์์์ ๋ฐ๋ฅธ ์ค๋น ํ๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํ๊ณ , ํ๋ง๋ค ๋ผ์ด๋ ๋ก๋น์ด๋ FCFS ๋ฑ ๋ค๋ฅธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ๊ฒ โ ํ ๊ฐ์ ํ๋ก์ธ์ค ์ด๋์ด ์ ๋๋ฏ๋ก ์ค์ผ์ค๋ง ๋ถ๋ด์ด ์ ์ง๋ง ์ ์ฐ์ฑ์ด ๋จ์ด์ง๋ ํน์ง์ด ์๋ค โ ๊ฐ ํ๋ ์์ ๋ง์ ๋ ์์ ์ธ ์ค์ผ์ค๋ง์ ๊ฐ์ง๋ค. |
Reference.
๋์: ๋ฉด์ ์ ์ํ CS ์ ๊ณต์ง์ ๋ ธํธ (๊ธธ๋ฒ, ์ฃผํ์ฒ )
๋ธ๋ก๊ทธ: ํ๋ค๋ฆฌ๋ฉฐ ํผ๋ ๊ฝ - [์ด์์ฒด์ ] CPU ์ค์ผ์ค๋ง (์ ์ & ๋น์ ์ ) (tistory.com)
'๐จ๐ปโ๐ป programming > โฝ ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(OS) ๋คํธ์ํฌ ๊ธฐ๊ธฐ (3) | 2022.12.14 |
---|---|
(OS) TCP/IP, UDP ๊ณ์ธต๊ตฌ์กฐ, OSI (2) | 2022.09.20 |
(OS) ๋คํธ์ํฌ ๊ธฐ์ด (0) | 2022.09.07 |
(OS) ํ๋ก์ธ์ค์ ์ค๋ ๋ (1) | 2022.08.03 |
(OS) ์ด์์ฒด์ ์ ๋ฉ๋ชจ๋ฆฌ (0) | 2022.07.29 |
์ ํ๋ ๊ฒ ๋ณด๋ค ๋ซ๊ฒ ์ง
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!