๐ 10์ฅ. ๋ฉํฐํ๋ก์ธ์ ์ค์ผ์ค๋ง
ํต์ฌ ์ฃผ์ : ์ฌ๋ฌ CPU ์ฝ์ด๊ฐ ์์ ๋, ์ด๋ป๊ฒ ์ค์ผ์ค๋งํ ์ง๋ฅผ ๊ณ ๋ฏผ.
- 10.1 ๋ฉํฐํ๋ก์ธ์ ๊ตฌ์กฐ:
SMP (๋์นญ ๋ค์ค์ฒ๋ฆฌ) ๊ตฌ์กฐ ๊ธฐ๋ฐ. ์ฌ๋ฌ CPU๊ฐ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ. - 10.2 ๋๊ธฐํ๋ฅผ ์์ง๋ง๋ผ:
์ฌ๋ฌ ์ฝ์ด ๊ฐ ์์ ์ถฉ๋ ๋ฐฉ์ง๋ฅผ ์ํด ๋ฝ, ์ธ๋งํฌ์ด ๋ฑ ๋๊ธฐํ ํ์. - 10.3 ์บ์ ์นํ์ฑ:
์ค๋ ๋๊ฐ ๊ฐ์ CPU์์ ์คํ๋๋ฉด ์บ์ ํจ์จ์ฑ์ด ์ฆ๊ฐ. ์ด๋ฅผ ๊ณ ๋ คํ ๋ฐฐ์น ํ์. - 10.4 ๋จ์ผ ํ ์ค์ผ์ค๋ง:
๋ชจ๋ ์์ ์ ํ๋์ ํ์์ ์ฒ๋ฆฌ. ๊ณต์ ํ๋, ํ ๋ณ๋ชฉ ๊ฐ๋ฅ. - 10.5 ๋ฉํฐ ํ ์ค์ผ์ค๋ง:
CPU๋ง๋ค ํ๋ฅผ ๋ฐ๋ก ๋ . ์ฑ๋ฅ ํฅ์ ๊ฐ๋ฅ, ํ์ง๋ง ๋ถํ ๋ถ๊ท ํ ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ. - 10.6 Linux ๋ฉํฐ ํ๋ก์ธ์ ์ค์ผ์ค๋ฌ:
CFS (Completely Fair Scheduler) ๋ฑ Linux์์ ์ฌ์ฉ๋๋ ์ค์ ์ค์ผ์ค๋ฌ ๊ตฌ์กฐ ์๊ฐ. - 10.7 ์์ฝ:
๋ฉํฐ์ฝ์ด ํ๊ฒฝ์์๋ ์บ์ ํจ์จ, ๋๊ธฐํ, ํ ๊ตฌ์กฐ ๋ฑ ์ฌ๋ฌ ์์๊ฐ ์ฑ๋ฅ์ ์ํฅ.
์์ฝ
๋ฉํฐํ๋ก์ธ์ ์์คํ ์์์ ์ค์ผ์ค๋ง์ ๋จ์ผ ํ๋ก์ธ์ ์์คํ ๋ณด๋ค ๋ณต์กํจ
์บ์ ์ผ๊ด์ฑ, ๋๊ธฐํ, ๋ถํ ๋ถ์ฐ ๋ฑ ๋ค์ํ ์์๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๋ฐฐ๊ฒฝ: ๋ฉํฐํ๋ก์ธ์ ๊ตฌ์กฐ
๋ฉํฐํ๋ก์ธ์ ์์คํ
์์๋ ๊ฐ CPU๊ฐ ์์ฒด ์บ์๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ด๋ก ์ธํด ์บ์ ์ผ๊ด์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ํ๋์ CPU์์ ๋ฉ๋ชจ๋ฆฌ ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด ๋ค๋ฅธ CPU์ ์บ์์๋ ์ด์ ๊ฐ์ด ๋จ์ ์์ ์ ์์ต๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด **๋ฒ์ค ์ค๋ํ(bus snooping)**๊ณผ ๊ฐ์ ํ๋์จ์ด ๊ธฐ์ ์ด ์ฌ์ฉ๋ฉ๋๋ค.
๐ง 1. ์ปดํจํฐ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ ์ฅํ๊ณ ์ ๊ทผํ ๊น?
๐ ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ
์ปดํจํฐ ์์คํ ์ ์๋์ ๋น์ฉ์ ๊ท ํ์ ๋ง์ถ๊ธฐ ์ํด ๋ค๋จ๊ณ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉ
๐ ๋ ์ง์คํฐ < ์บ์ < ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ(RAM) < ๋์คํฌ(HDD/SSD)
(๊ฐ์ฅ ๋น ๋ฆ) (๊ฐ์ฅ ๋๋ฆผ)
- ๋ ์ง์คํฐ: CPU ๋ด๋ถ์ ์๋ ์์ฃผ ๋น ๋ฅด๊ณ ์์ ์ ์ฅ ๊ณต๊ฐ.
- ์บ์ (L1, L2, L3): CPU์ ๊ฐ๊น์ด ๊ณ ์ ๋ฉ๋ชจ๋ฆฌ. ์ ๊ทผ ์๋๊ฐ ๋น ๋ฅด๊ณ , ์ต๊ทผ ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ.
- ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ (RAM): ๋น๊ต์ ํฌ๊ณ ๋๋ฆฌ๋ฉฐ, ํ๋ก๊ทธ๋จ ์คํ์ ํ์ํ ๋๋ถ๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ.
- ๋์คํฌ (SSD/HDD): ์์ฃผ ๋๋ฆฌ์ง๋ง ๋งค์ฐ ํฐ ์ ์ฅ ๊ณต๊ฐ.
โ๏ธ 2. ์บ์๋ ์ด๋ป๊ฒ ์๋ํ ๊น?
โ ์ง์ญ์ฑ ์๋ฆฌ (Locality)
์บ์๋ ํ๋ก๊ทธ๋จ ์คํ ํจํด์ ์์ธกํด์ ์์ฃผ ์ ๊ทผํ ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ์ ธ๋ค ๋๋ ๋ฐฉ์์ผ๋ก ์๋ํด์.
- ์๊ฐ์ ์ง์ญ์ฑ (Temporal):
๋ฐฉ๊ธ ์ด ๋ฐ์ดํฐ๋ ๋ ์ธ ๊ฐ๋ฅ์ฑ์ด ๋์ → ๋ค์ ์ ๊ทผํ ๊ฑธ ๋๋นํด ์ ์ฅ - ๊ณต๊ฐ์ ์ง์ญ์ฑ (Spatial):
์ง๊ธ x ์ฃผ์์ ์ ๊ทผํ๋ค๋ฉด, x ๊ทผ์ฒ์ ๋ฐ์ดํฐ๋ ๊ณง ์ ๊ทผํ ๊ฐ๋ฅ์ฑ์ด ์์ → ๋ฉ์ด๋ฆฌ๋ก ๋ฏธ๋ฆฌ ๋ถ๋ฌ์ด
๐ก ํ๋์จ์ด ์บ์ ๊ณ์ธต(cache hierarchy)
์บ์(Cache)
CPU๊ฐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ณด๋ค ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ณ ์ ์์ ์ ์ฅ์
ํ์ง๋ง ์บ์๋ ์ฉ๋์ด ์๊ธฐ ๋๋ฌธ์, ๋ ํจ์จ์ ์ผ๋ก ์ฐ๊ธฐ ์ํด ๊ณ์ธต ๊ตฌ์กฐ๋ก ๋๋ ์ ์ฌ์ฉ
- ์บ์๋ CPU์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ์ค๊ฐ ๋ค๋ฆฌ ์ญํ
- L1 → L2 → L3 → RAM ์์ผ๋ก ์ ์ ๋๋ ค์ง๊ณ ์ปค์ง
- ์๋ vs ์ฉ๋ ํธ๋ ์ด๋์คํ
- ์ง์ญ์ฑ(locality)์ ๊ธฐ๋ฐ์ผ๋ก ๋์ → ์ต๊ทผ/๊ทผ์ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฃผ ์บ์์ ๋
๐งฑ ์บ์ ๊ณ์ธต ๊ตฌ์กฐ (๋ณดํต L1 → L2 → L3)
CPU Core
โโ L1 Cache (๋น ๋ฅด๊ณ ์์)
โโ L2 Cache (์ค๊ฐ ์๋, ์ค๊ฐ ํฌ๊ธฐ)
โโ L3 Cache (๋๋ฆฌ์ง๋ง ํผ, ์ฌ๋ฌ ์ฝ์ด ๊ณต์ )
↓
Main Memory (RAM)โ
๊ณ์ธต | ์์น | ์๋ | ํฌ๊ธฐ | ํน์ง |
L1 ์บ์ | CPU ์ฝ์ด ๋ด๋ถ | ๊ฐ์ฅ ๋น ๋ฆ | ๋งค์ฐ ์์ (16~64KB) | ๋ช ๋ น์ด ์บ์(I-cache)์ ๋ฐ์ดํฐ ์บ์(D-cache)๋ก ๋ถ๋ฆฌ๋จ |
L2 ์บ์ | CPU ์ฝ์ด ๋ด๋ถ | ๋น ๋ฆ | ์ค๊ฐ ํฌ๊ธฐ (256KB~1MB) | L1๋ณด๋ค ๋๋ฆฌ์ง๋ง ๋ ํผ |
L3 ์บ์ | CPU ์ ์ฒด ๊ณต์ | ๋๋ฆผ | ํผ (2~64MB) | ์ฌ๋ฌ ์ฝ์ด๊ฐ ํจ๊ป ์ฌ์ฉ (๊ณต์ ์บ์) |
RAM (๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ) | CPU ์ธ๋ถ | ํจ์ฌ ๋๋ฆผ | ํผ (GB ๋จ์) | ์บ์ ๋ฏธ์ค ์ ์ฌ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ |
- L1์ ์์ฒญ ๋น ๋ฅด์ง๋ง ๋๋ฌด ์์
- L3๋ ๋ง์ด ๋ด์ ์ ์์ง๋ง ๋๋ฆผ
→ ๊ทธ๋์ ๋น ๋ฅด๊ณ ์์ ์บ์๋ถํฐ ์ฐจ๋ก๋๋ก ์กฐํํ๋ฉด์ ์ฑ๋ฅ๊ณผ ์ฉ๋์ ๊ท ํ์ ๋ง์ถค
๐ ๋ฐ์ดํฐ ํ๋ฆ ์์
CPU๊ฐ ๋ณ์ x๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ ๋:
- L1 ์บ์์์ ์ฐพ์ (hit) → ๋ฐ๋ก ์ฌ์ฉ! โ
- L1์ ์์ผ๋ฉด → L2 ์บ์์์ ์ฐพ์
- L2์๋ ์์ผ๋ฉด → L3 ์บ์์์ ์ฐพ์
- ๊ทธ๋๋ ์์ผ๋ฉด → RAM์์ ๊ฐ์ ธ์ด (๋งค์ฐ ๋๋ฆผ)
- ์ฐพ์ ๊ฐ์ ์ ๊ณ์ธต ์บ์์ ๋ณต์ฌํด๋๊ณ ์ฌ์ฉ
โ๏ธ๋ฉํฐํ๋ก์ธ์ ์์คํ ์์ ์๊ธฐ๋ ๋ฌธ์ : ์บ์ ์ผ๊ด์ฑ ๋ฌธ์
![]() |
![]() |
๋ฉํฐ์ฝ์ด(๋ฉํฐCPU) ์์คํ
์์๋ ๊ฐ CPU๊ฐ ์์ ๋ง์ ์บ์๋ฅผ ๊ฐ์ง๊ณ ์์ด์.
๊ทธ๋ฐ๋ฐ ๋ฌธ์ ๋ ์ด ์บ์๋ค์ด ๊ณต์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํด ์ ์ฅํ๋ค๋ ์ ์ด์์.
โ๋ฌธ์ ์ํฉ
- CPU1์ ์บ์์ x = 10
- CPU2์ ์บ์์ x = 10
- CPU1์ด ์ฃผ์ A์ ๊ฐ์ ์บ์์์ 10 → 20๋ก ๋ณ๊ฒฝ
- CPU2๋ ๊ฐ์ ์ฃผ์ A๋ฅผ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ๋๋ฐ, ์ฌ์ ํ ์๋ ๊ฐ 10
- ๐ฅ ๋ CPU๊ฐ ์๋ก ๋ค๋ฅธ ๊ฐ์ ๊ฐ๊ฒ ๋จ (๋ถ์ผ์น ๋ฐ์) → ๐ฃ ์ผ๊ด์ฑ ๊นจ์ง
๐ฑ ์ ์ด๋ ๊ฒ ๋๋๋ฉด?
- ์บ์์๋ง ๋ณ๊ฒฝํ๊ณ , ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ๋ ๊ฑด ๋์ค์(dirty write-back) ํ๊ธฐ ๋๋ฌธ
- ๊ทธ๋์ CPU2๋ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ์ค๋๋ ๊ฐ์ ์ฝ๋ ๊ฒ!
๐ ํด๊ฒฐ์ฑ : ์บ์ ์ผ๊ด์ฑ ํ๋กํ ์ฝ (Cache Coherence Protocol)
"๋ชจ๋ CPU๋ค์ด ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ค๋ฅผ ์ฟ๋ค์ผ๋ฉด์(snoop), ๋ค๋ฅธ CPU๊ฐ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ๋์ง ๊ฐ์ํ๋ค."
๐ฌ ๋ฒ์ค ์ค๋ํ (Bus Snooping)
- ๋ชจ๋ CPU๊ฐ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ค๋ฅผ ๊ฐ์(snoop)ํด์, ๋ค๋ฅธ CPU๊ฐ ์ด๋ค ์ฃผ์๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ๋์ง ์ฒดํฌ
- ๋ค๋ฅธ CPU๊ฐ ๋ด๊ฐ ๊ฐ๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฟจ๋ค๋ฉด?
- → ๋ด ์บ์์ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๋ฌดํจํ(Invalidate)
- → ๋๋ ์ญ์ ->๊ฐฑ์ (Update) ํด์ ์ผ๊ด์ฑ ์ ์ง
๐ฆ MESI ํ๋กํ ์ฝ (๋ํ์ ์ธ ์ผ๊ด์ฑ ํ๋กํ ์ฝ)
๋ฒ์ค ์ค๋ํ์ ๊ตฌํํ ๋ ์์ฃผ ์ฌ์ฉํ๋ ์ํ ๊ธฐ๋ฐ ํ๋กํ ์ฝ
์ํ | ์๋ฏธ |
M (Modified) | ๋ด๊ฐ ๊ฐ์ง๊ณ ์๊ณ , ๋ฉ๋ชจ๋ฆฌ์ ๋ค๋ฆ |
E (Exclusive) | ๋ด๊ฐ ๊ฐ์ง๊ณ ์์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ |
S (Shared) | ์ฌ๋ฌ ์บ์์์ ๊ณต์ |
I (Invalid) | ๋ฌดํจ ์ํ |
→ ์ด๋ฐ ์ํ ์ ์ด๋ฅผ ํตํด ์บ์ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ์ ์งํจ
๐ก TLB๋?
๐ก TLB๋?
TLB๋ Translation Lookaside Buffer์ ์ค์๋ง์ด๊ณ ,
ํ๊ตญ์ด๋ก๋ ๋ณํ ํ๋ฐฉ ๋ฒํผ ๋๋ ๊ทธ๋ฅ "์ฃผ์ ๋ณํ ์บ์"๋ผ๊ณ ๋ถ๋ฌ์.

