메모리는 주소의 연속으로, 주소는 크게 두 가지 관점에서 해석 가능하다.

프로그래머가 프로그래밍에 사용하는 공간으로 보는 논리적 관점의 논리적 주소

그리고 실제 데이터나 프로그램을 저장하는 공간으로 보는 물리적 관점의 물리적 주소이다.

논리적 주소는 C/C++같은 언어에서 변수의 주소값을 출력해보면 나오는 주소를 생각하면 이해하기 쉽다.

 

실제로 프로그래머가 사용하는 논리적 주소

 

메모리 관리 장치

논리적 주소와 물리적 주소의 변환은 메모리관리장치가 처리한다.

메모리관리장치가 논리적 주소를 물리적 주소로 변환할 때 다음과 같은 방법을 사용한다.

  1. 고정 분할
  2. 동적 분할
  3. 페이징
  4. 세그먼테이션
  5. 페이지화된 세그먼테이션

프로세스의 논리적 주소에 대응하는 물리적 주소를 알아야 프로세스를 실행할 수 있는데, 두 주소를 매핑 시켜주는 작업을 바인딩이라고 한다.

바인딩은 컴파일 시간, 적재 시간, 실행 시간으로 구분할 수 있다.

 

 

+ Recent posts