Operating System
virtualization techniques
jianna6
2015. 3. 6. 16:43
hardware Solution
Hardware-Assist Virtualization :
CPU의 지원을 받음으로써 가상화 방식의 가장 큰 과부화였던 Binary Translation이 없앴다.
Non-Root mode와 root mode privilege level을 가진다.
AMD 가상화 (AMD-V)
64비트 x86 아키텍처에 대한 AMD의 가상화 확장
인텔 가상화 기술 (인텔 VT)
인텔 VT는 IA-32 (VT-x)를 위한 가상화 기술, IA-64 (VT-i)를 위한 가상화 기술, Directed I/O (VT-d)를 위한 가상화 기술, Connectivity (VT-c)를 위한 가상화 기술로 이루어져 있다
Software Solution
Binary Translation
Hyper call
virtualization techniques
emulator : 운영체제와 하드웨어를 1:1로 matching하여 명령어를 수정해준다.
emulation engine이 guest OS와 HW사이에 binary translation을 수행한다.
예를 들어 guestOS가 Andriod이고, HW가 intel이면, MOV r0,r1 명령어를 MOV EAX, EDX 명령어로 변환한다.
Full Virtualization : guest OS의 수정이 필요 없으며, 시스템 전체를 가상화한다.
guest OS와 HW사이에 ring0레벨의 Virtual Machine Monitor(=hypervisor) 를 가진다.
VMM은 가상머신을 모니터링하는 소프트웨어 계층으로 하드웨어 자원관리, 가상 머신 스케쥴링 등 가상머신을 동작시키는데 필요한 모든 작업을 담당한다. Binary Translation을 수행한다.
Para Virtualization : guest OS의 수정이 필요하다.
modified guest OS와 HW사이에 ring0레벨의 Virtual Machine Monitor(=hypervisor) 를 가진다.
KVM도 type1으로 보기그렇고, Xen도 애매한 반가상화라고 부르는게 참 구분이 애매모호해보인다.
요즘엔 기술의 발전으로 type1이든 type2이든 성능에서는 크게 차이를 보이지 않는다.
튜닝이나 코딩만 잘하면 된다...
CPU 가상화
특권 명령, 제어 명령, 동작 명령
I/O 가상화
MMU가상화 : physical memory에 접근하는 모든 특권 명령어는 trap되고, 새로이 허용된 영역에 mapping된 주소로 대체된다.
GPU가상화 :
split Device Driver
Direct Assignment
IOMMU