Intel Virtualization Technology
Z Wikipedii
Intel Virtualization Technology, VT – stosowana w mikroprocesorach Intel technika, dzięki której pojedynczy procesor może zachowywać się tak, jakby był kilkoma procesorami działającymi równolegle, pozwalając systemowi na pracę kilku procesów jednocześnie.
[edytuj] Opis
Łatwo pomylić wirtualizację z wielozadaniowością czy nawet z technologią HyperThreading. W przypadku wielozadaniowości jest tylko jeden system operacyjny i kilka działających równolegle programów. W przypadku wirtualizacji możemy mieć kilka systemów pracujących równolegle, przy czym na każdym z nich będzie działało kilka programów. Każdy z systemów operacyjnych pracuje na "procesorze wirtualnym" lub "maszynie wirtualnej". Natomiast HyperThreading symuluje dwa procesory przy jednym tylko fizycznie CPU, równoważąc ich pracę za pomocą tzw. wieloprocesorowości symetrycznej (SMP, ang. Symmetric Multi Processing), ale nie można ich używać jako osobnych procesorów.
Oczywiście jeżeli procesor ma i technologię wirtualizacji, i HyperThreading, to każdy z wirtualnych procesorów będzie się pokazywał systemowi operacyjnemu tak, jakby w systemie dostępne były dwa procesory do symetrycznego wieloprzetwarzania.
Jeżeli przyjrzymy się bliżej, to technologia wirtualizacji wykorzystuje tę samą ideę trybu wirtualnego 8086 (V86), która jest obecna już od procesorów 386. Za pomocą trybu V86 można stworzyć kilka wirtualnych maszyn 8086, obsługujących równolegle programy DOS-u. Za pomocą VT można stworzyć kilka "kompletnych" maszyn wirtualnych, obsługujących równolegle pełne systemy operacyjne.
[edytuj] Rozkazy
Procesory z technologią wirtualizacji mają dodatkową listę rozkazów, zwanych rozszerzeniami maszyny wirtualnej albo VMX. VMX daje procesorowi 10 nowych rozkazów charakterystycznych dla wirtualizacji: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXOFF oraz VMXON.
W wirtualizacji można stosować dwa tryby: operację główną i operację niegłówną. Zazwyczaj tylko oprogramowanie sterujące wirtualizacją, zwane monitorem maszyny wirtualnej (VMM), działa w czynności głównej, natomiast systemy operacyjne działające na wierzchu maszyn wirtualnych działają w czynności nie-głównej. Oprogramowanie działające na wierzchu maszyny wirtualnej nazywane jest również "oprogramowaniem gościnnym".
Aby wejść w tryb wirtualizacji oprogramowanie powinno wykonać instrukcję VMXON, a następnie wywołać oprogramowanie VMM. Wtedy oprogramowanie VMM może wchodzić na każdą z maszyn wirtualnych za pomocą instrukcji VMLAUNCH, a wychodzić za pomocą VMRESUME. Jeśli VMM chce się wyłączyć i opuścić tryb wirtualizacji, wówczas wykonuje instrukcję VMXOFF.