์์ฑ์ : ์ ์ฐฌ๋ฏผ
ํ๋ก์ธ์ค๋ฅผ ์ค์ผ์ค๋งํ๊ธฐ ์ํ Queue์๋ ์ธ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์กด์ฌํ๋ค.
- Job Queue : ํ์ฌ ์์คํ ๋ด์ ์๋ ๋ชจ๋ ํ๋ก์ธ์ค์ ์งํฉ
- Ready Queue : ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์์ผ๋ฉด์ CPU๋ฅผ ์ก์์ ์คํ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค์ ์งํฉ
- Device Queue : Device I/O ์์ ์ ๋๊ธฐํ๊ณ ์๋ ํ๋ก์ธ์ค์ ์งํฉ
๊ฐ๊ฐ์ Queue์ ํ๋ก์ธ์ค๋ค์ ๋ฃ๊ณ ๋นผ์ฃผ๋ ์ค์ผ์ค๋ฌ์๋ ํฌ๊ฒ ์ธ๊ฐ์ง ์ข ๋ฅ๊ฐ ์กด์ฌํ๋ค.
๋ฉ๋ชจ๋ฆฌ๋ ํ์ ๋์ด ์๋๋ฐ ๋ง์ ํ๋ก์ธ์ค๋ค์ด ํ๊บผ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ฌ ๊ฒฝ์ฐ, ๋์ฉ๋ ๋ฉ๋ชจ๋ฆฌ(์ผ๋ฐ์ ์ผ๋ก ๋์คํฌ)์ ์์๋ก ์ ์ฅ๋๋ค
์ด pool์ ์ ์ฅ๋์ด ์๋ ํ๋ก์ธ์ค ์ค ์ด๋ค ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ์ฌ ready queue๋ก ๋ณด๋ผ์ง ๊ฒฐ์ ํ๋ ์ญํ ์ ํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ์ ๋์คํฌ ์ฌ์ด์ ์ค์ผ์ค๋ง์ ๋ด๋น.
- ํ๋ก์ธ์ค์ memory(๋ฐ ๊ฐ์ข ๋ฆฌ์์ค)๋ฅผ ํ ๋น(admit)
- degree of Multiprogramming ์ ์ด (์คํ์ค์ธ ํ๋ก์ธ์ค์ ์ ์ ์ด)
- ํ๋ก์ธ์ค์ ์ํ new -> read(in memory)
cf) ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก๊ทธ๋จ์ด ๋๋ฌด ๋ง์ด ์ฌ๋ผ๊ฐ๋, ๋๋ฌด ์ ๊ฒ ์ฌ๋ผ๊ฐ๋ ์ฑ๋ฅ์ด ์ข์ง ์์ ๊ฒ์ด๋ค. ์ฐธ๊ณ ๋ก timesharing system ์์๋ ์๊ธฐ ์ค์ผ์ค๋ฌ๊ฐ ์๋ค. ๊ทธ๋ฅ ๊ณง๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ready ์ํ๊ฐ ๋๋ค.
- CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ์ค์ผ์ค๋ง์ ๋ด๋น
- Ready Queue์ ์กด์ฌํ๋ ํ๋ก์ธ์ค ์ค ์ด๋ค ํ๋ก์ธ์ค๋ฅผ running์ํฌ์ง ๊ฒฐ์ .
- ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋น (scheduler dispatch)
- ํ๋ก์ธ์ค์ ์ํ ready -> running -> waiting -> ready
- ์ฌ์ ๊ณต๊ฐ ๋ง๋ จ์ ์ํด ํ๋ก์ธ์ค๋ฅผ ํต์งธ๋ก ๋ฉ๋ชจ๋ฆฌ์์ ๋์คํฌ๋ก ์ซ์๋ (swapping)
- ํ๋ก์ธ์ค์๊ฒ์ memory๋ฅผ deallocate
- degree of Multiprogramming ์ ์ด
- ํ ์์คํ ์์ ๋ฉ๋ชจ๋ฆฌ์ ๋๋ฌด ๋ง์ ํ๋ก๊ทธ๋จ์ด ๋์์ ์ฌ๋ผ๊ฐ๋ ๊ฒ์ ์กฐ์ ํ๋ ์ค์ผ์ค๋ฌ
- ํ๋ก์ธ์ค์ ์ํ ready -> suspended
์ธ๋ถ์ ์ธ ์ด์ ๋ก ํ๋ก์ธ์ค์ ์ํ์ด ์ ์ง๋ ์ํ๋ก ๋ฉ๋ชจ๋ฆฌ์์ ๋ด๋ ค๊ฐ ์ํ๋ฅผ ์๋ฏธํ๋ค. ํ๋ก์ธ์ค ์ ๋ถ ๋์คํฌ๋ก swap out ๋๋ค.
blocked ์ํ๋ ๋ค๋ฅธ I/O ์์
์ ๊ธฐ๋ค๋ฆฌ๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ ์ค์ค๋ก ready state๋ก ๋์๊ฐ ์ ์์ง๋ง ์ด ์ํ๋ ์ธ๋ถ์ ์ธ ์ด์ ๋ก suspending๋์๊ธฐ ๋๋ฌธ์ ์ค์ค๋ก ๋์๊ฐ ์ ์๋ค.
ํ์ ๋ ์์์ผ๋ก ์ต๋ํ ์ฑ๋ฅ์ ์ด๋์ด๋ด๊ธฐ ์ํด์๋ CPU๋ฅผ ์ ์ ํ๊ณ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํด์ผํ๋ค. ๋ฐ๋ผ์ OS๋ ์คํ ๋๊ธฐ์ค์ธ ํ๋ก์ธ์ค๋ค์๊ฒ ์์ ๋ฐฐ์ ์ ์ ์ ํ ํ์ฌ ์์คํ ์ ์ฑ๋ฅ์ ๋์ด์ฌ๋ฆด ์ ์๋ค.
- ๋ชจ๋ ํ๋ก์ธ์ค์ ๊ณต์ ํ๊ฒ ๋ฐฐ์ ํด์ผ ํ๋ค.
- ๋จ์ ์๊ฐ๋น ๊ฐ๋ฅํ ์ต๋์ ์ฒ๋ฆฌ๊ฐ ๋ ์ ์๋๋ก ํด์ผํ๋ค.
- ์ฒ๋ฆฌ ์๋ต์๊ฐ์ด ์ ์ํด์ผ ํ๋ค.
- ๊ฐ์ ์ข ๋ฅ์ ์์ ์ ๊ฐ์ ๋น์ฉ์ผ๋ก ์คํ๋ ์ ์์ด์ผ ํ๋ค.
- ์ค๋ฒํค๋๋ฅผ ์ต์ํํด์ผ ํ๋ค.
- ์์คํ ๋ด์ ์์์ด ์ฌ์ฉํ์ง ์๋ ์๊ฐ์ด ์๋๋ก ์ ์งํด์ผ ํ๋ค.
- ์๋ต์๊ฐ๊ณผ ์์ํ์ฉ ๊ฐ์ ์ ์ ํ ๊ท ํ์ด ์ ์ง๋๋๋ก ํด์ผํ๋ค.
- ํ๋ก์ธ์ค์ ๋ฌดํ๋๊ธฐ ์ํ๋ฅผ ํผํด์ผ ํ๋ค.
- ์ค์์์์ ์ฐจ์งํ๊ณ ์๋ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ์ฃผ์ด์ผ ํ๋ค.
- ๋ฌธ์ ๋ก ์ธํด ๋ถ์ํ์ง ์์ ํ๋ก์ธ์ค์ ์๋น์ค๋ฅผ ๋ง์ด ์ ๊ณตํ๋๋ก ํ๋ค.
OS๊ฐ ๋์์ CPU์ฌ์ฉ๊ถ์ '์ ์ 'ํ๊ณ , ํน์ ์๊ฑด์ ๋ฐ๋ผ ๊ฐ ํ๋ก์ธ์ค์ ์์ฒญ์ด ์์ ๋ ํ๋ก์ธ์ค์๊ฒ ๋ถ๋ฐฐํ๋ ๋ฐฉ์์ด๋ค.
๊ฐ์ฅ ์์์ด ํ์ํ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ๋ถ๋ฐฐํ๋ฉฐ ์ํฉ์ ๋ฐ๋ผ ๊ฐ์ ๋ก ํ์ํ ์๋ ์๋ค. ๋ฐ๋ผ์ ๋น ๋ฅธ ์๋ต์๊ฐ์ ์ํ๋ ๋ํ์ ์๋ถํ ์์คํ
์ ์ ํฉํ๋ฉฐ ๊ธด๊ธํ ํ๋ก์ธ์ค๋ฅผ ์ ์ดํ ์ ์๋ค.
์ด๋ค ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ผ๋ฉด ๊ทธ ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋๊ฑฐ๋, ์
์ถ๋ ฅ ์๊ตฌ๊ฐ ๋ฐ์ํ์ฌ ์๋ฐ์ ์ผ๋ก ์ค์ง ๋ ๋ ๊น์ง ๊ณ์ ์คํ๋๋๋ก ๋ณด์ฅํ๋ค.
์์๋๋ก ์ฒ๋ฆฌ๋๋ ๊ณต์ ์ฑ์ด ์๊ณ , ๋ค์์ ์ฒ๋ฆฌํด์ผํ ํ๋ก์ธ์ค์ ์๊ด์์ด ์๋ต์๊ฐ์ ์์ํ ์ ์์ผ๋ฉฐ ์ ์ ๋ฐฉ์๋ณด๋ค ์ค์ผ์ฅด๋ฌ ํธ์ถ ๋น๋๊ฐ ๋ฎ๊ณ , ๋ฌธ๋งฅ๊ตํ์ ์ํ ์ค๋ฒํค๋๊ฐ ์ ๋ค.
์ผ๊ด์ฒ๋ฆฌ ์์คํ
์ ์ ํฉํ๋ฉฐ ์์นซ CPU์ฌ์ฉ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ ๋๊ธฐ์ํฌ ์ ์์ผ๋ฏ๋ก ์ฒ๋ฆฌ์จ์ด ๋จ์ด์ง ์ ์๋ค๋ ๋จ์ ์ด ์๋ค.
- ๋น์ ์ ํ ๋ฐฉ์ : FIFO, SJF, HRN, ์ฐ์ ์์, ๊ธฐํ๋ถ ์ค์ผ์ฅด๋ง
- ์ ์ ํ ๋ฐฉ์ : RR(๋ผ์ด๋ ๋ก๋น), SRT, MFQ
- ์ํ -> ๋๊ธฐ (Running -> Waiting) : I/O ์์ฒญ์ด ๋ฐ์ํ๊ฑฐ๋, ์์ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ ๋๊ธฐ๋ฅผ ํ ๋
- ์ํ -> ์ค๋น (Running -> Ready) : ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ์ ๋
- ๋๊ธฐ -> ์ค๋น (Waiting -> Ready) : I/O๊ฐ ์๋ฃ๋์์ ๋
- ์ํ -> ์ข ๋ฃ (Running -> Terminate)
์ฌ๊ธฐ์ 1,4์ ํ๋ก์ธ์ค๊ฐ ์ค์ค๋ก CPU๋ฅผ ๋ฐํํ๊ธฐ์ ๋น์ ์ ์ค์ผ์ฅด๋ง์ด ๋ฐ์๋๊ณ 2,3์ ๊ฐ์ ๋ก ํ ๋นํด์ผํ๋ฏ๋ก ์ ์ ์ค์ผ์ฅด๋ง ๋ฐฉ์์ด๋ค.
- CPU์ด์ฉ๋ฅ : ์ ์ฒด ์์คํ ์๊ฐ ์ค, CPU๊ฐ ์์ ์ ์ฒ๋ฆฌํ๋ ์๊ฐ์ ๋น์จ (๋๋ฆผ)
- ์ฒ๋ฆฌ๋ : CPU๊ฐ ๋จ์ ์๊ฐ๋น ์ฒ๋ฆฌํ๋ ํ๋ก์ธ์ค์ ๊ฐ์ (๋๋ฆผ)
- ์ด ์ฒ๋ฆฌ ์๊ฐ : ํ๋ก์ธ์ค๊ฐ ์์ํด์ ๋๋ ๋ ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ (๋๋ฆผ)
- ๋๊ธฐ์๊ฐ : ํ๋ก์ธ์ค๊ฐ ์ค๋น์๋ฃ ํ์์ ๋๊ธฐํ๋ ์๊ฐ์ ์ด ํฉ (์ค์)
- ์๋ต์๊ฐ : ๋ํ์ ์์คํ ์์ ์์ฒญ ํ ์ฒซ ์๋ต์ด ์ค๊ธฐ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ (์ค์)
๋จผ์ ๋์ฐฉํ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ฒ๋ฆฌํ๋ ์ค์ผ์ฅด๋ง ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋น ์ ์ ํ์ด๋ฉฐ FIFOํ๋ฅผ ์ด์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ๊ตฌํํ๋ค.
๋ค๋ง Convoy Effect(ํธ์ํจ๊ณผ)๊ฐ ๋ฐ์ํ๋๋ฐ, ๊ธด ์ฒ๋ฆฌ์๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์ ์ ๋์ด๋ฒ๋ฆฌ๋ฉด ๋๋จธ์ง ํ๋ก์ธ์ค๋ค์ ๋๋ ๋ ๊น์ง ๋๊ธฐํด์ผ ํ๋ค.
๋จผ์ ๋์ฐฉํ ํ๋ก์ธ์ ๋ฒ์คํธ ํ์์ ๋ฐ๋ผ์ ํ๊ท ๋๊ธฐ์๊ฐ์ ํธ์ฐจ๊ฐ ํฌ๋ค.
ํ๊ท ๋ฐํ์๊ฐ = ํ๊ท ์คํ ์๊ฐ + ํ๊ท ๋๊ธฐ ์๊ฐ
- ๋์ฐฉํ ์๊ฐ๋๋ก ์์ ์ ๋๊ธฐ ๋ฆฌ์คํธ์ ๋ฐฐ์นํ๋ฉด ์ด๋ฐ ๋ชจ์์ด๋ค.
- ์์ A์ ๋๊ธฐ์๊ฐ 0, ์์ B์ ๋๊ธฐ์๊ฐ 24, ์์ C์ ๋๊ธฐ์๊ฐ 30์ด๊ณ , ๋์ฐฉ ์๊ฐ์ด ๊ฐ๊ฐ 0, 1, 2, ์ด๋ฏ๋ก ํ๊ท ๋๊ธฐ์๊ฐ์ (0-0) + (24 - 1) + (30 - 2) / 3 = 17์ด๋ค.
- ์์ A์ ์คํ์๊ฐ 24, ์์ B์ ์คํ์๊ฐ 6, ์์ C์ ์คํ์๊ฐ 3 ์ด๋ฏ๋ก ํ๊ท ์คํ์๊ฐ์ 24 + 6 + 3 / 3 = 11์ด๋ค.
- ๋ฐ๋ผ์ ํ๊ท ๋ฐํ์๊ฐ (17 + 11 = 28)์ 28์๊ฐ์ด๋ค.
- ์ ๋ ฅ๋ ์์ผ๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ๊ณตํํ๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ์ฅ ๊ฐ๋จํ๊ณ ๊ตฌํํ๊ธฐ ์ฝ๋ค.
- ์งง์ ์์ ์ด๋ ์ค์ํ ์ ์์ ์ค๋ซ๋์ ๊ธฐ๋ค๋ฆฌ๊ฒ ํ ์ ์๋ค.
- ํ๊ท ๋ฐํ์๊ฐ์ด ๊ธธ๋ค.
์ต๋จ์์
์ฐ์ ์ค์ผ์ฅด๋ง ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ฌ๊ธฐ์ ์ต๋จ์์
์ด๋ CPU๋ฒ์คํธ ํ์์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค๋ฅผ ๋งํ๋ค.
๋ฐ๋ผ์ ๊ฐ์ฅ ์ ์ ํ๊ท ๋๊ธฐ์๊ฐ์ ๋ฌ์ฑํ ์ ์๋ค. ๋ง์ฝ CPU๋ฒ์คํธ ์๊ฐ์ด ๋์ผํ๋ค๋ฉด FCFS๋ฐฉ์์ ๋ฐ๋ฅธ๋ค.
๋ค๋ง ์ ์ ํ์ธ ๊ฒฝ์ฐ์๋ ์์๊ฐ์ด ์งํ์ด ๋์ง๋ง ๋น ์ ์ ํ์ผ ๊ฒฝ์ฐ์ ์ต์์์ฌ์๊ฐ ์ฐ์ ๋ฒ์น์ ๋ฐ๋ฅธ๋ค.
ํ์ฌ CPU์ ํ ๋น๋ ํ๋ก์ธ์ค์ ๋จ์ ์์ฌ์๊ฐ๊ณผ, ์๋ก ๋ค์ด์จ ํ๋ก์ธ์ค์ CPU๋ฒ์คํธ ํ์์ ๋น๊ตํ์ฌ ๋ ์ ์ ํ๋ก์ธ์ค์๊ฒ ํ ๋นํ๊ฒ ๋ ํ๋ค.
- ๊ฐ์ฅ๋จผ์ ๋์ฐฉํ ์์ ์ด A์ด๋ฏ๋ก ๋๊ธฐ ๋ฆฌ์คํธ์ ์ฒซ๋ฒ์งธ์ ๋ฐฐ์น๋๋ค. 1์ดํ์๋ A๊ฐ ์์ ์ค ์ด๋ฏ๋ก ์์ A๋ฅผ ์ค๋จ์ํฌ ์ ์์ผ๋ฉฐ ๋๊ธฐ๋ฆฌ์คํธ์ ๋๊ธฐํ๊ณ ์๋ ์์ ์ ์งง์ ์์ ์์ผ๋ก ์ฌ๋ฐฐ์น๋๋ ์์ ์ด ๊ณ์ ์งํ๋๋ค.
- A์ ๋๊ธฐ์๊ฐ 0, C์ ๋๊ธฐ์๊ฐ 24, B์ ๋๊ธฐ์๊ฐ 27์ด๊ณ , ๋์ฐฉ์๊ฐ์ด ๊ฐ๊ฐ 0, 2, 1 ์ด๋ฏ๋ก ํ๊ท ๋๊ธฐ์๊ฐ์ (0 - 0) + (24 - 2) + (27 - 1) / 3 = 16์ด๋ค.
- A์ ์คํ์๊ฐ 24, B์ ์คํ์๊ฐ 6, C์ ์คํ์๊ฐ 3์ด๋ฏ๋ก ํ๊ท ์คํ์๊ฐ์ 24 + 6 + 3 / 3 = 11์ด๋ค.
- ๋ฐ๋ผ์ ํ๊ท ๋ฐํ์๊ฐ (16 + 11= 27)์ 27์๊ฐ์ด๋ค.
- ์์ ์ด ๋๋๊ธฐ๊น์ง์ ์คํ์๊ฐ ์ถ์ ์น๊ฐ ๊ฐ์ฅ ์์ ์์ ์ ๋จผ์ ์คํ์ํค๋ ๋ฐฉ์์ด๋ค.
- FIFO๋ณด๋ค ํ๊ท ๋๊ธฐ์๊ฐ์ด ์์ง๋ง ๊ธด ์์ ์ ๊ฒฝ์ฐ FIFO๊ธฐ๋ฒ๋ณด๋ค ๋ ํฌ๊ณ ์์ธก์ด ์ด๋ ต๋ค.
- ์คํ์๊ฐ์ด ๋ง์ ์์ ์ผ ๊ฒฝ์ฐ์ ๋ฌดํ๋๊ธฐ ์ํ๊ฐ ๋ฐ์ํ ์ ์๋ค.
- ๋ฌดํ๋๊ธฐ ์ํ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด Aging(๋ ธํ) ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ๋ค.
- FCFS์ ๋จ์ : ํ๊ท ๋ฐํ ์๊ฐ์ด ํฌ๋ค.
- SJF์ ๋จ์ : ํฐ ์์ , ํฐ ํ๋ก์ธ์ค๋ ๋ถ๋ฆฌํ๋ค.
HRN ์ฐ์ ์์ = (๋๊ธฐ ์๊ฐ + ์๋น์ค ์๊ฐ) / ์๋น์ค ์๊ฐ
- A = (10 + 18) / 18 = 1.55.., B = (16 + 24) / 24 = 1.66.., C = (8 + 19) / 19 = 1.421.. ์ด๋ฏ๋ก ๊ฐ์ฅ ํฐ ๊ฐ์ธ ์์ B์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๋ค.
- FCFS์ SJF์ ๋จ์ ์ ๋ณด์ํ์ฌ ๊ฐ๋ฐ๋ ๋ฐฉ๋ฒ์ด๋ค.
- ๊ธด ์์ ๊ณผ ์งง์ ์์ ๊ฐ์ ์ง๋์น ๋ถํ๋ฑ์ ํด์ํ ์ ์๋ค.
- ๋๊ธฐ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค์ผ ๊ฒฝ์ฐ ์ฐ์ ์์๊ฐ ๋์์ง๋ค.
- HRN์ ์คํ์๊ฐ ์ถ์ ๊ณผ ์ ์ ๊ธฐ๋ฅ ๋๋ฌธ์ ์ค์ผ์ค๋ฌ๊ฐ ๋ณต์กํด์ง๊ณ ๋จ์ ๊ณ์ฐ ์๊ฐ์ ์ ์ฅํด ๋์ํํ๋ ๋จ์ ์ ๋ณด์ํ์๋ค.
- HRN์ ์์ ์ ์๋น์ค๋ฐ์ ์๊ฐ๊ณผ ๊ทธ ์์ ์ด ์๋น์ค๋ฅผ ๊ธฐ๋ค๋ฆฐ ์๊ฐ์ผ๋ก ๊ฒฐ์ ๋๋ ์ฐ์ ์์์ ๋ฐ๋ผ CPU๋ฅผ ํ ๋นํ๋ค.
- HRN์ ์ฐ์ ์์ ๊ณต์์ผ๋ก ๊ณ์ฐํ์ฌ ๊ทธ ์์น๊ฐ ํฐ ๊ฐ๋ถํฐ ๋ฎ์ ์์ผ๋ก ์ฐ์ ์์๊ฐ ๋ถ์ฌ๋๋ค.
์ ํด์ง ์๊ฐ ํ ๋น๋๋งํผ ํ๋ก์ธ์ค๋ฅผ ํ ๋นํ ๋ค, ์์
์ด ๋๋ ํ๋ก์ธ์ค๋ ์ค๋น์๋ฃ ํ(์ํ ํ)์ ๊ฐ์ฅ ๋ง์ง๋ง์ ๊ฐ์ ์ฌํ ๋น์ ๊ธฐ๋ค๋ฆฐ๋ค.
์๊ฐ ํ ๋น๋์ด ์ค์ํ๋ฐ, ๋๋ฌด ์์ผ๋ฉด ๋น๋ฒํ Context Switching์ด ๋ฐ์ํ๊ณ , ๋๋ฌด ๊ธธ๋ฉด FCFS์ ๋ค๋ฅผ๋ฐ ์์ด์ง๋ค.
- ์๊ฐ ํ ๋น๋์ด 10์ด์ธ ๋๊ธฐ๋ฆฌ์คํธ์ ๋ชจ์์ด๋ค.
- ์์ ์์๋ ์ฒ์๋ถํฐ ์์ฐจ์ ์ผ๋ก ์งํํ๋ค.
- ํ๋ก์ธ์ค A์ ์คํ์๊ฐ์ด 10์ด์ด๋ฏ๋ก ์๊ฐํ ๋น๋ 10์ด๋ฅผ ํ ๋นํด ์ฃผ๊ณ ๋จ์ ์์ ๋์ 0์ด๊ฐ ๋๋ค. ๋จ์ ์์ ๋์ด 0์ด์ด๋ฏ๋ก ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ๊ฒ์ด๋ค.
- ํ๋ก์ธ์ค B์ ์คํ์๊ฐ์ด 18์ด์ด๋ฏ๋ก ์๊ฐํ ๋น๋ 10์ด๋ฅผ ํ ๋นํด ์ฃผ๊ณ ๋จ์ ์์ ๋์ 8์ด๊ฐ ๋๋ค. ๋จ์์์ ๋์ด 8์ด, ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋์ง ์์์ผ๋ฏ๋ก ๋๊ธฐ๋ฆฌ์คํธ์ ๊ฐ์ฅ ๋ค๋ก ๋ฐฐ์น๋๋ค.
- A์ ๋๊ธฐ์๊ฐ : 0 (์์, ์ ๋ ฅ๋์ง๋ง์ ์คํ)
- B์ ๋๊ธฐ์๊ฐ : {(10) + (5 + 10 + 1)} - 6(๋์ฐฉ์๊ฐ) = 20
- C์ ๋๊ธฐ์๊ฐ : {(10 + 10)} - 14(๋์ฐฉ์๊ฐ) = 6
- D์ ๋๊ธฐ์๊ฐ : {(10 + 10 + 5) + (1 + 8)} - 15(๋์ฐฉ์๊ฐ) = 19
- E์ ๋๊ธฐ์๊ฐ : {(10 + 10 + 5 + 10)} - 19(๋์ฐฉ์๊ฐ) = 16
- ํ๊ท ์คํ ์๊ฐ = (10 + 18 + 5 + 12 + 1) / 5 = 9.2
- ํ๊ท ๋๊ธฐ ์๊ฐ = (0 + 20 + 6 + 19 + 16) / 5 = 12.2
- ํ๊ท ๋ฐํ ์๊ฐ = 9.2 + 12.2 = 21.4์ด๋ค.
- ๋ํ์ ์ธ ์ ์ ํ ๋ฐฉ์์ด๋ค.
- ๋์ผํ ์๊ฐ ํ ๋น๋์ ์ฌ์ฉํ๋ ์๋ถํ ์ฒ๋ฆฌ ์์คํ ์ ํจ๊ณผ์ ์ผ๋ก ์ ์ฉ๋๋ค.
- ์๊ฐ ํ ๋น๋ ์์ ์์์ ๋ง์น์ง ์์ผ๋ฉด ์ค๋น ๋๊ธฐ ๋ฆฌ์คํธ์ ๊ฐ์ฅ ๋ค๋ก ๋ฐฐ์น๋๋ ๋ฐฉ์์ด๋ค.
- ์๊ฐ ํ ๋น๋์ด ํฌ๋ฉด ๋น์ ์ ์ FIFO์ ๋์ผํ๋ค.
- ์๊ฐ ํ ๋น๋์ด ์ ์ผ๋ฉด ๋ฌธ๋งฅ ๊ตํ์์ ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐํ๋ค.
- ์ ์ ํ ์๋ต ์๊ฐ์ ๋ณด์ฅํด์ฃผ๋ ๋ํ์ ์ฌ์ฉ์์๊ฒ ํจ๊ณผ์ ์ด๋ค.
์ค๋น์๋ฅ ํ๋ฅผ ์ฌ๋ฌ๊ฐ์ ํ๋ก ๋ถ๋ฅํ์ฌ ๊ฐ ํ๊ฐ ๊ฐ๊ฐ ๋ค๋ฅธ ์ค์ผ์ฅด๋ง ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ง๋ ๋ฐฉ์. ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ, ์ฐ์ ์์, ์ ํ ๋ฑ ํ๋ก์ธ์ค์ ํน์ฑ์ ๋ฐ๋ผ ํ๋์ ํ์ ์๊ตฌ์ ์ผ๋ก ํ ๋น๋๋ค.
๋ฐ๋ผ์ ํ์ ํ ์ฌ์ด์๋ ์ค์ผ์ฅด๋ง์ด ํ์ํ๋ค. ์ฐ์ ์์ ๋ฐฉ์ ํน์ ์๋ถํ ๋ฐฉ์์ผ๋ก ํ๋ค.
- ์ ์ ํ, ๋น์ ์ ํ ๋ฐฉ์์ด๋ค.
- ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ํ์์๋ ๋น์ ์ ํ์ผ๋ก ์ฌ์ฉ๋๋ค.
- ์ฐ์ ์์๊ฐ ๋ฎ์ ํ์์๋ ์ ์ ํ์ผ๋ก ์ฌ์ฉ๋๋ค.
- ์์ ํ๊ฐ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ๋์ ํ๋ก ์ ์ํ ์ฒ๋ฆฌ๋ฅผ ํ์๋ก ํ๋ ์์คํ ํ๋ก์ธ์ค๊ฐ ์ ๋ ฅ๋๋ค.
- ์ค์๋ ๋ํํ ํ๋ก์ธ์ค, ํ์๋ ์ผ๊ด์ฒ๋ฆฌ ํ๋ก์ธ์ค๊ฐ ์ ๋ ฅ๋๋ค.
- ๋๊ธฐ ๋ฆฌ์คํธ ๊ฐ ํ๋ก์ธ์ค์ ์ด๋์ ๋์ง ์๋๋ค.
๊ธฐ์กด ๋ค๋จ๊ณ ํ ๋ฐฉ์์ ํน์ ํ๋ก์ธ์ค๊ฐ ํ์ ๊ณ ์ ๋๋ ๋ฐฉ์์ด์๋ค. ๋ฐ๋ฉด MLQ ์์๋ ํ์ ํ์ฌ์ด์ ํ๋ก์ธ์ค๊ฐ ์ด๋ํ๋๊ฑธ ํ์ฉํ๋ค.
ํ๋ฅผ ๊ตฌ๋ถํ๋ ๊ธฐ์ค์ CPU๋ฒ์คํธ์ด๋ฉฐ ์
์ถ๋ ฅ ์ค์ฌ์ ํ๋ก์ธ์ค์ ๋ํํ ์ค์ฌ์ ํ๋ก์ธ์ค๋ฅผ ๋์ ์ฐ์ ์์์ ํ์ ๋ฃ๋๋ค.
๋ค๋จ๊ณ ํ์ ๋น๊ตํ์ ๋ ํ๋ก์ธ์ค๋ฅผ ๋ฒ์คํธํ์์ด๋ ๊ธฐํ ์ฐ์ ์์์ ๋ฐ๋ผ์ ํ์์ ๋ด๋ฆฌ๊ฑฐ๋ ์ฌ๋ฆฌ๋ ๋ฑ ์ค๊ณ๋ ๊ตฌํ์ด ๋ณต์กํ๋ค๋ ๋จ์ ์ด ์๋ค.
- ์งง์ ์์ ์ด๋ ์ ์ถ๋ ฅ ์์ฃผ์ ์์ ์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๊ธฐ ์ํด ๊ฐ๋ฐ๋ ๋ฐฉ์์ด๋ค.
- ํ(๋๊ธฐ ๋ฆฌ์คํธ)๊ฐ ์ฌ๋ฌ๊ฐ ์ด๋ฉฐ ์ฐ์ ์์๊ฐ ์๋ค.
- ๊ฐ ํ๋ง๋ค ์๊ฐ ํ ๋น๋์ด ์กด์ฌํ๋ฉฐ ๋ฎ์ ํ ์ผ์๋ก ์๊ฐ ํ ๋น๋์ ์ปค์ง๋ค.
- ๊ฐ๊ฐ์ ํ๋ค์ ์ข ์์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ค.
- CPU๋ฅผ ์๊ฐ ํ ๋น๋๋งํผ ์ฌ์ฉํ ํ๋ก์ธ์ค๋ ๋ฎ์ ํ๋ก ์ด๋๋๋ค.
- ๋งจ ๋ง์ง๋ง ๋จ๊ณ์ ํ๋ RR ์ค์ผ์ค๋ฌ๋ฅผ ์ฌ์ฉํ๋ค.