Paging
Page Table
Page Table Entry(PTE)
Protection
Context switch될 때, Page Table Base Register(PTBR)가 process에 맞게 설정된다.
하지만 process는 자신의 페이지 테이블을 통해서만 메모리에 접근하기 때문에 프로세스가 다른 프로세스의 페이지 테이블을 가리킬 방법이 없다.
그래서 Valid bit, prot을 적절히 설정해 준다.
paging structure
32-bit크기의 CPU와 4KB의 크기의 Page가 있다고 가정해보자
Page의 총 수는 2^32/2^12 = 2^20 = 1M 이다.
Page table entry크기가 4Byte이므로 한 프로세스의 page table의 크기는 4MB 이다.
100개의 프로세스를 실행시킨다면 400MB의 페이지 테이블이 필요하기 때문에 페이지 테이블이 너무 커진다. 그래서 효율적으로 page table을 관리할 방법이 필요하다.
해결방법으로 Hierarchical page table, Hash Page table, Inversion page table을 사용한다.
Hierarchical page table
TLB
MMU는 TLB를 확인
TLB hit: TLB에 Page Table이있으면 PA변환
TLB miss: Page table을 통해 PA변환
Hash Page table
Inversion Page table
[참고] Operating Systems Three Easy Pieces/Remzi H.Arpaci-Dusseau/ CreateSpace Publishing