Computer_science/Memory

[메모리] 논리적 주소와 물리적 주소의 매핑

neck392 2024. 12. 8. 23:31

메모리는 명령어를 실행하는 과정은 주소의 연속으로 이루어진다. 주소는 보는 관점에 따라 논리적 주소와 물리적 주소로 나눌 수 있다.

프로그래머가 프로그래밍에 사용하는 관점에서 볼 때 이 공간은 논리적 주소(=가상 주소)라 할 수 있다. 즉, 논리적 주소는 프로세스가 생각하는 공간이다. 또한, 논리적 주소에 대응하여 적재하는 실제 주소를 물리적 주소라 부르며 메모리 칩이나 디스크 공간에 직접 할당된다. 따라서 물리적 주소는 실제로 데이터가 저장되는 위치이다.

<논리적 주소를 물리적 주소로 변환>

 

논리적 주소(Logical Address)

  • 프로그램이 사용하는 주소 

물리적 주소(Physical Address)

  • 논리적 주소에 대응하여 프로그램이 실제로 저장되는 메모리 주소

 

프로그램이 실행되고 동작하는 과정에서 논리적 주소를 물리적 주소로 변환하는 과정이 선행되어야 한다. 논리적 주소와 물리적 주소의 변환은 메모리 관리 장치(Memory Management Unit, MMU)가 처리한다. 메모리 관리 장치가 논리적 주소를 물리적 주소로 변환하는 기법은 메모리 관리 방식에 따라 차이가 있다. 아래 메모리 변환 기법은 뒤에서 자세히 다룰 예정이다.

  • 연속 메모리 할당: 고정 분할, 동적 분할(가변 분할)
  • 불연속 메모리 할당: 페이징(paging), 세그먼테이션(segmentation), 페이지화된세그먼테이션

<메모리 관리 장치의 주소 변환>


Reference

  • Harvey M. Deitel, Paul J. Deitel, and David R. Choffnes, Operating Systems, 3rd ed., Pearson, 2003.
  • Hyun-Hoe Koo, Operating System: Principles and Structure Illustrated, 1st ed., Hanbit Academy, 2016. (7th printing, 2022).