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의 장점
- Memory fragmentation(external fragmentation)을 없앰
- swapping이 용이해진다.(=메모리를 분할하는 크기를 swapping단위로 만들면 된다.)
- address reference가 two-way이므로 이에따른 오버헤드가 발생한다
- Page Table의 크기가 상당히 방대하므로(ex. 16MB) 이에따른 디스크 Swapping이 발생하거나 메모리를 낭비하는 문제가 발생한다.
- Context-Switching시 Page Table을 update해야 하는 오버헤드가 발생한다.
'운영체제 > Segmentation and Paging' 카테고리의 다른 글
Segmentation and Paging - (3) Paged Segmentation (0) | 2019.03.27 |
---|---|
Segmentation and Paging - (1) Segmentation (0) | 2019.03.26 |