OS와 하드웨어

중첩 페이징(2단 주소 변환)을 사용한 가상화에서 하드웨어가 수행하는 주소 변환에 대한 설명으로 올바른 것은 무엇입니까?

  1. A가상 머신 OS의 페이지 테이블만 따라가고 하이퍼바이저의 표는 사용하지 않는다
  2. B게스트 가상 → 게스트 물리 → 호스트 물리의 2단으로 변환한다
  3. C하이퍼바이저가 모든 메모리 접근을 가로채 소프트웨어로 한 번씩 변환한다
정답과 해설 보기

정답: B. 게스트 가상 → 게스트 물리 → 호스트 물리의 2단으로 변환한다

가상 머신의 OS는 자신이 관리하는 물리 주소(게스트 물리 주소)가 실제 메모리라고 생각하지만, 실제로는 하이퍼바이저가 할당한 다른 위치에 있습니다. 중첩 페이징에서는 하드웨어가 게스트의 페이지 테이블로 게스트 물리 주소까지 변환하고, 다시 하이퍼바이저의 표로 호스트의 물리 주소까지 변환합니다. 게스트가 페이지 테이블을 고쳐 쓸 때마다 하이퍼바이저가 개입할 필요가 없어집니다. 모든 접근을 소프트웨어로 변환해서는 너무 느립니다.

  • A. 하이퍼바이저의 표도 사용하여 2단으로 변환합니다.
  • B. 올바릅니다. 게스트 가상 → 게스트 물리 → 호스트 물리의 2단으로 변환합니다.
  • C. 모든 것을 소프트웨어로 변환하면 너무 느립니다.
이 분야 연습하기 분야로 돌아가기

OS와 하드웨어의 다른 문제

  1. 게스트도 호스트도 4단 페이지 테이블을 사용하는 중첩 페이징에서 TLB 미스가 발생했을 때, 최악의 경우 몇 번의 메모리 접근이 필요합니까?
  2. 가상 머신의 OS가 특권이 필요한 명령을 실행했을 때 하이퍼바이저로 처리가 넘어가고, 하이퍼바이저가 그 명령의 효과를 대신 재현하는 방식을 무엇이라고 합니까?
  3. 준가상화(paravirtualization)에 대한 설명으로 올바른 것은 무엇입니까?
  4. 컨테이너와 가상 머신의 차이로 올바른 것은 무엇입니까?
  5. 많은 OS에서 커널 영역을 각 프로세스의 주소 공간 일부(예를 들어 상위 범위)에 할당해 두고, 페이지 테이블의 보호 비트로 사용자 모드에서의 접근을 금지합니다. 이 배치의 주된 이점은 무엇입니까?

이 분야의 비교