Page Table
Page Table은 프로세스의 페이지를 RAM의 물리 페이지 프레임에 매핑하기 위한 자료구조이다.
- Page Table은 프로세스별로 따로 관리된다.
- Page 갯수만큼 Page Table에 entry가 생성된다. 그리고 각 entry는 물리적 주소를 갖는다.
- 메모리에 상주하며 이로 인해 모든 메모리 접근 연산은 2번의 memory access가 발생한다.
- Page Table은 MMU에 의해 관리된다.
- 자주 사용되는 주소는 TLB라는 캐싱 계층에 저장한다. (페이지 테이블에 접근하는 횟수를 줄이기 위해)
INFO
페이지 번호는 Page Table를 조회할 때 인덱스 역할을 한다.
PTBR
프로세스마다 페이지 테이블이 있고 메모리에 저장된다.
각 페이지 테이블은 CPU 내의 PTBR(Page-table base register)이 가리킨다.

PTLR
각 페이지 테이블의 길이는 PTLR(Page-table length register)이 가리킨다.
페이징에서의 주소 변환
페이징 시스템에서의 논리 주소는 페이지 번호(page number)와 변위(offset)을 가지고 있다.
페이지 테이블을 통해 <페이지 번호, 변위> → <프레임 번호, 변위>로 변환한다.

PTE
페이지 테이블 각각의 행을 Page Table Entry라고 부른다. PTE에는 일반적으로 해당 가상 페이지가 매핑된 물리 프레임 번호와 페이지의 상태 및 접근 권한을 나타내는 여러 비트가 저장된다.
- 유효 비트: 현재 해당 페이지에 접근 가능한지 여부 (유효 비트가 0인 페이지에 접근시 Page Fault 발생)
- 보호 비트: 해당 페이지에 대한 접근 권한을 나타냄 (Read/Write/Execute)
- 참조 비트: CPU가 이 페이지에 접근한 적이 있는지 여부 (OS는 이를 페이지 교체 알고리즘에서 활용)
- 수정 비트: CPU가 이 페이지에 데이터를 쓴 적이 있는지 여부 (메모리와 디스크의 데이터 정합성)
- 메모리에 페이지가 사라질때 보조기억장치에 쓰기 작업을 해야 하는지 판단의 재료
INFO
구체적인 구성은 CPU 아키텍처와 OS에 따라 다르다.
