[2025. 중등임용 정보ㆍ컴퓨터B] 2-레벨 페이지 테이블 구조

2-레벨 페이지 테이블 구조

정답

순수 페이징: 4MB, 2-레벨에서 데이터 1회 접근 시 물리 메모리 접근 3회, 2-레벨에서 필요한 페이지 테이블 개수(A, B): 151개, 9개

출제 의도

32비트 가상주소와 4KB 페이지 조건에서 페이지 오프셋/페이지 번호 비트를 구분하고, (1) 단일(순수) 페이지 테이블의 최대 크기, (2) 2-레벨 페이지 테이블에서 주소 변환 시 필요한 메모리 접근 횟수, (3) 프로세스 크기에 따라 필요한 2단계(페이지 디렉터리+페이지 테이블) 구조의 테이블 개수를 계산하는 능력을 평가한다.

풀이 과정

페이지 크기가 4KB이므로 페이지 오프셋은 12비트이고, 32비트 가상주소에서 페이지 번호(VPN)는 20비트가 된다. 즉, 가상 페이지 수는 \(2^{20}\)개이다.

순수 페이징 기법에서는 프로세스 크기와 무관하게 최대 크기의 페이지 테이블을 가진다고 했으므로, 엔트리 수는 \(2^{20}\)개이며 각 엔트리는 4바이트이므로 전체 크기를 계산한다.

$$ \text{페이지 테이블 크기}=2^{20}\times 4\ \text{bytes}=2^{22}\ \text{bytes}=4{,}194{,}304\ \text{bytes}=4\ \text{MB} $$

2-레벨 페이지 테이블에서는 페이지 디렉터리와 (해당되는) 페이지 테이블이 모두 물리 메모리에 있으므로, TLB가 없다고 보면 주소 변환 및 실제 데이터 접근에 필요한 물리 메모리 접근은 “페이지 디렉터리 1회 + 페이지 테이블 1회 + 데이터 1회”로 총 3회이다.

각 페이지 테이블 엔트리가 4바이트이고, 페이지 테이블도 메모리에 페이지(4KB) 단위로 적재되므로 한 개의 2단계 페이지 테이블(2레벨의 페이지 테이블 한 장)이 담을 수 있는 엔트리 수는 \(4\text{KB}/4\text{B}=1024\)개이다. 따라서 한 개의 2레벨 페이지 테이블이 매핑하는 가상 메모리 크기는 \(1024\times 4\text{KB}=4\text{MB}\)이다.

$$ \text{2레벨 페이지 테이블 1개가 커버하는 크기}=1024\times 4\text{KB}=4\text{MB} $$

프로세스 A는 600MB이므로 필요한 2레벨 페이지 테이블 수는 \(600/4=150\)개이고, 여기에 페이지 디렉터리 1개가 항상 필요하므로 총 \(150+1=151\)개이다.

$$ A:\ \frac{600\text{MB}}{4\text{MB}}=150\ \Rightarrow\ 150+1=151 $$

프로세스 B는 30MB이므로 \(30/4=7.5\)이어서 올림하여 2레벨 페이지 테이블이 8개 필요하며, 페이지 디렉터리 1개를 더해 총 \(8+1=9\)개이다.

$$ B:\ \left\lceil\frac{30\text{MB}}{4\text{MB}}\right\rceil=\lceil 7.5\rceil=8\ \Rightarrow\ 8+1=9 $$

<풀이가 부정확할 수 있으니 반드시 교차검증 확인 바랍니다.>