사용 개념: 페이징의 주소 변환 “물리 주소 = 프레임 번호 × 페이지 크기 + 오프셋”.
이 방법을 떠올리는 신호는 “페이지 크기”, “논리 주소”, “페이지 표”가 함께 주어지는 문제다. 풀이는 늘 같은 네 하위목표로 나뉜다. 오프셋 비트 수 정하기, 논리 주소를 페이지 번호와 오프셋으로 자르기, 페이지 표에서 프레임 찾기, 프레임 번호 뒤에 오프셋 붙이기다. 16진수로 주면 4비트가 16진수 한 자리라서 자르기가 쉽다1.
문제 1 · 완전한 풀이
16비트 주소, 페이지 크기 1 K. 논리 주소 1502의 1번 페이지는 프레임 6에 있다. 물리 주소는?
답
- 오프셋 비트 수: 1 K = \(2^{10}\)이므로 오프셋 10비트, 페이지 번호 6비트.
- 자르기: 1502 = 1 × 1024 + 478. 페이지 1, 오프셋 478.
- 프레임 찾기: 페이지 1 → 프레임 6.
- 붙이기: 6 × 1024 + 478 = 6622. 2진수로 000110 0111011110.
문제 2 · 마지막 하위목표만 빈칸
32비트 주소, 페이지 크기 4 KB. 논리 주소 0x00003A7C, 페이지 표에서 페이지 3은 프레임 0x2F에 있다.
- 오프셋 비트 수: 4 KB = \(2^{12}\)이므로 오프셋 12비트 = 16진수 3자리.
- 자르기: 페이지 0x00003, 오프셋 0xA7C.
- 프레임 찾기: 페이지 3 → 프레임 0x2F.
- 붙이기: __
답
프레임 0x2F 뒤에 오프셋 0xA7C를 붙여 0x2FA7C.
문제 3 · 하위목표 절반이 빈칸
32비트 주소, 페이지 크기 4 KB. 논리 주소 0x00005123, 페이지 5는 프레임 0x10에 있다.
- 오프셋 비트 수: __
- 자르기: __
- 프레임 찾기: 페이지 5 → 프레임 0x10.
- 붙이기: 0x10 뒤에 오프셋을 붙인다.
답
- 12비트(16진수 3자리). 2. 페이지 0x5, 오프셋 0x123. 4. 0x10123.
문제 4 · 독립 문제
32비트 주소, 페이지 크기 4 KB인 시스템이다. (1) 프로세스 하나가 가질 수 있는 페이지는 최대 몇 개인가? (2) 논리 주소 0x0000BEEF의 페이지 0xB가 프레임 0x7에 있다면 물리 주소는? (3) 크기가 10,000바이트인 프로세스는 몇 페이지를 쓰고, 내부 단편화는 몇 바이트인가?
답
(1) 페이지 번호가 32 − 12 = 20비트이므로 \(2^{20}\) = 1,048,576개.
(2) 오프셋 0xEEF, 프레임 0x7 → 0x7EEF.
(3) 10,000 / 4,096 = 2.44…이므로 3페이지(12,288바이트). 내부 단편화 12,288 − 10,000 = 2,288바이트.
-
문제 1은 Stallings 6판 그림 7.11의 예다. ↩