제한적 직접 실행방식(LDE)에 부가적으로 사용되는 기능
가상주소가 실제로 사용하는 물리주소로 변환됨
하드웨어가 주소를 변환해주지만 젇확한 변환을 위해서는 OS가 메모리의 빈 공간과 사용중인 공간을 알고 있어야 하고 메모리 사용을 제어해야함
두개의 레지스터 사용 ( base, bound)
두 레지스터가 원하는 위치에 주소공간을 배치할 수 있게 해준다.
운영체제가 프로그램이 탑재될 물리 메모리의 위치를 결정하고 베이스 레지스터의 위치를 그 주소로 지정
프로세스 실핻되면서
physical addr = virtual addr + base 로 변환됨
가상주소에 베이스 레지스터 값 더해서 물리주소로 변환
프로세스가 실행한 이후에도 주소공간이 이동될 수 있음
-> 동적 재배치!
바운드 레지스터는 보호 차원에서 사용
가상 주소가 바운드 안에 있는지 확인하게 됨
위와 같은 주소변환은 CPU 칩 안의 memory management unit(MMU)가 하게 된다.
stack과 heap 사이의 공간이 비어 단편화가 발생한다
-> 내부단편화!
해결
base-and-bound를 일반화함 -> 세그멘테이션!