CPU ์ค์ผ์ค๋ง
CPU ์ค์ผ์ค๋ง
์ ์
CPU ์ฝ์ด ํ๋๋ ํ๋์ ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค. CPU ์ฝ์ด๊ฐ ์์ ์ ๋ชจ๋ ๋ง์น๊ธฐ ์ ๊น์ง, ํ๋ก์ธ์ค๋ ๋๊ธฐํ๊ณ ์๋๋ค. CPU ์์ ์ด ๋๋๋ฉด, ๋ ๋ ํ์์ ๋๊ธฐํ๋ ํ๋ก์ธ์ค ์ค ํ๋๋ฅผ ์ ํํ์ฌ ์์ ์ ํด์ผํ๋๋ฐ ์ด ๋ ์ ํ ์ ์ฐจ๋ CPU ์ค์ผ์ค๋ฌ์ ์ํด ์ํ๋๋ค.

ํ๋ก์ธ์ค ์คํ์ CPU ์คํ๊ณผ I/O ๋๊ธฐ์ ์ฌ์ดํด๋ก ๊ตฌ์ฑ๋๋ค. ํ๋ก์ธ์ค๋ ๋ ์ํ๋ฅผ ๊ต๋๋ก ์๋ค๊ฐ๋ค ํ๋ฉด์ ์์ ์ด ์ฒ๋ฆฌ๋๋ค. ์ด๊ธฐ์๋ CPU ๋ฒ์คํธ๋ก ์์๋๊ณ , ๋ค์ด์ด I/O ๋ฒ์คํธ๊ฐ ๋ฐ์ํ๋ค.
CPU ์ค์ผ์ค๋ง ๊ฒฐ์ ์ ๋ค์์ ๋ค ๊ฐ์ง ์ํฉ์์ ๋ฐ์ํ ์ ์๋ค.
- ํ๋ก์ธ์ค๊ฐ ์คํ ์ํ์์ ๋๊ธฐ ์ํ๋ก ์ ํ๋ ๋
- ํ๋ก์ธ์ค๊ฐ ์คํ ์ํ์์ ์ค๋น ์ํ๋ก ์ ํ๋ ๋
- ํ๋ก์ธ์ค๊ฐ ๋๊ธฐ ์ํ์์ ์ค๋น ์ํ๋ก ์ ํ๋ ๋
- ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ๋
์ด๋, 1๋ฒ๊ณผ 4๋ฒ์์๋ ๋น์ ์ ํ ์ค์ผ์ค๋ง์ด ๋ฐ์ํ๋ค. ์๋ํ๋ฉด, 1๋ฒ์ ๊ฒฝ์ฐ I/O ์์ ํน์ ์ธ๋ถ ์ด๋ฒคํธ ์ข ๋ฃ๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค์ค๋ก ๋๊ธฐ ์ํ๋ก ์ ํ๋๊ณ 4๋ฒ์ ๊ฒฝ์ฐ ์์ ์ด ๋ชจ๋ ์๋ฃ๋๊ธฐ ๋๋ฌธ์ ์ค์ค๋ก ์ข ๋ฃ ์ํ๋ก ์ ํ๋๋ค.
๋ฐ๋ฉด์ 2๋ฒ๊ณผ 3๋ฒ์์๋ ์ ์ ํ ํน์ ๋น์ ์ ํ ์ค์ผ์ค๋ง์ด ๋ฐ์ํ๋ค. 2๋ฒ์ ๊ฒฝ์ฐ ์๋ถํ ์ด ๋๋์ ์ค์ค๋ก ์ค๋น ์ํ๋ก ๊ฐ ์ ์์ง๋ง, ๋ ๋ ํ์ ์ฐ์ ์์๊ฐ ๋์ ์์ ์ด ์กด์ฌํ์ฌ ๊ฐ์ ๋ก ์ค๋น ์ํ๋ก ์ ํ๋ ์ ์๋ค. 3๋ฒ์ ๊ฒฝ์ฐ ์ค๋น ์ํ๋ก ๋ค์ด๊ฐ ๋, ํ์ฌ ์คํ ์ค์ธ ์์ ์ด ๋๋ ๋๊น์ง ๋๊ธฐํ๊ฑฐ๋ ํ์ฌ ์คํ ์ค์ธ ์์ ๋ณด๋ค ์ฐ์ ์์๊ฐ ๋์ CPU๋ฅผ ์ ์ ํ ์ ์๋ค.
๊ธฐ์ค
CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๋น๊ตํ๋ ๊ธฐ์ค์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค.
- CPU ์ด์ฉ๋ฅ (utilization) : ์ค์ ์์คํ ์์๋ 40%์์ 90% ๋ฒ์๋ฅผ ๊ฐ์ ธ์ผ ํจ
- ์ฒ๋ฆฌ๋(throughput) : ๋จ์ ์๊ฐ๋น ์ฒ๋ฆฌ๋
- ์ด์ฒ๋ฆฌ ์๊ฐ(turnaround time) : ๋ ๋ ํ์์ ๋๊ธฐ ์๊ฐ + CPU ์คํ ์๊ฐ + I/O ์๊ฐ
- ๋๊ธฐ ์๊ฐ(waiting time) : ๋ ๋ ํ์์ ๋๊ธฐํ๋ ์๊ฐ
- ์๋ต ์๊ฐ(response time)
โ CPU ์ด์ฉ๋ฅ ๊ณผ ์ฒ๋ฆฌ๋์ ์ต๋ํํ๊ณ ์ด์ฒ๋ฆฌ ์๊ฐ, ๋๊ธฐ ์๊ฐ, ์๋ต ์๊ฐ์ ์ต์ํํ๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค.
์ข ๋ฅ
-
FCFS
- ์ ์ ์ ์ถ, ๋น์ ์ ํ
- ๋๊ธฐ ํ์ ๋ค์ด๊ฐ ๋, PCB๋ฅผ ํ์ ๋์ ์ฐ๊ฒฐ
- ์์ ์๊ฐ์ด ๊ธด ์์ ์ด ๋จผ์ ์คํ๋ ๊ฒฝ์ฐ ์์ ์๊ฐ์ด ์งง์ ์์ ์ ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง โ ํธ์ ํจ๊ณผ(Convoy Effect)
-
SJF
-
์์ ์๊ฐ์ด ์งง์ ์์ ์ด ๋จผ์ ์คํ
-
๋ค์ ์์ ์๊ฐ์ ์ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ๊ตฌํ์ด ์ด๋ ค์ โ ๊ณผ๊ฑฐ์ ๊ธฐ๋ก์ ํตํด ์์ธก

