VIRTUALIZATION

가상화 trap 처리

guest OS는 자신이 하드웨어를 독점한다고 생각하지만, privileged instruction과 장치 접근은 hypervisor가 trap, emulation, paravirtual driver로 중재한다.

01

guest 실행

일반 명령은 CPU에서 직접 실행해 성능 손실을 줄인다.

direct execution
02

privileged trap

특권 명령이나 민감한 자원 접근은 hypervisor로 제어가 넘어간다.

VM exit
03

중재/에뮬레이션

hypervisor가 안전한 실제 동작으로 바꾸거나 가상 장치 응답을 만든다.

emulation
04

guest 복귀

결과를 guest 상태에 반영하고 다시 VM 안으로 돌려보낸다.

VM entry
CPU
trap-and-emulate 또는 hardware assist VT-x/AMD-V가 VM exit/entry를 지원해 특권 명령 처리를 안정화한다.
권한 경계
Memory
guest VA→guest PA→host PA EPT/NPT 같은 2단계 주소 변환으로 각 VM 메모리를 격리한다.
nested paging
Device
emulated device 또는 virtio 완전 에뮬레이션은 기존 OS 수정을 줄이고 virtio는 guest 협력으로 I/O 비용을 낮춘다.
I/O 경로
Nested
VM 안에서 다시 VM 실행 교육/클라우드 환경에 유용하지만 VM exit 비용과 기능 제한을 확인해야 한다.
nested virtualization

trap 빈도와 VM 성능 영향

성능 병목 CPU보다 I/O와 메모리 변환에서 오버헤드가 더 크게 보이는 경우가 많다.
격리 경계 VM은 커널을 분리하지만 hypervisor 취약점은 모든 guest에 영향을 줄 수 있다.
드라이버 선택 가능하면 virtio/paravirtual driver로 장치 경로 비용을 줄인다.