๐Ÿง  ๋‚ด ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ๋Š” โ€˜์ง„์งœโ€™๊ฐ€ ์•„๋‹ ์ˆ˜๋„ ์žˆ๋‹ค? โ€“ MMU์™€ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ด์•ผ๊ธฐ(ํ”„๋กœ๊ทธ๋žจ์€ ์–ด๋–ป๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‹คํ–‰๋ ๊นŒ?)

GoldenDuskยท2025๋…„ 4์›” 6์ผ
0

MMU(Memory Management Unit)๋Š” ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ›จ์”ฌ ๋” ์œ ์—ฐํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋งˆ๋ฒ• ๊ฐ™์€ ์žฅ์น˜์ž…๋‹ˆ๋‹ค. ์ฃผ๊ธฐ์–ต์žฅ์น˜๊ด€๋ฆฌ์˜ ํ•ต์‹ฌ์€ '๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์ž˜ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์„๊นŒ'์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ข€ ๋” ์ž์„ธํžˆ

1) ๐Ÿšจ ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น์˜ ์‹œ๋Œ€, ์•ˆ์ „์€ ํ•„์ˆ˜๋‹ค!

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

ํ•˜์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•  ๊ฒฝ์šฐ
  • ๋ฒ„๊ทธ๊ฐ€ ๋‚œ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์นจ๋ฒ”ํ•  ์ˆ˜ ์žˆ์Œ
  • ์‹ฌํ•˜๋ฉด ์šด์˜์ฒด์ œ(OS) ์ž์ฒด์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜๋„ ์žˆ์Œ

๐Ÿงจ ๋ณด์•ˆ ์œ„ํ˜‘๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์‹œ์Šคํ…œ ์ „์ฒด๊ฐ€ ๋ป—์„ ์ˆ˜ ์žˆ์–ด์š”!

๊ทธ๋ž˜์„œ ํ•„์š”ํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ MMU (Memory Management Unit)์ž…๋‹ˆ๋‹ค.

2) ๐Ÿงฐ MMU๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

MMU๋Š” ์ปดํ“จํ„ฐ์— ๋“ค์–ด ์žˆ๋Š” ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๋กœ,

โœ… ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” "๊ฐ€์ƒ ์ฃผ์†Œ"๋ฅผ ์‹ค์ œ "๋ฌผ๋ฆฌ ์ฃผ์†Œ"๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์žฅ์น˜์ž…๋‹ˆ๋‹ค.


์ถœ์ฒ˜ : https://velog.io/@tycode4/%EA%B0%80%EC%83%81-%EB%A9%94%EB%AA%A8%EB%A6%AC

์šฐ๋ฆฌ๊ฐ€ ๋ณดํ†ต ์•Œ๊ณ  ์žˆ๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š”:

"MMU๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์‹œ์Šคํ…œ"

...์ด ์ •๋„๋กœ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, ์‚ฌ์‹ค ๊ทธ ๊ธฐ๋Šฅ์€ ์‹œ์ž‘์ผ ๋ฟ์ด๊ณ , ์ง„์งœ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์€ ํ›จ์”ฌ ๋” ๋Œ€๋‹ดํ•œ ์ฐฉ๊ฐ(!)์„ ๋งŒ๋“ค์–ด๋‚ด์š”.

๐Ÿง  ํ”„๋กœ๊ทธ๋žจ์€ "๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ"์„ ๋ชจ๋ฅธ๋‹ค?
์šด์˜์ฒด์ œ๋Š” ์ด๋ ‡๊ฒŒ ์†์ž…๋‹ˆ๋‹ค:

โ€œ๊ทธ๋ž˜, ๋„ค๊ฐ€ ํ•„์š”ํ•œ ๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์จ๋„ ๋ผ~ ๋‚ด๊ฐ€ ๋’ค์—์„œ ์•Œ์•„์„œ ํ•ด์ค„๊ฒŒ!โ€

์‹ค์ œ๋กœ๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ด๋„ ํ”„๋กœ๊ทธ๋žจ์ด ๋А๋ผ์ง€ ์•Š๋„๋ก, ํŽ˜์ด์ง€ ํดํŠธ(page fault)์™€ ํ•จ๊ป˜ ์š”๊ตฌ๋ถˆ ํŽ˜์ด์ง•(demand paging) ๊ธฐ๋ฒ•์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ํ”„๋กœ๊ทธ๋žจ์€ ์ž์‹ ์ด ๋งˆ์น˜ ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋А๋ผ๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ์žฅ์น˜์ฃ .

