본문 바로가기

운영체제/Segmentation and Paging

Segmentation and Paging - (2) Paging

Segmentation and Paging - (2) Paging

Paging
- Logical memory, Physical memory를 동일한 memory block 크기로 나눈다.
- 동일한 크기의 logical memory단위를 page, physical memory단위를 frame이라 한다.
- 그 이후에 MMU가 Page Table을 참조하여 virtual address를 physical address로 메모리를 변환한다.(memory translation)

<그림 1 : virtual address 구성>

<그림 2 : memory translation>

Paging은 Segmentation기법과 마찬가지로 main memory에 page table을 구성하고 MMU가 이를 참조함으로써 가상 주소(virtual address)를 물리 주소(physical address)로 변환한다.

예를들어, 32bit 시스템에서 2^12(=4K)크기의 page를 사용하면 page의 개수는 2^20개이고, page table의 각 entry는 4B이므로 page table의 크기는 2^20 * 4B = 16MB가 된다.

memory translation은 가상 주소의 상위 20bit(=page table index)에 해당하는 page table entry를 찾아서 해당 entry에는 그에 맞는 physical address가 저장되어 있으므로 이를 <그림 2>와 같이 변환한다.(page offset은 그대로 사용한다.)

MMU는 Page Table에 접근하기 위해 PTBR(Page Table Base address Register)를 갖는다.

Paging의 장점

  1. Memory fragmentation(external fragmentation)을 없앰
  2. swapping이 용이해진다.(=메모리를 분할하는 크기를 swapping단위로 만들면 된다.)
Paging의 단점
  1. address reference가 two-way이므로 이에따른 오버헤드가 발생한다
  2. Page Table의 크기가 상당히 방대하므로(ex. 16MB) 이에따른 디스크 Swapping이 발생하거나 메모리를 낭비하는 문제가 발생한다.
  3. Context-Switching시 Page Table을 update해야 하는 오버헤드가 발생한다.