메모리는 집 주소처럼 주소(address)로 관리된다. 32비트, 64비트가 있는데 32비트의 주소 체계를 사용하는 컴퓨터는 바이트만큼의 메모리 공간에 서로 다른 주소를 할당할 수 있다.
4KB(byte)씩 묶어 페이지(page)라는 하나의 구역을 만들어 사용한다. 페이지 하나의 크기가 byte이므로 페이지 내에서 바이트별 위치 구분을 위해 12비트가 필요하다. 따라서 총 32비트 중 하위 12비트는 페이지 내에서의 주소를 나타내게 되는 것이다.
경쟁하는 프로세스 간에 부족한 메모리 자원을 할당하여 최소한의 오버헤드로 성능을 극대화시킨다. 그리고 프로세스 사이의 isolation을 제공한다.
프로그램이 실행을 위해 메모리에 적재되면 그 프로세스를 위한 독자적인 주소 공간이 생성되는데 이 주소를 논리적 주소(logical address) 또는 가상 주소(virtual address)라고 한다. 논리적 주소는 각 프로세스마다 독립적으로 할당되며 0번지부터 시작된다.
반면, 물리적 주소(physical address)는 물리적 메모리에 실제로 올라가는 위치를 말한다.
주소 바인딩은 프로세스의 논리적 주소를 물리적 메모리 주소로 연결시켜주는 작업을 말한다.
MMU는 논리적 주소를 물리적 주소로 매핑시키는 CPU에 있는 하드웨어 장치이다.
CPU가 특정 프로세스의 논리적 주소를 참조하려고 할 때 MMU 기법은 그 주소값에 기준 레지스터의 값을 더해 물리적 주소값을 얻어낸다. 프로그램의 주소 공간이 물리적 메모리의 한 장소에 연속적으로 적재되는 것으로 가정하기 때문이다. 또한 사용자 프로그램이나 CPU는 논리적 주소만 다루기 때문에 실제 물리적 주소는 알 필요가 없다.