주소 결정 시점

물리 주소를 언제 고정하는가

바인딩이 늦어질수록 실행 중 이동과 격리가 쉬워지고, 하드웨어 MMU의 역할이 커집니다.

컴파일 시
적재 시
실행 시
Compile-time

컴파일러가 절대 주소 생성

프로그램은 정해진 물리 위치에만 올라갈 수 있어 동시에 여러 작업을 돌리기 어렵습니다.

이동성

실행 중 재배치 불가

Load-time

로더가 시작 주소를 반영

적재 순간에는 위치를 고를 수 있지만, 실행이 시작되면 주소가 고정됩니다.

이동성

적재 전까지만 가능

Execution-time

MMU가 매 접근을 변환

프로세스를 옮겨도 논리 주소는 그대로라 페이징, 스와핑, 보호가 자연스럽게 이어집니다.

이동성

실행 중에도 가능

소스와 컴파일러 기호 주소를 만들고, 일부 방식은 여기서 물리 위치까지 결정합니다.
로더 재배치 가능 코드를 실제 적재 위치에 맞게 보정합니다.
MMU 실행 시마다 베이스, 한계, 페이지 테이블로 주소를 바꿉니다.
물리 메모리 같은 논리 주소라도 프로세스마다 다른 프레임에 도착합니다.
현대 OS의 선택

주소 결정을 실행 시점까지 미루는 것이 프로세스 격리와 가상 메모리의 출발점입니다.