메모리 적재 위치를 컴파일 시점에서 모르면, 대체 가능한 상대 주소를 생성 해둠 (시작 주소와 비교)
적재 시점(load time)에 시작 주소를 반영하여 사용자 코드상의 주소를 재설정
프로그램 전체가 메모리에 올라가야 함
Run (실행 중) time binding
- running상태가 될 때 Address binding을 수행시까지 연기 (running상태로 될 때마다 바뀜 ➡ 프로세스가 수행 도중 다른 메모리 위치로 이동할 수 있음.)
- HW의 도움이 필요. MMU(Memory Management Unit)
- 대부분의 OS가 사용
Dynamic Loading
연속되게 메모리에 올리는 경우인 Address Binding이 아닌 필요한 부분만 메모리에 올리기
모든 루틴(ex.function)을 교체 가능한 형태(A,B,C)로 디스크에 저장
실제 호출 전까지는 루틴을 적재하지 않음
메인 프로그램만 메모리에 적재하여 수행, 루틴의 호출 시점에 address binding 수행
장점 : 메모리 공간의 효율적 사용
Swapping
프로세서 할당이 끝나고 수행 완료 된 프로세스는 swap-divice로 보냄(Swap-out)