๐ค ํ๋ก์ธ์ค ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ | ๐ ์ ์ฒ๊ธฐ ์ค๊ธฐ ๋๋น ๋ฌธ์ ํ์ด ๋ฐฉ๋ฒ ํฌํจ
์์ฝ
์ด์์ฒด์ ์ ํต์ฌ, ํ๋ก์ธ์ค ์ค์ผ์ค๋ง์ ๋ง์คํฐํ์ธ์. ์ ์ ํ(SRT, Round Robin)๊ณผ ๋น์ ์ ํ(FIFO, SJF, HRN ๋ฑ) ์๊ณ ๋ฆฌ์ฆ์ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ , ํ๊ท ๋๊ธฐ ๋ฐ ๋ฐํ ์๊ฐ ๊ณ์ฐ ๋ฌธ์ ๋ก ์ค์ ๊ฐ๊ฐ์ ํค์๋๋ค.
๐ ํ๋ก์ธ์ค ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ
๋น์ ์ ํ | ์ ์ ํ |
---|---|
FIFO | Round Robin(FIFO + ์๊ฐ ํ ๋น๋) |
SJF | SRT(์ ์ ํ SJF) |
HRN(SJF + ๋๊ธฐ ์๊ฐ) | |
๊ธฐํ๋ถ | |
์ฐ์ ์์ |
๐ฆ ํ๋ก์ธ์ค ์ค์ผ์ค๋ง, ์ ํ์ํ ๊น?
์ปดํจํฐ๋ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋์์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. ์ด๋, ์ด๋ค ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋นํ ์ง ๊ฒฐ์ ํ๋ ๊ท์น์ด ๋ฐ๋ก ํ๋ก์ธ์ค ์ค์ผ์ค๋ง์ ๋๋ค. ์ค์ผ์ค๋ง์ ๋ชฉํ๋ CPU๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ณ , ๋ชจ๋ ํ๋ก์ธ์ค์ ๊ณตํํ ๊ธฐํ๋ฅผ ์ฃผ๋ฉฐ, ์ฌ์ฉ์์ ๋๊ธฐ ์๊ฐ์ ์ต์ํํ๋ ๊ฒ์ ๋๋ค.
์ค์ผ์ค๋ง ๋ฐฉ์์ ํฌ๊ฒ ๋น์ ์ ํ(Non-preemptive) ๊ณผ ์ ์ ํ(Preemptive) ๋ ๊ฐ์ง๋ก ๋๋ฉ๋๋ค.
- ๋น์ ์ ํ ์ค์ผ์ค๋ง: ํ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ผ๋ฉด, ํด๋น ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋๊ฑฐ๋ ์ ์ถ๋ ฅ(I/O) ์์ ์ ์ํด ์ค์ค๋ก CPU๋ฅผ ๋ฐ๋ฉํ ๋๊น์ง ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๋นผ์์ ์ ์์ต๋๋ค.
- ์ ์ ํ ์ค์ผ์ค๋ง: ์ด์์ฒด์ ๊ฐ ํ์ํ๋ค๊ณ ํ๋จํ๋ฉด, ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ค๋จ์ํค๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค์ CPU๋ฅผ ๊ฐ์ ๋ก ํ ๋นํ ์ ์์ต๋๋ค. ์๋ถํ ์์คํ ์ ์ ํฉํฉ๋๋ค.
๐ก ์๋ ๊ฐ ์๊ณ ๋ฆฌ์ฆ ์ค๋ช ๊ณผ ํจ๊ป ์ ๊ณต๋๋ ์์ ๋ฌธ์ ๋ฅผ ํตํด ํ๊ท ๋๊ธฐ ์๊ฐ๊ณผ ํ๊ท ๋ฐํ ์๊ฐ์ ์ง์ ๊ณ์ฐํด๋ณด์ธ์!
๐ซ ๋น์ ์ ํ ์ค์ผ์ค๋ง (Non-preemptive Scheduling)
ํ ๋ฒ ํ ๋น๋๋ฉด ๋๋ ๋๊น์ง ์๋ฌด๋ ๋ง์ ์ ์๋ ๋ฐฉ์์ ๋๋ค.
1. FIFO (First-In, First-Out) ๋๋ FCFS (First-Come, First-Served)
๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ์์ผ๋ก, ์ค๋น ํ(Ready Queue)์ ๋์ฐฉํ ์์๋๋ก CPU๋ฅผ ํ ๋นํฉ๋๋ค.
- ์ฅ์ : ๊ตฌํ์ด ์ฝ๊ณ ๊ณตํํฉ๋๋ค.
- ๋จ์ : ์คํ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค๊ฐ ๋จผ์ ๋์ฐฉํ๋ฉด ๋ค๋ฐ๋ฅด๋ ์งง์ ํ๋ก์ธ์ค๋ค์ด ํ์ผ์์ด ๊ธฐ๋ค๋ ค์ผ ํ๋ ์ฝ๋ณด์ด ํจ๊ณผ(Convoy Effect) ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
2. SJF (Shortest Job First)
์คํ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค์๊ฒ ๋จผ์ CPU๋ฅผ ํ ๋นํฉ๋๋ค.
- ์ฅ์ : ํ๊ท ๋๊ธฐ ์๊ฐ์ ์ต์ํํ๋ ์ต์ ์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
- ๋จ์ : ์คํ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค๋ ๊ณ์ํด์ ์๋ก์ด ์งง์ ํ๋ก์ธ์ค์ ๋ฐ๋ ค ๋ฌดํ์ ๊ธฐ๋ค๋ฆด ์ ์๋ ๊ธฐ์ ํ์(Starvation) ์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ํ, ๊ฐ ํ๋ก์ธ์ค์ ์คํ ์๊ฐ์ ๋ฏธ๋ฆฌ ์ ํํ ์์ธกํ๊ธฐ ์ด๋ ต์ต๋๋ค.
3. HRN (Highest Response-ratio Next)
SJF์ ๊ธฐ์ ํ์์ ๋ณด์ํ๊ธฐ ์ํด ๋ง๋ค์ด์ก์ต๋๋ค. ๋๊ธฐ ์๊ฐ๊ณผ ์คํ ์๊ฐ์ ๋ชจ๋ ๊ณ ๋ คํ์ฌ ์ฐ์ ์์๋ฅผ ๋์ ์ผ๋ก ๊ฒฐ์ ํฉ๋๋ค.
- ์ฐ์ ์์ ๊ณ์ฐ:
(๋๊ธฐ ์๊ฐ + ์คํ ์๊ฐ) / ์คํ ์๊ฐ
- ํน์ง: ์ด ๊ฐ์ด ๊ฐ์ฅ ๋์ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ํ ๋นํฉ๋๋ค. ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง์๋ก ์ฐ์ ์์๊ฐ ๋์์ง๋ฏ๋ก ๊ธฐ์ ํ์์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
4. ๊ธฐํ๋ถ (Deadline)
ํ๋ก์ธ์ค์ ์ฃผ์ด์ง ๋ง๊ฐ ์๊ฐ(Deadline) ์์ ์์ ์ ์๋ฃํด์ผ ํ๋ ์ค์๊ฐ ์์คํ ์์ ์ฌ์ฉ๋ฉ๋๋ค. ๋ง๊ฐ ์๊ฐ์ด ๊ฐ์ฅ ์๋ฐํ ํ๋ก์ธ์ค์ ๋์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํฉ๋๋ค.
5. ์ฐ์ ์์ (Priority)
๊ฐ ํ๋ก์ธ์ค์ ๋ถ์ฌ๋ ์ ์ ์ฐ์ ์์์ ๋ฐ๋ผ CPU๋ฅผ ํ ๋นํฉ๋๋ค. ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ํ๋ก์ธ์ค๊ฐ ๋จผ์ ์คํ๋ฉ๋๋ค. SJF์ฒ๋ผ ๊ธฐ์ ํ์์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๐ ์ ์ ํ ์ค์ผ์ค๋ง (Preemptive Scheduling)
์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ธ์ ๋ ์ค๋จ์ํค๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค์ CPU๋ฅผ ๋๊ฒจ์ค ์ ์๋ ์ ์ฐํ ๋ฐฉ์์ ๋๋ค.
1. ๋ผ์ด๋ ๋ก๋น (Round Robin, RR)
FIFO์ ์๊ฐ ํ ๋น๋(Time Quantum ๋๋ Time Slice) ๊ฐ๋ ์ ์ถ๊ฐํ ๋ฐฉ์์ ๋๋ค. ๋ชจ๋ ํ๋ก์ธ์ค๋ ์ ํด์ง ์๊ฐ ํ ๋น๋๋งํผ๋ง CPU๋ฅผ ์ฌ์ฉํ๊ณ , ์๊ฐ์ด ๋ค ๋๋ฉด ์ค๋น ํ์ ๋งจ ๋ค๋ก ๋์๊ฐ๋๋ค.
- ์ฅ์ : ๋ชจ๋ ํ๋ก์ธ์ค๊ฐ ๊ณตํํ๊ฒ CPU ์๊ฐ์ ๋ณด์ฅ๋ฐ์ ๋ํํ ์์คํ ์ ์ ํฉํฉ๋๋ค.
- ๋จ์ : ์๊ฐ ํ ๋น๋์ด ๋๋ฌด ํฌ๋ฉด FIFO์ ๊ฐ์์ง๊ณ , ๋๋ฌด ์์ผ๋ฉด ๋ฌธ๋งฅ ๊ตํ์ด ๋๋ฌด ์ฆ์์ ธ ์ค๋ฒํค๋๊ฐ ์ปค์ง๋๋ค. ์ ์ ํ ์๊ฐ ํ ๋น๋์ ์ค์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
2. SRT (Shortest Remaining Time)
์ ์ ํ SJF ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ๋จ์ ์๊ฐ๋ณด๋ค ๋ ์งง์ ์คํ ์๊ฐ์ ๊ฐ์ง ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ๋ฉด, ์ฆ์ CPU๋ฅผ ๋นผ์์ ๊ทธ ์๋ก์ด ํ๋ก์ธ์ค์ ํ ๋นํฉ๋๋ค.
- ์ฅ์ : ํ๊ท ๋๊ธฐ ์๊ฐ์ ๋ ์ค์ผ ์ ์์ต๋๋ค.
- ๋จ์ : ์ฆ์ ๋ฌธ๋งฅ ๊ตํ(Context Switching)์ผ๋ก ์ธํ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์ฌ์ ํ ๊ธฐ์ ํ์์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๐ ์ ์ฒ๊ธฐ ์ค๊ธฐ ๋๋น ๋ฌธ์
๋ฌธ์ 1 - SJF
ํ๋ก์ธ์ค | ๋์ฐฉ ์๊ฐ | ์คํ ์๊ฐ |
---|---|---|
P1 | 0 | 6 |
P2 | 1 | 3 |
P3 | 2 | 4 |
P4 | 3 | 2 |
๋ฌธ์ | ์ ํ์ ๊ฐ์ ํ๋ก์ธ์ค๋ค์ด ์์๋๋ก ์ค๋น ํ์ ๋์ฐฉํ์ ๋, SJF ์ค์ผ์ค๋ง์ ์ฌ์ฉํ ๊ฒฝ์ฐ ํ๊ท ๋๊ธฐ ์๊ฐ๊ณผ ํ๊ท ๋ฐํ ์๊ฐ์ ๊ณ์ฐํ์์ค. |
๋ต๋ณ | |
์ ๋ต | ์ ๋ต ๋ณด๊ธฐ |
๋ฌธ์ ํ์ด
์๋์ ๊ฐ์ด ํ๋ฅผ ๊ทธ๋ฆฌ๋ฉด ์ฝ๊ฒ ํ ์ ์์ต๋๋ค. ํ์ ๋์ฐฉ ์๊ฐ(O), ๋๊ธฐ ์๊ฐ(X), ์คํ ์๊ฐ(V)์ ํ์ํ์ธ์.
ํ๋ก์ธ์ค | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
P1 | O | V | V | V | V | V | V | |||||||||
P2 | O | X | X | X | X | X | X | X | V | V | V | |||||
P3 | O | X | X | X | X | X | X | X | X | X | V | V | V | V | ||
P4 | O | X | X | X | V | V |
๋๊ธฐ์๊ฐ
- P1: 0
- P2: 7
- P3: 9
- P4: 2
- ํ๊ท ๋๊ธฐ์๊ฐ :
๋ฐํ์๊ฐ
๋ฐํ์๊ฐ = ๋๊ธฐ์๊ฐ + ์คํ์๊ฐ
- P1: 6
- P2: 10
- P3: 13
- P4: 5
- ํ๊ท ๋ฐํ์๊ฐ :
๋ฌธ์ 2 - SRT
ํ๋ก์ธ์ค | ๋์ฐฉ ์๊ฐ | ์คํ ์๊ฐ |
---|---|---|
P1 | 0 | 6 |
P2 | 1 | 3 |
P3 | 2 | 4 |
P4 | 3 | 2 |
๋ฌธ์ | ์ ํ์ ๊ฐ์ ํ๋ก์ธ์ค๋ค์ด ์์๋๋ก ์ค๋น ํ์ ๋์ฐฉํ์ ๋, SRT(์ ์ ํ) ์ค์ผ์ค๋ง์ ์ฌ์ฉํ ๊ฒฝ์ฐ ํ๊ท ๋๊ธฐ ์๊ฐ๊ณผ ํ๊ท ๋ฐํ ์๊ฐ์ ๊ณ์ฐํ์์ค. |
๋ต๋ณ | |
์ ๋ต | ์ ๋ต ๋ณด๊ธฐ |
๋ฌธ์ ํ์ด
์๋์ ๊ฐ์ด ํ๋ฅผ ๊ทธ๋ฆฌ๋ฉด ์ฝ๊ฒ ํ ์ ์์ต๋๋ค. ํ์ ๋์ฐฉ ์๊ฐ(O), ๋๊ธฐ ์๊ฐ(X), ์คํ ์๊ฐ(V)์ ํ์ํ์ธ์.
๋จ, SRT๋ ๋จ์ ์๊ฐ์ด ์ค์ํฉ๋๋ค. ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ๋ค๋ฉด ๊ทธ ๋ค์ ์ด๋ค ํ๋ก์ธ์ค๋ฅผ ์คํํ ์ง ๊ฒฐ์ ํ ๋ ๋จ์ ์๊ฐ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๋์ฐฉ, ์คํ ์ ๋จ์ ์๊ฐ์ ์ ์ด๋๋ ๊ฒ์ด ๋ฌธ์ ๋ฅผ ํธ๋๋ฐ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค. (์ : O6๋ ๋จ์ ์๊ฐ์ด 6์ ๋๋ค.V5 ๋ ๋จ์ ์๊ฐ์ด 5์ ๋๋ค.)
ํ๋ก์ธ์ค | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
P1 | O6 | V5 | X | X | X | X | X | X | X | X | X | V4 | V3 | V2 | V1 | V0 |
P2 | O3 | V2 | V1 | V0 | ||||||||||||
P3 | O4 | X | X | X | X | V3 | V2 | V1 | V0 | |||||||
P4 | O2 | X | V1 | V0 |
๋๊ธฐ์๊ฐ
- P1: 9
- P2: 0
- P3: 4
- P4: 1
- ํ๊ท ๋๊ธฐ์๊ฐ :
๋ฐํ์๊ฐ
๋ฐํ์๊ฐ = ๋๊ธฐ์๊ฐ + ์คํ์๊ฐ
- P1: 15
- P2: 3
- P3: 8
- P4: 3
- ํ๊ท ๋ฐํ์๊ฐ :
๋ฌธ์ 3 - RR
ํ๋ก์ธ์ค | ๋์ฐฉ ์๊ฐ | ์คํ ์๊ฐ |
---|---|---|
P1 | 0 | 6 |
P2 | 1 | 3 |
P3 | 2 | 4 |
P4 | 3 | 2 |
๋ฌธ์ | ์ ํ์ ๊ฐ์ ํ๋ก์ธ์ค๋ค์ด ์์๋๋ก ์ค๋น ํ์ ๋์ฐฉํ์ ๋, ๋ผ์ด๋ ๋ก๋น(RR, ์๊ฐ ํ ๋น๋=2) ์ค์ผ์ค๋ง์ ์ฌ์ฉํ ๊ฒฝ์ฐ ํ๊ท ๋๊ธฐ ์๊ฐ๊ณผ ํ๊ท ๋ฐํ ์๊ฐ์ ๊ณ์ฐํ์์ค. |
๋ต๋ณ | |
์ ๋ต | ์ ๋ต ๋ณด๊ธฐ |
๋ฌธ์ ํ์ด
์๋์ ๊ฐ์ด ํ๋ฅผ ๊ทธ๋ฆฌ๋ฉด ์ฝ๊ฒ ํ ์ ์์ต๋๋ค. ํ์ ๋์ฐฉ ์๊ฐ(O), ๋๊ธฐ ์๊ฐ(X), ์คํ ์๊ฐ(V)์ ํ์ํ์ธ์.
ํ๋ก์ธ์ค | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
P1 | O | V | V | X | X | X | X | X | X | V | V | X | X | X | V | V |
P2 | O | X | V | V | X | X | X | X | X | X | V | |||||
P3 | O | X | X | V | V | X | X | X | X | X | V | V | ||||
P4 | O | X | X | X | V | V |
๋๊ธฐ์๊ฐ
- P1: 9
- P2: 7
- P3: 7
- P4: 3
- ํ๊ท ๋๊ธฐ์๊ฐ :
๋ฐํ์๊ฐ
๋ฐํ์๊ฐ = ๋๊ธฐ์๊ฐ + ์คํ์๊ฐ
- P1: 15
- P2: 10
- P3: 11
- P4: 5
- ํ๊ท ๋ฐํ์๊ฐ :