์šฉ์–ด์„ค๋ช…
๊ฐ€์ƒ ์ฃผ์†Œํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์†Œ. ๊ฒ‰๋ณด๊ธฐ์šฉ
๋ฌผ๋ฆฌ ์ฃผ์†Œ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ(RAM) ์ƒ์˜ ์œ„์น˜
MMU๊ฐ€์ƒ ์ฃผ์†Œ โ†’ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ์žฅ์น˜

๐Ÿ“Œ ์ด ๊ณผ์ • ๋•๋ถ„์— ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ์„œ๋กœ ๋…๋ฆฝ๋œ ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์–ด์š”!

3) ๐Ÿงญ ๊ฐ€์ƒ ์ฃผ์†Œ์˜ ๋™์ž‘ ์›๋ฆฌ: ํŽ˜์ด์ง€์™€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”

MMU๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋กœ ๋‹จ์ˆœํžˆ 1:1 ๋งคํ•‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋Œ€์‹ , ํŽ˜์ด์ง€(Page)๋ผ๋Š” ๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜์ฃ .

๐Ÿ“ฆ Demand Paging(์š”๊ตฌ๋ถˆ ํŽ˜์ด์ง•)์ด๋ž€?

ํ”„๋กœ๊ทธ๋žจ์ด ์ง„์งœ๋กœ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋งŒ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์š”.

๋‚˜๋จธ์ง€๋Š” ์•„์ง ๋ฉ”๋ชจ๋ฆฌ์— ์—†์–ด์š”. ํ•„์š”ํ•  ๋•Œ ๊ทธ๋•Œ๊ทธ๋•Œ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

๋งˆ์น˜ ๋„ทํ”Œ๋ฆญ์Šค์—์„œ ๋ณด๊ณ  ์‹ถ์€ ์žฅ๋ฉด๋งŒ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์•„์š”.

๐Ÿ“ฆ ํŽ˜์ด์ง€๋ž€?

  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ผ์ •ํ•œ ํฌ๊ธฐ๋กœ ์ชผ๊ฐ  ๋‹จ์œ„ (์˜ˆ: 256B, 4KB ๋“ฑ)
  • ํ”„๋กœ๊ทธ๋žจ์€ ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›๊ณ  ์‚ฌ์šฉ

๐Ÿง  ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋™์ž‘ ๋ฐฉ์‹

์ถœ์ฒ˜ ๏ผš https://velog.io/@hyun0310woo/11-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EA%B0%80%EC%83%81-%EB%A9%94%EB%AA%A8%EB%A6%AC

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” "๊ฐ€์ƒ ์ฃผ์†Œ(Virtual Address)"๋ฅผ ์‚ฌ์šฉํ•ด์„œ, ๋ฌผ๋ฆฌ ์ฃผ์†Œ(Physical Address)๋กœ ๊ฐ„์ ‘ ์ ‘๊ทผํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

  • ํ”„๋กœ์„ธ์Šค๋Š” ์˜ค์ง ๊ฐ€์ƒ ์ฃผ์†Œ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒ ์ฃผ์†Œ๋Š” ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ, ์ค‘๊ฐ„์—์„œ ์ปค๋„์ด ๋ฒˆ์—ญํ•ด์ฃผ๋Š” ์ฃผ์†Œ์˜ˆ์š”.
  • ๋ฒˆ์—ญ ์ž‘์—…์€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”(Page Table)์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

๐Ÿ“‘ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”(Page Table)

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

๐Ÿ” MMU ์ฃผ์†Œ ๋ณ€ํ™˜ ํ๋ฆ„

CPU๋Š” ๋ฌด์กฐ๊ฑด ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ๋งŒ์„ ์ฐธ์กฐํ•ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๊ณ , ๊ทธ ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ์‹ค์ œ ์–ด๋А ๋ฌผ๋ฆฌ ์ฃผ์†Œ์— ์žˆ๋Š”์ง€ MMU๊ฐ€ ๋ณ€ํ™˜ ์‹œ์ผœ์ฃผ๊ณ , ๊ทธ ํ•ด๋‹น ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผ์„ ํ•˜์—ฌ ๊ทธ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ CPU์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  1. ํ”„๋กœ๊ทธ๋žจ์€ ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผ
  2. MMU๊ฐ€ ๊ฐ€์ƒ ์ฃผ์†Œ์˜ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ์ฝ๊ณ 
  3. ํ•ด๋‹น ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋ฅผ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์—์„œ ๊ฒ€์ƒ‰ํ•˜์—ฌ
  4. ๋งคํ•‘๋œ ๋ฌผ๋ฆฌ ํŽ˜์ด์ง€์˜ ์ฃผ์†Œ๋กœ ์ ‘๊ทผ!

