ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฉ๋ชจ๋ฆฌ๋ ๋จ์ ์๋๋ฐ, ์ ์ฑ์ ๋ฉ์นซํ ๊น
Horang๐ฏ 2026. 3. 26. 15:45Intro
์ฑ์ด ๋ฒ๋ฒ ์ผ ๋ ์ฐ๋ฆฌ๋ ๋ณดํต ์ด๋ ๊ฒ ์๊ฐํ๋ค.
“CPU๋ฅผ ๋๋ฌด ๋ง์ด ์ฐ๊ณ ์๋?”
“๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๊ฐ?”
๊ทธ๋ฐ๋ฐ ์ค์ ๋ก๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋จ์ ์์ด ๋ณด์ฌ๋
์ฑ์ด ์๊ฐ์ ์ผ๋ก ๋ฉ์นซํ๊ฑฐ๋, ์ฒ์ ์ง์
ํ ๋ ๋ฒ๋ฒ
์ด๊ฑฐ๋,
์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ฒ์ ์ฝ๋ ์๊ฐ ํ ๋ฐ์ ๋ฆ๋ ์ผ์ด ์๊ธธ ์ ์๋ค.
์ด์ ๋ ์ฑ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง์ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ค๋ฃจ๋ ๊ฒ์ด ์๋๋ผ,
๊ฐ์ ์ฃผ์๋ฅผ ํตํด ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ณผ์ ์ ์๊ฐ๋ณด๋ค ๋จ์ํ์ง ์๋ค.
- ๋จผ์ ๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ฒ์ญํด์ผ ํ๊ณ
- ํ์ํ ๋ฐ์ดํฐ๊ฐ ์์ง RAM์ ์์ผ๋ฉด ๊ฐ์ ธ์์ผ ํ๊ณ
- ์ด ๊ณผ์ ์์ฒด๋ ๋น์ฉ์ด ๋ ๋ค
์ด๋ฒ ๊ธ์์๋ ์ด ํ๋ฆ์ ์ดํดํ๊ธฐ ์ํด
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ, ํ์ด์ง, page fault, TLB๋ฅผ ํ๋์ ํ๋ฆ์ผ๋ก ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.

