페이징 기본 구조

페이징은 고정 크기 매핑으로 연속 배치 요구를 없앤다

페이징은 논리 주소 공간을 페이지로, 물리 메모리를 프레임으로 쪼개 같은 크기끼리 매핑합니다. 프로세스가 물리적으로 이어진 공간을 차지할 필요가 없어 외부 단편화를 크게 줄입니다.

01

주소 분류

논리 주소는 page number와 offset으로 나뉘고 offset은 프레임 안 위치로 그대로 유지됩니다.

address
02

페이지 테이블을 조회한다

page number로 frame number와 권한, valid bit를 찾아 실제 물리 주소를 만듭니다.

page table
03

분산 배치를 허용한다

각 페이지는 서로 다른 프레임에 놓일 수 있어 이어진 물리 공간이 필요 없습니다.

non-contiguous
04

TLB로 비용 축소

매번 페이지 테이블을 메모리에서 찾으면 느리므로 최근 변환을 TLB에 캐시합니다.

cache
Page number
페이지 테이블 인덱스 어느 논리 페이지인지 나타내고 frame number를 찾는 데 쓰입니다.
index
Offset
페이지 안 위치 페이지와 프레임 크기가 같으므로 변환 후에도 같은 offset을 씁니다.
within
Valid bit
이 페이지가 현재 메모리에 있고 접근 가능한지 표시 없거나 권한이 맞지 않으면 fault나 protection exception으로 이어집니다.
점검

단편화 · 테이블 크기 · 권한 점검

단편화 외부 단편화는 줄지만 마지막 페이지의 내부 단편화는 남습니다.
테이블 크기 주소 공간이 커질수록 페이지 테이블 자체의 크기도 설계 문제가 됩니다.
권한 읽기, 쓰기, 실행 권한이 페이지 단위로 어떻게 적용되는지 봅니다.