Computer Science/๐ Operating System
[์ด์์ฒด์ ] CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ - ๋น์ ์ ํ, ์ ์ ํ
J1Yun
2023. 2. 28. 15:00
728x90
๐ก CPU ์ค์ผ์ค๋ง ์ฒ๋
1. CPU ์ด์ฉ๋ฅ (CPU utilization): ์๊ฐ๋น CPU๋ฅผ ์ฌ์ฉํ ์๊ฐ์ ๋น์จ
2. ์ฒ๋ฆฌ์จ(Throughput): ์๊ฐ๋น ์ฒ๋ฆฌํ ์์ ์ ๋น์จ
3. ๋ฐํ์๊ฐ(Turnaround Time): ํ๋ก์ธ์ค๊ฐ ์์ฑ๋ ํ ์ข ๋ฃ๋์ด ์ฌ์ฉํ๋ ์์์ ๋ชจ๋ ๋ฐํํ๋ ๋ฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ
4. ๋๊ธฐ์๊ฐ(Waiting Time): ๋๊ธฐ์ด์ ๋ค์ด์ CPU๋ฅผ ํ ๋น๋ฐ๊ธฐ๊น์ง ๊ธฐ๋ค๋ฆฐ ์๊ฐ
5. ๋ฐ์์๊ฐ(Response Time): ๋๊ธฐ์ด์์ ์ฒ์์ผ๋ก CPU๋ฅผ ์ป์ ๋๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ
-> CPU ์ด์ฉ๋ฅ ๊ณผ ์ฒ๋ฆฌ์จ์ ๊ทน๋ํํ๋ ๊ฒ์ด ์ข๊ณ ๋ฐํ์๊ฐ, ๋๊ธฐ์๊ฐ, ๋ฐ์์๊ฐ์ ์ค์ด๋ ๊ฒ์ด ์ข๋ค
1. CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ - ๋น์ ์ ํ
- ๋น์ ์ ํ ๋ฐฉ์(non-preemptive)์ ํ๋ก์ธ์ค๊ฐ ์ค์ค๋ก CPU ์์ ๊ถ์ ํฌ๊ธฐํ๋ ๋ฐฉ์
- ๊ฐ์ ๋ก ํ๋ก์ธ์ค๋ฅผ ์ค์งํ์ง ์์
- ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ ์ ํ๊ณ ์๋ค๋ฉด ์ด๋ฅผ ๋บ์ ์ ์์
- ์ปจํ ์คํธ ์ค์์นญ์ผ๋ก ์ธํ ๋ถํ๊ฐ ์ ์ง๋ง ํ๋ก์ธ์ค์ ๋ฐฐ์น์ ๋ฐ๋ผ ํจ์จ์ฑ ์ฐจ์ด๊ฐ ๋ง์ด ๋จ
- Ex) FCFS, SJF, ์ฐ์ ์์ ๋ฑ
1-1) FCFS(First Come First Served)
- ํ์ ๋์ฐฉํ ์์์ ๋ฐ๋ผ ๊ฐ์ฅ ๋จผ์ ์์ฒญํ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ํ ๋นํด์ฃผ๋ ์๊ณ ๋ฆฌ์ฆ
์ฅ์
- ๊ฐ๋ฐ ์ฉ์ด
- ๊ธฐ์ ํ์ ๋ฐ์ X
- ๋ฐํ์๊ฐ(Turnaround Time) ๋ฉด์์ ์ข์ ์ ์์
๋จ์
- ํธ์ ํจ๊ณผ(Convoy Effect)
- ์์ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค๊ฐ ๋จผ์ ๋๋ฌํ ๊ฒฝ์ฐ ํจ์จ์ฑ์ด ๋ฎ์์ง
- ์คํ ์๊ฐ์ด ์งง์ ์์ ์ด์ด๋ ๋ฆ๊ฒ ๋์ฐฉํ๋ฉด ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง
- ํ๊ท ๋๊ธฐ ์๊ฐ๊ณผ ์๋ต์๊ฐ(Response Time)์ด ๊ธธ์ด์ง ์ ์์
1-2) SJF(Shortest Job First)
- ํ์ ๋์ฐฉํ ํ๋ก์ธ์ค ์ค ์คํ ์๊ฐ(Burst Time)์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์คํํ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ค์ ๋ก๋ ์คํ ์๊ฐ์ ์ ํํ ์ ์ ์๊ธฐ ๋๋ฌธ์ ๊ณผ๊ฑฐ์ ์คํ ์๊ฐ์ ๋ฐํ์ผ๋ก ์ถ์ธกํด์ ์ฌ์ฉ
์ฅ์
- ํ๊ท ๋๊ธฐ ์๊ฐ์ด ์งง์
- ์งง์ ์์ ์ ์ ๋ฆฌ
๋จ์
- ๊ธฐ์ ํ์(Starvation)
- ์คํ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค์ ๊ฒฝ์ฐ ์์ํ CPU ํ ๋น์ ๋ฐ์ง ๋ชปํ๊ฒ ๋ ์ ์์
- ํ๋ก์ธ์ค์ ์ค์ ์คํ ์๊ฐ์ ์์ธกํ๊ธฐ ์ด๋ ค์
1-3) ์ฐ์ ์์(Priority)
- ๊ฐ ํ๋ก์ธ์ค์ ์ฐ์ ์์์ ๋ฐ๋ผ ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ํ๋ก์ธ์ค์๊ฒ ๋จผ์ CPU๋ฅผ ํ ๋นํ๋ ์๊ณ ๋ฆฌ์ฆ
- ์ ์ ํ๊ณผ ๋น์ ์ ํ์ผ๋ก ๋ชจ๋ ์ค๊ณ ๊ฐ๋ฅ
- ๊ธฐ์ ํ์์ด ๋ฐ์ํ ์ ์์ง๋ง ๋
ธํ(Aging) ๊ธฐ๋ฒ์ผ๋ก ํด๊ฒฐ ๊ฐ๋ฅ
- ์ค๋๋ ์์ ์ผ์๋ก ์ฐ์ ์์๋ฅผ ๋์ฌ์ค
2. CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ - ์ ์ ํ
- ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์๊ณ ๋ฆฌ์ฆ์ ์ํด ์ค๋จ์ํค๊ณ ๊ฐ์ ๋ก ๋ค๋ฅธ ํ๋ก์ธ์ค์๊ฒ CPU ์์ ๊ถ์ ํ ๋นํ๋ ๋ฐฉ์
- ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ ์ ํ๊ณ ์๋๋ผ๋ ์ด๋ฅผ ๋บ์ ์ ์์
- ์ฒ๋ฆฌ ์๊ฐ์ด ๋งค์ฐ ๊ธด ํ๋ก์ธ์ค์ CPU ๋ ์ ์ ๋ง์ ์ ์์ง๋ง ์ฆ์ ์ปจํ ์คํธ ์ค์์นญ์ผ๋ก ๋ถํ๊ฐ ๋ฐ์ํ ์ ์์
- Ex) Round Robin, SRF, MLQ/MLFQ
2-1) Round Robin(RR)
- ๊ฐ ํ๋ก์ธ์ค์๊ฒ ๋์ผํ ํ ๋น ์๊ฐ(Time Quantum)์ ๋ถ์ฌํด์ ํด๋น ์๊ฐ ๋์๋ง CPU๋ฅผ ์ด์ฉํ๋๋ก ํ๋ ์๊ณ ๋ฆฌ์ฆ
- ํ ๋น ์๊ฐ ์์ ๋๋์ง ์์ผ๋ฉด ๋ค์ ์ค๋น ํ(Ready Queue)์ ๊ฐ์ฅ ๋ค๋ก ๋์๊ฐ๊ณ CPU๋ ๋ค์ ํ๋ก์ธ์ค๋ฅผ ์คํ
์ฅ์
- n๊ฐ์ ํ๋ก์ธ์ค์ ๋ํด ํ ๋น ์๊ฐ์ด q๋ผ๋ฉด ์ด๋ค ํ๋ก์ธ์ค๋ (n-1)q ์ด์์ ์๊ฐ์ ๊ธฐ๋ค๋ฆฌ์ง ์์๋ ๋จ
- ์๋ต์๊ฐ(Response Time)์ด ๋น ๋ฆ
- ๊ณต์ ํ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ์ด๋ฉฐ ํ๋ก์ธ์ค๋ค์ CPU ์ฌ์ฉ ์๊ฐ์ด ๋๋คํ๊ฒ ์์ฌ ์์ ๊ฒฝ์ฐ ํจ์จ์
๋จ์
- ํ ๋น ์๊ฐ q๊ฐ ์ปค์ง๋ฉด FCFS์ฒ๋ผ ๋์
- ํ ๋น ์๊ฐ q๊ฐ ์์์ง๋ฉด ์ปจํ ์คํธ ์ค์์นญ์ด ์ฐพ์์ ธ์ ์ค๋ฒํค๋๊ฐ ์ปค์ง
2-2) SRF/SRTF(Shortest Remaining Time First)
- SJF์ ์ ์ ํ ๋ฐฉ์
- ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ๋จ์ ์๊ฐ๋ณด๋ค ๋ ์งง์ ์คํ ์๊ฐ์ ๊ฐ์ง ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ ๊ฒฝ์ฐ CPU๋ฅผ ๊ฐ์ ๋ก ํ์ํ์ฌ ๊ต์ฒดํ๋ ์๊ณ ๋ฆฌ์ฆ
- ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ๋๋ฌํ ๋๋ง๋ค ์ค์ผ์ค๋ง์ ๋ค์ ํ๊ธฐ ๋๋ฌธ์ CPU ์ฌ์ฉ ์๊ฐ์ ์ธก์ ํ ์ ์๊ณ , ๊ธฐ์ ํ์ ๋ฐ์ ๊ฐ๋ฅ
2-3) Multi-Level Queue(๋ค๋จ๊ณ ํ)
- ์ฌ๋ฌ ์ข ๋ฅ์ ์ค๋น ํ(Ready Queue)๋ฅผ ํ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ
- ๊ฐ ์ค๋น ํ์๋ ์๋ก ๋ค๋ฅธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉ
- ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ค์ด ์คํ ๋ชปํ๋ ๊ฑธ ๋ฐฉ์งํ๊ณ ์ ๊ฐ ํ๋ง๋ค ๋ค๋ฅธ Time Quantum์ ์ค์ ํด์ฃผ๋ ๋ฐฉ์
- ์ฐ์ ์์๊ฐ ๋์ ํ๋ ์์ Time Quantum ํ ๋น. ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ ํฐ Time Quantum ํ ๋น
- ์ผ๋ฐ์ ์ผ๋ก Foreground ํ๋ก์ธ์ค๋ค์ Round Robin ๋ฐฉ์์ ์ฌ์ฉํ๊ณ , Background ํ๋ก์ธ์ค๋ FCFS๋ฅผ ์ฌ์ฉ
- ๊ฐ ํ ์ฌ์ด์์ ํ๋ก์ธ์ค ์ด๋์ ๋ถ๊ฐํด ์ค์ผ์ค๋ง ๋ถ๋ด์ด ์ ์
- ๋ฎ์ ์์์ ํ์ ์์นํ ํ๋ก์ธ์ค๊ฐ ์คํ๋์ง ์๋ ๊ธฐ์ ํ์์ด ๋ฐ์ํ ์ ์์
2-4) MFQ/MLFQ(Multi-Level Feedback Queue)
- Multi-Level Queue์ ๋น์ทํ์ง๋ง ํ ๊ฐ์ ํ๋ก์ธ์ค๋ค์ด ์ด๋ํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ
- Multi-Level Queue์์ ์์ ์๊ฒ ํ ๋น๋ Time Quantum์ ๋ชจ๋ ์ฌ์ฉํ ํ๋ก์ธ์ค๋ ๋ฐ์ผ๋ก ๋ด๋ ค๊ฐ๊ณ Time Quantum์ ๋ค ์ฑ์ฐ์ง ๋ชปํ ํ๋ก์ธ์ค๋ ์๋ ํ ์์น ๊ทธ๋๋ก ๋
- ์ฒ๋ฆฌ ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ฐํ์๊ฐ(Turnaround Time)์ ์ค์ฌ์ฃผ๋ฉฐ ์งง์ ์์ ์ ์ ๋ฆฌ
โญ๏ธ ์ฐธ๊ณ
728x90