전공/운영체제

20. Paging: Smaller Tables

nongdamgom 2024. 1. 14. 22:05

 

Paging : Linear Tables

  • 지금까지 배운 page table은 linear한 하나의 table임 
  • 만약 PTE의 개수가 늘어나면, page table의 size도 점점 커지게 됨
  • => 너무 큰 page table size는 memory 공간 낭비 문제가 있다.

 

Paging : Smaller Tables

  • page table 의 size 자체는 큰데, 그 큰 page table을 전부 사용하지 않는 경우도 있음
  • 다 사용하지 않는데 physical에 전부 mapping 하는 것 역시 낭비
  • => internal fragmentation

 

=> 그래서 사용하지 않는 부분은 할당하지 않기로 함

 

 

 

 

Multi-level Page Tables

  • linear 한 page table을 tree처럼 생각하는 방식

  • page table을 page size units으로 chop up (split)
  • 그렇게 나뉘어진 부분들을 page of page table 라고 부름
  • 각 page of page table에서 한 entry 라도 mapping이 되어 있으면 physical에 mapping
  • page of page table이 mapping 됐는지 여부를 판단할 new structure == page directory
  • physical mem에 아무곳에나 mapping 가능하고, mapping 한 후 page directory의 valid bit을 1로 설정 

=> page directory까지 포함해서 총 3개의 page를 physical mem에 할당

=> linear한 page table이 4개의 page를 할당하는 것에 비해 절약이 됨 

=> && linear 하면 physical mem에 연속적으로 할당 되어 있어야함 (이건 아무데나 할당 ㄱㄴ)

 

 

 

Multi-level Page Tables : Page directory

  • 아무튼 이렇게 한다
  • page directory entry (PDE)
  • PDE에 마찬가지로 PFN 존재 

 

 

Multi-level Page Tables : Adv & Disadv

  • Advantage
  • 사용하는 address space 양에 비례해서 page table 공간을 할당 받을 수 있음
  • physical mem에 어느 위치에 할당하든 상관 x
  • multi-level => space는 적게 써도 time이 늘어남 
  • => page directory도 memory에 있어서 변환시간 늘어남
  • complexity => page directory와 table을 각각 관리해야 돼서 복잡해짐.

 

 

Multi-level Page Table : Level of indirection

  • 정보를 pointer 처럼 사용하는 것을 indirection 이라고 부름
  • page directory에서 pfn을 보고 page of page table의 physical mem 위치를 추적할 수 있다는 뜻

 

 

A Detailed Multi-Level Example

 

  • PDE invalid => raise an exception (the access is invalid)

 

 

More than Two level

  • chop up 하기 전 entry 개수랑 chop up 후 entry 개수랑 헷갈리지 말자

  • 애초에 chop up 하면서 entry 개수 줄여서 multi level로 만드는게 목적임

 

 

Multi-level Page Table Control Flow

  • linear 였을 때랑 크게 다를 점 x 
  • Page directory에서 한번 더 검사 
  • PDE 가 valid 하지 않으면 할당 x
  • PDE가 valid 할 때, 그 PDE 속 PTE가  valid 한 지 이중으로 검사