너무 크면 많은 공간을 차지하게 된다...
페이지 테이블 크기를 줄이려면 -> 페이지 크기를 증가시킨다!
-> 내부 낭비 공간이 증가 (내부 단편화)
페이징과 세그멘테이션을 결합하여 페이지 테이블의 크기를 줄인다
세그먼트마다 따로 페이지테이블을 둠
-> 여전히 페이지 테이블 낭비를 하게 됨
-> 외부 단편화 유발
선형 페이지 테이블을 트리 구조로 표현
페이지 테이블을 페이지 크기의 단위로 나눔
페이지 테이블의 페이지에 유효하지 않은 항목이 있다면 할당 X
64B 페이지를 갖는 16KB 크기의 작은 주소공간.
14bit의 가상주소공간
-> 6 offset + 8 VPN
선형 페이지 테이블로 만들 떄
2^8개의 entry로 구성
페이지 테이블의 크기 : 2^8 * 4B = 1KB
2단계 페이지 테이블로 만들 때
선형 페이지 테이블을 페이지 단위로 분할
각 PTE가 4B라 가정시,,,
페이지 테이블은 (4B(엔트리 크기)16)(페이지 크기 맞춤) 16
따라서 첫 페이지 테이블은 16개의 64B 페이지로 분리
각 페이지에는 16개의 PTE 있음
VPN의 상위 4비트를 페이지 디렉토리의 인덱스로 사용하게 됨
페이지 디렉토리의 해당 항목이 무효라면 주소 접근 유효하지 않음
시스템에 여러개의 페이지 테이블 대신 하나만 둔다
페이지테이블: 물리 페이지 -> 가상 주소상의 페이지 변환
각 항목은 해당 물리페이지를 사용중인 프로세스 번호, 해당 가상 페이지 번호를 가짐
해시 테이블 사용해 물리 주소를 가상 주소로 변환
페이지 테이블을 커널 가상 메모리에 위치
메모리 부족할 경우 디스크로 스왑