OS와 하드웨어

페이지 크기가 4 KB일 때, 32비트 가상 주소 0x00403ABC의 페이지 번호와 페이지 내 오프셋의 조합으로 올바른 것은 무엇입니까?

  1. A페이지 번호 0x00403, 오프셋 0xABC0
  2. B페이지 번호 0x004, 오프셋 0x03ABC
  3. 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이 페이지 번호입니다.
이 분야 연습하기 분야로 돌아가기

OS와 하드웨어의 다른 문제

  1. RISC-V 특권 아키텍처에서 정해진 주요 동작 모드의 조합으로 올바른 것은 무엇입니까?
  2. 인터럽트나 예외 처리를 마치고 원래 프로그램으로 돌아갈 때, 일반 함수의 복귀 명령이 아니라 전용 복귀 명령(RISC-V의 sret, mret 등)을 사용하는 이유는 무엇입니까?
  3. 실시간성이 요구되는 시스템에서, 인터럽트가 발생하고 나서 핸들러가 동작하기 시작할 때까지의 시간(인터럽트 지연)을 크게 만드는 요인으로 가장 적절한 것은 무엇입니까?
  4. NMI(마스크 불가능 인터럽트, non-maskable interrupt)에 대한 설명으로 올바른 것은 무엇입니까?
  5. 여러 코어를 가진 시스템에서 OS가 어떤 페이지의 페이지 테이블 항목을 고쳐 써서 대응을 취소했을 때 필요한 처리로 올바른 것은 무엇입니까?

이 분야의 비교