sparse한 페이지 테이블은 오버 헤드 큼.
Outter, Inner 페이지를 통해 각각 10비트씩 나누는 2-level page table
→ 20비트 페이지 번호를 10비트 두 개로 나누고, 이 두 개는 11비트로 표현할 수 있음
페이지 테이블을 찾아가는 Table Walking
→ 페이지 테이블 시작 주소에서 P1 이동, P2 이동, d 오프셋 이동한 실제 피지컬 메모리 데이터 X 도착
32비트 컴퓨터의 경우 2 level 페이지 테이블 기법을 통해 매우 쉽게 오버헤드를 줄일 수 있음
64비트 컴퓨터의 경우 42비트 P1, 10비트 P2, 12비트 오프셋 비트로 사용하게 되는 2 level 페이지 테이블 기법이 적용되기 때문에 그렇게 효율적이지 않음(2^42 비트 크기는 매우 비효율적)
64비트에 적합한 용도로 레벨을 늘리게 되면 outter 페이지가 여러 개로 늘어나게 된다! 하지만 페이지 레벨이 많을 때 생기는 시간 부담을 감수해야 한다.
모든 가상 메모리가 모든 물리 메모리에 할당되어 있지 않기 때문이다!
PID, P를 통해 페이지 테이블을 검색하고, 오프셋 d를 더해 물리 메모리 주소로 곧바로 찾아간다!
swap-in
될 것!Baking store(storage)
에서 페이지 내용을 다시 프레임에 가져오기페이지 폴트의 개수는 프로그램 성능과 직결! 프레임의 개수와 페이지 폴트의 발생 빈도는 일반적으로 반비례. 프레임이 많다면 찾아야 할 가상 주소의 페이지가 할당될 가능성이 높기 때문이다!