๐ŸŒ CS & Infra/Operating System

[OS] ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(Virtual Memory)

devCloud 2026. 4. 1. 17:47
728x90

๐Ÿ’ป OS ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(Virtual Memory) ๊ฐœ๋… ๋ฐ ์ž‘๋™ ์›๋ฆฌ

1. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ž€?

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ”„๋กœ์„ธ์Šค ์ „์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ(RAM)์— ์˜ฌ๋ผ์˜ค์ง€ ์•Š๋”๋ผ๋„ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ๋ฌผ๋ฆฌ์  ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋‹ค ๋” ํฐ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์•„์ฃผ ๋˜‘๋˜‘ํ•œ ๊ธฐ์ˆ ์ด์ฃ .

๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•ต์‹ฌ ์žฅ์ 

  • ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ์ œ์•ฝ ๊ทน๋ณต: ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์ด ์‹ค์ œ RAM ์šฉ๋Ÿ‰์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  ์„ค๊ณ„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋™์‹œ ์ˆ˜ํ–‰ ๋Šฅ๋ ฅ ํ–ฅ์ƒ: ๊ฐ ํ”„๋กœ๊ทธ๋žจ์ด ๋‹น์žฅ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋ฏ€๋กœ, ๋” ๋งŽ์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์‹œ์— ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํšจ์œจ์ ์ธ I/O: ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด๋ฅผ ํ•œ๊บผ๋ฒˆ์— ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๊ณ  ๋‚ด๋ฆฌ๋Š”(Swap) ๋Œ€์‹ , ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๊ต์ฒดํ•˜๋ฏ€๋กœ ์ž…์ถœ๋ ฅ ํšŸ์ˆ˜๊ฐ€ ์ตœ์ ํ™”๋ฉ๋‹ˆ๋‹ค.

2. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์˜ ์˜๋ฏธ

๋‹จ์ˆœํžˆ ํŒŒ์ผ์„ ๋”๋ธ” ํด๋ฆญํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

์ฃผ์†Œ ๋ฐ”์ธ๋”ฉ (Address Binding)

ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ(๋…ผ๋ฆฌ ์ฃผ์†Œ)๋ฅผ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธด ๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. CPU๋Š” ๊ฐ€์ƒ ์ฃผ์†Œ๋ฅผ ๋ณด๊ณ  ์ผํ•˜์ง€๋งŒ, ์‹ค์ œ ๋ฐ์ดํ„ฐ๋Š” ๋ฌผ๋ฆฌ ์ฃผ์†Œ์— ์žˆ์œผ๋ฏ€๋กœ ์ด '๋ฒˆ์—ญ'์ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์Šค์™‘ ์˜์—ญ (Swap Area)

๋ฌผ๋ฆฌ ๋ฉ”๋ชจ๋ฆฌ(RAM)๊ฐ€ ๊ฐ€๋“ ์ฐผ์„ ๋•Œ, ๋‹น์žฅ ์“ฐ์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ์ž ์‹œ ๋ณด๊ด€ํ•ด๋‘๋Š” ํ•˜๋“œ๋””์Šคํฌ์˜ ์ผ๋ถ€ ์˜์—ญ์ž…๋‹ˆ๋‹ค.

  • Swap-out: ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋””์Šคํฌ(์Šค์™‘ ์˜์—ญ)๋กœ ์ซ“๊ฒจ๋‚จ.
  • Swap-in: ๋””์Šคํฌ์—์„œ ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ถˆ๋Ÿฌ์˜ด.

3. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ž‘๋™ ์›๋ฆฌ: ์š”๊ตฌ ํŽ˜์ด์ง•

ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ์˜ฌ๋ฆฌ์ง€ ์•Š๊ณ , 'ํ•„์š”ํ•  ๋•Œ(On-Demand)'๋งŒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€ ํดํŠธ (Page Fault)

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


๐Ÿ“Œ ํ•ต์‹ฌ ์š”์•ฝ: ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์˜ ์˜ˆ์ˆ 

CPU: "๊ฐ€์ƒ ์ฃผ์†Œ(Virtual Address) 100๋ฒˆ์ง€์— ์žˆ๋Š” ๊ฑฐ ๊ฐ€์ ธ์™€!"
MMU: "์ž ๊น, ๊ฐ€์ƒ ์ฃผ์†Œ 100๋ฒˆ์€ ์‹ค์ œ RAM ์ฃผ์†Œ 500๋ฒˆ์ด์•ผ. (๋ฒˆ์—ญ)"
OS: "๋งŒ์•ฝ RAM์— ์—†์œผ๋ฉด ๋‚ด๊ฐ€ ์Šค์™‘ ์˜์—ญ์—์„œ ๊ฐ€์ ธ์˜ฌ๊ฒŒ, ์กฐ๊ธˆ๋งŒ ๊ธฐ๋‹ค๋ ค!"
728x90