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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

In ogni caso, l’hypervisor deve operare in maniera trasparente senza pesare con la propria<br />

attività sul funzionamento e sulle prestazioni dei sistemi operativi; svolge attività <strong>di</strong> controllo<br />

al <strong>di</strong> sopra <strong>di</strong> ogni sistema, permettendone lo sfruttamento anche come debugger delle attività<br />

dei sistemi operativi e delle applicazioni in modo da scoprire eventuali malfunzionamenti;<br />

alloca le risorse <strong>di</strong>namicamente quando e dove sono richieste, isola l’architettura da problemi<br />

a livello <strong>di</strong> sistema operativo ed applicativo, rende possibile la gestione e la con<strong>di</strong>visione <strong>di</strong><br />

risorse.<br />

L’hypervisor si può considerare come il motore della virtualizzazione, in quanto gestisce le<br />

risorse hardware da virtualizzare, consentendo la con<strong>di</strong>visione <strong>di</strong> risorse e la possibilità <strong>di</strong><br />

eseguire contemporaneamente <strong>di</strong>versi sistemi operativi guest, “facendo pensare” a ogni OS <strong>di</strong><br />

avere accesso esclusivo all’hardware fisico (che in realtà è virtualizzato).<br />

Per le sue funzioni, l’hypervisor è un software molto complesso e <strong>di</strong>fficile da progettare, e<br />

inoltre può avere un impatto negativo sulle prestazioni del sistema, in quanto l’hardware<br />

virtuale è più lento <strong>di</strong> un hardware fisico non virtualizzato (soprattutto se la virtualizzazione<br />

viene effettuata con tecniche solo software). Inoltre, poiché i sistemi operativi guest (Linux,<br />

Windows i più comuni) non sono progettati per essere eseguiti su una macchina virtuale, si<br />

possono avere numerosi problemi <strong>di</strong> esecuzione, ed è <strong>di</strong>fficile per il software hypervisor<br />

inglobare completamente il sistema operativo guest.<br />

1.3 Richiami <strong>di</strong> sistemi operativi<br />

Memoria virtuale<br />

Molto prima che si arrivasse al concetto <strong>di</strong> virtualizzazione <strong>di</strong> un intero sistema hardware,<br />

esisteva una tecnica per virtualizzare la gestione della memoria: la tecnologia <strong>di</strong> memoria<br />

virtuale permetteva a un sistema o un processo con una quantità limitata <strong>di</strong> memoria fisica, <strong>di</strong><br />

<strong>di</strong>sporre <strong>di</strong> una quantità <strong>di</strong> memoria molto più grande <strong>di</strong> quella fisicamente <strong>di</strong>sponibile. Il<br />

meccanismo più utilizzato è il paging: la memoria fisica è sud<strong>di</strong>visa in tanti blocchi (pagine o<br />

pages) e a ogni blocco è assegnato un numero <strong>di</strong> pagina [6].<br />

Chiamando VA (Virtual Addresses) le pagine <strong>di</strong> memoria, ovvero lo spazio <strong>di</strong> in<strong>di</strong>rizzamento<br />

che un singolo processo vede ed usa a suo piacimento, e PA (Physical Addresses) le pagine <strong>di</strong><br />

10

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

Saved successfully!

Ooh no, something went wrong!