FCFS (First Come First Served) ์ค์ผ์ฅด๋ง
- ์ ์ ์ ์ฒ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ
- ์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ : ์ค๋ ๋๋ณ ๋์ฐฉ ์๊ฐ
- ๋น์ ์ ์ค์ผ์ฅด๋ง
- ์ค๋ ๋ ์ฐ์ ์์ ์์
- ๊ธฐ์ ์์, ์ค๋ ๋ ์ค๋ฅ๋ก ๋ฌดํ ๋ฃจํ๊ฐ ๋ฐ์ํ๋ค๋ฉด ๊ธฐ์ ๋ฐ์
- ์ฒ๋ฆฌ์จ์ด ๋ฎ์.
- ํธ์ ํจ๊ณผ (convoy effcet) ๋ฐ, ๊ธด์ค๋ ๋๊ฐ ์ค๋ CPU๋ฅผ ์ฐจ์งํ๋ฉด ๋ฆ๊ฒ ๋ค์ด์จ ์ค๋ ๋๋ ์ค๋ ๋๊ธฐ
์ด ์ฒ๋ฆฌ ์๊ฐ 11s, ๋๊ธฐ์๊ฐ 11s, ํ๊ท ๋๊ธฐ์๊ฐ 11 / 4 = 2.75ms
SJF (Shortest Job First)
- ์ต๋จ ์์ ์ฐ์ ์ค์ผ์ค๋ง
- ์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ : ์ค๋ ๋ ๋ณ ์์ ์คํ ์๊ฐ
- ๋น์ ์ ์ค์ผ์ค๋ง
- ์ค๋ ๋ ์ฐ์ ์์ : ์งง์ ์ค๋ ๋ ์คํ ์๊ฐ
- ๊ธฐ์ ๋ฐ์๊ฐ๋ฅ, ์ง์์ ์ผ๋ก ์งง์ ์ค๋ ๋๊ฐ ๋์ฐฉ์ ๊ธด ์ค๋ ๋์ ์คํ์ ์์ธก ๋ถ๊ฐ
- ์งง์ ์ค๋ ๋๊ฐ ๋จผ์ ์คํ๋๋ฏ๋ก ํ๊ท ๋๊ธฐ์๊ฐ ์ต์ํ
- ํ์ค์ ์ผ๋ก ์คํ ์๊ฐ์ ์์ธก์ด ๋ถ๊ฐ
์ด ์ฒ๋ฆฌ ์๊ฐ 11ms, ๋๊ธฐ ์๊ฐ 9ms, ํ๊ท ๋๊ธฐ ์๊ฐ 9ms/4 = 2.25ms
SRTF (Shortest Remaining Time First)
- ์ต์ ์์ฌ์๊ฐ ์ฐ์ ์ค์ผ์ค๋ง, ํ์ ์ฌ๋ผ์ด์ค ๋ง๋ค ๋จ์ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ์ค๋ ๋๋ฅผ ์ ํ
- ์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ : ์ค๋ ๋ ๋ณ ์์ ์คํ ์๊ฐ๊ณผ ๋จ์ ์คํ ์๊ฐ
- SJF์ ์ ์ ์ค์ผ์ค๋ง
- ์ค๋ ๋ ์ฐ์ ์์ ์์.
- ๊ธฐ์๋ SJF์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ์ ๊ฐ๋ฅ
- ํ๊ท ๋๊ธฐ์๊ฐ ์ต์ํ
- SRTF๋ ํ์ค์ ์ผ๋ก ์ฌ์ฉ ๋ถ๊ฐ
์ด ์ฒ๋ฆฌ ์๊ฐ 11ms, ๋๊ธฐ ์๊ฐ 8ms, ํ๊ท ๋๊ธฐ์๊ฐ 2ms
RR (Round-Robin)
- ์ค๋ ๋๋ค์ ๊ณตํํ ์คํ ๊ธฐํ๊ฐ ์ฃผ์ด์ง
- ํ์ ๋๊ธฐ์ค์ธ ์ค๋ ๋๋ค์ ํ์ ์ฌ๋ผ์ด์ค ์ฃผ๊ธฐ๋ก ์ ํ
- ๋์ฐฉํ๋ ์์๋๋ก ์ค๋ ๋๋ค์ ํ์ ์ฝ์
- ํ์ ์ฌ๋ผ์ด์ค๊ฐ ์ง๋๋ฉด ํ์ ๋์ผ๋ก ์ด๋
- ์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ : ํ์ ์ฌ๋ผ์ด์ค
- ์ ์ ์ค์ผ์ค๋ง
- ์ฐ์ ์์ : ์์
- ๊ธฐ์ ์์
- ๊ตฌํ์ด ์ฝ๊ณ ํ์ค์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ฝ์ง๋ง ํ์ ์ฌ๋ผ์ด์ค์ ๋ฐ๋ผ ์ฆ์ ์ปจํ ์คํธ ์ค์์นญ์ด ๋ฐ์ํด ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐ
- ํ์์ฌ๋ผ์ด์ค๊ฐ ํฌ๋ฉด FCFS์ ๋์ผํ๊ณ ์ ์ผ๋ฉด SJF/SRTF์ ๊ฐ๊น๋ค.
์ด ์ฒ๋ฆฌ์๊ฐ 11ms, ๋๊ธฐ ์๊ฐ 12ms, ํ๊ท ๋๊ธฐ์๊ฐ 3ms, ์ค์ผ์ค๋ง 6๋ฒ, ์ปจํ ์คํธ ์ค์์นญ 5๋ฒ ๋ฐ์
1. ํ์๋ T1, T2, T3, T4 ์์๋๋ก ์ฝ์ ๋๋ค.
2. 2ms๊น์ง T1์ ์ฒ๋ฆฌํ๊ณ ์ฒ๋ฆฌํ๋ค ๋จ์ ์ค๋ ๋๋ TCB์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ๋ค์ Queue์ ์ฝ์ ํ๋ค.
3. 2ms๋ถํฐ๋ ๋์ฐฉ์๊ฐ 1์ ๋์ฐฉํ T2๋ฅผ ์ฒ๋ฆฌํ๋ค. ์ด ๋, T2๋ 1ms๋ฅผ ๋๊ธฐํ๊ฒ ๋๋ค.
์์ ๊ฐ์ ๋ฐฉ๋ฒ๋ค์ ๋ฐ๋ณตํ๋ฉด ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
Priority ์ค์ผ์ค๋ง
- ๊ฐ์ฅ ๋์ ์ฐ์ ์์์ ๋ฐ๋ผ ์ค๋ ๋๋ฅผ ์ ํํด์ ์คํ ์ํจ๋ค.
- ํ์ฌ ์ค๋ ๋๊ฐ ์ข ๋ฃ๋๊ฑฐ๋ ๋ ๋์ ์์์ ์ค๋ ๋๊ฐ ๋์ฐฉ ์, ๊ฐ์ฅ ๋์ ์์์ ์ค๋ ๋๋ฅผ ์ ํ
- ๋ชจ๋ ์ค๋ ๋์ ์ข ๋ฃ์๊น์ง ๋ฐ๋์ง ์๋ ๊ณ ์ ์ฐ์ ์์๋ฅผ ํ ๋นํ๋ค.
- ์ฐ์ ์์ ํ์ ์ฝ์ ๋๋ค.
- ์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ : ์ค๋ ๋ ๋ณ ๊ณ ์ ์ฐ์ ์์
- ์ ์ /๋น์ ์ ์ค์ผ์ค๋ง
- ๋ ๋์ ์ค๋ ๋๊ฐ ๋์ฐฉ ์ ์ ์ ์ค์ผ์ค๋ง
- ๋ ๋์ ์ค๋ ๋๊ฐ ๋์ฐฉํ์ง ์์ผ๋ฉด ํ์ฌ ์คํ์ค์ธ ์ค๋ ๋๊ฐ ์ข ๋ฃ๋ ๋ ๋น์ ์ ์ค์ผ์ค๋ง
- ์ฐ์ ์์ : ์์
- ๊ณ์ํด์ ๋์ ์ฐ์ ์์์ ์ค๋ ๋๊ฐ ๋์ฐฉ ์, ๋จผ์ ๋์ฐฉํ ๋ฎ์ ์์์ ์ค๋ ๋๋ ์คํ ๋ถ๊ฐ
- ์์ด์ง ๊ธฐ๋ฒ์ผ๋ก ํด๊ฒฐ ๊ฐ๋ฅํ๋ค.
- ์ฐ์ ์์๊ฐ ๋์ ์ค๋ ๋์ผ์๋ก ๋๊ธฐ์๊ฐ์ด๋ ์๋ต์๊ฐ์ด ์งง๋ค.
์ค๋ ๋ ๋ณ ๊ณ ์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ ์ค์๊ฐ ์์คํ ์์ ์ฌ์ฉ๋๋ค.
MLQ (Multi-Level Queue) ์ค์ผ์ค๋ง
- ์ค๋ ๋๋ฅผ n๊ฐ์ ์ฐ์ ์์ ๋ ๋ฒจ๋ก ๊ตฌ๋ถํ๋ค. ๋ ๋ฒจ์ด ๋์ ์ค๋ ๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค.
- ๊ณ ์ ๋ n๊ฐ์ ํ๋ฅผ ์ฌ์ฉํ๊ณ ๊ฐ ํ์ ๊ณ ์ ์ฐ์ ์์๋ฅผ ํ ๋นํ๋ค.
- ์ค๋ ๋๋ค์ ์ฐ์ ์์๋ฅผ n๊ฐ์ ๋ ๋ฒจ๋ก ๋ถ๋ฅํ๋ค.
- ์ค๋ ๋ ๋์ฐฉ ์ ์ฐ์ ์์ ๋ ๋ฒจ์ ๋ง๋ ํ์ ์ฝ์ ํ๋ค.
- ๊ฐ์ฅ ๋์ ์์์ ํ๊ฐ ๋น ๋, ๊ทธ ๋ค์ ์์์ ํ์์ ์ค์ผ์ค๋งํ๋ค.
- ๋ค๋ฅธ ํ๋ก ์ด๋ํ ์ ์๋ค.
- ๋๋จธ์ง ๋ด์ฉ์ Priority Queue์ ๋์ผํ๋ค.
์ค ์ฌ์ฉ ์๋ก ์ ์ฒด ์ค๋ ๋๋ฅผ ๋ฐฑ๊ทธ๋ผ์ด๋์ ํฌ๊ทธ๋ผ์ด๋ ์ค๋ ๋๋ก ๊ตฌ์ฑํ๊ฑฐ๋ ์์คํ ์ค๋ ๋, ๋ํ์ ์ค๋ ๋, ๋ฐฐ์น ์ค๋ ๋ ๋ฑ 3๊ฐ์ ๋ ๋ฒจ ํ๋ก ๊ตฌ์ฑํ๋ค.
MLFQ (Multi-Level Feedback Queue) ์ค์ผ์ค๋ง
- ๊ธฐ์๋ฅผ ์์ ๊ธฐ ์ํด ์ฌ๋ฌ ๋ ๋ฒจ์ ํ ์ฌ์ด์ ์ค๋ ๋ ์ด๋์ด ๊ฐ๋ฅํ๋๋ก ์ค๊ณ๋์๋ค.
- ์งง์ ์ค๋ ๋์ I/O๊ฐ ๋ง์ ์ค๋ ๋, ๋ํ์ ์ค๋ ๋๋ฅผ ์ฐ์ ์ฒ๋ฆฌํด์ ์ค๋ ๋ ํ๊ท ๋๊ธฐ์๊ฐ์ ์ค์ธ๋ค.
- MLQ์ ๊ฐ์ด N๊ฐ์ ๊ณ ์ ๋ ๋ฒจ ํ๋ฅผ ๊ฐ์ง๊ณ ํ๋ง๋ค ์๋ก ๋ค๋ฅธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ๋ค.
- ํ๋ง๋ค ์ค๋ ๋๊ฐ ๋จธ๋ฌด๋ฅผ ์ ์๋ ํ ํ์์ฌ๋ผ์ด์ค๊ฐ ์๋ค.
- ๋ฎ์ ๋ ๋ฒจ์ ํ์ผ์๋ก ํ์์ฌ๋ผ์ด์ค๊ฐ ๋ ๊ธธ๋ค.
- I/O ์ง์ค ์ค๋ ๋๋ ๋์ ์์์ ํ์ ์๋ค.
- ์ค๋ ๋๋ ๋์ฐฉ ์ ์ต์์ ๋ ๋ฒจ ํ์ ์ฝ์
- ๊ฐ์ฅ ๋์ ๋ ๋ฒจ์ ํ์์ ์ค๋ ๋๋ฅผ ์ ํ
- ๊ฐ์ฅ ๋์ ๋ ๋ฒจ์ ํ๊ฐ ๋น์ด์์ผ๋ฉด ๊ทธ ์๋ ๋ ๋ฒจ์ ํ์์ ์ค๋ ๋๋ฅผ ์ ํ
- ์ค๋ ๋์ CPU-burst๊ฐ ํ ํ์ ์ฌ๋ผ์ด์ค๋ฅผ ์ด๊ณผํ๋ฉด ์๋ ํ๋ก ์ด๋
- ์ค๋ ๋๊ฐ ์๋ฐ์ ์ผ๋ก Yield ํ ๊ฒฝ์ฐ, ํ ๋์ ์ฝ์
- ์ค๋ ๋๊ฐ I/O ๋ฐ์ ์, I/O๊ฐ ์ข ๋ฃ๋๋ฉด ๋์ผํ ๋ ๋ฒจ ํ์ ๋์ผ๋ก ์ด๋
- ํ์ ์๋ ์๊ฐ์ด ์ค๋๋๋ฉด ๊ธฐ์๋ฅผ ๋ง๊ธฐ ์ํด ํ ๋ ๋ฒจ์
- ์ตํ์ ๋ ๋ฒจ ํ๋ FCFS๋ TimeSlice ๊ฐ ๊ธด RR๋ก ์ค์ผ์คํ๋ค.
- ์ตํ์ ๋ ๋ฒจ ํ์ ์ํ ์ค๋ ๋๋ค์ ๋ค๋ฅธ ํ๋ก ์ด๋ํ ์ ์๋ค.
- ์ค์ผ์ค๋ง ํ๋ผ๋ฏธํฐ : ๊ฐ ํ์ ์๊ฐ ํ ๋น๋
- ์ ์ ์ค์ผ์ค๋ง
- ์ค๋ ๋ ์ฐ์ ์์๋ ์์, ํ์ ๋ฐ๋ฅธ ์ฐ์ ์์๊ฐ ์์.
- ์์ด์ง ๊ธฐ๋ฒ์ ์ ์ฉํจ์ผ๋ก ๊ธฐ์๊ฐ ๋ฐ์ํ์ง ์๋๋ค.
- I/O ์ง์ค ์ค๋ ๋๋ Cput burst๊ฐ ์งง์ ํ๋ฅผ ๋์ ๋ ๋ฒจ์์ ๋นจ๋ฆฌ ์คํํจ์ผ๋ก CPU ํ์ฉ๋ฅ ์ด ๋์์ง๋ค.
Time | Queue3 | Queue2 | Queue1 | Wait Time | Schedule info |
0 | T1 | q3.pop() - T1 ์ฒ๋ฆฌ | |||
1 | T2 | T1 ์ฒ๋ฆฌ T2 ๋๊ธฐ |
|||
2 | T2 | T2 - 1ms | q3.pop() - T2์ฒ๋ฆฌ T1 - I/O ์์ |
||
3 | T3 | T2์ฒ๋ฆฌ T3 ๋๊ธฐ |
|||
4 | T3 | T3 - 1ms | T2์ฒ๋ฆฌ T3 ๋๊ธฐ |
||
5 | T3 | T3 - 2ms | T2์ฒ๋ฆฌ T3 ๋๊ธฐ |
||
6 | T3 | T3 - 3ms | T2 Time slice ์ด๊ณผ, Q3.pop() - T3์ฒ๋ฆฌ, Q2.push(T2) - T2 ๋๊ธฐ |
||
7 | T2 | T2 - 1ms | T3 ์ฒ๋ฆฌ T1 I/O ์์ ์ข ๋ฃ - ๊ฐ์ ๋ ๋ฒจ Q3.push(T1) T1, T2 ๋๊ธฐ |
||
8 | T1 | T2 | T2 - 2ms, T1 - 1ms | T3 ์ฒ๋ฆฌ T1, T2 ๋๊ธฐ |
|
9 | T1 | T2 | T2 - 3ms, T1 - 2ms | T3 ์ฒ๋ฆฌ T1, T2 ๋๊ธฐ |
|
10 | T1 | T2 | T2 - 4ms, T1 - 3ms | T3 Time Slice ์ด๊ณผ, ํ์๋ ๋ฒจ Q2.push(T3) ์ต์์ Q3.pop() - T1์ฒ๋ฆฌ T2 ๋๊ธฐ, T3 ๋๊ธฐ |
|
11 | T2, T3 | T2 - 5ms, T3 - 1ms | T1 ์ฒ๋ฆฌ T2, T3 ๋๊ธฐ |
||
12 | T2, T3 | T2 - 6ms, T3 - 2ms | T1 ์ฒ๋ฆฌ ์๋ฃ ๋ฐ I/O์์
์ต์์ Q2.pop() - T2 ์ฒ๋ฆฌ T3 ๋๊ธฐ |
||
13 | T3 | T3 - 3ms | T2 ์ฒ๋ฆฌ T3 ๋๊ธฐ |
||
14 | T3 | T3 - 4ms | T2 ์ฒ๋ฆฌ ์๋ฃ ๋ฐ I/O ์์
์ต์์ Q2.pop() - T3 ์ฒ๋ฆฌ |
||
15 | T3 ์ฒ๋ฆฌ | ||||
16 | T2 | T3 ์ฒ๋ฆฌ T2 I/O ์์ ์ข ๋ฃ - ๊ฐ์ ๋ ๋ฒจ Q2.push(T2) T2 ๋๊ธฐ |
|||
17 | T2 | T2 - 1ms | T3 ์ฒ๋ฆฌ T2 ๋๊ธฐ |
||
18 | T2 | T2 - 2ms | T3 ์ฒ๋ฆฌ T1 I/O ์์ ์ข ๋ฃ - ๊ฐ์ ๋ ๋ฒจ Q3.push(T1) T1, T2 ๋๊ธฐ |
||
19 | T1 | T2 | T2 - 3ms, T1 - 1ms | T3 ์ฒ๋ฆฌ T1, T2 ๋๊ธฐ |
|
20 | T1 | T2 | T2 - 4ms, T1 - 2ms | T3 Time Slice ์ด๊ณผ, ํ์๋ ๋ฒจ Q1.push(T3) ์ต์์ Q3.pop() - T1 ์ฒ๋ฆฌ T2 ๋๊ธฐ |
|
21 | T2 | T3 | T2 - 5ms, T3 - 1ms | T1 ์ฒ๋ฆฌ T2, T3 ๋๊ธฐ |
|
22 | T2 | T3 | T2 - 6ms, T3 - 2ms | T1 ์ฒ๋ฆฌ ์๋ฃ ์ต์์ Q2.pop() - T2 ์ฒ๋ฆฌ T3 ๋๊ธฐ |
|
23 | T3 | T3 - 3ms | T2 ์ฒ๋ฆฌ T3 ๋๊ธฐ |
||
24 | T3 | T3 - 4ms | T2 ์ฒ๋ฆฌ T3 ๋๊ธฐ |
||
25 | T3 | T3 - 5ms | T2 ์ฒ๋ฆฌ T3 ๋๊ธฐ |
||
26 | T3 | T3 - 6ms | T2 ์ฒ๋ฆฌ ์๋ฃ ์ต์์ Q1.pop() - T3 ์ฒ๋ฆฌ |
||
27 | T3 ์ฒ๋ฆฌ | ||||
28 | T3 ์ฒ๋ฆฌ ์๋ฃ ์ค์ผ์ค๋ง ์ข ๋ฃ |
3๊ฐ์ ์ค๋ ๋ ์ฒ๋ฆฌ ์๊ฐ 28ms
์ค๋ ๋๋ณ ๋๊ธฐ ์๊ฐ 5ms, 13ms, 13ms
ํ๊ท ๋๊ธฐ ์๊ฐ 31ms/3 = 10.3ms
'CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
17. ์ํธ ๋ฐฐ์ (Mutual Exclusion) (0) | 2024.06.15 |
---|---|
16. ์ค๋ ๋ ๋๊ธฐํ (Thread Synchronization) (0) | 2024.06.15 |
14. CPU Scheduling (0) | 2024.04.22 |
13. ๋ฉํฐ์ค๋ ๋ ๊ตฌํ (0) | 2024.04.22 |
12. ์ปค๋ ๋ ๋ฒจ ์ค๋ ๋์ ์ฌ์ฉ์ ๋ ๋ฒจ ์ค๋ ๋ (1) | 2024.04.22 |