๊ฐ€์ƒ ์ฃผ์†Œ๋Š” ์—ฐ์†์ ์ด์ง€๋งŒ, ๋ฌผ๋ฆฌ ์ฃผ์†Œ๋Š” ๋ถˆ์—ฐ์†์ผ ์ˆ˜ ์žˆ์Œ โ†’ ๋ฉ”๋ชจ๋ฆฌ ์กฐ๊ฐ ๋ฌธ์ œ ๋ฐฉ์ง€!

์ด๋กœ ์ธํ•ด ํŽ˜์ด์ง• ๊ธฐ๋ฒ•์ด ์ƒ๊ฒจ๋‚จ ๋” ์ฝ์–ด๋ณด๊ธฐ

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ๊ทธ๋ƒฅ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ผ๋ถ€๋ถ„

ํ”„๋กœ๊ทธ๋žจ ์ž…์žฅ์—์„œ๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—ฐ์†์ ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ์‹ค์ œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ์œ„์น˜๋Š” ๊ตณ์ด ์—ฐ์†์ ์ผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์‹ฌ์ง€์–ด ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋„์ค‘์— ํ”„๋กœ๊ทธ๋žจ์ด ์œ„์น˜ํ•œ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€” ์ˆ˜๋„ ์žˆ์–ด์š”.

๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์„œ๋กœ ํ˜‘๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ค‘ ์ผ๋ถ€๊ฐ€ ๊ฐ™์€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ์ˆ˜๋„ ์žˆ์–ด์š”.

์ด์ œ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์ด ํ”„๋กœ๊ทธ๋žจ ๋ฌธ๋งฅ์˜ ์ผ๋ถ€๋ถ„์ด ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์— ์œ ์˜ํ•˜๊ณ  ๋ณด๋ฉด, ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์€ ๊ทธ๋ƒฅ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ผ๋ถ€๋ถ„์ด ๋ฉ๋‹ˆ๋‹ค.

4) ๐Ÿ’ก ์˜ˆ์‹œ: 16๋น„ํŠธ ์ฃผ์†Œ์™€ ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”

๊ฐ€์ƒ ์ฃผ์†Œ: A15~A0 (์ด 16๋น„ํŠธ)

  • ์ƒ์œ„ ๋น„ํŠธ(A15~A8) โ†’ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ (256๊ฐœ ํŽ˜์ด์ง€)
  • ํ•˜์œ„ ๋น„ํŠธ(A7~A0) โ†’ ํŽ˜์ด์ง€ ์•ˆ์˜ ์˜คํ”„์…‹

ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”:

๊ฐ€์ƒ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ๋งคํ•‘๋œ ๋ฌผ๋ฆฌ ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ
08
15
......

โ†’ ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐ€์ƒ ์ฃผ์†Œ 0x01A2๋Š”:

  • ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ: 0x01
  • ์˜คํ”„์…‹: 0xA2
  • ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด โ†’ ๋ฌผ๋ฆฌ ํŽ˜์ด์ง€ 5๋ฒˆ โ†’ 0x05A2๋กœ ๋ณ€ํ™˜๋จ

5) ๐Ÿงท ํ”„๋กœ๊ทธ๋žจ ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•œ ๋ณด์•ˆ์„ฑ ๊ฐ•ํ™”

MMU๊ฐ€ ์—†๋‹ค๋ฉด?

  • ํ”„๋กœ๊ทธ๋žจ 1์ด ํ”„๋กœ๊ทธ๋žจ 2์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์นจ๋ฒ”ํ•  ์ˆ˜ ์žˆ์Œ
  • ์•…์„ฑ ์ฝ”๋“œ๊ฐ€ ์šด์˜์ฒด์ œ๋ฅผ ๋ฎ์–ด์“ธ ์ˆ˜ ์žˆ์Œ