- tn : n๋ฒ์งธ ์ค์ ์ธก์ ๋ CPU ๋ฒ์คํธ ์๊ฐ
- ฯn : n๋ฒ์งธ ์์ธก๊ฐ
- ฮฑ : ๊ฐ์ค์น (0 โค ฮฑ โค 1)
-
๋น์ ์ ํ์ด ๋ ์๋ ์๊ณ ์ ์ ํ์ด ๋ ์๋ ์์
- ๋น์ ์ ํ์ ๊ฒฝ์ฐ ์์ ์๊ฐ์ด ๋ ์งง์ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ์ ๋, ํ์ฌ ์คํํ๊ณ ์๋ ํ๋ก์ธ์ค๊ฐ ์์ ์ด ๋๋๋๋ก ํ์ฉ
- ์ ์ ํ์ ๊ฒฝ์ฐ ์์ ์๊ฐ์ด ๋ ์งง์ ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ์ ๋, CPU๋ฅผ ์ ์ โ SRTF
-
-
RR
-
์๋ถํ ์ ํตํด ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌ, ์ ์ ํ
-
์ผ๋ฐ์ ์ผ๋ก 10์์ 100๋ฐ๋ฆฌ์ด ๋์ ์์ ์ฒ๋ฆฌํ๋ฉฐ, ์ํ ํ๋ฅผ ํตํด ๋์
-
์์ ์๊ฐ์ด ์๋ถํ ๋ณด๋ค ์์ ๊ฒฝ์ฐ ์๋ฐ์ ์ผ๋ก CPU์์ ๋์ด
-
์์ ์๊ฐ์ด ์๋ถํ ๋ณด๋ค ํฐ ๊ฒฝ์ฐ ํ์ด๋จธ๊ฐ ๋๋ ํ OS์์ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ์ฌ ์ปจํ ์คํธ ์ค์์นญ ๋ฐ์
-
์๋ถํ ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์ฑ๋ฅ์ด ์ข์ง์ฐ์ง

- ์งง๊ฒ ์ก์ผ๋ฉด ์ปจํ ์คํธ ์ค์์น๊ธฐ ๋น๋ฒํ๊ฒ ๋ฐ์ํ์ฌ ์ฑ๋ฅ ์ ํ
- ๊ธธ๊ฒ ์ก์ผ๋ฉด ์์ ์ฒ๋ฆฌ๋์ด ์ค์ด๋ฆ
-
-
Priority Scheduling
- ์ฐ์ ์์์ ์ํด ํ๋ก์ธ์ค๊ฐ ํ ๋น
- ์ฐ์ ์์๋ ๋ด๋ถ์ ๋๋ ์ธ๋ถ์ ์ผ๋ก ์ ์๋ ์ ์์
- ๋ด๋ถ์ : ์๊ฐ ์ ํ, ๋ฉ๋ชจ๋ฆฌ ์๊ตฌ, ์ด๋ฆฐ ํ์ผ์ ์, ํ๊ท I/O ๋ฒ์คํธ์ ํ๊ท CPU ๋ฒ์คํธ์ ๋ํ ๋น์จ
- ์ธ๋ถ์ : ํ๋ก์ธ์ค์ ์ค์์ฑ, ์ปดํจํฐ ์ฌ์ฉ์ ์ํด ์ง๋ถ๋๋ ๋น์ฉ์ ์ ํ๊ณผ ์, ์์ ์ ํ์ํ๋ ๋ถ์, ์ ์น์ ์ธ ์์ธ
- ์ฐ์ ์์๊ฐ ๋ฎ์ ์ฐ์ ์์๊ฐ ๋์ ์์ ์ ๊ณ์ ๋ฐ๋ ค ์์ ์ด ์ฒ๋ฆฌ๋์ง ๋ชปํ๋ ๊ธฐ์ ํ์์ด ๋ฐ์ํ ์ ์์
- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ค๋ซ๋์ ๋๊ธฐํ๋ ์์ ๋ค์ ์ฐ์ ์์๋ฅผ ์ ์ง์ ์ผ๋ก ์ฆ๊ฐ์ํค๋ ์์ด์ง ๊ธฐ๋ฒ์ด ์กด์ฌ
-
MLQ(Multi-Level Queue)

