ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

Intro

์•ฑ์ด ๋ฒ„๋ฒ…์ผ ๋•Œ ์šฐ๋ฆฌ๋Š” ๋ณดํ†ต ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ•œ๋‹ค.

 

“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์— ์˜ฌ๋ ค์•ผ ํ•œ๋‹ค”

๋Š” ๋œป์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

 

์ฆ‰ ํ๋ฆ„์€ ์ด๋Ÿฐ ์‹์ด๋‹ค.

  1. CPU๊ฐ€ ๊ฐ€์ƒ ์ฃผ์†Œ์— ์ ‘๊ทผํ•œ๋‹ค
  2. ์ฃผ์†Œ ๋ฒˆ์—ญ์ด ์‹œ๋„๋œ๋‹ค
  3. ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ์ด๋ฏธ resident๋ผ๋ฉด ๋ฐ”๋กœ ์ ‘๊ทผํ•œ๋‹ค
  4. resident๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด page fault๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค
  5. ์šด์˜์ฒด์ œ๊ฐ€ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋ฅผ RAM์œผ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค(page-in)
  6. ๋‹ค์‹œ ์‹คํ–‰์„ ์ด์–ด๊ฐ„๋‹ค

์ฆ‰ page fault๋Š” ๋ฌด์กฐ๊ฑด “์ž˜๋ชป๋œ ์ ‘๊ทผ”๋งŒ์„ ๋œปํ•˜์ง€ ์•Š๋Š”๋‹ค.
๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” “์ด ์ฃผ์†Œ๋Š” ์œ ํšจํ•˜์ง€๋งŒ, ์•„์ง ํ•„์š”ํ•œ ํŽ˜์ด์ง€๊ฐ€ RAM์— ์ค€๋น„๋˜์ง€ ์•Š์•˜๋‹ค”๋Š” ๋œป์ผ ์ˆ˜๋„ ์žˆ๋‹ค.


7. ์™œ ์•ฑ์€ ์ˆœ๊ฐ„์ ์œผ๋กœ ๋ฉˆ์ถ˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋А๊ปด์งˆ๊นŒ

์ด์ œ ์ด ๊ฐœ๋…์ด ์ฒด๊ฐ ์„ฑ๋Šฅ๊ณผ ์–ด๋–ป๊ฒŒ ์ด์–ด์ง€๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

๊ฒ‰์œผ๋กœ ๋ณด๊ธฐ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์•„์ง ๋งŽ์ด ๋‚จ์•„ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ๋„ ์•ฑ์ด ๋ฉˆ์นซํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์™œ๋ƒํ•˜๋ฉด ์ค‘์š”ํ•œ ๊ฑด
์ด ๋ฉ”๋ชจ๋ฆฌ ์–‘์ด ์•„๋‹ˆ๋ผ, ์ง€๊ธˆ ์ ‘๊ทผํ•˜๋ ค๋Š” ํŽ˜์ด์ง€๊ฐ€ ์ด๋ฏธ resident์ธ์ง€ ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด

  1. ์•ฑ์ด ํฐ JSON ํŒŒ์ผ์„ ์ฒ˜์Œ ์ฝ๊ฑฐ๋‚˜
  2. ํฐ ๋กœ๊ทธ ํŒŒ์ผ์˜ ๋’ท๋ถ€๋ถ„์œผ๋กœ ๊ฐ‘์ž๊ธฐ ์ ํ”„ํ•˜๊ฑฐ๋‚˜
  3. ์ฒ˜์Œ ์ง„์ž…ํ•œ ํ™”๋ฉด์—์„œ ๋ฌด๊ฑฐ์šด ๋กœ์ปฌ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๊ฑด๋“œ๋ฆฌ๋ฉด
    ๊ทธ ์ˆœ๊ฐ„ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๊ฐ€ ์•„์ง RAM์— ์—†์„ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š”
๊ทธ ์ˆœ๊ฐ„ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๊ฐ€ ์•„์ง RAM์— ์—†์„ ์ˆ˜ ์žˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด page fault๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ ,
์šด์˜์ฒด์ œ๊ฐ€ ๊ทธ ํŽ˜์ด์ง€๋ฅผ page-in ํ•˜๋Š” ๋น„์šฉ์„ ์น˜๋ฅด๊ฒŒ ๋œ๋‹ค.

 

์ด ์ž‘์—…์ด ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์—์„œ ์ผ์–ด๋‚˜๋ฉด
์‚ฌ์šฉ์ž๋Š” ๊ทธ ์ˆœ๊ฐ„์„

  • ๋ฒ„๋ฒ…์ž„
  • ๋ฉˆ์นซํ•จ
  • ์ฒซ ์ง„์ž… ์ง€์—ฐ
  • ์Šคํฌ๋กค hitch

๊ฐ™์€ ์ฒด๊ฐ์œผ๋กœ ๋А๋ผ๊ฒŒ ๋œ๋‹ค.

 