1. ์ฑ์ด ํ์ผ์ ์ฝ๋๋ค๊ณ ํด์, ํ์ผ ์ ์ฒด๊ฐ RAM์ ์ฌ๋ผ์ค๋ ๊ฒ์ ์๋๋ค
๋จผ์ ํ๋์ ์ํฉ์ ๋ ์ฌ๋ ค๋ณด์.
์ฑ์ด ํฐ JSON ํ์ผ์ด๋ ๋ก๊ทธ ํ์ผ, ํน์ ์คํ ํ์ผ ์์ ์ฝ๋ ์ผ๋ถ๋ฅผ ์ฝ์ผ๋ ค๊ณ ํ๋ค๊ณ ํ์.
์ง๊ด์ ์ผ๋ก๋ “๊ทธ ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค์ ์ฝ๊ฒ ์ง”๋ผ๊ณ ์๊ฐํ ์ ์๋ค.
ํ์ง๋ง ์ค์ ๋ก๋ ๊ทธ๋ ๊ฒ ๋จ์ํ์ง ์๋ค.
์ด์์ฒด์ ๋ ํ์ผ ์ ์ฒด๋ฅผ ๋ฌด์กฐ๊ฑด RAM์ ํต์งธ๋ก ์ฌ๋ ค๋๊ณ ์์ํ์ง ์๋๋ค.
๋์ ํ์ํ ๋ถ๋ถ๋ง, ํ์ํ ์๊ฐ์ ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆด ์ ์๋๋ก ๊ด๋ฆฌํ๋ค.
์ฆ ์ค์ํ ๊ฑด
“์ด ํ์ผ์ด ์กด์ฌํ๋๋”๊ฐ ์๋๋ผ
“์ง๊ธ ๋ด๊ฐ ์ ๊ทผํ๋ ค๋ ๊ทธ ๋ถ๋ถ์ด ์ค์ RAM์ ์ค๋น๋์ด ์๋๋”
์ด๋ค.
์ด๊ฑธ ์ดํดํ๋ ค๋ฉด ๋จผ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ํ์ด์ง๋ผ๋ ๊ฐ๋ ์ด ํ์ํ๋ค.
2. ์ฑ์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋๋ผ ๊ฐ์ ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ค
ํ๋ก์ธ์ค๋ ๋ณดํต ์ค์ RAM ์ฃผ์๋ฅผ ์ง์ ๋ค๋ฃจ์ง ์๋๋ค.
๋์ ๊ฐ ํ๋ก์ธ์ค๋ ์๊ธฐ๋ง์ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ์ ๊ฐ์ง๋ค.
์ฆ ์ฑ ์
์ฅ์์๋
“๋ด๊ฐ ์ง๊ธ ์ ๊ทผํ๋ ์ฃผ์”๊ฐ ์์ ๋ฟ์ด๊ณ ,
๊ทธ ์ฃผ์๊ฐ ์ค์ RAM์ ์ด๋๋ฅผ ๊ฐ๋ฆฌํค๋์ง๋
์ด์์ฒด์ ์ ํ๋์จ์ด๊ฐ ๊ด๋ฆฌํด์ค๋ค.
์ด ๊ตฌ์กฐ ๋๋ถ์ ๋ค์์ด ๊ฐ๋ฅํด์ง๋ค.
- ํ๋ก์ธ์ค๋ผ๋ฆฌ ์๋ก์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ง์ ์นจ๋ฒํ์ง ์์ ์ ์๊ณ
- ์ด์์ฒด์ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ ์ฐํ๊ฒ ๊ด๋ฆฌํ ์ ์๊ณ
- ์ค์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ “๋์ค์ ์ค๋นํ๋ ๋ฐฉ์”์ผ๋ก ๋ค๋ฃฐ ์ ์๋ค
์ฆ ์ฑ์ด ์ด๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฝ๋๋ค๋ ๊ฑด ์ฌ์ค ๊ฐ์ ์ฃผ์์ ์ ๊ทผํ๋ค ๋ ๋ป์ ๋ ๊ฐ๊น๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๊ฐ์ ์ฃผ์๋ ๋์ค์ ์ค์ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ก ๋ฒ์ญ๋๋ค.
3. ํ์ด์ง๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๊ธฐ๋ณธ ๋จ์๋ค
๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ดํดํ ๋ ๊ผญ ๊ฐ์ด ๋์ค๋ ๊ฐ๋ ์ด ํ์ด์ง(page) ๋ค.
ํ์ด์ง๋ ๋จ์ํ “๋ฐ์ดํฐ ํ ์กฐ๊ฐ”์ด๋ผ๊ธฐ๋ณด๋ค,
์ด์์ฒด์ ๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ ๋ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ๋จ์๋ผ๊ณ ๋ณด๋ ๊ฒ ๋ ์ ํํ๋ค.
์ฆ ๋ฉ๋ชจ๋ฆฌ๋ ์๋ฌด ์ฃผ์๋ ํ ๋ฐ์ดํธ์ฉ ๋ฐ๋ก๋ฐ๋ก ๊ด๋ฆฌ๋๋ ๊ฒ์ด ์๋๋ผ,
์ผ์ ํ ํฌ๊ธฐ์ ๋ฉ์ด๋ฆฌ ๋จ์๋ก ๊ด๋ฆฌ๋๋ค.
๊ทธ ๋ฉ์ด๋ฆฌ๊ฐ ํ์ด์ง๋ค.
์ฌ๊ธฐ์ ๊ตฌ๋ถํด์ผ ํ ๊ฒ์ด ์๋ค.
- ๊ฐ์ ํ์ด์ง: ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ ์์ ํ์ด์ง
- ๋ฌผ๋ฆฌ ํ๋ ์(page frame): ์ค์ RAM ์์ ํ์ด์ง
์ฆ ํ๋ก์ธ์ค๋ ๊ฐ์ ํ์ด์ง๋ฅผ ์ฌ์ฉํ๊ณ , ์ด์์ฒด์ ๋ ๊ทธ ๊ฐ์ ํ์ด์ง๊ฐ ํ์ฌ ์ด๋ค ๋ฌผ๋ฆฌ ํ๋ ์์ ๋์๋๋์ง๋ฅผ ๊ด๋ฆฌํ๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์
๊ฐ์ ํ์ด์ง๊ฐ ์กด์ฌํ๋ค๊ณ ํด์
๊ทธ ํ์ด์ง๊ฐ ์ง๊ธ RAM์ ์๋ค๋ ๋ป์ ์๋๋ค.
์ด ์ฐจ์ด๋ฅผ ์ดํดํด์ผ
๋ค์์ ๋์ค๋ map, resident, page fault๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์ด์ด์ง๋ค.
4. map์ ์ฐ๊ฒฐ์ด๊ณ , resident๋ ์ค์ ๋ก RAM์ ์๋ ์ํ๋ค
map๊ณผ resident๋ฅผ ๋น์ทํ๊ฒ ๋๋ผ๊ธฐ ์ฝ๋ค.
ํ์ง๋ง ๋์ ์ ํ ๋ค๋ฅธ ๊ฐ๋
์ด๋ค.
- map
map์ ์ด๋ค ํ์ผ ๊ตฌ๊ฐ์ด๋ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ๊ฐ์
ํ๋ก์ธ์ค์ ๊ฐ์ ์ฃผ์ ๋ฒ์์ ์ฐ๊ฒฐํด ๋๋ ๊ฒ์ด๋ค.
์ฝ๊ฒ ๋งํ๋ฉด
“์ด ๊ฐ์ ์ฃผ์๋ฅผ ์ฝ์ผ๋ฉด, ์ด ํ์ผ์ ์ด ๋ถ๋ถ์ ๋ณด๊ฒ ํ์”
๋ผ๋ ๊ด๊ณ๋ฅผ ๋ง๋ค์ด ๋๋ ๊ฒ์ด๋ค.
์ฆ map์ ์ฃผ์ ๊ณต๊ฐ์์ ์ฐ๊ฒฐ์ด๋ค.
- resident
resident๋ ๊ทธ ํ์ด์ง๊ฐ ์ง๊ธ ์ค์ RAM์ ์ฌ๋ผ์ ์๋ ์ํ๋ฅผ ๋ปํ๋ค.
์ฆ resident๋ ํ์ฌ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๋ ์ํ๋ค.
๋์ ์ฐจ์ด๋ฅผ ์ ๋ฆฌํ๋ฉด ์ด๋ ๊ฒ ๋๋ค.
- map = ์ฐ๊ฒฐ๋์ด ์์
- resident = ์ค์ RAM์ ์์
์ด ๋์ ๊ฐ์ ๋ง์ด ์๋๋ค.
์๋ฅผ ๋ค์ด 100MB์ง๋ฆฌ ๋ก๊ทธ ํ์ผ์ map ํ๋ค๊ณ ํด๋ณด์.
๊ทธ๋ ๋ค๊ณ 100MB ์ ์ฒด๊ฐ RAM์ ์ฌ๋ผ์ ์๋ค๋ ๋ป์ ์๋๋ค.
์๋ถ๋ถ 1MB๋ง ์ฝ์๋ค๋ฉด, ์๋ถ๋ถ ๊ทผ์ฒ์ ํ์ด์ง๋ค๋ง resident์ผ ์ ์๋ค.
์ฆ ํ์ผ์ ์ด๋ฏธ map ๋์ด ์์ด๋, ํ์ํ ํ์ด์ง๋ ์์ง resident๊ฐ ์๋ ์ ์๋ค.
์ด ์ฐจ์ด๋ฅผ ์ดํดํ๋ฉด
์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ “์ฒ์ ์ฝ๋ ์๊ฐ” ๋๋ ค์ง ์ ์๋์ง๊ฐ ์ค๋ช
๋๋ค.
5. ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ๋งคํํ๋ค๋ ๊ฑด, ํ์ผ ์ ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ์ฌ๋ฆฐ๋ค๋ ๋ป์ด ์๋๋ค
“ํ์ผ์ ๋ฉ๋ชจ๋ฆฌ์ ๋งคํํ๋ค”๋ ํํ์ ์ฒ์ ๋ค์ผ๋ฉด
ํ์ผ ์ ์ฒด๋ฅผ RAM์ ๋ค ์ฌ๋ ค๋๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง ์ ์๋ค.
ํ์ง๋ง ์ค์ ๋ก๋
ํ์ผ ๋ด์ฉ์ ์ผ๋ถ๋ฅผ ๊ฐ์ ์ฃผ์์ ์ฐ๊ฒฐํด ๋๋ ๊ฒ์ ๊ฐ๊น๋ค.
์ฆ ์ด์์ฒด์ ๋
- ํ์ผ์ ๋์คํฌ ๊ฐ์ ์๊ตฌ ์ ์ฅ์์ ๋๊ณ
- ๊ทธ ํ์ผ์ ์ผ๋ถ ๊ตฌ๊ฐ์ ๊ฐ์ ์ฃผ์ ๊ณต๊ฐ๊ณผ ์ฐ๊ฒฐํ๊ณ
- ์ฑ์ด ๊ทธ ์ฃผ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ฒ๋ผ ์ฝ์ ์ ์๊ฒ ๋ง๋ ๋ค
๋ค๋ง ์ฌ๊ธฐ์ ์ค์ํ ๊ฑด,
์ด ์ฐ๊ฒฐ ์์ฒด๊ฐ ๊ณง๋ฐ๋ก “RAM ์ ์ฌ ์๋ฃ”๋ฅผ ์๋ฏธํ์ง๋ ์๋๋ค๋ ์ ์ด๋ค.
์ฆ
- map = ์ด ์ฃผ์๋ก ์ด ํ์ผ ๊ตฌ๊ฐ์ ๋ณด๊ฒ ํด๋
- load = ์ค์ ํ์ํ ํ์ด์ง๋ฅผ RAM์ ์ฌ๋ฆผ
์ด ๋์ ๊ตฌ๋ถํด์ผ
“ํ์ผ์ ์ด๋ฏธ ์ฐ๊ฒฐ๋ผ ์๋๋ฐ ์ ๋์ค์ ๋ฉ์ถ์ง?”๋ผ๋ ์๋ฌธ์ด ํ๋ฆฐ๋ค.
5-1. mappedIfSafe๋ ๋ฌด์์ ์๋ฏธํ ๊น
Foundation์์ ๋ณด์ด๋ mappedIfSafe ๋
์ด ํ์ผ์ ๊ฐ๋ฅํ๊ณ ์์ ํ๋ฉด virtual memory์ ๋งคํํ๋ผ๋ ํํธ๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฑด ๋ ๊ฐ์ง๋ค.
์ฒซ์งธ, ์ด๊ฑด “๋ฌด์กฐ๊ฑด ๋งคํ”์ ๋ปํ์ง ์๋๋ค.
๋์งธ, “๋งคํ์ด ์์ ํ์ง ์๋ค = ๋ฌด์กฐ๊ฑด ํ์ผ ์ ์ฒด๋ฅผ ํ ๋ฒ์ RAM์ ์ฌ๋ฆฐ๋ค”๋ ๋ป๋ ์๋๋ค.
ํต์ฌ์
๋งคํ์ด ๊ฐ๋ฅํ๊ณ ์์ ํ๋ฉด ๋งคํ ๊ฒฝ๋ก๋ฅผ ์ ํธํ๋,
์์ ํ์ง ์์ผ๋ฉด ๊ทธ ๋ฐฉ์์ ์ฐ์ง ์์ ์ ์๋ค
๋ ์ ์ด๋ค.
์ด ๊ฐ๋
์ ์ธ์ฅ ์ ์ฅ์๋ ๋คํธ์ํฌ ๋๋ผ์ด๋ธ์ฒ๋ผ
ํ์ผ์ด ๊ฐ์๊ธฐ ์ฌ๋ผ์ง ์ ์๋ ํ๊ฒฝ์ ๋ ์ฌ๋ฆฌ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค.
์ฆ mappedIfSafe ๋ ์ง์ฐ ์ ์ฌ์ ์ฅ์ ์ ํ์ฉํ ์ ์์ผ๋ฉด ํ์ฉํ๋,
ํ์ผ ์์คํ
ํน์ฑ์ ๋งคํ์ด ์ํํ ์ ์์ผ๋ฉด ์กฐ์ฌํ๋ผ๋ ์๋ฏธ์ ๊ฐ๊น๋ค.
6. page fault๋ ‘์๋ชป๋ ์ ๊ทผ’๋ง ๋ปํ๋ ๊ฒ์ด ์๋๋ค
์ด์ ์ค์ ์ ๊ทผ ์ ์ด๋ค ์ผ์ด ์๊ธฐ๋์ง ๋ณด์.
CPU๊ฐ ์ด๋ค ๊ฐ์ ์ฃผ์๋ฅผ ์ฝ์ผ๋ ค๊ณ ํ๋ฉด
ํ๋์จ์ด๋ ๊ทธ ์ฃผ์๋ฅผ ์ค์ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ฒ์ญํ๋ ค๊ณ ํ๋ค.
์ด๋ ๋ง์ฝ ํด๋น ํ์ด์ง๊ฐ ์ด๋ฏธ RAM์ ์๋ค๋ฉด
์ ์์ ์ผ๋ก ์ ๊ทผ์ด ์งํ๋๋ค.
ํ์ง๋ง ๊ทธ ํ์ด์ง๊ฐ ์์ง RAM์ ์๋ค๋ฉด
page fault ๊ฐ ๋ฐ์ํ๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฑด
page fault๋ฅผ ๋ฌด์กฐ๊ฑด “์๋ฌ”๋ก๋ง ๋ณด๋ฉด ์ ๋๋ค๋ ์ ์ด๋ค.
page fault๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ
“์ด ์ฃผ์๋ ์ ํจํ์ง๋ง,
์ง๊ธ ๋น์ฅ ์ ๊ทผํ๋ ค๋ฉด ๋จผ์ ํ์ด์ง๋ฅผ RAM์ ์ฌ๋ ค์ผ ํ๋ค”
๋ ๋ป์ผ ์๋ ์๋ค.
์ฆ ํ๋ฆ์ ์ด๋ฐ ์์ด๋ค.
- CPU๊ฐ ๊ฐ์ ์ฃผ์์ ์ ๊ทผํ๋ค
- ์ฃผ์ ๋ฒ์ญ์ด ์๋๋๋ค
- ํด๋น ํ์ด์ง๊ฐ ์ด๋ฏธ resident๋ผ๋ฉด ๋ฐ๋ก ์ ๊ทผํ๋ค
- resident๊ฐ ์๋๋ผ๋ฉด page fault๊ฐ ๋ฐ์ํ๋ค
- ์ด์์ฒด์ ๊ฐ ํ์ํ ํ์ด์ง๋ฅผ RAM์ผ๋ก ๊ฐ์ ธ์จ๋ค(page-in)
- ๋ค์ ์คํ์ ์ด์ด๊ฐ๋ค
์ฆ page fault๋ ๋ฌด์กฐ๊ฑด “์๋ชป๋ ์ ๊ทผ”๋ง์ ๋ปํ์ง ์๋๋ค.
๊ฒฝ์ฐ์ ๋ฐ๋ผ์๋ “์ด ์ฃผ์๋ ์ ํจํ์ง๋ง, ์์ง ํ์ํ ํ์ด์ง๊ฐ RAM์ ์ค๋น๋์ง ์์๋ค”๋ ๋ป์ผ ์๋ ์๋ค.
7. ์ ์ฑ์ ์๊ฐ์ ์ผ๋ก ๋ฉ์ถ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๊น
์ด์ ์ด ๊ฐ๋ ์ด ์ฒด๊ฐ ์ฑ๋ฅ๊ณผ ์ด๋ป๊ฒ ์ด์ด์ง๋์ง ๋ณผ ์ ์๋ค.
๊ฒ์ผ๋ก ๋ณด๊ธฐ์๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ง ๋ง์ด ๋จ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ผ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ๋ ์ฑ์ด ๋ฉ์นซํ ์ ์๋ค.
์๋ํ๋ฉด ์ค์ํ ๊ฑด
์ด ๋ฉ๋ชจ๋ฆฌ ์์ด ์๋๋ผ, ์ง๊ธ ์ ๊ทผํ๋ ค๋ ํ์ด์ง๊ฐ ์ด๋ฏธ resident์ธ์ง ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฅผ ๋ค์ด
- ์ฑ์ด ํฐ JSON ํ์ผ์ ์ฒ์ ์ฝ๊ฑฐ๋
- ํฐ ๋ก๊ทธ ํ์ผ์ ๋ท๋ถ๋ถ์ผ๋ก ๊ฐ์๊ธฐ ์ ํํ๊ฑฐ๋
- ์ฒ์ ์ง์
ํ ํ๋ฉด์์ ๋ฌด๊ฑฐ์ด ๋ก์ปฌ ๋ฆฌ์์ค๋ฅผ ํ๊บผ๋ฒ์ ๊ฑด๋๋ฆฌ๋ฉด
๊ทธ ์๊ฐ ํ์ํ ํ์ด์ง๊ฐ ์์ง RAM์ ์์ ์ ์๋ค.
์ด๋ฐ ๊ฒฝ์ฐ์๋
๊ทธ ์๊ฐ ํ์ํ ํ์ด์ง๊ฐ ์์ง RAM์ ์์ ์ ์๋ค.
๊ทธ๋ฌ๋ฉด page fault๊ฐ ๋ฐ์ํ๊ณ ,
์ด์์ฒด์ ๊ฐ ๊ทธ ํ์ด์ง๋ฅผ page-in ํ๋ ๋น์ฉ์ ์น๋ฅด๊ฒ ๋๋ค.
์ด ์์
์ด ๋ฉ์ธ ์ค๋ ๋์์ ์ผ์ด๋๋ฉด
์ฌ์ฉ์๋ ๊ทธ ์๊ฐ์
- ๋ฒ๋ฒ ์
- ๋ฉ์นซํจ
- ์ฒซ ์ง์ ์ง์ฐ
- ์คํฌ๋กค hitch
๊ฐ์ ์ฒด๊ฐ์ผ๋ก ๋๋ผ๊ฒ ๋๋ค.
์ฆ “๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํด ๋ณด์ฌ๋ ๋๋ฆด ์ ์๋ ์ด์ ”๋
๋ฉ๋ชจ๋ฆฌ ์ด๋์ด ์๋๋ผ ์ฒซ ์ ๊ทผ ๋น์ฉ์ด ์ง๊ธ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
8. ์ง๊ธ๊น์ง๋ ‘ํ์ด์ง๊ฐ RAM์ ์๋๋’์ ๋ฌธ์ ์๋ค
์ฌ๊ธฐ๊น์ง๋
“๋ด๊ฐ ํ์ํ ํ์ด์ง๊ฐ RAM์ ์๋๋ ์๋๋”์ ์ด์ผ๊ธฐ์๋ค.
๊ทธ๋ฐ๋ฐ ํ์ด์ง๊ฐ ์ด๋ฏธ RAM์ ์๋ค๊ณ ํด์
๋ชจ๋ ๋น์ฉ์ด ์ฌ๋ผ์ง๋ ๊ฑด ์๋๋ค.
์๋ํ๋ฉด CPU๋ ์ฌ์ ํ
๊ฐ์ ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ฒ์ญํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ ์ด๋ฒ์๋
“ํ์ด์ง๊ฐ ์๋๋”๊ฐ ์๋๋ผ “์ฃผ์ ๋ณํ๋ ๋น์ฉ์ด ๋๋๋”
๋ฅผ ๋ด์ผ ํ๋ค.
์ฌ๊ธฐ์ ๋ฑ์ฅํ๋ ๊ฒ์ด TLB ๋ค.
9. TLB๋ ์ฃผ์ ๋ณํ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ ์บ์๋ค
CPU๊ฐ ์ด๋ค ๊ฐ์ ์ฃผ์์ ์ ๊ทผํ ๋๋ง๋ค
๋งค๋ฒ ์ฒ์๋ถํฐ ํ์ด์ง ํ
์ด๋ธ์ ๋ฐ๋ผ๊ฐ๋ฉฐ ๋ฒ์ญํ๋ฉด ๋นํจ์จ์ ์ด๋ค.
๊ทธ๋์ ์ต๊ทผ์ ์ฌ์ฉํ ์ฃผ์ ๋ณํ ๊ฒฐ๊ณผ๋ฅผ ์๊ณ ๋น ๋ฅธ ์บ์์ ์ ์ฅํด๋๋๋ฐ,
์ด๊ฒ TLB(Translation Lookaside Buffer) ๋ค.
์ฝ๊ฒ ๋งํ๋ฉด TLB๋ ์ฃผ์ ๋ณํ ๊ฒฐ๊ณผ ์ ์ฉ ์บ์ ๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
ํ๋ฆ์ ๋ณดํต ์ด๋ ๊ฒ ์ดํดํ๋ฉด ๋๋ค.
- CPU๊ฐ ๊ฐ์ ์ฃผ์์ ์ ๊ทผํ๋ค
- ๋จผ์ TLB์ ์ด๋ฏธ ๋ฒ์ญ๋ ๊ฒฐ๊ณผ๊ฐ ์๋์ง ๋ณธ๋ค
- ์์ผ๋ฉด ๋ฐ๋ก ๋ฌผ๋ฆฌ ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ค
- ์์ผ๋ฉด ํ์ด์ง ํ ์ด๋ธ์ ๋ฐ๋ผ๊ฐ๋ฉฐ ๋ฒ์ญ ์ ๋ณด๋ฅผ ์ฐพ๋๋ค
- ์ด ๊ณผ์ ์ page table walk๋ผ๊ณ ๋ถ๋ฅธ๋ค
์ฆ TLB๋ RAM์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์บ์ํ๋ ๊ฒ ์๋๋ผ,
๊ฐ์ ์ฃผ์ → ๋ฌผ๋ฆฌ ์ฃผ์ ๋ณํ ๊ฒฐ๊ณผ๋ฅผ ์บ์ํ๋ค.
์ด ๋๋ฌธ์ ์ฃผ์ ๋ณํ๋ ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์๋ค.
10. ์ ์ฝ๋์ ๋ฐ์ดํฐ๊ฐ ์ปค์ง๋ฉด cache miss์ TLB miss๊ฐ ๋ ์ ์์๊น
์ด ๋ถ๋ถ๋ ์์ฃผ ํท๊ฐ๋ฆฐ๋ค.
์ฝ๋๋ ๋ฐ์ดํฐ๊ฐ ์ปค์ง๋ค๊ณ ํด์ ์บ์๋ TLB ์์ฒด๊ฐ ์์์ง๋ ๊ฒ์ ์๋๋ค.
๋ฌธ์ ๋ ๋ด๊ฐ ๋์์ ๋ค๋ฃจ๋ ๋ฒ์๊ฐ ์ปค์ ธ์ ์์ ์บ์์ TLB ์์ ๋ค ๋ด๊ธฐ์ง ๋ชปํ๊ฒ ๋๋ค๋ ์ ์ด๋ค.
์๋ฅผ ๋ค์ด
- ์ฝ๋ ๊ฒฝ๋ก๊ฐ ๋๋ฌด ๋๊ณ
- ๋ฐ์ดํฐ ์ ๊ทผ ์์น๊ฐ ํฉ์ด์ ธ ์๊ณ
- ํ ๋ฒ์ ๋ง์ ํ์ด์ง๋ฅผ ๊ฑด๋๋ฆฌ๋ฉด
๊ธฐ์กด์ ์บ์ํด ๋ ์ ๋ณด๊ฐ ๋ ๋นจ๋ฆฌ ๋ฐ๋ ค๋๋ค.
๊ทธ ๊ฒฐ๊ณผ
- ๋ฐ์ดํฐ ์บ์๋ cache miss๊ฐ ๋๊ณ
- ์ฃผ์ ๋ณํ ์บ์๋ TLB miss๊ฐ ๋๊ณ
- ์ ์ฒด ์ ๊ทผ ๋น์ฉ์ด ์ปค์ง ์ ์๋ค
์ฆ ๋ถ๋ฆฌํ ์ด์ ๋ “์ฉ๋์ด ์ปค์”๋ผ๊ธฐ๋ณด๋ค
์์ ์บ์ ๊ตฌ์กฐ๊ฐ ๊ฐ๋นํด์ผ ํ ์์
๋ฒ์๊ฐ ๋์ด์ง๊ธฐ ๋๋ฌธ์ด๋ค.
11. Apple์ ์ด ํ๋ฆ์ ์ด๋ ๊ฒ ์ค๋ช ํ๋ค
Apple์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ณผ ๋ ํ ๋น๋ ์(allocation) ๊ณผ ์ค์ ๋ก ์ฌ์ฉ ์ค์ธ ์(actual memory use) ์ ๊ตฌ๋ถํ๋ค.
allocation์ ์ฑ์ด virtual memory address space ์ ํ๋ณดํ ๋ฉ๋ชจ๋ฆฌ์ด๊ณ ,
actual memory use๋ ๊ทธ์ค ์ค์ ๋ก physical memory ์ฌ์ฉ์ผ๋ก ์ด์ด์ง ๋ถ๋ถ์ด๋ค.
์ฆ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ค๊ณ ํด์, ๊ทธ ํฌ๊ธฐ๋งํผ์ RAM์ ๊ณง๋ฐ๋ก ๋ค ์ฐ๋ ๊ฒ์ ์๋๋ค.
๋ Apple์ ์ค์ ๋ฉ๋ชจ๋ฆฌ ๋์์ด page ๋จ์๋ก ์ผ์ด๋๋ค๊ณ ์ค๋ช
ํ๋ค.
๊ทธ๋์ allocation์ด ๋จผ์ ์กํ๊ณ , ์ดํ ์ค์ ๋ก ์ฌ์ฉ๋ page๋ค์ด physical memory๋ฅผ ์ฐจ์งํ๋ฉด์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋ง๋ค์ด์ง๋ค.
์ด ๊ด์ ์ผ๋ก ๋ณด๋ฉด ์์์ ์ ๋ฆฌํ map ๊ณผ resident ์ ์ฐจ์ด๋ ์์ฐ์ค๋ฝ๊ฒ ์ด์ด์ง๋ค.
Apple์ด ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ๋ณผ ๋ ์ค์ํ๊ฒ ๋ณด๋ ๊ฐ์ด memory footprint ๋ค.
์ฝ๊ฒ ๋งํ๋ฉด, ์ฑ์ด ์์คํ
์ ์ค์ ๋ก ๋ถ๋ด์ํค๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ ๊ฐ๊น์ด ๊ฐ์ด๋ค.
WWDC22์์๋ footprint๋ฅผ ์ฑ์ actual memory use ๋ฅผ ์ดํดํ๋ ๋ํ ์งํ๋ก ์ค๋ช
ํ๊ณ ,
์ฌ๊ธฐ์ dirty, compressed, swapped pages ๊ฐ ํฌํจ๋๋ค๊ณ ๋งํ๋ค.
์ฆ ๋จ์ํ “์ผ๋ง๋ ๋ง์ด ํ ๋นํ๋๊ฐ”๋ณด๋ค, ์์คํ ์ด ์ค์ ๋ก ์ฑ์ ์ผ๋ง๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ถ๋ด์ํค๊ณ ์๋์ง๊ฐ ๋ ์ค์ํ๋ค๋ ๋ป์ด๋ค.
๋๊ตฌ ๊ด์ ์์๋ ๊ฐ์ ํ๋ฆ์ผ๋ก ์ค๋ช
ํ๋ค.
Apple์ Xcode์ Memory Report ๋ก ํ์ฌ์ ์ต๊ทผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ํ์ธํ๊ณ ,
๋ ์์ธํ ๋ถ์์ Instruments์ memory graph ๊ฐ์ ๋๊ตฌ๋ก ์ด์ด์ ๋ณด๋๋ก ์๋ดํ๋ค.
๋ iOS๋ ์ต๊ทผ ์ ๊ทผํ์ง ์์ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง๋ฅผ compress ํ ์ ์๋ค๊ณ ์ค๋ช ํ๋ค.
์ ๋ฆฌํ๋ฉด Apple์ ์ด ํ๋ฆ์
allocation → used pages → actual memory use → footprint ๋ผ๋ ๊ด์ ์ผ๋ก ์ค๋ช
ํ๊ณ ์๋ค.
12. ์ด๋ฒ ๊ธ์ ํต์ฌ ์ ๋ฆฌ
์ด๋ฒ ๊ธ์์ ๊ฐ์ฅ ์ค์ํ๊ฒ ๊ฐ์ ธ๊ฐ์ผ ํ ๊ฒ์
๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋จ์ํ “RAM ์ฉ๋”๋ง์ผ๋ก ๋ณด๋ฉด ์ ๋๋ค๋ ์ ์ด๋ค.
์ฑ์
- ๊ฐ์ ์ฃผ์๋ฅผ ์ฌ์ฉํ๊ณ
- ๊ทธ ์ฃผ์๋ ์ค์ ๋ฌผ๋ฆฌ ์ฃผ์๋ก ๋ฒ์ญ๋์ด์ผ ํ๊ณ
- ํ์ํ ํ์ด์ง๊ฐ ์์ง RAM์ ์์ผ๋ฉด page fault๊ฐ ๋ฐ์ํ๊ณ
- ๊ทธ ํ์ด์ง๋ฅผ page-in ํ๋ ๋น์ฉ์ด ๋ค๊ณ
- ์ฃผ์ ๋ณํ ๊ฒฐ๊ณผ ์์ฒด๋ TLB๊ฐ ์บ์ํ๋ค
๋ฐ๋ผ์ ์ฑ๋ฅ์ ๋จ์ํ “๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ง๋ ์ ๋”๋ง์ผ๋ก ๊ฒฐ์ ๋์ง ์๋๋ค.
์ค์ ๋ก๋
- ์ง๊ธ ํ์ํ ํ์ด์ง๊ฐ resident์ธ์ง
- ์ฒ์ ์ ๊ทผํ๋ ๋น์ฉ์ด ๋ฐ์ํ๋์ง
- ์ฃผ์ ๋ณํ ์บ์๊ฐ ์ ๋ง๋์ง
- ์ ๊ทผ ํจํด์ locality๊ฐ ์ข์์ง
๊ฐ์ ์์๋ค์ด ํจ๊ป ์์ฉํ๋ค.
๋ง๋ฌด๋ฆฌ
๊ฒฐ๊ตญ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ดํดํ๋ค๋ ๊ฑด ๋ฉ๋ชจ๋ฆฌ ์ด๋๋ง ๋ณด๋ ๊ฒ์ด ์๋๋ผ,
์ง๊ธ ํ์ํ ํ์ด์ง๊ฐ ์ค์ ๋ก ์ค๋น๋์ด ์๋์ง์ ๊ทธ ์ค๋น ๋น์ฉ์ด ์ธ์ ๋๋ฌ๋๋์ง๋ฅผ ์ดํดํ๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋จ์ ์์ด ๋ณด์ฌ๋ ์ฑ์ ์๊ฐ์ ์ผ๋ก ๋ฉ์ถ ์ ์๋ค.

'๐ค Computer Science > Computer Architecture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- ์คํฐ๋
- ํ
- ํ๊ณ
- xcode26.3
- cs
- ๊ฐ๋ฐ์
- Xcode
- ์์ง๋์ด
- ์คํ
- 2026๋ ๊ณํ
- Swift
- tipkit
- TLB
- BOJ
- cpu
- spatial locality
- ๋ชจ๋ฐ์ผ์์ง๋์ด
- Jetsam
- 2025๋ ํ๊ณ
- ์๋ฃ ๊ตฌ์กฐ
- page fault
- Memory
- IOS
- Meet agentic coding in Xcode
- branchless
- misprediction
- C++
- 24๋ ํ๊ณ
- speculative
- temporal locality
- Total
- Today
- Yesterday