혼공컴운_CH6-2_메모리의 주소 공간

Today Jeeho Learned·2025년 11월 19일
post-thumbnail

🧠 물리주소와 논리주소(가상주소) 이해하기

업로드중..

1. 왜 주소를 두 가지로 나눌까?

지금까지는 메모리에 하나의 주소만 존재한다고 생각했지만,
실제로 운영체제는 메모리를 물리주소(Physical Address) 와
논리주소(Logical Address, 가상주소 Virtual Address) 로 구분하여 관리한다.

그 이유는 다음과 같다:

  • 실행 중인 프로그램(CPU 포함)은 메모리 안에
    무슨 데이터가 어디에 저장되어 있는지 알 수 없음
  • 메모리의 저장 내용은 계속 변하고, 프로그램마다 필요한 메모리 크기도 다름
  • 여러 프로그램을 동시에 실행할 때 서로의 메모리 영역 보호가 필요함
  • 프로그램마다 독립된 주소 공간(0번지부터 시작)이 필요함

그래서 운영체제는 논리주소(프로그램 관점) 와
물리주소(메모리 칩 관점) 을 나누어 관리하며,
이 둘의 변환은 CPU와 메모리 사이의 MMU(Memory Management Unit) 가 담당한다.


2. 물리주소(Physical Address)

✔ 정의

  • 메모리 하드웨어 입장에서 본 실제 주소
  • 실제 RAM 안에 데이터가 저장된 정확한 위치
  • 절대로 겹칠 수 없음

✔ 특징

  • 메모리 칩에 존재하는 진짜 주소
  • “물리적으로 몇 번지에 저장되어 있는가?”가 중요
  • 운영체제와 MMU가 관리

3. 논리주소(Logical Address, 가상주소)

✔ 정의

  • CPU와 프로그램이 사용하는 주소
  • 프로그램이 생각하는 주소이며 “가상의 주소”
  • 실제 물리주소와 다를 수 있음

✔ 특징

  • 프로그램마다 0번지부터 시작하는 독립 공간
  • 서로 다른 프로그램끼리 주소가 겹쳐도 무방함
    (어차피 MMU가 물리주소로 변환하므로 충돌 없음)
  • CPU는 항상 논리주소만 사용함

4. 논리주소 → 물리주소 변환 과정

CPU → (논리주소) → MMU → (물리주소) → RAM

MMU는 두 가지 값을 이용해 변환한다:

  1. 베이스 레지스터(Base Register)

    • 프로그램이 실제 메모리에서 차지하고 있는 시작 물리주소
  2. 논리주소(Logical Address)

    • 프로그램 시작 지점(0번지)로부터 떨어진 거리(오프셋)

✔ 변환 공식

✔ 예시

  • 베이스 레지스터 = 4000
  • CPU가 접근하려는 논리주소 = 120

→ 물리주소 = 4120


5. 메모리 보호: 한계 레지스터(Limit Register)

MMU의 또 다른 중요한 역할은 메모리 보호이다.

✔ 한계 레지스터란?

  • 프로그램이 사용할 수 있는 논리주소의 최대 범위
  • 즉, 프로그램 크기를 의미

✔ 보호 규칙

CPU가 메모리에 접근할 때 다음 조건을 검사한다: 0 ≤ 논리주소 < 한계 레지스터

또는 물리 주소 기준:베이스 레지스터 ≤ 물리주소 < 베이스 레지스터 + 한계 레지스터

✔ 이 검사의 목적

  • 다른 프로그램 메모리 침범 방지
  • 운영체제 영역 침범 방지
  • 프로그램 간 독립적인 실행 공간 확보

6. 요약

구분물리주소논리주소(가상주소)
관점메모리 하드웨어 관점CPU·프로그램 관점
주소 범위겹칠 수 없음프로그램마다 동일한 주소 사용 가능
생성 주체MMU/운영체제CPU
특징실제 저장된 위치프로그램마다 0번지부터 시작
변환XMMU가 물리주소로 변환
장점정확한 위치 정보메모리 보호, 독립성, 효율적 메모리 관리

📌 결론

  • 프로그램은 논리주소(가상주소) 만 알고 있다.
  • 실제 메모리의 주소는 물리주소 이다.
  • 둘을 변환하고 보호하는 장치는 MMU 이다.
  • 베이스 레지스터와 한계 레지스터 덕분에
    여러 프로그램이 안전하게 독립적으로 실행될 수 있다.
profile
기록해야 (살아)남는다 !

0개의 댓글