Anteprima
Vedrai una selezione di 1 pagina su 5
Sistemi operativi: macchine virtuali, paravirtualizzazione, stati di processi Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Virtualizzazione di tipo 1 e tipo 2

E’ una sorta di SO che viene lanciato al momento del boot, ha il completo controllo dell’hardware. La comunicazione tra macchine virtuali e hardware è diretta e passa solamente attraverso l'hypervisor.

Vantaggi della virtualizzazione di tipo 2

Viene introdotto un nuovo livello tra le VM e l'hardware, ossia il sistema operativo dell'host. Può controllare diverse VM e funziona in modalità utente (come una normale app).
  • Bloccare lo stato della VM per poi recuperarlo in seguito
  • Parti semplici, flessibili e facili da mantenere
  • Completa protezione delle risorse di sistema
  • Rende facile lo sviluppo di un SO

Svantaggi della virtualizzazione di tipo 2

L’isolamento della VM rende complessa la condivisione di risorse. Ciò si supera con la creazione di reti di VM virtuali, il NAT DHCP permette di avere una protezione delle VM rispetto la rete virtuale.

Gestione delle chiamate di sistema

Esistono 3/4 modalità: Utente virtuale, Kernel virtuale, [utente fisico], kernel fisico. Quando si...esegue un'istruzione privilegiata nella modalità utente di un sistema ospite si provoca una TRAP (eccezione) che viene gestita dal kernel fisico, dopodiché il controllo torna all'utente virtuale. L'ambiente ospite ha in questo modo l'illusione che la chiamata sia stata gestita dal kernel virtuale. 2. Caratteristiche principali della Paravirtualizzazione L'ambiente ospite non ha più l'illusione di avere a disposizione il completo hardware, ma ha a disposizione delle speciali API con funzionalità molto simili a quelle fisiche dell'host. Per questo motivo il sistema operativo guest non può essere lo stesso della virtualizzazione classica, ma il suo kernel deve essere invece necessariamente modificato (per permettere un corretto funzionamento delle API). Il SO ospitato deve essere modificato, se una istruzione di questo sistema genera una TRAP, ne deve gestire le conseguenze. Questo metodo può venir visto come una sorta di paravirtualizzazione.binary rewriting, con la differenza che viene eseguito a tempo di compilazione, anziché di esecuzione (come nel binary rewriting). Queste modifiche riguardano ad esempio le hypercall, ossia chiamate che il sistema guest esegue per interagire con le risorse fisiche del sistema (queste chiamate vengono indirizzate all'hypervisor che se ne occupa). Nella paravirtualizzazione non si ha la completa emulazione dell'hardware e di conseguenza un blocco di un sistema guest potrebbe avere ripercussioni anche sulle altre macchine ospitate (ed eventualmente sull'host stesso). Quando il SO guest prova ad eseguire istruzioni privilegiate, il VMM "intrappola" l'operazione e le esegue correttamente, effettuando quindi hypercall per interagire con le risorse del sistema. L'hypervisor controlla ed interrompe eventuali attività pericolose. Tra gli altri, i vantaggi della virtualizzazione che i sostenitori della tecnologia vedono in questa soluzione benprogettata sono di riduzione dei costi consolidando l'hardware. L'hypervisor alloca le risorse dinamicamente quando e dove necessario, riduce in modo drastico il tempo necessario alla messa in opera di nuovi sistemi, isola l'architettura nel suo complesso da problemi a livello di sistema operativo ed applicativo. 3. Descrivere gli stati dei processi e le loro transizioni Un processo, durante la sua esecuzione, è spesso soggetto a cambiamenti di stato: - NUOVO: il processo è appena stato creato - PRONTO: il processo attende di essere assegnato alla CPU - ESECUZIONE: il processo è stato assegnato alla CPU - BLOCCATO: il processo è in attesa del verificarsi di un evento (es. completamento I/O) - TERMINATO: il processo ha terminato la propria esecuzione. Nel diagramma delle code è descritto il possibile ciclo di esecuzione di un processo. Nel momento in cui un processo viene creato e diventa pronto, esso viene inserito nella ready "queue" (coda), doveattende di essere assegnato alla CPU.
Una volta assegnato alla CPU, il processo può interrompere la propria esecuzione per una serie di ragioni:
  1. Esecuzione -> Bloccato: Il processo richiede una operazione di I/O al SO, quindi rilascia la CPU e entra nella coda per utilizzare un particolare dispositivo di I/O
  2. Il processo crea un processo figlio e quindi deve attendere che la sua esecuzione termini
  3. Il processo esaurisce il quanto di tempo assegnatogli, quindi la CPU gli viene sottratta e viene reinserito nella ready queue
  4. Il processo può essere rimosso forzatamente dalla CPU a causa di un'interruzione ed essere reinserito nella coda dei processi pronti
Nei primi due casi, al completamento della richiesta di I/O o al termine del processo figlio, il processo passa dallo stato d'attesa allo stato pronto ed è nuovamente inserito nella ready queue. Un processo continua questo ciclo fino al termine della propria esecuzione.
N.B. Il passaggio da esecuzione a

Pronto, si ha solamente in un sistema con prelazione.

Dettagli
Publisher
A.A. 2019-2020
5 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Dododoro48 di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pavia o del prof Lombardi Luca.