Table of Contents
์ด์์ฒด์ ๊ฐ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ํ๋ก์ธ์์ ํ ๋นํ ๊ฒ์ธ๊ฐ ์ ํ๋ ํ๋ก์ธ์ค ์ค์ผ์ค๋ง(Process scheduling)์ ๋ํด ๋ค๋ฃจ๋ ์ฑํฐ๋ค. FCFS, SJF, RR ๋ฑ ๋ค์ํ ํ๋ก์ธ์ค ์ค์ผ์ค๋ง์ ๋ํด ์๊ฐํ๋ค.
Scheduling Criteria
์ด์์ฒด์ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ํ๋ก์ธ์์ ํ ๋นํ๋ ๊ฒ์ ๋์คํจ์น(Dispatch)๋ผ๊ณ ํ๋ค. (์ด๋ ํ๋ก์ธ์ค ์ํ๊ฐ ready
์์ running
์ผ๋ก ๋ฐ๋๋ค.) ๊ทธ๋ฆฌ๊ณ ์ด์์ฒด์ ๊ฐ ๋ ๋ ํ(Ready queue)์ ์๋ ํ๋ก์ธ์ค๋ค ์ค์์ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ๋์คํจ์นํ ๊ฒ์ธ๊ฐ ์ ํ๋ ๊ฒ์ด ํ๋ก์ธ์ค ์ค์ผ์ค๋ง(Process scheduling)์ด๋ค.
์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์๋ ๋ํ์ ์ผ๋ก FCFS, SJF, SRF, RR ๋ค ๊ฐ์ง ๋ฐฉ์์ด ์๊ณ , ์๊ณ ๋ฆฌ์ฆ์ ํ๊ฐํ ๋๋ ์ํ ์๊ฐ(Burst time)๊ณผ CPU ์ฌ์ฉ๋(CPU utilization), ๋จ์ ์๊ฐ ๋น ๋๋ง์น ํ๋ก์ธ์ค์ ์(Throughput), ํ๋์ ํ๋ก์ธ์ค๊ฐ ๋ ๋ ํ์์ ๋๊ธฐํ ์๊ฐ๋ถํฐ ์์ ์ ๋ง์น ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ(Turnaround time), ํ๋ก์ธ์ค๊ฐ ๋ ๋ ํ์์ ๋๊ธฐํ ์๊ฐ(Wating time), ํ๋ก์ธ์ค๊ฐ ์ฒ์์ผ๋ก CPU๋ฅผ ํ ๋น๋ฐ๊ธฐ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ(Response time)์ ๊ธฐ์ค์ผ๋ก ํ๋ค.
์ ์ (Preemptive) ๋ฐฉ์๊ณผ ๋น์ ์ (Non-Preemptive) ๋ฐฉ์์ผ๋ก ๋๋๋ค. ์ ์ ์ค์ผ์ค๋ง์ ์ด์์ฒด์ ๊ฐ ๊ฐ์ ๋ก ํ๋ก์ธ์ค์ ์ฌ์ฉ๊ถ์ ํต์ ํ๋ ๋ฐฉ์์ด๊ณ , ๋น์ ์ ์ค์ผ์ค๋ง์ ํ๋ก์ธ์ค๊ฐ ์ค์ค๋ก ๋ค์ ํ๋ก์ธ์ค์๊ฒ ์๋ฆฌ๋ฅผ ๋๊ฒจ์ฃผ๋ ๋ฐฉ์์ด๋ค. ์ฆ, ์ ์ ์ค์ผ์ค๋ง ๋ฐฉ์์์๋ CPU์ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋์ด ์์ ๋๋ ์ด์์ฒด์ ๊ฐ ๊ฐ์ ํด ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ํ ๋นํ ์ ์๋ค.
FCFS (First-Come, First-Served)
- ๋จผ์ ๋ค์ด์จ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ํ๋ก์ธ์์ ํ ๋นํ๋ ๋ฐฉ์์ด๋ค.
- Queue์ FIFO(First-In First-Out)์ ๋์ผํ๋ค.
- ๊ตฌํ์ด ์ฌ์์ ๊ฐ๋จํ ์์คํ ์ ์์ฃผ ์ฌ์ฉ๋๋ค.
- ํ๋ก์ธ์ค ์ฒ๋ฆฌ ์์์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ํฌ๊ฒ ๋ฌ๋ผ์ง ์ ์๋ค.
- ์ํ ์๊ฐ์ด ํฐ ํ๋ก์ธ์ค๊ฐ ๋จผ์ ๋ค์ด์ค๋ฉด ๊ทธ ๋ค์ ๋ค์ด์จ ํ๋ก์ธ์ค๋ค์ด ๋ถํ์ํ๊ฒ ์ค๋ ์๊ฐ์ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋ ์ฝ๋ณด์ด ํจ๊ณผ(Convoy effect)๊ฐ ๋ฐ์ํ๋ค.
- ๋จผ์ ์จ ํ๋ก์ธ์ค๊ฐ ๋๋ ๋๊น์ง ์ด์์ฒด์ ๊ฐ ๊ฐ์ ํ์ง ์๋ ๋น์ ์ ์ค์ผ์ค๋ง ๋ฐฉ์์ด๋ค.
Process | Burst time | Response time | Turnaround time | Waiting time |
---|---|---|---|---|
P1 | 9 | 0 | 9 | 0 |
P2 | 1 | 9 | 10 | 9 |
P3 | 1 | 10 | 11 | 10 |
+----+----+----+----+----+----+----+----+----+----+----+
| P1 | P2 | P3 |
+----+----+----+----+----+----+----+----+----+----+----+
0 9 10 11
P1, P2, P3 ํ๋ก์ธ์ค๊ฐ ๋ค์ด์จ ์์๋๋ก ํ ๋น๋๋ค. P2, P3๋ ์ํ ์๊ฐ์ด ์งง์์๋ P1์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ฒ ๋์ด ํ๊ท ๋๊ธฐ ์๊ฐ์ด ๋์ด๋ฌ๋ค.
SJF (Shortest Job First)
- ํ๋ก์ธ์ค์ ์ํ ์๊ฐ์ด ์งง์ ์์์ ๋ฐ๋ผ ํ๋ก์ธ์์ ํ ๋นํ๋ค.
- FCFS์์ ๋ฐ์ํ๋ ์ฝ๋ณด์ด ํจ๊ณผ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
- ์ต์ ์๊ณ ๋ฆฌ์ฆ์ด์ง๋ง ์ํ ์๊ฐ์ ์ ํํ ์ ์ ์๋ค. (์์ ์ฒ๋ฆฌํ ํ๋ก์ธ์ค๋ค์ ๊ธฐ๋ก์ ๋ณด๊ณ ์ถ์ธกํ๋ค.)
- ๋ฒ์คํธ ์๊ฐ์ด ํฐ ํ๋ก์ธ์ค๋ ๊ณ์ ๋ค๋ก ๋ฐ๋ ค๋๋ ๊ธฐ์(Starvation)๊ฐ ๋ฐ์ํ๋ค.
- ๋ฒ์คํธ ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค๊ฐ ๋๋ ๋๊น์ง ์ด์์ฒด์ ๊ฐ ๊ฐ์ ํ์ง ์๋ ๋น์ ์ ์ค์ผ์ค๋ง ๋ฐฉ์์ด๋ค.
Process | Burst time | Response time | Turnaround time | Waiting time |
---|---|---|---|---|
P1 | 6 | 3 | 9 | 3 |
P2 | 8 | 16 | 24 | 16 |
P3 | 7 | 9 | 16 | 9 |
P4 | 3 | 0 | 3 | 0 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| P4 | P1 | P3 | P2 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
0 3 9 16 24
ํ๋ก์ธ์ค์ ์ํ ์๊ฐ์ ์ ํํ ์์ธกํ๋ค๋ ๊ฐ์ ํ์, ์ํ ์๊ฐ์ด ์งง์ ์์๋๋ก ํ๋ก์ธ์์ ํ ๋น๋๋ค.
SRF (Shortest Remaining Time First)
- ํ๋ก์ธ์ค์ ๋จ์ ์ํ ์๊ฐ์ด ์งง์ ์์์ ๋ฐ๋ผ ํ๋ก์ธ์์ ํ ๋นํ๋ค.
- SJF์์ ๋ฐ์ํ๋ ๊ธฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
- ์ํ ์ค ๋ค๋ฅธ ํ๋ก์ธ์ค๋ณด๋ค ๋จ์ ์ํ ์๊ฐ์ด ์ ์ด์ง๋ฉด ์ด์์ฒด์ ๊ฐ ๊ฐ์ ํด ์๋ฆฌ๋ฅผ ๋ฐ๊พธ๋ ์ ์ ์ค์ผ์ค๋ง ๋ฐฉ์์ด๋ค.
Process | Arrival time | Burst time | Response time | Turnaround time | Waiting time |
---|---|---|---|---|---|
P1 | 0 | 8 | 0 | 17 | 9 |
P2 | 1 | 4 | 1 | 5 | 0 |
P3 | 2 | 9 | 17 | 24 | 15 |
P4 | 3 | 5 | 5 | 7 | 2 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| P1 | P2 | P4 | P1 | P3 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
0 1 5 10 17 26
P1์ด ์ํ๋๋ ์ค, 1ms์ P2๊ฐ ๋ค์ด์๋ค. ์ด๋ P1์ ๋จ์ ์ํ ์๊ฐ์ 7ms์ด๊ณ , P2์ ๋จ์ ์ํ ์๊ฐ์ 4ms์ด๊ธฐ ๋๋ฌธ์ ์ด์์ฒด์ ๊ฐ ๊ฐ์ ํด P1์ ์ํ์ ์ค๋จํ๊ณ P2๋ฅผ ํ๋ก์ธ์์ ํ ๋นํ๋ค. P2๊ฐ ํ๋ก์ธ์์ ํ ๋น๋ ์ฌ์ด, 2ms์ P3๊ฐ ๋ค์ด์์ผ๋ P2์ ๋จ์ ์ํ ์๊ฐ์ 3ms์ด๊ณ , P3์ ๋จ์ ์ํ ์๊ฐ์ 9ms์ด๊ธฐ ๋๋ฌธ์ ํ๋ก์ธ์๋ P2๋ฅผ ๊ณ์ ์ํํ๋ค. ์ด์ด์ 3ms์ผ ๋ P4๊ฐ ๋ค์ด์์ง๋ง P2์ ๋จ์ ์ํ ์๊ฐ์ 2ms์ด๊ณ , P4์ ๋จ์ ์ํ ์๊ฐ์ 5ms์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ P2๊ฐ ์ํ๋๋ค. ์ดํ์๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ํ๋ก์ธ์ค์ ์์ ์ด ๋๋๊ฑฐ๋ ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ๋ค์ด์ฌ ๋๋ง๋ค ๋จ์ ์ํ ์๊ฐ์ ๋น๊ตํด ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ์ค๋ค.
RR (Round Robin)
- ์ผ์ ์๊ฐ ํ ๋น๋(Time quantum) ๋จ์๋ก ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋ฒ๊ฐ์๊ฐ๋ฉฐ ํ๋ก์ธ์์ ํ ๋นํ๋ค.
- ์์คํ ์ time-sharing๊ณผ ๊ฐ์ ๋ฐฉ์์ด๋ค.
- ๋ฐ์์ฑ์ด ์ข๋ค.
- ์ฃผ๋ก ์ฐ์ ์์ ์ค์ผ์ค๋ง(Priority scheduling)๊ณผ ๊ฒฐํฉํด ํ๋ก์ธ์ค์ ์๊ฐ ํ ๋น๋์ ์กฐ์ ํ๋ ๋ฐฉ์์ผ๋ก ํ์ฉํ๋ค.
- ์๊ฐ ํ ๋น๋์ ๋ฐ๋ผ ์ด์์ฒด์ ๊ฐ ๊ณ์ ๊ฐ์ ํ๋ ์ ์ ์ค์ผ์ค๋ง ๋ฐฉ์์ด๋ค.
Process | Burst time | Response time | Turnaround time | Waiting time |
---|---|---|---|---|
P1 | 15 | 0 | 19 | 4 |
P2 | 2 | 3 | 5 | 3 |
P3 | 2 | 5 | 7 | 5 |
Time quantum = 3ms
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| P1 | P2 | P3 | P1 | P1 | P1 | P1 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
0 3 5 7 10 13 16 19
๋ชจ๋ ํ๋ก์ธ์ค๋ค์ด ๋์ผํ๊ฒ 3ms์ฉ ํ๋ก์ธ์ค์ ํ ๋น๋๋ค. P2์ P3์ ๊ฒฝ์ฐ ์ํ ์๊ฐ์ด 2ms์ด๊ธฐ ๋๋ฌธ์ ํ ๋น๋ 3ms๋ฅผ ๋ชจ๋ ์ฌ์ฉํ์ง ์์๋ค.
Priority Scheduling
- ํน์ ๊ธฐ์ค์ผ๋ก ํ๋ก์ธ์ค์๊ฒ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํด ์ฐ์ ์์์ ๋ฐ๋ผ ํ๋ก์ธ์์ ํ ๋นํ๋ค.
- ํ๋ก์ธ์ค๋ฅผ ์์ด์ง(Aging)ํด์ ์ค๋ ๋๊ธฐํ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๋์ด๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋๋ค.
- SRF์ ๊ฒฝ์ฐ ๋จ์ ์ํ ์๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๋ค๊ณ ํ ์ ์๋ค.
- ๋ค๋ฅธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ๊ณผ ๊ฒฐํฉํด ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ ์ , ๋น์ ์ ๋ชจ๋ ๊ฐ๋ฅํ๋ค.
Process | Priority | Burst time | Response time | Turnaround time | Waiting time |
---|---|---|---|---|---|
P1 | 3 | 5 | 4 | 9 | 4 |
P2 | 1 | 1 | 0 | 1 | 0 |
P3 | 4 | 2 | 9 | 11 | 9 |
P4 | 5 | 1 | 11 | 12 | 11 |
P5 | 2 | 3 | 1 | 4 | 1 |
+----+----+----+----+----+----+----+----+----+----+----+----+
| P2 | P5 | P1 | P3 | P4 |
+----+----+----+----+----+----+----+----+----+----+----+----+
0 1 4 9 11 12
์ฐ์ ์์์ ๋ฐ๋ผ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋์๋ค. ์ฌ์ฉ์๊ฐ ์์ฃผ ์ฌ์ฉํ๋ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๋๊ฒ ๋ถ์ฌํ๋ ์์ผ๋ก ๊ธฐ์ค์ ๋ง๋ค ์ ์๋ค. ๋ค๋ง ํน์ ํ๋ก์ธ์ค์ ์ฐ์ ์์๊ฐ ๊ณ์ ๋ฐ๋ ค ๊ธฐ์๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก, ์๊ฐ์ด ์ง๋ ๋๋ง๋ค ํ๋ก์ธ์ค์ ๋์ด๋ฅผ ์ฆ๊ฐ์์ผ ์ค๋ ๋๊ธฐํ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๋์ฌ์ฃผ๋ ์กฐ์น๊ฐ ํ์ํ๋ค.