์ฆ‰ “๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํ•ด ๋ณด์—ฌ๋„ ๋А๋ฆด ์ˆ˜ ์žˆ๋Š” ์ด์œ ”๋Š”
๋ฉ”๋ชจ๋ฆฌ ์ด๋Ÿ‰์ด ์•„๋‹ˆ๋ผ ์ฒซ ์ ‘๊ทผ ๋น„์šฉ์ด ์ง€๊ธˆ ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


8. ์ง€๊ธˆ๊นŒ์ง€๋Š” ‘ํŽ˜์ด์ง€๊ฐ€ RAM์— ์žˆ๋А๋ƒ’์˜ ๋ฌธ์ œ์˜€๋‹ค

์—ฌ๊ธฐ๊นŒ์ง€๋Š”
“๋‚ด๊ฐ€ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๊ฐ€ RAM์— ์žˆ๋А๋ƒ ์—†๋А๋ƒ”์˜ ์ด์•ผ๊ธฐ์˜€๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ํŽ˜์ด์ง€๊ฐ€ ์ด๋ฏธ RAM์— ์žˆ๋‹ค๊ณ  ํ•ด์„œ
๋ชจ๋“  ๋น„์šฉ์ด ์‚ฌ๋ผ์ง€๋Š” ๊ฑด ์•„๋‹ˆ๋‹ค.

 

์™œ๋ƒํ•˜๋ฉด CPU๋Š” ์—ฌ์ „ํžˆ
๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ฒˆ์—ญํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์ฆ‰ ์ด๋ฒˆ์—๋Š”

“ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋А๋ƒ”๊ฐ€ ์•„๋‹ˆ๋ผ “์ฃผ์†Œ ๋ณ€ํ™˜๋„ ๋น„์šฉ์ด ๋“œ๋А๋ƒ”

๋ฅผ ๋ด์•ผ ํ•œ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๋“ฑ์žฅํ•˜๋Š” ๊ฒƒ์ด TLB ๋‹ค.


9. TLB๋Š” ์ฃผ์†Œ ๋ณ€ํ™˜ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๋Š” ์บ์‹œ๋‹ค

CPU๊ฐ€ ์–ด๋–ค ๊ฐ€์ƒ ์ฃผ์†Œ์— ์ ‘๊ทผํ•  ๋•Œ๋งˆ๋‹ค
๋งค๋ฒˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋ฒˆ์—ญํ•˜๋ฉด ๋น„ํšจ์œจ์ ์ด๋‹ค.

 

๊ทธ๋ž˜์„œ ์ตœ๊ทผ์— ์‚ฌ์šฉํ•œ ์ฃผ์†Œ ๋ณ€ํ™˜ ๊ฒฐ๊ณผ๋ฅผ ์ž‘๊ณ  ๋น ๋ฅธ ์บ์‹œ์— ์ €์žฅํ•ด๋‘๋Š”๋ฐ,
์ด๊ฒŒ TLB(Translation Lookaside Buffer) ๋‹ค.

 

์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด TLB๋Š” ์ฃผ์†Œ ๋ณ€ํ™˜ ๊ฒฐ๊ณผ ์ „์šฉ ์บ์‹œ ๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

 

ํ๋ฆ„์€ ๋ณดํ†ต ์ด๋ ‡๊ฒŒ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค.

  1. CPU๊ฐ€ ๊ฐ€์ƒ ์ฃผ์†Œ์— ์ ‘๊ทผํ•œ๋‹ค
  2. ๋จผ์ € TLB์— ์ด๋ฏธ ๋ฒˆ์—ญ๋œ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ๋Š”์ง€ ๋ณธ๋‹ค
  3. ์žˆ์œผ๋ฉด ๋ฐ”๋กœ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค
  4. ์—†์œผ๋ฉด ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋ฒˆ์—ญ ์ •๋ณด๋ฅผ ์ฐพ๋Š”๋‹ค
  5. ์ด ๊ณผ์ •์„ 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๊ฐ€ ์ข‹์€์ง€

๊ฐ™์€ ์š”์†Œ๋“ค์ด ํ•จ๊ป˜ ์ž‘์šฉํ•œ๋‹ค.


๋งˆ๋ฌด๋ฆฌ

๊ฒฐ๊ตญ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ดํ•ดํ•œ๋‹ค๋Š” ๊ฑด ๋ฉ”๋ชจ๋ฆฌ ์ด๋Ÿ‰๋งŒ ๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ,
์ง€๊ธˆ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๊ฐ€ ์‹ค์ œ๋กœ ์ค€๋น„๋˜์–ด ์žˆ๋Š”์ง€์™€ ๊ทธ ์ค€๋น„ ๋น„์šฉ์ด ์–ธ์ œ ๋“œ๋Ÿฌ๋‚˜๋Š”์ง€๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
๊ทธ๋ž˜์„œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‚จ์•„ ์žˆ์–ด ๋ณด์—ฌ๋„ ์•ฑ์€ ์ˆœ๊ฐ„์ ์œผ๋กœ ๋ฉˆ์ถœ ์ˆ˜ ์žˆ๋‹ค.