주소 바인딩

주소 바인딩 시점

주소 바인딩은 프로그램 안의 이름과 주소가 실제 메모리 위치로 연결되는 과정입니다. 컴파일, 적재, 실행 시점 중 언제 확정되느냐에 따라 재배치 가능성, 보호, 가상 메모리 지원 방식이 달라집니다.

01

이름에서 주소로

소스의 변수와 함수 이름은 컴파일과 링크를 거치며 상대적 혹은 논리적 주소가 됩니다.

symbol
02

적재 위치 결정

프로그램이 메모리에 올라갈 때 base 위치가 정해지면 논리 주소를 물리 주소와 연결합니다.

load
03

실행 중 변환한다

가상 메모리에서는 CPU가 만든 논리 주소를 MMU가 페이지 테이블을 통해 물리 주소로 바꿉니다.

MMU
04

보호 비트 검토

주소 변환은 위치 계산만이 아니라 접근 권한과 범위 검사까지 포함합니다.

protection
논리 주소
프로세스가 자기 주소 공간 안에서 보는 주소 각 프로세스는 같은 논리 주소를 써도 서로 다른 물리 프레임을 가리킬 수 있습니다.
virtual
물리 주소
메모리 장치가 실제로 접근하는 위치 커널과 MMU가 관리하며 사용자 프로그램이 직접 다루지 않습니다.
physical
동적 바인딩
실행 중 변환으로 이동과 보호가 가능 스와핑, 페이징, 공유 라이브러리 같은 현대 OS 기능의 전제입니다.
runtime

시점 · 재배치 · 권한 점검

시점 컴파일, 적재, 실행 중 어느 시점에 주소가 결정되는지 구분합니다.
재배치 프로그램을 다른 위치에 올려도 실행 가능한지 확인합니다.
권한 주소 변환 과정에서 읽기, 쓰기, 실행 권한이 어떻게 검사되는지 봅니다.