Memory Management System, MMS
- 메모리 관리를 담당함
- MMU 라는 하드웨어에 의해 수행됨
Memory Management Unit, MMU의 작업
- fetch
- 프로세스와 데이터를 메모리로 가져오는 작업
- 요청을 예상하여 데이터를 미리 가져오기도 함 (pre-fetch)
- placement
- fetch 한 프로세스와 데이터를 메모리에 어떤 부분에 올려 놓을지 결정하는 작업
- placement 이전 메모리를 어떤 크기로 자를 것인지가 매우 중요
- variable-size partioning (segementation)
- fixed-size partitioning (paging)
- replacement
- 새로운 프로세스를 가져와야 하는데 메모리가 꽉 찾다면 메모리에 있는 프로세스를 하드디스크로 옮겨 놓아야 새로운 프로세스를 메모리에 가져올 수 있다. (swap out, suspend)
- Replacement algorithm 에 따라 재배치 수행
- FIFO, LFU, LRU, …
경계 레지스터

프로그램 실행 중 커널 영역을 침범하지 못하도록 boundary register 사용
절대주소와 상대주소

메모리 오버레이
- 프로그램을 모듈로 나누어 필요할 때마다 모듈을 메모리에 가져와 사용한다.
- 한정된 메모리에서 메모리보다 큰 프로그램의 실행 가능
스왑

MMU 배치(placement) 정책
- variable-size partitioning
- segmentation
- contiguous memory allocation
- external fragementation
→ 메모리 배치 first fit, best fit, worst fit 등
→ defragmentation 필요
- fixed-size partitioning
- paging
- noncontiguous memory allocation
- internal fragmentation
- 페이지의 크기를 잘 결정해야함