PAGING TRANSLATION

페이징 주소 변환

가상주소는 page number와 offset으로 쪼개지고, 페이지 테이블 항목의 valid, dirty, permission 비트가 변환 성공·fault·보호 오류를 가른다.

01

주소 분해

가상주소의 상위 비트는 VPN, 하위 비트는 페이지 내부 offset으로 둔다.

page size 결정
02

TLB 조회

최근 VPN→PFN 매핑이 있으면 페이지 테이블 접근 없이 바로 변환한다.

hit 빠른 경로
03

PTE 확인

valid bit, permission bit, frame number를 읽어 접근 가능 여부를 판단한다.

page table walk
04

물리주소 조합

PFN과 offset을 합쳐 실제 메모리 주소를 만들거나 page fault handler로 넘긴다.

PFN:offset
valid=0
메모리에 없는 페이지 디스크에서 가져오거나 접근 자체가 잘못된 주소인지 OS가 판단한다.
page fault
R/W/X
읽기·쓰기·실행 권한 코드 페이지에 쓰거나 NX 페이지를 실행하면 보호 예외가 난다.
protection fault
dirty
메모리에서 수정됨 교체 시 dirty면 디스크에 다시 써야 하고 clean이면 그냥 버릴 수 있다.
write-back cost
reference
최근 접근 여부 Clock/LRU 계열 교체 알고리즘이 후보 판단에 사용한다.
replacement hint

문제 풀이 기준

offset 유지 가상주소와 물리주소의 offset은 페이지 크기가 같으면 그대로 이동한다.
TLB miss TLB miss는 곧 page fault가 아니다. 페이지 테이블에 있으면 변환은 성공한다.
권한 오류 페이지가 메모리에 있어도 요청 권한이 맞지 않으면 fault가 난다.