CPU Scheduling
CPU ์ค์ผ์ค๋ง์ ์ปดํจํฐ ์ด์์ฒด์ (OS) ๊ฐ CPU ๋ฅผ ์ฌ๋ฌ ํ๋ก์ธ์ค์ ํจ์จ์ ์ผ๋ก ํ ๋นํ๋ ๊ณผ์ ์. ๋ฉํฐํ์คํน ํ๊ฒฝ์์ CPU ๋ ํ๋์ ํ๋ก์ธ์ค๋ง ์คํํ ์ ์๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋๋ก ์ค์ผ์ค๋ง์ด ํ์ํ๋ค.
๋ชฉ์
CPU ์ด์ฉ์จ(CPU Utilization) ๊ทน๋ํ : CPU๊ฐ ๊ฐ๋ฅํ ํ ์ง์์ ์ผ๋ก ์์ ์ ์ฒ๋ฆฌํ๋๋ก ํ์ฌ ์ ํด ์๊ฐ์ ์ต์ํํจ.
์ฒ๋ฆฌ๋(Throughput) ์ฆ๊ฐ : ๋จ์ ์๊ฐ ๋น ์๋ฃ๋๋ ํ๋ก์ธ์ค์ ์๋ฅผ ๋๋ฆผ.
๋๊ธฐ ์๊ฐ(Waiting Time) ์ต์ํ : ํ๋ก์ธ์ค๊ฐ ์ค๋น ํ์์ ๋๊ธฐํ๋ ์๊ฐ์ ์ค์.
์๋ต ์๊ฐ(Response Time) ๋จ์ถ : ์ฌ์ฉ์์ ์์ฒญ์ ๋ํ ์์คํ ์ ๋ฐ์ ์๊ฐ์ ์ต์ํ ํจ.
๋ฐํ ์๊ฐ(Turnaround Time) ๊ฐ์ : ํ๋ก์ธ์ค๊ฐ ์์๋ถํฐ ์๋ฃ๊น์ง ๊ฑธ๋ฆฌ๋ ์ด ์๊ฐ์ ์ค์.
์ ํ
1. ๋น์ ์ ํ ์ค์ผ์ค๋ง(Non-Preeemptive Scheduling)
ํน์ง : ํ ๋ฒ CPU ๋ฅผ ํ ๋น๋ฐ์ ํ๋ก์ธ์ค๋ ์์ ์ด ์๋ฃ๋๊ฑฐ๋ ๋๊ธฐ ์ํ๋ก ์ ํ๋ ๋๊น์ง CPU ๋ฅผ ์ ์ ํจ.
์ฅ์ : ๋ฌธ๋งฅ ๊ตํ(Context Switching) ์ผ๋ก ์ธํ ์ค๋ฒํค๋๊ฐ ์ ์.
๋จ์ : ๊ธด ์์ ์ด ์์ ์์ ๊ฒฝ์ฐ, ์งง์ ์์ ๋ค์ด ์ค๋ ๋๊ธฐํ๋ ํธ์ ํจ๊ณผ(Convoy Effect) ๊ฐ ๋ฐ์ํ ์ ์์.
2. ์ ์ ํ ์ค์ผ์ค๋ง(Preemptive Scheduling)
ํน์ง : ์ด์์ฒด์ ๊ฐ ํ์์ ๋ฐ๋ผ ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ CPU ์ ์ ๋ฅผ ์ค๋จํ๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋นํ ์ ์์.
์ฅ์ : ๊ธด ์์ ์ด CPU๋ฅผ ๋ ์ ํ๋ ๊ฒ์ ๋ฐฉ์งํ์ฌ ์์คํ ์ ์๋ต์ฑ์ ํฅ์์ํด.
๋จ์ : ์ฆ์ ๋ฌธ๋งฅ ๊ตํ์ผ๋ก ์ธํด ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐํ ์ ์์.
์ฃผ์ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
1. ์ ์
์ ์ถ ์ค์ผ์ค๋ง(First Come First Served, FCFS)
๋ฐฉ์ : ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ ์์๋๋ก CPU๋ฅผ ํ ๋นํจ.
ํน์ง : ๊ตฌํ์ด ๊ฐ๋จํ์ง๋ง, ๊ธด ์์ ์ด ์์ ์์ ๊ฒฝ์ฐ ํธ์ ํจ๊ณผ๋ก ์ธํด ํ๊ท ๋๊ธฐ ์๊ฐ์ด ์ฆ๊ฐํ ์ ์์.
2. ์ต๋จ ์์
์ฐ์ ์ค์ผ์ค๋ง(Shortest Job First, SJF)
๋ฐฉ์ : ์คํ ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค์ ์ฐ์ ์ ์ผ๋ก CPU๋ฅผ ํ ๋นํจ.
ํน์ง : ์ด๋ก ์ ์ผ๋ก ํ๊ท ๋๊ธฐ ์๊ฐ์ ์ต์ํํ์ง๋ง, ๊ฐ ํ๋ก์ธ์ค์ ์คํ ์๊ฐ์ ์ฌ์ ์ ์ ํํ ์๊ธฐ ์ด๋ ค์. ๋ํ, ๊ธด ์์ ์ด ๊ณ์ํด์ ๋ค๋ก ๋ฐ๋ ค ๊ธฐ์(Starvation) ์ํ์ ๋น ์ง ์ ์์.
3. ๋ผ์ด๋ ๋ก๋น ์ค์ผ์ค๋ง(Round Robin, RR)
๋ฐฉ์ : ๊ฐ ํ๋ก์ธ์ค์ ๋์ผํ ์๊ฐ ํ ๋น๋(Time Quantum) ์ ๋ถ์ฌํ๊ณ , ์ด๋ฅผ ์ํํ๋ฉฐ CPU๋ฅผ ํ ๋นํจ.
ํน์ง : ์๋ต ์๊ฐ์ด ์ผ์ ํ๊ฒ ์ ์ง๋๋ฉฐ, ํ์ ์ฌ๋ผ์ด์ค์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ํฌ๊ฒ ์ข์ฐ๋จ. ํ์ ์ฌ๋ผ์ด์ค๊ฐ ๋๋ฌด ์งง์ผ๋ฉด ๋ฌธ๋งฅ ๊ตํ ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐํ๊ณ , ๋๋ฌด ๊ธธ๋ฉด FCFS ์ ์ ์ฌํ๊ฒ ๋์ํจ.
4. ์ฐ์ ์์ ์ค์ผ์ค๋ง(Priority Scheduling)
๋ฐฉ์ : ๊ฐ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๊ณ , ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค์ ๋จผ์ CPU ๋ฅผ ํ ๋นํจ.
ํน์ง : ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก์ธ์ค๋ ๊ธฐ์ ์ํ์ ๋น ์ง ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์์ด์ง(Aging) ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ์ค๋ ์๊ฐ ๋๊ธฐํ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ์ ์ง์ ์ผ๋ก ๋์.
5. ๋ค๋จ๊ณ ํ ์ค์ผ์ค๋ง(Multilevel Queue Scheduling)
๋ฐฉ์ : ํ๋ก์ธ์ค๋ฅผ ์ฐ์ ์์๋ ํน์ฑ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ ํ๋ก ๋ถ๋ฅํ๊ณ , ๊ฐ ํ์ ๋ํด ๋ณ๋์ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํจ.
ํน์ง : ํ๋ก์ธ์ค์ ํน์ฑ์ ๋ง๊ฒ ์ค์ผ์ค๋งํ ์ ์์ง๋ง, ํ ๊ฐ ์ด๋์ด ๋ถ๊ฐ๋ฅํ์ฌ ์ ์ฐ์ฑ์ด ๋จ์ด์ง ์ ์์.
6. ๋ค๋จ๊ณ ํผ๋๋ฐฑ ํ ์ค์ผ์ค๋ง(Multilevel Feedback Queue Scheduling)
๋ฐฉ์ : ํ๋ก์ธ์ค๊ฐ ์คํ๋๋ฉด์ ๋ค๋ฅธ ํ๋ก ์ด๋ํ ์ ์๋๋ก ํ์ฉํ์ฌ, ์ฐ์ ์์๋ฅผ ๋์ ์ผ๋ก ์กฐ์ ํจ.
ํน์ง : ๊ธฐ์ ์ํ๋ฅผ ๋ฐฉ์งํ๊ณ ๋ค์ํ ํ๋ก์ธ์ค๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ง๋ฏธ๋, ๊ตฌํ์ด ๋ณต์กํจ.
Last updated
Was this helpful?