MMU๊ฐ€ ์žˆ๋‹ค๋ฉด?

  • ๊ฐ ํ”„๋กœ๊ทธ๋žจ์€ ์ž๊ธฐ๋งŒ์˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ€์ง
  • ์„œ๋กœ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ
  • ์šด์˜์ฒด์ œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ๋„ ๋ณดํ˜ธ๋จ (์ปค๋„ ๋ชจ๋“œ ์ „์šฉ)

6) ๐Ÿ“› ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ํŽ˜์ด์ง€ ํดํŠธ์™€ ์Šค์™‘

๐Ÿ“ ํŽ˜์ด์ง€ ํดํŠธ(Page Fault)

  • ํ”„๋กœ๊ทธ๋žจ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ์— ์ ‘๊ทผํ•˜๋ฉด ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ
  • OS๋Š” ์ด ์˜ˆ์™ธ๋ฅผ ๋ฐ›์•„ ์ƒˆ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€๋ฅผ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜, ํ”„๋กœ๊ทธ๋žจ์„ ์ค‘๋‹จํ•จ

๐Ÿ“Œ ํ™œ์šฉ ์˜ˆ์‹œ: ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ

  • ์Šคํƒ์ด ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด โ†’ ํŽ˜์ด์ง€ ํดํŠธ ๋ฐœ์ƒ
  • OS๊ฐ€ ์Šคํƒ์„ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™•์žฅํ•ด์ค„ ์ˆ˜ ์žˆ์Œ (๋™์  ์ฆ๊ฐ€)

๐Ÿ’ฟ ์Šค์™‘ ์•„์›ƒ(Swap Out) / ์Šค์™‘ ์ธ(Swap In)

์šด์˜์ฒด์ œ๋Š” ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฝ‰ ์ฐผ์„ ๋•Œ ์ด๋ ‡๊ฒŒ ์ฒ˜๋ฆฌํ•ด์š”:

๋™์ž‘์„ค๋ช…
๐Ÿ’ค ์Šค์™‘ ์•„์›ƒ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํŽ˜์ด์ง€๋ฅผ ๋””์Šคํฌ๋กœ ์˜ฎ๊น€ (์†๋„ ๋А๋ฆผ)
โšก ์Šค์™‘ ์ธํ”„๋กœ๊ทธ๋žจ์ด ๊ทธ ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ํ•„์š”๋กœ ํ•  ๋•Œ, ๋””์Šคํฌ์—์„œ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ด

์ด ๊ณผ์ •์„ ํ†ตํ•ด ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์‹ค์ œ๋ณด๋‹ค ๋” ์ปค ๋ณด์ด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์š”. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•ต์‹ฌ ๋งˆ๋ฒ•์ž…๋‹ˆ๋‹ค.

๐Ÿ” ๋™์ž‘ ํ๋ฆ„ ์˜ˆ์‹œ

  1. ํ”„๋กœ๊ทธ๋žจ์ด 0x2000 ์ฃผ์†Œ์— ์ ‘๊ทผํ•˜๋ ค ํ•จ
  2. ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ์— ์—†์Œ โ†’ ํŽ˜์ด์ง€ ํดํŠธ ๋ฐœ์ƒ
  3. OS๋Š” ํ•„์š” ์—†๋Š” ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ์Šค์™‘ ์•„์›ƒํ•ด์„œ ๊ณต๊ฐ„ ํ™•๋ณด
  4. ๋””์Šคํฌ์—์„œ 0x2000์ด ํฌํ•จ๋œ ํŽ˜์ด์ง€๋ฅผ ์Šค์™‘ ์ธ
  5. MMU๊ฐ€ ๊ฐ€์ƒ ์ฃผ์†Œ โ†’ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๋งคํ•‘ ๋‹ค์‹œ ์„ค์ •
  6. ํ”„๋กœ๊ทธ๋žจ์€ ์•„๋ฌด ์ผ๋„ ์—†์—ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์‹คํ–‰ ๊ณ„์†

์š”๊ตฌ๋ถˆ ํŽ˜์ด์ง•์€ โ€œํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋งŒ ์ฆ‰์‹œ ๊ฐ€์ ธ์˜ค๊ณ , ์•ˆ ์“ฐ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋””์Šคํฌ๋กœ ๋ณด๋‚ด๋Š”โ€ ์Šค๋งˆํŠธํ•œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์šด์˜ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ด ๊ณผ์ •์„ '์š”๊ตฌ ํŽ˜์ด์ง•(Demand Paging)'์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. OS๋Š” ํŽ˜์ด์ง€ ์ ‘๊ทผ ํŒจํ„ด์„ ์ถ”์ ํ•ด ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ์Šค์™‘ํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ LRU(Least Recently Used) ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