CPU
โโ TLB (์ฃผ์ ๋ณํ ์บ์)
โโ ํ์ด์ง ํ
์ด๋ธ (RAM ์์ ์์)
โโ ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ
๐ง ์ TLB๊ฐ ํ์ํ ๊น?
๐ ํ๋ ์ด์์ฒด์ ๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ(Virtual Memory)๋ฅผ ์ฌ์ฉํด์.
์ฆ, ํ๋ก๊ทธ๋จ์ ์ค์ ๋ฉ๋ชจ๋ฆฌ(RAM) ์ฃผ์๋ฅผ ์ง์ ์ฐ๋ ๊ฒ ์๋๋ผ,
๊ฐ์์ ์ฃผ์(๊ฐ์ ์ฃผ์)๋ฅผ ์ฐ๊ณ -> ์ค์ ๋ก๋ ๊ทธ๊ฑธ ์ค์ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํํด์ ์ฌ์ฉํด์.
์ด ๊ฐ์ ์ฃผ์ → ๋ฌผ๋ฆฌ ์ฃผ์ ๋ณํ์ **ํ์ด์ง ํ ์ด๋ธ(Page Table)**์ด๋ผ๋ ๊ฑธ ํตํด ์ด๋ฃจ์ด์ ธ์.
โ๋ฌธ์ ๋?
Page Table์ ๋งค๋ฒ ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ(RAM)์์ ์ฐพ์๊ฐ๋ฉฐ ๋ณํํ๋ ค๋ฉด ๋๋ฌด ๋๋ ค์.
โ ๊ทธ๋์ ๋ฑ์ฅํ ํด๊ฒฐ์ฑ : TLB
"TLB๋ ์ต๊ทผ ์ฌ์ฉ๋ ๊ฐ์ ์ฃผ์ → ๋ฌผ๋ฆฌ ์ฃผ์ ๋ณํ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํด๋๋ ์ฅ์น"์์.
- ์์ ์ ํ๋ฒ ๋ณํํ๋ ์ฃผ์๊ฐ ๋ ํ์ํ๋ฉด
- RAM์ ์๋ ํ์ด์ง ํ ์ด๋ธ๊น์ง ๊ฐ์ง ์๊ณ
- TLB์์ ๋น ๋ฅด๊ฒ ์ฃผ์๋ฅผ ์ฐพ์๋ผ ์ ์์ด์!
๐ ๋์ ํ๋ฆ

