19.05.2013 Views

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Alla base <strong>di</strong> AMD-V c’è l’istruzione VMRUN: questa prende, come singolo argomento,<br />

l’in<strong>di</strong>rizzo fisico <strong>di</strong> una pagina <strong>di</strong> 4KB, il VMCB, che descrive una macchina virtuale guest<br />

che deve essere eseguita.<br />

Il VMCB contiene:<br />

Figura 3.8: AMD-V<br />

una lista <strong>di</strong> quali istruzioni o eventi nel guest (per esempio scrittura nel CR3)<br />

devono essere intercettate,<br />

vari bit <strong>di</strong> controllo che specificano l’ambiente <strong>di</strong> esecuzione del guest o che<br />

in<strong>di</strong>cano azioni particolari da effettuare prima dell’esecuzione del guest,<br />

lo stato del processore del guest (guest processor state – il contenuto <strong>di</strong> alcuni<br />

registri, come i control registers) nella VMCB state-save area.<br />

L’istruzione VMRUN salva nella memoria principale lo stato del processore dell’host (host<br />

processor state) e carica il guest state dalla VMCB state-save area; inoltre legge i bit <strong>di</strong><br />

controllo dalla VMCB, che permettono, ad esempio, all’hypervisor <strong>di</strong> azzerare la TLB del<br />

guest, trasmettere interruzioni virtuali al guest (interrupt injection), e infine controlla il guest<br />

state caricato: se lo stato è illegale, il processore torna nell’Host Mode, con l’eccezione<br />

#VMEXIT. Se, invece, non si riscontrano problemi nel guest state, il processore continua<br />

l’esecuzione nel Guest Mode finché si verifica un evento da intercettare (specificato nel<br />

VMCB), in conseguenza del quale il processore sospende l’esecuzione del guest e riprende<br />

l’esecuzione host all’istruzione seguente VMRUN (anche in questo caso avviene la<br />

#VMEXIT). VMRUN salva o ripristina una minima quantità dell’informazione sullo stato per<br />

permettere all’hypervisor <strong>di</strong> riprendere l’esecuzione dopo l’uscita dal Guest Mode: in questo<br />

modo l’hypervisor gestisce più velocemente le con<strong>di</strong>zioni da intercettare.<br />

57

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!