"์ž์ฃผ ์“ฐ๋Š” ๊ฑด ๋ƒ‰์žฅ๊ณ ์—, ๋œ ์“ฐ๋Š” ๊ฑด ์ฐฝ๊ณ ์—. ๊ทธ๋Ÿฐ๋ฐ ์ฐฝ๊ณ ์—์„œ ๊บผ๋‚ผ ๋• ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค!"

9) ๐Ÿ”„ MMU vs ์ธ๋ฑ์Šค ๋ ˆ์ง€์Šคํ„ฐ

ํ•ญ๋ชฉMMU์ธ๋ฑ์Šค ๋ ˆ์ง€์Šคํ„ฐ
๊ธฐ๋Šฅ๊ฐ€์ƒ โ†’ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๋ณ€ํ™˜๋™์  ์ฃผ์†Œ ๊ณ„์‚ฐ (์˜คํ”„์…‹ ๊ณ„์‚ฐ์šฉ)
๋ฒ”์œ„๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ์ œํ•œ์  (์ผ๋ถ€ ์ฃผ์†Œ์—๋งŒ ์ ์šฉ)
๋ณดํ˜ธ ๊ธฐ๋Šฅ์žˆ์Œ (๋ณด์•ˆ, ๊ถŒํ•œ ๋“ฑ)์—†์Œ
ํ”„๋กœ๊ทธ๋žจ ๋ถ„๋ฆฌ๊ฐ€๋Šฅ๋ถˆ๊ฐ€๋Šฅ

MMU๋Š” ๋‹จ์ˆœํ•œ ์ฃผ์†Œ ๊ณ„์‚ฐ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ, ๋ณด์•ˆยท์•ˆ์ •์„ฑยท๋‹ค์ค‘ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์˜ ํ•ต์‹ฌ ์žฅ์น˜์ž…๋‹ˆ๋‹ค.

10) ์Šค์™€ํ•‘์— ๋‘ ๊ฐ€์ง€ ์˜๋ฏธ

1. ๊ต๊ณผ์„œ์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ๋งํ•ด์š”

"๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•œ ์ƒํ™ฉ์—์„œ๋Š” ์Šค์™€ํ•‘์„ ํ†ตํ•ด์„œ๋ผ๋„ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒŒ ๋‚ซ๋‹ค."

  • ์šด์˜์ฒด์ œ๋Š” ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ณด๋‹ค ๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋„์™€์ค˜์š”.
  • ์ด๋•Œ ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๋ฉด ๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž ์‹œ ์˜ฎ๊ฒจ๋‘๋Š” ์Šค์™€ํ•‘์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ์€ ์ข€ ๋–จ์–ด์ ธ๋„ ์‹œ์Šคํ…œ์ด ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์ด ๋” ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋ณด๋Š” ๊ฑฐ์˜ˆ์š”.
  • ๊ทธ๋ž˜์„œ OS๋Š” LRU(Least Recently Used) ๊ฐ™์€ ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์จ์„œ ๋œ ์“ฐ๋Š” ํŽ˜์ด์ง€๋ถ€ํ„ฐ ์Šค์™‘ ์•„์›ƒํ•ด์š”.

์š”์•ฝ: ์„ฑ๋Šฅ๋ณด๋‹ค ๊ฐ€์šฉ์„ฑ(Availability)์ด ์ค‘์š”ํ•œ ์ƒํ™ฉ์—์„œ๋Š” ์Šค์™€ํ•‘์ด ํ•ฉ๋ฆฌ์ ์ด์—์š”.

2. ์‹ค๋ฌด์—์„œ๋Š” ์™œ ๋‹ค๋ฅด๊ฒŒ ๋งํ• ๊นŒ์š”?

"Kafka ๊ฐ™์€ ๊ณ ์ฒ˜๋ฆฌ๋Ÿ‰ ์‹œ์Šคํ…œ์—์„œ๋Š” (๊ฑฐ์˜) ๋ฌด์กฐ๊ฑด ์Šค์™€ํ•‘์„ ๋ง‰์•„์•ผ ํ•œ๋‹ค."
โ€“ ์นดํ”„์นด ํ•ต์‹ฌ ๊ฐ€์ด๋“œ p.40

