컴퓨터 과학

[운영체제] 가상 메모리 - 물리 주소와 논리 주소 & 스와핑

Data Jun 2025. 11. 30. 14:40

운영체제의 메모리 관리는 처음 접하면 어렵게 느껴지지만, 핵심 개념만 잡으면 생각보다 단순합니다. 오늘은 물리 주소와 논리 주소의 차이, 그리고 스와핑(swapping)이 무엇인지 간단하게 정리해보겠습니다.

 

1. 물리 주소와 논리 주소

1️⃣ 물리 주소 (Physical Address)

  • 말 그대로 실제 메모리(RAM)에서의 주소를 의미합니다.
  • 하드웨어가 직접 바라보는 진짜 메모리 위치입니다.

2️⃣  논리 주소 (Logical Address)

  • 프로세스마다 0번지부터 시작하는 주소 체계
  • CPU가 바라보는 주소이며, 프로그램이 메모리에 올라가면 각 프로세스는 자신만의 주소 공간을 사용합니다.

3️⃣  왜 두 주소가 필요할까?

프로세스마다 0번지부터 시작한다면 프로그램 간 충돌이 날 텐데, 실제로는 그런 일이 없습니다.
그 이유는 바로 **MMU(메모리 관리 장치)**가 있기 때문입니다.

 

2. MMU(Memory Management Unit)의 역할

MMU는 CPU와 메모리 사이에 위치하며 다음 역할을 담당합니다.

 

CPU가 사용하는 ‘논리 주소’를 실제 RAM의 ‘물리 주소’로 변환하는 장치

 

즉,

  • 프로그램은 편하게 0번지부터 사용하는 것처럼 느끼고
  • 실제 하드웨어는 MMU의 변환을 통해 안전하게 물리 메모리를 접근합니다.

이 방식 덕분에 여러 프로그램이 동시에 실행되더라도 주소 충돌 없이 안정적으로 동작합니다.

 

3. 스와핑(Swapping)과 스왑 영역

1️⃣  스와핑(swapping)이란?

메모리가 부족해졌을 때 기존 프로세스를 잠시 보조기억장치(디스크)의 스왑 영역으로 내보내는 메커니즘입니다.

 

2️⃣ 구성 요소

  • 스왑 영역(swap space)
    • 메모리에서 밀려난 프로세스들을 임시로 저장하는 디스크 공간
  • 스왑 아웃(swap-out)
    • 실행되지 않고 오래 대기 중인 프로세스를 메모리에서 스왑 영역으로 내보냄
  • 스왑 인(swap-in)
    • 반대로 스왑 영역에 있던 프로세스를 다시 메모리로 불러오는 것

 

4. 스와핑 시 물리 주소는 어떻게 될까?

스왑 아웃되었던 프로세스가 다시 스왑 인될 때는
이전과 동일한 물리 주소로 돌아오지 않을 수도 있습니다.

즉,

 

스왑 인 시 새로운 물리 주소에 적재될 수 있습니다.

 

 

이 과정에서도 MMU가 논리 주소를 새로운 물리 주소로 매핑해주기 때문에
프로세스 입장에서는 아무 일도 없는 것처럼 정상적으로 실행됩니다.

 

 

 

정리하면

 

오늘 다룬 내용을 한 문장으로 요약하면 다음과 같습니다.

 

프로세스는 논리 주소를 사용하고, 실제 물리 주소 변환은 MMU가 담당하며, 메모리가 부족할 때는 스와핑을 통해 디스크를 임시 메모리처럼 사용한다.