- ๋๊ธฐ ํ์ ์ฐ์ ์์๊ฐ ๋์ ์์ ์ ์ฐพ๊ธฐ ์ํด O(n) ๊ฒ์์ด ํ์ํ ์ ์์
- ์ฐ์ ์์์ ๋ฐ๋ผ ํ๋ฅผ ๋ฐฐ์นํ์ฌ ์์ ์ ์ฒ๋ฆฌํ๋ค๋ฉด, ๊ฒ์ ๋น์ฉ์ ๊ฐ์ ํ ์ ์์
- ๊ฐ ํ๋ ๋ ๋ฆฝ์ ์ธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ง ์ ์์
- ์์ ํ์ ์์ ์ด ์์ผ๋ฉด ๋ฌด์กฐ๊ฑด ๋จผ์ ์คํ๋๊ณ ์ด๋ก ์ธํด ํ์ ํ์์ ๊ธฐ์ ํ์์ด ๋ฐ์ํ ์ ์์
- ํ๋ณ๋ก CPU ์๊ฐ์ ์ผ์ ๋น์จ๋ก ๋ถ๋ฐฐํ ์ ์์ (์์ ํ 80, ํ์ ํ 20)
-
MLFQ(Multi-Level Feedback Queue)

- MLQ์ ๋ฌ๋ฆฌ, ์์ ๋ค์ด ํ๋ค ์ฌ์ด๋ฅผ ์ด๋ํ๋ ๊ฒ์ ํ์ฉ
- ํ๋ก์ธ์ค๊ฐ ๋ค์ด์ค๋ฉด ๊ฐ์ฅ ๋์ ์ฐ์ ์์ ํ์ ์ง์
- ์๋ถํ ์ ๋ชจ๋ ์ฌ์ฉํ๋ฉด ํ ๋จ๊ณ ๋ฎ์ ํ๋ก ์ด๋
- ์๋ถํ ์ด ๋๋๊ธฐ ์ ์ I/O๋ก ๋น ์ง๋ฉด ํ์ฌ ํ๋ฅผ ์ ์ง
- ์ผ๋ฐ์ ์ผ๋ก ์ฐ์ ์์๊ฐ ๋ฎ์ ํ์ ์๋ถํ ์๊ฐ์ ๋ ๊ธธ๊ฒ ๋ถ์ฌ
- ๊ธฐ์ ํ์ ๋ฐฉ์ง๋ฅผ ์ํด ์์ด์ง ์ ์ฉ์ด ๊ฐ๋ฅ
๋์คํจ์ฒ

CPU ์ค์ผ์ค๋ง ๊ธฐ๋ฅ์ ํฌํจ๋ ์์๋ก CPU ์ฝ์ด์ ์ ์ด๋ฅผ CPU ์ค์ผ์ค๋ฌ๊ฐ ์ ํํ ํ๋ก์ธ์ค์ ์ฃผ๋ ๋ชจ๋์ด๋ฉฐ ๋ค์ ์์ ์ ์งํํ๋ค.
- ํ๋ก์ธ์ค ์ปจํ ์คํธ ์ค์์นญ
- ์ฌ์ฉ์ ๋ชจ๋ ์ ํ
- ํ๋ก๊ทธ๋จ์ ๋ค์ ์์ํ๊ธฐ ์ํด ์ฌ์ฉ์ ํ๋ก๊ทธ๋จ์ ์ ์ ํ ์์น๋ก ์ด๋
์ฆ, ์ปจํ ์คํธ ์ค์์นญ๊ฐ ๋ฐ์ํ ๋ ํธ์ถ๋๊ณ ๊ฐ๋ฅํ ๋น ๋ฅด๊ฒ ์ํ๋์ด์ผ ํ๋ค. ์๋ํ๋ฉด ์ปจํ ์คํธ ์ค์์นญ ๊ณผ์ ์์ ํ๋ก์ธ์ค ์ ์ง ๋ฐ ์ฌ์คํ์ด ๋ฐ์ํ๊ณ ์ด๋ ์ง์ฐ์๊ฐ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ์ง์ฐ ์๊ฐ์ ๋์คํจ์น ์ง์ฐ์ด๋ผ๊ณ ํ๋ค.
์ปจํ ์คํธ ์ค์์นญ์ด ์ผ๋ง๋ ์์ฃผ ๋ฐ์ํ๋๊ฐ๋
vmstat๋ฅผ ํตํด ํ์ธํ ์ ์๋ค.