๊ณ ์„ฑ๋Šฅ ์‹œ์Šคํ…œ์—์„œ๋Š” ์ƒํ™ฉ์ด ์™„์ „ํžˆ ๋‹ฌ๋ผ์š”. ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๋ฉด ๋น„์ฆˆ๋‹ˆ์Šค ์ž์ฒด๊ฐ€ ํƒ€๊ฒฉ์„ ์ž…์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์—์š”.

์‹ค๋ฌด์—์„œ ์Šค์™€ํ•‘์ด ๋ฌธ์ œ ๋˜๋Š” ์ด์œ 

์ด์œ ์„ค๋ช…
๐Ÿ’ฅ ์„ฑ๋Šฅ ์ €ํ•˜์Šค์™‘์€ ๋””์Šคํฌ I/O๋ฅผ ์œ ๋ฐœํ•ด์š”. RAM๋ณด๋‹ค ์ˆ˜์ฒœ ๋ฐฐ ๋А๋ ค์š”.
๐ŸŒ€ ๋ ˆ์ดํ„ด์‹œ ์ฆ๊ฐ€Kafka, DB, ๊ฒŒ์ž„ ์„œ๋ฒ„์ฒ˜๋Ÿผ ์‹ค์‹œ๊ฐ„์„ฑ์ด ์ค‘์š”ํ•œ ์‹œ์Šคํ…œ์—์„  ์น˜๋ช…์ ์ด์—์š”.
๐Ÿง  ์˜ˆ์ธก ๋ถˆ๊ฐ€์ปค๋„์ด ์–ด๋–ค ํŽ˜์ด์ง€๋ฅผ ์Šค์™‘ํ• ์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์˜ˆ์ธก์ด ์–ด๋ ค์›Œ์š”.
๐Ÿ“‰ ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ฐ์†ŒCPU๋Š” ํ•œ๊ฐ€ํ•œ๋ฐ ๋ฉ”๋ชจ๋ฆฌ I/O ๋•Œ๋ฌธ์— ์ „์ฒด ์†๋„๊ฐ€ ๋Šฆ์ถฐ์ ธ์š”.

3. โœ‹ ์˜ˆ๋ฅผ ๋“ค๋ฉด ์ด๋Ÿฐ ์ƒํ™ฉ์ด ์ƒ๊ฒจ์š”

  • Kafka์˜ Page Cache๊ฐ€ ์Šค์™‘๋˜๋ฉด ๋””์Šคํฌ ์ ‘๊ทผ ์†๋„๊ฐ€ ์‹ฌ๊ฐํ•˜๊ฒŒ ๋А๋ ค์ ธ์š”.
  • JVM ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์€ GC ํƒ€์ด๋ฐ์ด ์ค‘์š”ํ•œ๋ฐ, ์Šค์™‘์ด ๋ผ๋ฉด GC๊ฐ€ ์–ธ์ œ ์ž‘๋™ํ• ์ง€ ์˜ˆ์ธก ๋ถˆ๊ฐ€ํ•ด์ ธ์š”.

4. ๐Ÿ“Œ ๊ทธ๋ž˜์„œ ์‹ค๋ฌด์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ๋ง‰์•„์š”

  • vm.swappiness ๊ฐ’์„ 10 ์ดํ•˜๋กœ ์ค„์ด๊ฑฐ๋‚˜ ์•„์˜ˆ 0์œผ๋กœ ์„ค์ •

    sudo sysctl -w vm.swappiness=10
  • Kafka, Elasticsearch, Redis ๋“ฑ์€ ์Šค์™‘ ๋น„ํ™œ์„ฑํ™”๊ฐ€ ๊ถŒ์žฅ

  • ์ปจํ…Œ์ด๋„ˆ์—์„œ๋Š” --memory-swappiness=0 ์˜ต์…˜ ์‚ฌ์šฉ

๐Ÿงฉ ์‰ฝ๊ฒŒ ๋น„๊ตํ•˜๋ฉด?

