Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Virtualizzazione (definizione)
•Virtualizzazione della memoria: In presenza di memoria virtuale, ogni processo vede uno
spazio di indirizzamento di dimensioni indipendenti dallo spazio fisico effettivamente a
disposizione. La virtualizzazione è realizzata dal kernel del sistema operativo.
• Virtualizzazione del livello del sistema operativo: all'utente viene presentata una
partizione (container) del sistema operativo corrente, su cui installare ed eseguire
applicazioni che rimangono isolate nella partizione, pur accedendo ai servizi di uno stesso
sistema operativo
Esempi di virtualizzazione
Sistemi Guest
L’hypervisor è il mediatore unico nelle
VM1 VM2 VM3
interazioni tra le macchine virtuali e
l’hardware sottostante e garantisce:
Applicazione Applicazione Applicazione
• isolamento tra le VM (ogni macchina
Sistema Sistema Sistema virtuale è indipendente dalle altre)
Operativo Operativo Operativo
• stabilità del sistema (un crash di sistema
Hypervisor di una macchina virtuale non preclude il
funzionamento delle altre)
Hardware e Software Reale
Sistema Host
Vantaggi della Virtualizzazione
•Uso di più sistemi operativi sulla stessa macchina fisica: più ambienti di esecuzione
(eterogenei) per lo stesso utente:
- Sistemi Legacy (sistemi obsoleti ma che devono essere mantenuti attivi e operativi)
- Possibilità di esecuzione di applicazioni concepite per un particolare sistema operativo
•In ambito didattico: invece di assegnare ad ogni studente un account su una macchina
fisica, si assegna una macchina virtuale.
• L’hypervisor o Virtual Machine Monitor deve offrire alle diverse macchine virtuali le
risorse (virtuali) che sono necessarie per il loro funzionamento:
- CPU
- Memoria
- Dispositivi di I/O
• Modalità di dialogo per l’accesso alle risorse fisiche tra la macchina virtuale e
l’hypervisor:
- Virtualizzazione pura (Vmware): le macchine virtuali usano la stessa interfaccia
(istruzioni macchina) dell’architettura fisica
- Paravirtualizzazione (xen): l’hypervisor presenta un’interfaccia diversa da quella
dell’architettura hardware
Hypervisor di Sistema
• L'Architettura della CPU prevede, in generale, almeno due livelli di protezione (ring):
supervisore e utente.
- Solo l’hypervisor opera nello stato supervisore, mentre il sistema operativo e le
applicazioni (la macchina virtuale) operano nello stato utente.
Problemi:
• ring deprivileging: il sistema operativo della macchina virtuale esegue in uno
stato che non gli è proprio (esecuzione di system call)
• ring compression: se i ring utilizzati sono 2, applicazioni e sistema operativo della
macchina virtuale eseguono allo stesso livello:
- necessità di protezione tra spazio del sistema operativo e delle applicazioni.
Ring deprivileging
Possibile Soluzione:
• Se il guest tenta di eseguire un’istruzione privilegiata, la CPU notifica un’eccezione al
VMM e gli trasferisce il controllo (trap):
- il VMM controlla la correttezza della operazione richiesta e ne emula il comportamento.
Ring deprivileging (Segue)
• In caso di necessità di nuove pagine per una VM, interviene il VMM per chiedere ad
altre VM di liberare memoria.
Gestione della memoria: balloon process (Segue)
• Il VMM, comunicando direttamente con il baloon process di altre VM, chiede ad esso di
“gonfiarsi”, cioè di richiedere al proprio so guest altre pagine.
• La richiesta del balloon process provoca da parte del S.O. guest l’allocazione di nuove
pagine al balloon process, che, una volta ottenute, le cede quindi al VMM.
Stati di una macchina Virtuale
• E’ desiderabile minimizzare:
- Downtime (tempo in cui la macchina
non risponde alle richieste degli utenti)
- Tempo di migrazione
- Consumo di banda
Se il file system è condiviso tra A e B,
non c’è bisogno di copiare il file
immagine.
Migrazione tramite Precopy