메모리의 주소 공간-물리 주소와 논리 주소

컴퓨터 구조

목록 보기
15/20

메모리 주소 공간: 논리 주소 vs 물리 주소 요약


1. 주소 공간의 개념

(1) 논리 주소(Logical Address) vs 물리 주소(Physical Address)

  • CPU와 실행 중인 프로그램이 바라보는 주소논리 주소라고 함.
  • 실제 메모리(하드웨어)에서 바라보는 주소물리 주소라고 함.
  • 프로그램이 실행될 때마다 메모리에 로드되는 위치(물리 주소)는 다를 수 있음.
  • 따라서 프로그램마다 논리 주소를 부여하고, 이를 물리 주소로 변환하여 실행.


2. 논리 주소와 물리 주소의 차이

구분논리 주소 (Logical Address)물리 주소 (Physical Address)
정의CPU 및 프로그램이 인식하는 주소실제 메모리의 주소 (RAM 내 위치)
역할프로그램 실행을 위해 사용하드웨어에서 실제 데이터 저장 위치
특징모든 프로그램이 0번지부터 시작메모리에서 중복 없이 할당
예시프로그램 A의 0번지, 100번지 등실제 RAM의 15000번지, 15100번지 등

3. 논리 주소와 물리 주소 변환

(1) MMU (Memory Management Unit, 메모리 관리 장치)

  • CPU가 실행하는 모든 주소는 논리 주소.
  • MMU(메모리 관리 장치)가 논리 주소를 물리 주소로 변환.
  • 논리 주소를 변환할 때 베이스 레지스터(Base Register)를 활용.

(2) 변환 방식

  • 물리 주소 = 베이스 레지스터 값 + 논리 주소
  • 프로그램이 로드될 때, 시작 주소(베이스 레지스터 값)를 저장하고, 이후 논리 주소를 더해 물리 주소를 찾음.

(3) 예시

예제 1: 프로그램 A가 메모리에 로드된 경우

  • 프로그램 A가 15000번지부터 로드됨

  • 논리 주소 100번지 → 물리 주소 변환

    • 물리 주소 = 베이스 레지스터 값(15000) + 논리 주소(100)
    • 결과: 15100번지가 실제 사용 주소

예제 2: 프로그램 C가 메모리에 로드된 경우

  • 프로그램 C가 45000번지부터 로드됨
  • 논리 주소 100번지 → 물리 주소 변환
    • 물리 주소 = 베이스 레지스터 값(45000) + 논리 주소(100)
    • 결과: 45100번지가 실제 사용 주소


4. 메모리 보호 (Memory Protection)

(1) 왜 메모리를 보호해야 하는가?

  • 프로그램이 다른 프로그램의 메모리 영역을 침범하면 심각한 오류 발생.
  • 예를 들어, 인터넷 브라우저가 게임 프로그램의 데이터를 덮어쓴다면? → 오류 발생.

(2) 해결책: 리미트 레지스터 (Limit Register)

  • 한계 레지스터(Limit Register)를 사용하여 논리 주소의 최대 크기를 설정.
  • 프로그램이 허용된 논리 주소 범위를 초과하면 실행을 차단.

(3) 예시

예제 1: 정상적인 접근

  • 프로그램 A의 논리 주소 범위: 0 ~ 99번지
  • 베이스 레지스터 = 1000, 리미트 레지스터 = 100
  • 접근하려는 주소 = 50번지 → 정상 (0~99 범위 내)

예제 2: 잘못된 접근 (다른 프로그램 침범)

  • 논리 주소 150번지를 접근하려 하면?
    • 한계 레지스터(100) 초과 → 실행 차단
    • 다른 프로그램 메모리를 침범하는 것을 방지.


5. 메모리 보호 기법 요약

보호 기법역할
MMU (Memory Management Unit)논리 주소 → 물리 주소 변환
베이스 레지스터 (Base Register)프로그램의 시작 주소 저장
리미트 레지스터 (Limit Register)프로그램이 접근할 수 있는 논리 주소 범위 설정
주소 검사(Address Checking)프로그램이 허용된 주소를 초과하면 실행 차단

6. 결론

  1. CPU와 프로그램은 논리 주소를 사용하고, 실제 메모리는 물리 주소를 사용.
  2. 논리 주소는 MMU를 통해 물리 주소로 변환됨.
  3. 변환 과정에서 베이스 레지스터와 리미트 레지스터를 활용.
  4. 리미트 레지스터를 통해 프로그램이 다른 프로그램의 메모리를 침범하지 못하도록 보호.

이제 메모리 주소 체계와 보호 방식이 더 명확해졌을 거예요! 🚀

0개의 댓글