์ค์ผ์ค๋ง(Scheduling)
๋ค์ค ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ด์ ์ฒด์ ์ ๋์ ๊ธฐ๋ฒ์ด๋ค. ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๋ค์๊ฒ CPU ๋ฑ์ ์์ ๋ฐฐ์ ์ ์ ์ ํ ํจ์ผ๋ก์จ ์์คํ ์ ์ฑ๋ฅ์ ๊ฐ์ ํ ์ ์๋ค.
์ ํ
- 1๋จ๊ณ ์ค์ผ์ค๋ง : ์ฅ๊ธฐ ์ค์ผ์ค๋ง = ์์
์ค์ผ์ค๋ง = Job scheduling
- ์์ ์ด ์์คํ ์ ๋ค์ด์ค๋ ๊ฒ์ ์น์ธ.
- ํ๋ก์ธ์ค๊ฐ ์ค๋นํ(ready queue)๋ก ๋ค์ด๊ฐ๋ค.
- 2๋จ๊ณ ์ค์ผ์ค๋ง : ์ค๊ธฐ ์ค์ผ์ค๋ง
- ํ๋ก์ธ์ค๋ค์ด ํ๋ก์ธ์๋ฅผ ์๋ก ์ฐจ์งํ๋ ค๊ณ ํ ๋ ์ด๋ ํ๋ก์ธ์ค๋ถํฐ CPU๋ฅผ ์ฐจ์งํ ์ ์๊ฒ ํ ์ง ๊ฒฐ์
- ํ๋ก์ธ์ค๋ค์ ๋ณด๋ฅ์ํค๊ณ ๋ค์ ํ์ฑํํ๋ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ(์ค์ํ) ์์คํ ์ ๋ํ ๋จ๊ธฐ์ ์ธ ๋ถํ๋ฅผ ์กฐ์ ํ๋ค. ์ด๋ก์จ ์์คํ ์ ์ ์ ํ ์ด์ํ๋ค.
- ์ค์์ ์์ ์ ํผํฉ์ ๊ฐ์ ํ๊ฑฐ๋ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ๋ฐ ํ์ํ๋ค.
- 3๋จ๊ณ ์ค์ผ์ค๋ง : ๋จ๊ธฐ ์ค์ผ์ค๋ง = CPU ์ค์ผ์ค๋ง
- CPU๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ด๋ ํ๋ก์ธ์ค์๊ฒ ๋ฐฐ๋นํ ์ง ๊ฒฐ์
๋ชฉํ
- ๋จ์์๊ฐ๋น ์ฒ๋ฆฌ๋ ์ต๋ํ
- ์์ํ ๋น์ ๊ณต์ ์ฑ ๋ณด์ฅ
- ๊ท ๋ฑํ์ง ์๋ค๋ฉด ๋ฌดํ๋๊ธฐ์ ๋น ์ง ์ ์๋ค.
- ์ ์ ํ ๋ฐํ์๊ฐ ๋ณด์ฅ
- ์์ ์ฌ์ฉ์ ๊ท ํ ์ ์ง
- ์๋น์ค ์ฌ์ฉ๊ธฐํ ํ๋
- ์์ธก ๊ฐ๋ฅ์ฑ ๋ณด์ฅ
- ์คํ ๋๊ธฐ ๋ฐฉ์ง
- ์๋น์ค ์ ๊ฐ์ ๋ฐฉ์ง
- ์ค๋ฒํค๋ ์ต์ํ
- ์ฐ์ ์์ ๋ฐฐ์
ํ๊ฐ ๊ธฐ์ค
- CPU ์ฌ์ฉ๋ฅ (CPU Utilization) : ์ ์ฒด ์์คํ ์๊ฐ ์ค CPU๊ฐ ์์ ์ ์ฒ๋ฆฌํ๋ ์๊ฐ์ ๋น์จ.
- ์ฒ๋ฆฌ๋(Throughput) : CPU๊ฐ ๋จ์ ์๊ฐ๋น ์ฒ๋ฆฌํ๋ ํ๋ก์ธ์ค์ ๊ฐ์.
- ์๋ต ์๊ฐ(Response Time) : ๋ํ์ ์์คํ
์์ ์์ฒญ ํ ์๋ต์ด ์ค๊ธฐ ์์ํ ๋๊น์ง์ ์๊ฐ.
- ๋ํ์ ์์คํ (์๋ถํ ์์คํ ) : ์ผ๊ด ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ๋์๋๋ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ผ๋ก์จ, ์์คํ ๊ณผ ์ฌ์ฉ์๊ฐ ๋ชจ๋ํฐ์ ์ ๋ ฅ ์ฅ์น๋ฅผ ํตํด ๋ํํ๋ฏ์ด ์ผ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์
- ๋๊ธฐ ์๊ฐ(Waiting Time) : ํ๋ก์ธ์ค๊ฐ ์ค๋น ํ ๋ด์์ ๋๊ธฐํ๋ ์๊ฐ์ ์ดํฉ.
- ๋ฐํ ์๊ฐ(Turnaround Time) : ํ๋ก์ธ์ค๊ฐ ์์ํด์ ๋๋ ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ.
CPU ์ค์ผ์ค๋ง
์์์ ์ด๋ค ํ๋ก์ธ์ค์ ์ผ๋ง๋ ํ ๋นํ๋์ง ์ ์ฑ ์ ๋ง๋๋ ๊ฒ์ CPU ์ค์ผ์ค๋ง์ด๋ผ๊ณ ํ๋ค.
- ๋ชฉ์ : ํ๋ก์ธ์ค๋ค์ด CPU๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๊ฒ ํ๊ธฐ ์ํจ
CPU ์ค์ผ์ค๋ง์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋ถ๋ฅ๋๋ค.
- ๋น์ ์ (Non-Preemptive) ์ค์ผ์ค๋ง
- ์ ์ (Preemptive) ์ค์ผ์ค๋ง
๊ฒฐ์ ์์
CPU ์ค์ผ์ค๋ง์ ๊ฒฐ์ ์์ ์ ๋ค์๊ณผ ๊ฐ์ ํ๋ก์ธ์ค์ ์ํ ๋ณํ๊ฐ ์์ ๋์ด๋ค.
- ์คํ → ๋๊ธฐ
- ์คํ → ์ค๋น
- ๋๊ธฐ → ์ค๋น
- ์คํ → ์ข ๋ฃ
๋น์ ์ ์ค์ผ์ค๋ง(Non-Preemptive Scheduling)
์ด๋ฏธ ํ ๋น๋ CPU๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ๋ก ๋นผ์์ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ๊ธฐ๋ฒ
1๋ฒ๊ณผ 4๋ฒ ์ํฉ์์๋ง ์ํ๋๋ค.
์ฅ์
- ์์๋๋ก ์ฒ๋ฆฌ๋๋ฏ๋ก ๊ณต์ ์ฑ์ด ์๋ค.
- ๋ค์์ ์ฒ๋ฆฌํด์ผ ํ ํ๋ก์ธ์ค์ ๊ด๊ณ์์ด ์๋ต ์๊ฐ์ ์์ํ ์ ์๋ค.
- ์ ์ ๋ฐฉ์๋ณด๋ค ์ค์ผ์ค๋ฌ ํธ์ถ ๋น๋๊ฐ ๋ฎ๊ณ ๋ฌธ๋งฅ ๊ตํ์ ์ํ ์ค๋ฒํค๋๊ฐ ์ ๋ค.
- ์ผ๊ด ์ฒ๋ฆฌ ์์คํ ์ ์ ํฉ
๋จ์
- ๊ณต์ ์ฑ์ ๊ฐ์ท์ง๋ง ์ตํต์ฑ์ ์์.
- CPU ์ฌ์ฉ ์๊ฐ์ด ๊ธด ํ๋์ ํ๋ก์ธ์ค๊ฐ CPU ์ฌ์ฉ ์๊ฐ์ด ์งง์ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์ค๋ซ๋์ ๋๊ธฐ์ํฌ ์ ์์ผ๋ฏ๋ก ์ฒ๋ฆฌ์จ์ด ๋จ์ด์ง ์ ์๋ค.
์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
- FCFS ์ค์ผ์ค๋ง(First Come First Served Scheduling)
- FIFO(First In First Out)๋ผ๊ณ ๋ ํจ
- ์ค๋น์ํ ํ์ ๋์ฐฉํ๋ ์์๋๋ก ์ฐจ๋ก๋๋ก CPU๋ฅผ ํ ๋น
- ๋จผ์ ๋์ฐฉํ ์์ ์ด ๋จผ์ ์ฒ๋ฆฌ๋๋ ๊ณต์ ์ฑ
- ์ตํต์ฑ์ด ์์
- ๊ฐ์ฅ ๊ฐ๋จํจ
- SJF ์ค์ผ์ค๋ง(Shortest Job First Scheduling)
- ์ต๋จ์๊ฐ ์์ ์ฐ์ ,SJN์ด๋ผ๊ณ ๋ํจ
- ์ค๋น์ํ ํ์์ ๊ธฐ๋ค๋ฆฌ๋ ํ๋ก์ธ์ค ์ค์์ ์คํ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ํ ๋น
- ๊ฐ์ฅ ์ ์ ํ๊ท ๋๊ธฐ ์๊ฐ์ ์ ๊ณต - ์งง์ ์์ ์๊ฐ์ ๊ฐ๋ ํ๋ก์ธ์ค์๊ฒ ์ ๋ฆฌ
- ๊ธด ์์ ์๊ฐ์ ์์ ์ ๋ฌดํ์ ์ฐ๊ธฐ๋ ์ ์์
- HRRN ์ค์ผ์ค๋ง(Highest Response Ratio Next Scheduling)
- ์คํ์๊ฐ์ด ๊ธธ์ด์ ์๋์ ์ผ๋ก ๋๊ธฐ์๊ฐ๋ ๊ธธ์๋ SJF๊ธฐ๋ฒ์ ๋ณด์ํ ๊ธฐ๋ฒ
- ์คํ์๊ฐ๊ณผ ๋๊ธฐ์๊ฐ์ ์ด์ฉํ ์ฐ์ ์์๋ฅผ ๊ณต์์ ์ด์ฉํ์ฌ ์ฐ์ ์์๋ฅผ ์ ํจ - ์ฐ์ ์์๋ฅผ ๊ณ์ฐํ ๊ฐ์ด ํฐ ์ ๋ถํฐ ์ฐ์ ํจ
- ์ฐ์ ์์ ๊ณ์ฐ์ : ์ฐ์ ์์ = (๋๊ธฐ์๊ฐ+์คํ์๊ฐ) / ์คํ์๊ฐ
- ์คํ์๊ฐ์ด ์งง๊ฑฐ๋ ๋๊ธฐ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค์๊ฒ ์ฐ์ ์์๊ฐ ๋์
์ ์ ์ค์ผ์ค๋ง(Preemptive Scheduling)
ํ๋์ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ ์คํํ๊ณ ์์ ๋ ์ฐ์ ์์๊ฐ ๋์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๊ฐ์ ๋ก ๋นผ์์ ์ฌ์ฉํ ์ ์๋ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ
1๋ฒ ๋ถํฐ 4๋ฒ๊น์ง ๋ชจ๋ ์ํฉ์์ ์ํ๋๋ค.
์ฅ์
- ํ๋ก์ธ์ค ํ๋๊ฐ ์ฅ์๊ฐ ๋์ ํ๋ก์ธ์๋ฅผ ๋
์ ํ๋ ค๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ํ๋ก์ธ์ค์ ํ๋ก์ธ์๋ฅผ ์๋น์คํ ๊ธฐํ๋ฅผ ๋๋ฆด ์ ์๋ค.
- ๋ชจ๋ ํ๋ก์ธ์ค์๊ฒ CPU ์ฌ์ฉ ์๊ฐ์ ๋์ผํ๊ฒ ๋ถ์ฌํ ์ ์๋ค.
- ๋น ๋ฅธ ์๋ต์๊ฐ์ ์ํ๋ ๋ํ์ ์๋ถํ ์์คํ
์ ์ ํฉํ๋ฉฐ ๊ธด๊ธํ ํ๋ก์ธ์๋ฅผ ์ ์ดํ ์ ์๋ค.
- ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๋ค์ด ๊ธด๊ธ ์ฒ๋ฆฌ๋ฅผ ์์ฒญํ ๋ ์ฉ์ดํ๋ค.
๋จ์
- ์ค๋ฒํค๋๊ฐ ์ปค์ง ์ ์์ด ํจ๊ณผ์ ์ผ๋ก ์ด์ฉํ๋ ค๋ฉด, ๋ฉ๋ชจ๋ฆฌ์ ํ๋ก์ธ์ค๊ฐ ๋ง์ด ์ ์ฌ๋์ด ์์ด์ผ ํ๋ค.
- ์ฆ, ํ๋ก์ธ์๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅํ ๋๋ง๋ค ์คํํ ์ ์๋ ํ๋ก์ธ์ค๋ค์ด ์ค๋น ์ํ์ ์์ด์ผ ํจ๊ณผ์ ์ด๋ค.
- ๋ฐ๋ผ์ ์ ์ ์ค์ผ์ค๋ง์๋ ์ฐ์ ์์๋ผ๋ ๊ฐ๋ ์ ๋ฐ๋์ ๊ณ ๋ คํด์ผ ํ๋๋ฐ, ์ฐ์ ์์๋ ์๋ฏธ ์๊ฒ ๋ถ์ฌํ์ง ์์ผ๋ฉด ํจ๊ณผ๊ฐ ์๋ค.
์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
- RR ์ค์ผ์ค๋ง(Round Robin Scheduling)
- ์๋ถํ ์์คํ ์์ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉ๋จ
- ์๋ถํ ์ ์ํ ๋์์ ํ๋ฏ๋ก ํ ๋นํ๋ ์๊ฐ์ ํฌ๊ธฐ์ ๋ฐ๋ผ CPU๋ฅผ ์ฌ์ฉํ๋ ํจ๊ณผ์ ๋ํ ์ํฅ์ด ํผ
- ํ ๋น์๊ฐ(Time Quantum)์ด ํฌ๋ฉด FCFS์ ๊ฐ์ ๋์์ ํจ
- ํ ๋น์๊ฐ(Time Quantum)์ด ์์ผ๋ฉด ์ฆ์ ๋ฌธ๋งฅ๊ตํ์ผ๋ก ์ธํ ์ค๋ฒํค๋๊ฐ ์์ฃผ ๋ฐ์ํจ
- ์ค๋น์ํ ํ์ ๋์ฐฉํ๋ ์์์ ์ฐจ๋ก๋๋ก CPU๋ฅผ ํ ๋น ๋ฐ์ ์คํํ์ง๋ง ํ ๋น๋ ์ผ์ ์๊ฐ ๋์ ์คํ์ ์๋ฃํ์ง ๋ชปํ ๊ฒฝ์ฐ → ๋ค์ ์์์ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ๋น์์ฃผ๊ณ ์ค๋น์ํ ํ์ ๋งจ ๋ค๋ก ๋ค์ด๊ฐ
- ์ค๋นํ์ ๋์ฐฉํ๋ ์์์ ์ฐจ๋ก๋๋ก CPU๋ฅผ ํ ๋น ๋ฐ์ ์คํํ๋ ๊ธฐ๋ฒ์ FCFS์ ๊ฐ์
- SRTF ์ค์ผ์ค๋ง(Shortest Remaining-Time First Scheduling)
- ์ ์ SJF๊ธฐ๋ฒ์ด๋ผ๊ณ ๋ ํจ
- ๋น์ ์ SJF๊ธฐ๋ฒ์ ์ ์ ํํ๋ก ๋ณํํ ๊ธฐ๋ฒ
- ํ์ฌ ์คํ์ค์ธ ํ๋ก์ธ์ค์ ๋จ์ ์คํ์๊ฐ๊ณผ ์ค๋นํ์ ์๋ก ๋ค์ด์จ ํ๋ก์ธ์ค์ ์คํ์๊ฐ์ ๋น๊ตํ์ฌ ๋ ์งง์ ์คํ์๊ฐ์ ๊ฐ๋ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ํ ๋นํ๋ ๊ธฐ๋ฒ
- โ์๋ถํ ์์คํ ์ ํจ๊ณผ์
- ์คํ์ค์ธ ํ๋ก์ธ์ค์ ์ค๋น์ํ ํ์ ์๋ ํ๋ก์ธ์ค์ ์คํ์๊ฐ์ ์ถ์ ํ์ฌ ๋ณด์ ํ๊ณ ์์ด์ผํ๋ฏ๋ก ์ค๋ฒํค๋ ๋ฐ์์ด ์ฆ๊ฐํจ
- ๊ธด ์์ ์ ์๊ตฌํ๋ ํ๋ก์ธ์ค๋ SJF๋ณด๋ค ๋๊ธฐ์๊ฐ ๊ธบ
- ๋ค๋จ๊ณ ํ ์ค์ผ์ค๋ง(MLQ, Multilevel Queue Scheduling)
- ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฌ๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋๋ ์ ๊ฐ๊ฐ์ ๊ทธ๋ฃน๋ง๋ค ๊ฐ๊ฐ์ ์ค๋น์ํ ํ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฒ
- ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ค์ด ์คํ ๋ชปํ๋ ๊ฑธ ๋ฐฉ์งํ๊ณ ์ ๊ฐ ํ๋ง๋ค ๋ค๋ฅธ Time Quantum์ ์ค์ ํด์ฃผ๋ ๋ฐฉ์ ์ฌ์ฉ
- ์ฐ์ ์์๊ฐ ๋์ ํ๋ ์์ Time Quantum ํ ๋น. ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ ํฐ Time Quantum ํ ๋น.
- ์์คํ
ํ๋ก์ธ์ค, ๋ํํ ํ๋ก์ธ์ค, ํธ์ง ํ๋ก์ธ์ค ์ผ๊ด์ฒ๋ฆฌ ํ๋ก์ธ์ค ๋ฑ์ผ๋ก ๋๋๊ณ ๊ฐ ํ๋ก์ธ์ค ๋ณ๋ก ์ค๋นํ๋ฅผ ๋ฐฐ์นํจ
- ๊ฐ๊ฐ์ ์ค๋น์ํ ํ๋ ๋ ์์ ์ธ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ ์ฌ์ฉํจ
- ํ๋ก์ธ์ค๊ฐ ์ฌ๋ฌ ์ค๋นํ ์ค ํ๋์ ์ง์ ํ๋ฉด ๋ค๋ฅธ ์ค๋นํ๋ก ์ด๋ํ ์ ์์
- ํญ์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์ ํ์ ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋น
- ์ฐ์ ์์๊ฐ ๋ฎ์ ํ์์ ์์ ์คํ ์ค์ด๋๋ผ๋ ์์ ๋จ๊ณ์ ํ์ ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ๋ฉด CPU๋ฅผ ๋นผ์๋ ์ ์ ํ ์ค์ผ์ค๋ง
- ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฌ๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋๋ ์ ๊ฐ๊ฐ์ ๊ทธ๋ฃน๋ง๋ค ๊ฐ๊ฐ์ ์ค๋น์ํ ํ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฒ
- ๋ค๋จ๊ณ ํผ๋๋ฐฑ ํ ์ค์ผ์ค๋ง(MFQ, Multilevel Feedback Queue Scheduling)
-
- ๋ค ๋จ๊ณ ํ + ๋์ ์ธ ํ๋ก์ธ์ค ์ฐ์ ์์ ๋ณํ ์ ์ฉ
- ํ๋ก์ธ์ค ์์ฑ ์ ๊ฐ์ฅ ๋์ ์ฐ์ ์์ ์ค๋น ํ์ ๋ฑ๋ก๋๋ฉฐ ๋ฑ๋ก๋ ํ๋ก์ธ์ค๋ FCFS ์์๋ก CPU๋ฅผ ํ ๋น๋ฐ์ ์คํ๋๋ค. ํด๋น ํ์ CPU ์๊ฐ ํ ๋น๋(Time Quantum)์ด ๋๋๋ฉด ํ ๋จ๊ณ ์๋์ ์ค๋น ํ์ ๋ค์ด๊ฐ๋ค.
- ๋จ๊ณ๊ฐ ๋ด๋ ค๊ฐ์๋ก ์๊ฐ ํ ๋น๋(Time Quantum)์ด ์ฆ๊ฐํ๋ค.
- ํ ์ฌ์ด์ ํ๋ก์ธ์ค ์ด๋ ๊ฐ๋ฅํ๋ฉฐ CPU Burst๋ ๋ฎ์ ์ฐ์ ์์์ ํ, I/O Burst๋ ๋์ ์ฐ์ ์์์ ํ์ ๋ฐฐ์นํ๋ค.
- ๊ฐ์ฅ ํ์ ํ๋ FCFS ์ค์ผ์ค๋ง
- ๋งจ ์๋ ํ์์ ๋๋ฌด ์ค๋ ๋๊ธฐํ๋ฉด ๋ค์ ์์ ํ๋ก ์ด๋ (์์ด์ง ๊ธฐ๋ฒ์ ํตํ ๊ธฐ์์ํ ์๋ฐฉ)
- ๋ค๋จ๊ณ ํผ๋๋ฐฑ ํ ์ค์ผ์ค๋ง์ ๊ฒฝ์ฐ ํ์ ์, ๊ฐ ํ์ ๋ํ ์๊ณ ๋ฆฌ์ฆ, ์ฐ์ ์์ ๊ฒฉ์ ๋๋ ๊ฒฉํ ์๊ธฐ ๊ฒฐ์ , ์ฒ์ ํ๋ก์ธ์ค๋ค์ด ์ง์ ํด์ผ ํ ํ ๋ฑ๋ฑ ๋งค์ฐ ๋ณต์กํ ํ๋จ์ ์๊ตฌํ๋ค.
-
CPU burst : CPU ๋ช ๋ น์ ์คํํ๋ ๊ฒ
I/O burst : I/O๋ฅผ ์์ฒญํ ๋ค์ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ ๋งํ๋ค.
๋ง์ฝ, ์ด๋ค ํ๋ก์ธ์ค์ CPU burst time์ด 10์ด๋ผ๋ฉด, ์ด ํ๋ก์ธ์ค์ ์ด๋ค ํน์ ์์ ์ด ์๋ฃ๋๊ธฐ ์ํด์ CPU๊ฐ 10์ด ๋์ ์ด ํ๋ก์ธ์ค๋ฅผ ์์ ํด์ผ ํ๋ค๋ ๋ป์ด๋ค.
I/O burst๊ฐ ์๋ค๋ ๊ฒ์ CPU ์์ ํ ํค๋ณด๋๋ก๋ถํฐ ์ ๋ ฅ์ ๋ฐ๋ ์์ ์ด ๋ค๋ฐ๋ผ์จ๋ค๋ ๊ฐ, ์ด๋ค I/O ์์ ์ด ์ํ๋์ด์ผ ๋ค์ CPU๊ฐ ์์ ํ ์ ์๋ค๋ ๊ฒ์ ๋ปํ๋ค.
๋ฐ๋ผ์ ํ๋ก์ธ์ค๋ CPU Bound process ์ I/O bound Process๋ก ํฌ๊ฒ ๋ ์ข ๋ฅ๋ก ๋๋ ์ ์๋ค.
CPU burst๊ฐ ํฐ ํ๋ก์ธ์ค๊ฐ CPU Bound process,
I/O burst๊ฐ ํฐ ํ๋ก์ธ์ค๋ฅผ I/O bound process๋ผ๊ณ ํ๋ค.
MLQ์ MFQ์ ์ฐจ์ด์
๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ MLQ ์ค์ผ์ค๋ง์ ๊ฒฝ์ฐ ํ์ ํ ์ฌ์ด์ ํ๋ก์ธ์ค๋ค์ด ์ด๋์ ํ ์ ์๋ ๋ฐ๋ฉด, MFQ ์ค์ผ์ค๋ง์ ๊ฒฝ์ฐ ํ ์ฌ์ด์ ํ๋ก์ธ์ค๋ค์ด ์ด๋์ ํ ์ ์๋ค. ๋ฐ๋ผ์ MFQ ์ค์ผ์ค๋ง์ ๋นํด MLQ ์ค์ผ์ค๋ง์ ์ค์ผ์ค๋ง ๋ถ๋ด์ด ์ ์ง๋ง ์ ์ฐ์ฑ์ ๋จ์ด์ง๋ค.
๋ํ MLQ ์ค์ผ์ค๋ง์ ๊ฒฝ์ฐ ํ์ ๋จ๊ณ์ ํ์ ์์์๋ก CPU ํ ๋น์ ๋ฐ์ง ๋ชปํ์ฌ ๊ธฐ์ ํ์์ด ๋ฐ์ํ ์๋ ์์ง๋ง MFQ ์ค์ผ์ค๋ง์ ๊ฒฝ์ฐ๋ ์์ด์ง ๊ธฐ๋ฒ์ ํตํด ๊ธฐ์ ํ์์ ์๋ฐฉํ ์ ์์ต๋๋ค.
์ฐธ๊ณ
- https://preamtree.tistory.com/19
- https://ko.wikipedia.org/wiki/%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81_(%EC%BB%B4%ED%93%A8%ED%8C%85)
- https://blackjellybear.tistory.com/45
- https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=dkwlsrhstm&logNo=221513533099
- https://m.blog.naver.com/dkwlsrhstm/221513540640
- https://cocoon1787.tistory.com/124
- https://jhnyang.tistory.com/25
'๐CS > OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OS] ์ธํฐ๋ฝํธ (0) | 2021.08.23 |
---|---|
[OS] ํ๋ก์ธ์ค vs ์ค๋ ๋ (0) | 2021.08.18 |
[OS] ์ค์ผ์ค๋ฌ์ ์ข ๋ฅ: ์ฅ๊ธฐ, ์ค๊ธฐ, ๋จ๊ธฐ ์ค์ผ์ค๋ฌ (0) | 2021.08.04 |
[OS] ๋ธ๋ญ/๋ ผ๋ธ๋ญ, ๋๊ธฐ/๋น๋๊ธฐ (0) | 2021.07.28 |
[OS] ์ํธ๋ฐฐ์ ๋ฐฉ๋ฒ : ๋ฎคํ ์ค, ์ธ๋งํฌ์ด, ๋ชจ๋ํฐ (0) | 2021.05.02 |
๋๊ธ