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.

virtualizzazione dell’I/O), e anche dalla virtualizzazione software-only alla hardware-assisted<br />

virtualization, tutt’oggi in evoluzione, che permette, come vedremo, <strong>di</strong> ottenere prestazioni<br />

elevate quasi alla pari <strong>di</strong> quelle conseguibili in sistemi nativi.<br />

2.1 Virtualizzazione dell’hardware<br />

La principale tipologia <strong>di</strong> virtualizzazione è l’hardware virtualization (o platform<br />

virtualization), che prevede la creazione <strong>di</strong> una macchina virtuale che agisce come un<br />

computer reale , nascondendo agli utenti le caratteristiche fisiche dell’hardware e mostrando,<br />

invece, una piattaforma hardware astratta. La virtualizzazione hardware viene svolta da un<br />

software “host” (control program, hypervisor), che crea un ambiente informatico simulato (la<br />

macchina virtuale), per il suo software “guest”; quest’ultimo si esegue come se “girasse”<br />

<strong>di</strong>rettamente sull’hardware fisico, ovviamente con alcune limitazioni dovute alla macchina<br />

virtuale [12].<br />

In questo tipo <strong>di</strong> virtualizzazione, l’hypervisor deve controllare e me<strong>di</strong>are tutte le operazioni<br />

privilegiate effettuate dal guest, “dando l’impressione” al guest <strong>di</strong> essere in esecuzione<br />

sull’hardware fisico: per esempio quando il guest usa il supporto <strong>di</strong> paging del processore per<br />

la traslazione degli in<strong>di</strong>rizzi (ve<strong>di</strong> memoria virtuale), l’hypervisor si deve assicurare che il<br />

guest osservi un comportamento equivalente a quello che si avrebbe su un hardware non<br />

virtualizzato (fisico).<br />

La virtualizzazione hardware richiede che ogni caratteristica saliente dell’architettura<br />

hardware si rifletta in una o <strong>di</strong>verse macchine virtuali, compreso tutto l’insieme <strong>di</strong> istruzioni<br />

della CPU, operazioni <strong>di</strong> I/O, interruzioni, accesso alla memoria.<br />

Si possono in<strong>di</strong>viduare tre tipi <strong>di</strong> virtualizzazione hardware: software virtualization(detta<br />

anche full virtualization), partial virtualization (o anche paravirtualization) e hardware-<br />

assisted virtualization. Tutti e tre gli approcci richiedono la presenza dell’hypervisor che<br />

alloca le risorse della macchina <strong>di</strong> base come la memoria e la CPU, ma usano mo<strong>di</strong> <strong>di</strong>versi per<br />

“convincere” il sistema operativo guest <strong>di</strong> essere l’unico in esecuzione [11].<br />

La Full Virtualization fa in modo che l’hypervisor veda le operazioni hardware che l’OS usa<br />

per leggere o mo<strong>di</strong>ficare lo stato del sistema o eseguire le operazioni <strong>di</strong> I/O per poi emularle<br />

via software e avere come risultati co<strong>di</strong>ci <strong>di</strong> stato consistenti con quelli che avrebbe fornito<br />

l’hardware reale: questa tecnica è detta trap-and-emulate [13]. Ogni istruzione privilegiata <strong>di</strong><br />

24

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

Saved successfully!

Ooh no, something went wrong!