ํ•ญ๋ชฉ์ผ๋ฐ˜ PC (๊ต๊ณผ์„œ ๊ด€์ )Kafka ๊ฐ™์€ ๊ณ ์„ฑ๋Šฅ ์„œ๋ฒ„ (์‹ค๋ฌด ๊ด€์ )
๋ชฉํ‘œ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ ์œ ์ง€์ง€์—ฐ ์ตœ์†Œํ™”, ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ทน๋Œ€ํ™”
์Šค์™€ํ•‘ ํ—ˆ์šฉํ—ˆ์šฉ (ํ•„์š”์•…)โŒ ์ตœ๋Œ€ํ•œ ๋ฐฉ์ง€
ํŽ˜์ด์ง€ ๊ต์ฒดLRU ๋“ฑ ์‚ฌ์šฉ์Šค์™€ํ•‘ ์ž์ฒด๋ฅผ ์•ˆ ํ•˜๋„๋ก ์„ธํŒ…
๋ฆฌ์†Œ์Šค ๋ถ€์กฑ ์‹œ๋А๋ ค์ ธ๋„ ๋™์ž‘ ์œ ์ง€์„ฑ๋Šฅ ์ €ํ•˜๋Š” SLA ์œ„๋ฐ˜์œผ๋กœ ์น˜๋ช…์ 

๐Ÿ’ก ํ•œ ์ค„ ์ •๋ฆฌ

๊ต๊ณผ์„œ์—์„œ ๋งํ•˜๋Š” ์Šค์™€ํ•‘์€ โ€˜์ตœํ›„์˜ ์•ˆ์ „์žฅ์น˜โ€™์ง€๋งŒ, ์‹ค๋ฌด์—์„œ๋Š” โ€˜์ ˆ๋Œ€ ํ”ผํ•ด์•ผ ํ•  ์„ฑ๋Šฅ ์ง€์˜ฅโ€™์ž…๋‹ˆ๋‹ค.

โœ… ๋งˆ๋ฌด๋ฆฌ ์š”์•ฝ

ํ‚ค์›Œ๋“œ์„ค๋ช…
MMU๊ฐ€์ƒ ์ฃผ์†Œ โ†” ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๋ณ€ํ™˜ ํ•˜๋“œ์›จ์–ด
ํŽ˜์ด์ง€์ผ์ • ๋‹จ์œ„๋กœ ์ชผ๊ฐ  ๋ฉ”๋ชจ๋ฆฌ ๋ธ”๋ก
ํŽ˜์ด์ง€ ํ…Œ์ด๋ธ”๊ฐ€์ƒ โ†’ ๋ฌผ๋ฆฌ ์ฃผ์†Œ ๋งคํ•‘ ์ •๋ณด ์ €์žฅ ํ…Œ์ด๋ธ”
ํŽ˜์ด์ง€ ํดํŠธ์—†๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ ์ ‘๊ทผ ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ
์ œ์–ด ๋น„ํŠธ์‹คํ–‰๋ถˆ๊ฐ€, ์ฝ๊ธฐ์ „์šฉ ๋“ฑ ์ ‘๊ทผ ๊ถŒํ•œ ์ œ์–ด
ํ”„๋กœ๊ทธ๋žจ ๋ถ„๋ฆฌ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์œผ๋กœ ์„œ๋กœ ๊ฒฉ๋ฆฌ

"ํ˜„๋Œ€ ์ปดํ“จํ„ฐ์—์„œ MMU ์—†๋Š” ์‹œ์Šคํ…œ์€ ์ƒ์ƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์ด ์•ˆ์ „ํ•˜๊ฒŒ, ๊ทธ๋ฆฌ๊ณ  ์„œ๋กœ ๊ฐ„์„ญ ์—†์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ์กฐ๋ ฅ์ž.
๊ทธ๊ฒŒ ๋ฐ”๋กœ MMU์ž…๋‹ˆ๋‹ค!"

"๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋งˆ์น˜ ๊ฐ ๊ฐ€์ •์ด ์ž๊ธฐ ์ง‘ ์ฃผ์†Œ ์ฒด๊ณ„๋ฅผ ์“ฐ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ๋‹ค๋ฅธ ์ง‘ ์ฃผ์†Œ์™€ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์žฅ์น˜์ž…๋‹ˆ๋‹ค."

profile
๋‚ด ์ง€์‹์„ ๊ธฐ๋กํ•˜์—ฌ, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๊ณต์œ ํ•˜์—ฌ ํ•จ๊ป˜ ๋ฐœ์ „ํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋˜๊ณ  ์‹ถ๋‹ค. gitbook์—๋„ ์ •๋ฆฌ์ค‘ ~

0๊ฐœ์˜ ๋Œ“๊ธ€