- CPU๊ฐ ์ด๋ค ๊ฐ์ ์ฃผ์ 0xABC123์ ์ ๊ทผํจ
- TLB์ ํด๋น ์ฃผ์๊ฐ ์๋์ง ๋จผ์ ํ์ธ
- ์์ผ๋ฉด → ๋น ๋ฅด๊ฒ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ณํ โ (TLB hit)
- ์์ผ๋ฉด → ํ์ด์ง ํ ์ด๋ธ๊น์ง ๊ฐ์ ๋ณํํ๊ณ , TLB์ ์ ์ฅ โ (TLB miss)
๋๊ธฐํ(synchronization)
์ฌ๋ฌ CPU๊ฐ ๊ณต์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ ๋, **๋๊ธฐํ(synchronization)**๊ฐ ํ์์ ์ ๋๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด ๋ฐ์ดํฐ ๋ถ์ผ์น๋ ๊ฒฝํฉ ์ํ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ฝ(lock)๊ณผ ๊ฐ์ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์ํธ ๋ฐฐ์ ๋ฅผ ๋ณด์ฅํด์ผ ํฉ๋๋ค.
๋ฝ์ ํ๋ฉด ์ฑ๋ฅ์ด ๋๋ ค์ง๋ค.
์บ์ ์นํ์ฑ(cache affinity)
ํ๋ก์ธ์ค๊ฐ ๋์ผํ CPU์์ ์ง์์ ์ผ๋ก ์คํ๋๋ฉด ํด๋น CPU์ ์บ์์ ๋ฐ์ดํฐ๊ฐ ์ ์ง๋์ด ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค.
์ด๋ฅผ **์บ์ ์นํ์ฑ(cache affinity)**์ด๋ผ๊ณ ํ๋ฉฐ,
์ค์ผ์ค๋ฌ๋ ์ด๋ฅผ ๊ณ ๋ คํ์ฌ ํ๋ก์ธ์ค๋ฅผ ๊ฐ๋ฅํ ํ ๋์ผํ CPU์ ํ ๋นํ๋ ค๊ณ ํฉ๋๋ค.
โ ๊ฐ์ CPU์์ ์คํ๋๋ฉด?
→ ์ด๋ฏธ ์บ์์ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ๊ฐ ์์ผ๋๊น → ๋น ๋ฅด๊ฒ ์คํ๋จ! (cache hit ๋ฐ์)
โ ๋ค๋ฅธ CPU์์ ์คํ๋๋ฉด?
→ ๋ค๋ฅธ CPU ์บ์์๋ ์๋ฌด๊ฒ๋ ์์ → ๋ค์ ๋ฐ์ดํฐ๋ฅผ RAM์์ ๋ถ๋ฌ์์ผ ํจ → ๋๋ ค์ง (cache miss)
๐ฅ ๋ฌธ์ ๋?
๋ฉํฐ์ฝ์ด ์์คํ
์์๋ OS ์ค์ผ์ค๋ฌ๊ฐ ํ๋ก์ธ์ค๋ฅผ ์์ ๋กญ๊ฒ ์ด๋ค CPU์์๋ ์คํ์ํฌ ์ ์์ด์.
๊ทธ๋ฐ๋ฐ ๋งค๋ฒ ๋ค๋ฅธ CPU์์ ์คํ๋๋ฉด ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค๋ ๊ฒ ๋ฌธ์ .
๋จ์ผ ํ ์ค์ผ์ค๋ง
๋ชจ๋ ์์
์ ํ๋์ ์ ์ญ ํ์์ ๊ด๋ฆฌํ๋ฉฐ, ๊ฐ CPU๋ ์ด ํ์์ ์์
์ ๊ฐ์ ธ์ ์คํํฉ๋๋ค.
์ด ๋ฐฉ์์ ๊ณต์ ์ฑ์ ๋ณด์ฅํ์ง๋ง, ํ๊ฐ ๋ณ๋ชฉ์ด ๋ ์ ์๊ณ , ์บ์ ์นํ์ฑ์ด ์ ํ๋ ์ ์์ต๋๋ค.
๋ฉํฐ ํ ์ค์ผ์ค๋ง
๊ฐ CPU๋ง๋ค ์์ฒด์ ์ธ ํ๋ฅผ ๊ฐ์ง๊ณ ์์
์ ๊ด๋ฆฌํฉ๋๋ค.
์ด๋ ์บ์ ์นํ์ฑ์ ๋์ผ ์ ์์ง๋ง, CPU ๊ฐ์ ๋ถํ ๋ถ๊ท ํ(load imbalance) ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
Linux ๋ฉํฐํ๋ก์ธ์ ์ค์ผ์ค๋ฌ
Linux๋ ๋ฉํฐํ๋ก์ธ์ ํ๊ฒฝ์์ **Completely Fair Scheduler (CFS)**๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ CPU์ ๋ฐํ(run queue)๋ฅผ ๊ด๋ฆฌํ๊ณ ,
๋ถํ ๋ถ์ฐ(load balancing) ์๊ณ ๋ฆฌ์ฆ์ ํตํด CPU ๊ฐ์ ์์ ๋ถํ๋ฅผ ์กฐ์ ํฉ๋๋ค.
'ํ์ต ๊ธฐ๋ก (Learning Logs) > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ 16. ์ฃผ์ ๊ณต๊ฐ (0) | 2025.04.07 |
---|---|
๐15. CPU ๊ฐ์ํ์ ๊ดํ ๋ง๋ฌด๋ฆฌ ๋ํ (0) | 2025.04.07 |
๐ 9์ฅ. ๋น๋ก ๋ฐฐ๋ถ (Proportional Share Scheduling) (0) | 2025.04.07 |
๐ 8์ฅ. MLFQ (Multi-Level Feedback Queue) (0) | 2025.04.07 |
๐ 7์ฅ. ์ค์ผ์ค๋ง (0) | 2025.04.07 |