OS와 하드웨어
페이지 크기가 4 KB일 때, 32비트 가상 주소 0x00403ABC의 페이지 번호와 페이지 내 오프셋의 조합으로 올바른 것은 무엇입니까?
- A페이지 번호 0x00403, 오프셋 0xABC0
- B페이지 번호 0x004, 오프셋 0x03ABC
- C페이지 번호 0x00403, 오프셋 0xABC
정답과 해설 보기
정답: C. 페이지 번호 0x00403, 오프셋 0xABC
페이지 크기 4 KB = 2¹²이므로 하위 12비트(16진수로 아래 3자리)가 오프셋이고, 나머지 상위 20비트(위 5자리)가 페이지 번호입니다. 0x00403ABC를 나누면 페이지 번호는 0x00403, 오프셋은 0xABC입니다. 페이지 테이블에서 0x00403을 물리 페이지 번호로 변환하고, 거기에 0xABC를 이어 붙인 것이 물리 주소가 됩니다. 아래 4자리나 5자리를 오프셋으로 삼는 것은 페이지 크기를 64 KB나 1 MB로 착각한 나누기입니다.
- A. 오프셋 0xABC0은 자릿수가 어긋나 있습니다.
- B. 아래 5자리를 오프셋으로 하는 것은 1 MB 페이지인 경우입니다.
- C. 올바릅니다. 아래 3자리 0xABC가 오프셋, 위 5자리 0x00403이 페이지 번호입니다.