Wirtualizacja

Opis strategii

Idea wirtualizacji polega na wykonywaniu możliwie największego zbioru instrukcji programu uruchomionego w maszynie wirtualnej bezpośrednio na procesorze. Natomiast wszystkie instrukcje, które zmieniają lub odczytują dane związane ze stanem systemu muszą być emulowane. Jeśli architektura sprzętu, na których uruchomiona jest maszyna wirtualna, wspiera proces wirtualizacji wtedy wszystkie próby wykonania tych instrukcji na nieodpowiednim poziomie uprawnień powodują wywołanie przerwania. Po takim wywołaniu monitor maszyny wirtualnej może w odpowiedni sposób emulować działanie wywołanej instrukcji. Niestety najpopularniejsza obecnie platforma sprzętowa (x86) nie wspiera w sposób naturalny wirtualizacji (patrz rozdział Architektura IA-32).

Zalety wirtualizacji

  • znaczny wzrost wydajności w porównaniu do emulacji.

Wady wirtualizacji

  • programy działające w maszynie wirtualnej musze używać tego samego ISA (Instruction Set Architecture) co maszyna na której są faktycznie wykonywane
  • Znaczny wzrost trudności implementacji w przypadku architektur nie wspierających wirtualizacji.

Przykłady programów