introduzione ai sistemi operativi -...
Post on 18-Feb-2019
230 Views
Preview:
TRANSCRIPT
1
Introduzione ai Sistemi Operativi
Sistemi Operativi L-A 2
Cos’e` un Sistema Operativo ?
• È un programma (o un insieme diprogrammi) che agisce comeintermediario tra l’utente el’hardware del computer: fornisce un ambiente di sviluppo e diesecuzione per i programmi
fornisce una visione astratta dell’HW gestisce le risorse del sistema di calcolo
2
Sistemi Operativi L-A 3
Il Sistema Operativo el’Hardware
Il sistema operativo interfaccia i programmicon le risorse HW:
• CPU• memoria volatile e persistente• dispositivi di I/O• Rete• …
Il S.O. mappa le risorse HW in risorserisorselogichelogiche, accessibili attraverso interfacceben definite:
» processi (CPU)» file (dischi)» Memoria virtuale (memoria)...
Sistemi Operativi L-A 4
Cos’e` un Sistema Operativo ?
Sistema Operativo
Hardware
Programmi Applicativi
Utenti
3
Sistemi Operativi L-A 5
Cos’è un sistema operativo?• Un programma che allocaalloca le risorse del
sistema di calcolo ai programmi e agliutenti:
» CPU» Memoria» dischi» dispositivi di I/O» ...
• Un programma che controllacontrolla dispositivi eprogrammi allo scopo di garantire unfunzionamento corretto ed efficiente.
Sistemi Operativi L-A 6
Aspetti importanti di un S.O. StrutturaStruttura: come è organizzato un S.O. ? Concorrenza: Concorrenza: è possibile la contemporanea esecuzione
di più programmi ? Condivisione: Condivisione: quali risorse vengono condivise tra utenti
e/o programmi? In che modo? Protezione:Protezione: il S.O. deve impedire interferenze tra
programmi/utenti. Con quali metodi? EfficienzaEfficienza Affidabilità: Affidabilità: come reagisce il S.O. a malfunzionamenti
(HW/SW) ? EstendibilitàEstendibilità:: è possibile aggiungere funzionalità al
sistema ? Conformità a StandardConformità a Standard: : portabilita`, estendibilita`,
apertura
4
Sistemi Operativi L-A 7
Evoluzione dei Sistemi Operativi
•• Prima generazionePrima generazione (anni ‘50)• linguaggio macchina• dati e programmi su schede perforate• il sistema operativo non è presente
•• Seconda GenerazioneSeconda Generazione (‘55-’65): Sistemi Sistemi batchbatch semplici semplici
• linguaggio di alto livello (fortran)• input mediante schede perforate• aggregazione di programmi in lotti
(batch) con esigenze simili
Sistemi Operativi L-A 8
Sistemi batch sempliciBatch: insieme di programmi (job) da
eseguire in modo sequenziale.
JOB begin$compile
$load$run
JOB end
5
Sistemi Operativi L-A 9
Sistemi batch sempliciCompito del Sistema Operativo (monitor):
trasferimento di controllo da un job (appenaterminato) al prossimo da eseguire.
Caratteristiche dei sistemi Caratteristiche dei sistemi batchbatch semplici: semplici:• sistema operativo residente in memoria (monitor)• assenza di interazione tra utente e job• scarsa efficienza:durante l’I/O del job corrente, la CPU rimane
inattiva (lentezza dei dispositivi di I/O meccanici)
AttivitàCPU
tI/O I/O
Sistemi Operativi L-A 10
Sistemi batch semplici
In memoria centrale, ad ogniistante, è caricato (al più) un solojob:
Sistemaoperativo
Job
di utente
Configurazione dellamemoria centrale in
sistemi batchsemplici
6
Sistemi Operativi L-A 11
Spooling(Simultaneous Peripheral Operation On Line)
ObiettivoObiettivo: aumentare l’efficienza del sistema.Avvento dei dischi + DMA: ⇒I/O in paralleloin parallelo con
l’attività della CPU:
Sistemi batch semplici
cpu outputinput
disco
Sistemi Operativi L-A 12
Spooling : contemporaneità di I/O e computazione• il disco viene impiegato come un buffer molto ampio, dove:
leggere in anticipo i datimemorizzare temporaneamente i risultati (in attesa che il
dispositivo di output sia pronto)caricare codice e dati del job successivo: -> possibilità di
sovrapporre I/O di un job con elaborazione di un altro job
Sistemi batch semplici
cpu outputinput
disco
7
Sistemi Operativi L-A 13
Sistemi Batch semplici
Problemi: finché il job corrente non è terminato, il
successivo non può iniziare l’esecuzione se un job si sospende in attesa di un
evento, la CPU rimane inattivainattiva non c’è interazione con l’utente.
Sistemi Operativi L-A 14
Sistemi Batch multiprogrammati•• Sistemi Sistemi batchbatch semplici semplici: l’attesa di un
evento causa l’inattività della CPU.⇒⇒ MultiprogrammazioneMultiprogrammazione::
Pool di jobPool di job contemporaneamentepresenti su disco:
• il S.O. seleziona un sottoinsieme dei job appartenential pool da caricare in memoria centrale:
più job in memoria centralepiù job in memoria centrale• mentre un job è in attesa di un eventoattesa di un evento, il sistema
operativo assegna la CPU a un altro job
8
Sistemi Operativi L-A 15
Sistemi Batch multiprogrammatiIl sistema operativo è in grado diportare avanti l’esecuzione di più jobcontemporaneamente: Ad ogni istante:
•• un solo jobun solo job utilizza la CPU•• più jobpiù job (in memoria centrale) attendono di acquisire la
CPU.
Quando il job che sta utilizzando la CPUsi sospende in attesa di un evento:
• il S.O. decide a quale job assegnare la CPU edeffettua lo scambio (schedulingscheduling)
Sistemi Operativi L-A 16
Sistemi Batch multiprogrammatiSchedulingScheduling
Il S.O. effettua delle scelteS.O. effettua delle scelte tra tutti ijob:
quali job caricare in memoria centrale:schedulingscheduling dei job dei job (long term scheduling)
a quale job assegnare la CPU: schedulingschedulingdella CPUdella CPU o (short term scheduling)
9
Sistemi Operativi L-A 17
Sistemi Batch multiprogrammatiSchedulingScheduling
Memoria
centrale CPUdisco
Schedulingdei job Scheduling
della CPU
Sistemi Operativi L-A 18
Sistemi Batch Multiprogrammati
tt22tt11 t
job1
job2
job3
t0
Attesa di eventi
10
Sistemi Operativi L-A 19
Sistemi batch multiprogrammatiIn memoria centrale, ad ogni istante,possono essere caricati più job:
Configurazione dellamemoria centrale in
sistemi batchmultiprogrammati
Necessità diNecessità diprotezione !protezione !
Sistemaoperativo
Job 1
Job 2
Job 3
Sistemi Operativi L-A 20
Sistemi Time-Sharing (Multics, 1965)• Nascono dalla necessità di:
•• interattivitàinterattività con l’utente•• multi-utenza: multi-utenza: più utenti interagiscono
contemporaneamente con il sistema.
SistemaOperativo
Hardware
Utente1
Utenten
Utente2
11
Sistemi Operativi L-A 21
Sistemi Time-Sharing•• MultiutenzaMultiutenza: il sistema presenta ad ogni utente una
macchina virtuale completamente dedicata a lui, per:• l’utilizzo della CPU• l’utilizzo di altre risorse (ad es., file system)
•• InterattivitàInterattività:per garantire un’accettabile velocità di“reazione” alle richieste dei singoli utenti, il S.O.interrompeinterrompe l’esecuzione di ogni job dopo un intervallodi tempo prefissato (quanto di tempo, o time slice),ed assegna la CPU ad un altro job.
Sistemi Operativi L-A 22
Sistemi Time Sharing(oppure, a divisione di tempo)
Sono sistemi in cui:Sono sistemi in cui:• L’attività della CPU è dedicata a job diversi che si
alternano ciclicamente nell’uso della risorsa• La frequenza di commutazione della CPU è tale da
fornire l’illusione ai vari utenti di una macchinacompletamente dedicata (macchina virtuale).
Cambio di contestoCambio di contesto (context switch):operazione di trasferimento del controllo da unjob al successivo ð costo aggiuntivo (overhead).
12
Sistemi Operativi L-A 23
Sistemi Time Sharing
Estensione dei sistemimultiprogrammati:
Un job può sospendersi:• perchè in attesa di un evento• perchè è terminato il quanto di tempo.
Sistemi Operativi L-A 24
Sistemi Time Sharing
job1job2job3CPU
t
job1
job2
job3
t0 tt22 tt33 tt44 tt55tt11
Δt Δt
Attesa di eventi fine del quanto di tempo
13
Sistemi Operativi L-A 25
Time Sharing: requisiti•• Gestione/ProtezioneGestione/Protezione della memoria:
trasferimenti memoria-disco separazione degli spazi assegnati ai diversi job molteplicità job + limitatezza della memoria:
⇒⇒ memoria virtualememoria virtuale•• SchedulingScheduling della CPU•• SincronizzazioneSincronizzazione/comunicazionecomunicazione tra Job:
• interazione• prevenzione/trattamento di blocchi critici (deadlock)
•• InterattivitàInterattività: file system on line per permettere agliutenti di accedere semplicemente a codice e dati
Sistemi Operativi L-A 26
Sistemi Operativi Attuali
MSDOSMSDOS: monoprogrammato, monoutente Windows 95, 98Windows 95, 98: multiprogrammato
(time sharing), monoutente Windows NT, 2000,2000,XPXP, Vista.., Vista..:
multiprogrammato, “multiutente” MacOSMacOS: multiprogrammato, multiutente UnixUnix//LinuxLinux:
Multiprogrammato/multiutente
14
Richiami sul funzionamento di unsistema di elaborazione
Sistemi Operativi L-A 28
Architettura di un sistema dicalcolo
•• ControllerController: interfaccia HW delle perifericheverso il bus di sistema
CPU
Controllerdischi
Controllermemoria
Controllervideo
Controllerstampante
Memoria
bus
15
Sistemi Operativi L-A 29
Funzionamento di un sistema dicalcolo
Funzionamento a interruzioni:Funzionamento a interruzioni: le varie componenti (HW e SW) del sistema
interagiscono con il S.O. mediante interruzioniasincrone (interrupt)
ogni interruzione è causata da un eventoevento; adesempio:
» richiesta di servizi al S.O.» completamento di I/O» accesso non consentito alla memoria» etc.
ad ogni interruzione è associata una routine diroutine diservizio servizio (handler), per la gestione dell’evento
Sistemi Operativi L-A 30
Funzionamento di un sistema dicalcolo
•• Interruzioni hardwareInterruzioni hardware: i dispositiviinviano segnali alla CPU. Per richiedere l’esecuzione di servizi al S.O.
SistemaOperativo
dispositivo
Segnale diinterruzione
16
Sistemi Operativi L-A 31
Funzionamento di un sistema dicalcolo
•• Interruzioni softwareInterruzioni software: : i programmi in esecuzionenel sistema possono generare interruzioni SW: quando i programmi tentano l’esecuzione di operazioni non
lecite (ad es., divisione per 0): trap system call: richiedono l’esecuzione di servizi al S.O.
SistemaOperativo
programma
Interruzione SW
(system call)
Sistemi Operativi L-A 32
Gestione delle interruzioniAlla ricezione di un’interruzione, il S.O.:
1] interrompe l'esecuzione del programma corrente =>salvataggio dello stato in memoria (locazione fissa, stackdi sistema..)
2] attiva la routine di servizio all’interruzione (handler)3] ripristina lo stato salvato
Per individuare la routine di servizio il S.O. puòutilizzare un vettore delle interruzioni :
Routine di
servizioi
Vettore delleinterruzioni
17
Sistemi Operativi L-A 33
Protezione• Nei sistemi che prevedono
multiprogrammazione e multiutenza sononecessari alcuni meccanismi HW peresercitare protezione.protezione.
• Le risorse allocate a programmi/utentidevono essere protette nei confronti diaccessi illecitiaccessi illeciti di altri programmi/utenti:
» dispositivi di I/O» memoria» CPU
Ad esempioAd esempio: accesso a locazioni esterneallo spazio di indirizzi del programma.
Sistemi Operativi L-A 34
Protezione della memoriaIn un sistema multiprogrammatomultiprogrammato o time time sharingsharing:ogni job ha un suo spazio di indirizzi: è necessario impedire al programma in esecuzione di
accedere ad aree di memoria esterne al proprio spazio(ad es., del S.O. oppure di altri Job).
Sistemaoperativo
Job 1
Job 2
Job 3
Se fosse consentito: unprogramma potrebbe modificarecodice e dati di altri programmio del S.O. !
18
Sistemi Operativi L-A 35
Protezione
Per garantire protezione, moltePer garantire protezione, moltearchitetture prevedono un duplice modo diarchitetture prevedono un duplice modo difunzionamento (funzionamento (dualdual mode): mode): useruser mode kernelkernel mode (supervisorsupervisor, monitor mode)
Realizzazione:Realizzazione: l’architettura prevede un bitdi modo
• kernel: 0• user: 1
Sistemi Operativi L-A 36
Dual modeIstruzioni privilegiate: Istruzioni privilegiate: sono quelle più
pericolose e possono essere eseguitesoltanto se il sistema si trova inkernel mode:
» accesso a dispositivi di I/O (dischi, stampanti,schede di rete, etc.)
» gestione della memoria (accesso a strutturedati di sistema per la gestione della memoria)
» istruzione di shutdownshutdown (arresto del sistema)» etc.
19
Sistemi Operativi L-A 37
Dual mode
Il S.O. esegue in modo kernel. Ogni programma utente esegue in usermode:
• Quando un programma utente tenta l’esecuzione diuna istruzione privilegiata, viene generato un trap.
• se necessita di operazioni privilegiate:
chiamata a system system callcall
Sistemi Operativi L-A 38
System Call
Per ottenere l’esecuzione di istruzioniprivilegiate, un programma di utente devechiamare una System Call:
» invio di un’interruzione software al S.O.» Salvataggio dello stato (PC, registri, bit di
modo, etc.) del programma chiamante etrasferimento del controllo al S.O.
» Il S.O. esegue in modo kernelkernel l’operazionerichiesta
» al termine dell’operazione, il controllo ritorna alprogramma chiamante (ritorno al modo useruser)
20
Sistemi Operativi L-A 39
System Call
UserUser mode mode
KernelKernel mode mode
system call: read( )
Interrupt SW(salvataggio dello stato delprogramma utente)
Routine di gestionedell’interruzione
Esecuzione dell’operazione read
ripristino dello statodel programmautente
Programma utente
Sistemi Operativi L-A 40
System Call
La comunicazione tra il programmachiamante ed il sistema operativo avvienemediante i parametri della system call:come vengono trasferiti?
• mediante registri (problema: dimensione limitata)• mediante blocchi di memoria indirizzati da registri• mediante stack di sistema
21
Sistemi Operativi L-A 41
Protezione della memoriaIl Sistema Operativo deve fornire glistrumenti per separare e proteggere glispazi di indirizzi dei programmi:
Registri base e limite memorizzano, per il programma in esecuzione (se
viene allocato su parole contigue tra loro):• l’indirizzo della prima parola (RB)• la dimensione (RL)
dello spazio degli indirizzi associato al programma. l’Hardware può controllare ogni indirizzo, per
verificare se appartiene all’intervallo [RB, RB+RL]
Sistemi Operativi L-A 42
Protezione della memoria
Registri base e limiteRB
RL
RL
22
Sistemi Operativi L-A 43
Protezione della CPU
Il S.O. deve evitare che unprogramma utente non monopolizzi laCPU (ad es., loop):
• uso di timer, per interrompere il programma dopoun intervallo di tempo prefissato (time sharing)
• allo scadere dell’intervallo:interrupt ð cambio di contesto
Organizzazione dei SistemiOperativi
23
Sistemi Operativi L-A 45
Struttura dei S.O.
Quali sono le componenticomponenti di un S.O. ?
Quali sono le relazionirelazioni mutue tra lecomponenti ?
Sistemi Operativi L-A 46
Struttura del Sistema Operativo
Sistema operativo = insieme dicomponenti
• gestione dei processi• gestione della memoria centrale• gestione dei file• gestione dell’I/O• meccanismi di protezione e sicurezza• interfaccia utente/programmatore
24
Sistemi Operativi L-A 47
Processo
Processo = programma in esecuzione
• il programma è un’entità passiva: uninsieme di byte contenente la codificabinaria delle istruzioni da eseguire.
• il processo è un’entità attiva:• è l’istanza di un programma in esecuzione• è l’unità di lavoro all’interno del sistema: ogni attività
all’interno del S.O. è rappresentata da un processo
Sistemi Operativi L-A 48
Gestione dei ProcessiIn un sistema multiprogrammato:
più processi possono esisterecontemporaneamente
Compiti del Sistema Operativo:creazione/terminazione dei processisospensione/ripristino dei processisincronizzazione/comunicazione dei processigestione del blocco critico (deadlock) di processi
25
Sistemi Operativi L-A 49
Gestione della Memoria CentraleL’HW di un sistema di elaborazione èequipaggiato con un’unico spazio di memoriaaccessibile direttamente da CPU e dispositivi.
Compiti del Sistema Operativo: separare gli spazi di indirizzi associati ai processi allocare/deallocare memoria ai processi memoria virtuale: offrire spazi logici di indirizzi di
dimensioni indipendenti dalla dimensione effettivadella memoria
Sistemi Operativi L-A 50
Gestione dei FileIl sistema operativo fornisce una visione logicauniforme della memoria secondaria, indipendente daltipo e dal numero dei dispositivi effettivamentedisponibili: realizza il concetto astratto di file, come unità
di memorizzazione logica fornisce opportune astrazioni per
l’organizzazione dei file (direttori, partizioni) realizza i meccanismi per la gestione di file,
direttori e partizioni: creazione/cancellazione di file e direttori manipolazione di file/direttori associazione tra file e dispositivi di memorizzazione secondaria
26
Sistemi Operativi L-A 51
Gestione dell’I/OIl Sistema Operativo si occupa dellagestione delle periferiche di I/O:
interfaccia tra programmi e dispositivi per ogni dispositivo: device driver
• routine per l’interazione con un particolaredispositivo
• contiene conoscenza specifica sul dispositivo(routine di gestione delle interruzioni)
Sistemi Operativi L-A 52
Protezione e Sicurezza
Processi e utenti possono accedere alle risorsedel sistema contemporaneamente.
Protezione delle risorseProtezione delle risorse:: controllodell’accesso alle risorse del sistema da partedi processi (e utenti), mediante:
• autorizzazioni• modalità di accesso
Risorse da proteggereRisorse da proteggere: file, memoria, processidispositivi, ecc.
27
Sistemi Operativi L-A 53
Protezione e SicurezzaSicurezza:
• Le tecnologie di sicurezza hanno come scopo laregolamentazione degli accessi al sistema da partedi utenti esterni, mediante meccanismi diautenticazione.
• La sicurezza misura l’affidabilità del sistema neiconfronti di accessi malevoli (attacchi) dal modoesterno.
Sistemi Operativi L-A 54
Interfaccia UtenteIl S.O. presenta un’interfaccia checonsente l’interazione con l’utente: interprete comandiinterprete comandi (shellshell): l’interazione
avviene mediante una linea di comando interfaccia graficainterfaccia grafica (graphical user
interface, GUIGUI): l’interazione avvienemediante click del mouse su elementigrafici; di solito organizzata a finestre.
28
Sistemi Operativi L-A 55
Interfaccia ProgrammatoreL’interfaccia del SO verso i programmi (API) èrappresentato dalle system call:
• mediante la system call il processo richiede al sistema operativol’esecuzione di un servizio (in modo kernel)
Classi di system Classi di system callcall::» gestione dei processi» gestione di file e di dispositivi (spesso trattati in modo
omogeneo)» gestione informazioni di sistema» comunicazione/sincronizzazione tra processi» ...
Programma di sistemaProgramma di sistema = programma che usa systemcalls
Sistemi Operativi L-A 56
Struttura del Sistema OperativoSistema operativo = insieme di
componenti• gestione dei processi• gestione della memoria centrale• gestione dei file• gestione dell’I/O• protezione e sicurezza• interfaccia utente/programmatore
Le componenti non sono indipendentitra loro, ma interagiscono.
29
Sistemi Operativi L-A 57
Struttura del Sistema OperativoCome sono organizzate le varie
componenti all’interno del sistemaoperativo?
Varie soluzioni:Varie soluzioni: struttura monolitica struttura modulare microkernel macchine vituali
Sistemi Operativi L-A 58
Struttura MonoliticaIl sistema operativo è costituito da ununico modulo contenente un insieme diinsieme diprocedureprocedure, che realizzano le variecomponenti:
l’interazione tra le diverse componentiavviene mediante il meccanismo di chiamataa procedura.
Esempi: MS-DOS,UNIX, GNU/Linux
30
Sistemi Operativi L-A 59
Sistemi Operativi MonoliticiPrincipale Vantaggio: : basso costo di interazionetra le componenti.
Svantaggio: : Il SO è un sistema complesso epresenta gli stessi requisiti delle applicazioni in-the-large::
• estendibilità• manutenibilità• riutilizzo• portabilità• affidabilità• ...
SoluzioneSoluzione: : organizzazione modulare
Sistemi Operativi L-A 60
Struttura modulareLe varie componenti del SO vengono organizzate inmoduli caratterizzati da interfacce ben definite.
Sistemi Stratificati (a livelli) (THE, Dijkstra1968)
il sistema operativo è costituito da livelli sovrapposti,ognuno dei quali realizza un insieme di funzionalità:
• ogni livello realizza un’insieme di funzionalità che vengonoofferte al livello superiore mediante un’interfaccia
• ogni livello utilizza le funzionalità offerte dal livellosottostante, per realizzare altre funzionalità
31
Sistemi Operativi L-A 61
Esempio: THE (5 livelli)
livello 5: programmi di utente
livello 4: buffering dei dispositivi di I/O
livello 3: driver della console
livello 2: gestione della memoria
livello 1: scheduling CPU
livello 0: hardware
Struttura a livelli
Sistemi Operativi L-A 62
Struttura StratificataVantaggi:
• Astrazione: ogni livello è un oggetto astratto,che fornisce ai livelli superiori una visioneastratta del sistema (Macchina Virtuale),limitata alle astrazioni presentatenell’interfaccia.
• Modularità: le relazioni tra i livelli sonochiaramente esplicitate dalle interfacce ðpossibilità di sviluppo, verifica, modifica in modoindipendente dagli altri livelli.
32
Sistemi Operativi L-A 63
Struttura StratificataSvantaggi:
Organizzazione gerarchica tra le componenti: nonsempre è possibile -> difficoltà di realizzazione.
Scarsa efficienza: : costo di attraversamento deilivelli
Soluzione: limitare il numero dei livelli.
Sistemi Operativi L-A 64
Nucleo del Sistema Operativo (kernel)
“E` la parte del sistema operativo che eseguein modo kernel”
• È la parte più interna del sistema operativo,che si interfaccia direttamente conl’hardware della macchina.
• Le funzioni realizzate all’interno del nucleovariano a seconda del Sistema Operativo.
33
Sistemi Operativi L-A 65
Nucleo del Sistema Operativo(kernel)
• Tipicamente, le funzioni del nucleosono:
• Creazione/terminazione dei processi• scheduling della Cpu• gestire il cambio di contesti• Sincronizzazione/comunicazione tra processi• Gestione della memoria• Gestione dell’I/O• Gestione delle interruzioni• realizzare le system call.
Sistemi Operativi L-A 66
Sistemi Operativi a Microkernel• La struttura del nucleo è ridotta a poche
funzionalità di base.• il resto del SO è rappresentato da processi
di utente
Caratteristiche: affidabilità (separazione tra componenti) possibilità di estensioni e personalizzazioni scarsa efficienza (molte chiamate a system call)
ESEMPI: L4, Mach, Hurd, Windows NT
34
Sistemi Operativi L-A 67
procproc..clientecliente
procproc..clientecliente
terminalterminalserverserver
printprintserverserver
filefilesystemsystem
microkernelmicrokernel
Organizzazione a Microkernel
Sistemi Operativi L-A 68
modoutente
modokernel
I/OManager
ObjectManager
ProcessManager
Applicazioni
Sottosistemiprotetti
Hardware
Microkernel
Windows NT
35
Sistemi Operativi L-A 69
L4 µkernelhttp://os.inf.tu-dresden.de
• gestione dei thread• allocazione della memoria (pager esterni)• Inter Process Communication
Comunicazione Threads
Memoria
Hardware
IRQ
IPC
Externalpagers Unmap
Mapping
Sistemi Operativi L-A 70
GNU/Hurd
processi utente
µkernel MACH
Server diHurd
spaziokernel
spazioutente
authserver
processserver
filesystemserver
36
Sistemi Operativi L-A 71
Macchine virtuali
• l'Hardware e` gestito da un componente software, chiamatoVirtual Machine Monitor (VMM) o hypervisor il cui compito èconsentire la condivisione da parte di più macchine virtuali, ognunacon il suo sistema operativo, di una singola piattaforma hardware.
• Ogni macchina virtuale definisce un ambiente di esecuzionedistinto e isolato dalle altre.
• Il VMM si pone come mediatore unico nelle interazioni tra lemacchine virtuali e l’hardware sottostante, garantendo sia unforte isolamento tra esse, sia la stabilità complessiva del sistema .
Sistemi Operativi L-A 72
virtual machine monitor
kernel kernel kernel
HW
37
Sistemi Operativi L-A 73
Vantaggi della virtualizzazione
• Uso di piu` S.O. sulla stessa macchina fisica: più ambienti diesecuzione (eterogenei) per lo stesso utente: Legacy systems Possibilità di esecuzione di applicazioni concepite per un particolare s.o.
• Isolamento degli ambienti di esecuzione: ogni macchina virtualedefinisce un ambiente di esecuzione separato (sandbox) da quelli dellealtre: possibilita` di effettuare testing di applicazioni preservando l'integrita` degli altri
ambienti e del VMM. Sicurezza: eventuali attacchi da parte di malware o spyware sono confinati alla
singola macchina virtuale
VIRTUAL MACHINE MONITOR
HARDWARE
applicazioni
Windows xp
applicazioni applicazioni
Suse Linux Ubuntu linux
VM1 VM2 VM3
Sistemi Operativi L-A 74
Vantaggi della virtualizzazione• Consolidamento HW: possibilita` di concentrare piu`
macchine (ad es. server) su un'unica architettura HW per unutilizzo efficiente dell'hardware (es. server farm): Abbattimento costi hw Abbattimento costi amministrazione
• Gestione facilitata delle macchine: e` possibile effettuarein modo semplice: la creazione di macchine virtuali (virtual appliances) l'amministrazione di macchine virtuali (reboot, ricompilazione
kernel, etc.) migrazione a caldo di macchine virtuali tra macchine fisiche:
• possibilita` di manutenzione hw senza interrompere i serviziforniti dalle macchine virtuali
• disaster recovery• workload balancing: alcuni prodotti prevedono anche
meccanismi di migrazione automatica per far fronte in modo“autonomico” a situazioni di sbilanciamento
38
Sistemi Operativi L-A 75
Vantaggi della virtualizzazione• In ambito didattico: invece di assegnare ad ogni studente un account su una
macchina fisica, si assegna una macchina virtuale.
DEIS Virtual Lab. La Facoltà di Ingegneria (DEIS) sta realizzando unlaboratorio di macchine virtuali che offrirà ad ogni studente una macchinavirtuale personale da amministrare autonomamente: possibilita` di esercitarsi senza limitazioni nelle tecniche di
amministrazione e configurazione del sistema; possibilita` di installazione e testing di nuovi sistemi operativi, anche
prototipali, senza il rischio di compromettere la funzionalita` delsistema.
possibilita` di testing di applicazioni potenzialmente pericolose senza ilrischio di interferire con altri utenti/macchine;
possibilita` di trasferire le proprie macchine virtuali in supporti mobili(es: penne USB, per continuare le esercitazioni sul computer di casa).
Dotazione hw: 4 server Intel-VT xeon (2 processori quadcore), storageunit CORAID 12TB
Software: Vmware o VirtualIron ? Siamo in fase di valutazione..
Sistemi Operativi L-A 76
Host: piattaforma di base sulla quale si realizzano macchine virtuali.Comprende la macchina fisica, l’eventuale sistema operativo ed il VMM.
Guest: la macchina virtuale. Comprende applicazioni e sistemaoperativo
VIRTUAL MACHINE MONITOR
HARDWARE
applicazioni
sistema operativo
applicazioni applicazioni
sistema operativo sistema operativo
VM1 VM2 VM3
guest
host
VMM di Sistema
39
Sistemi Operativi L-A 77
L'Architettura della CPU prevede, in generale,almeno due livelli di protezione (ring): supervisore eutente.
solo il VMM opera nello stato supervisore, mentre il sistemaoperativo e le applicazioni (la macchina virtuale) operano nellostato utente.
Problemi:• ring deprivileging: il s.o. della macchina virtuale esegue in uno
stato che non gli e` proprio (esecuzione di system call ?)• ring compression: applicazioni e s.o. della macchina virtuale
eseguono allo stesso livello: necessita` di protezione traspazio del s.o. e delle applicazioni.
VMM di sistema: realizzazione
Sistemi Operativi L-A 78
Ring deprivileging:Le istruzioni privilegiate richieste dal sistemaoperativo nell’ambiente guest non possono essereeseguite (richiederebbero lo stato supervisore).
Possibile Soluzione:• Se il guest tenta di eseguire un’istruzione privilegiata,
la CPU notifica un’eccezione al VMM e gli trasferisce ilcontrollo (trap): il VMM controlla la correttezza dellaoperazione richiesta e ne emula il comportamento.
Le istruzioni non privilegiate possono essere eseguitedirettamente dall’hardware senza alcun intervento daparte della CPU (esecuzione diretta).
40
Sistemi Operativi L-A 79
Esempio: tentativo di esecuzione dell’istruzione privilegiatache disabilita le interruzioni da parte del S.O. guest.
• Il VMM riceve la notifica di tale richiesta e ne emula ilcomportamento atteso sospendendo la consegna degli interruptsolamente per la macchina virtuale (emulazione).
• Se la richiesta della macchina virtuale fosse eseguita direttamentesul processore sarebbero disabilitati gli interrupt per tutti i sistemied il VMM non potrebbe riguadagnare il controllo della CPU.
• Le istruzioni non privilegiate sono eseguite direttamentedall’hardware senza alcun intervento da parte della CPU (esecuzionediretta).
Un’architettura CPU si dice naturalmente virtualizzabile se prevedel’invio di notifica allo stato supervisore per ogni istruzioneprivilegiata eseguita dallo stato utente.
Sistemi Operativi L-A 80
Se l'architettura della CPU e` naturalmente virtualizzabile:• la realizzazione del VMM e` semplificata: per ogni trap generato
dal tentativo di esecuzione di istruzione privilegiata dal guestviene eseguita una routine di emulazione
• supporto nativo all'esecuzione diretta.
Non tutte le architetture sono naturalmente virtualizzabili ! IA32:• Alcune istruzioni privilegiate di questa architettura eseguite in stato
utente non provocano una trap, ma vengono ignorate non consentendoquindi l’ intervento trasparente del VMM, o in alcun casi provocano ilcrash del sistema.
• Ring Aliasing: Alcune istruzioni non privilegiate, eseguite in statoutente, permettono di accedere in lettura alcuni registri del sistemala cui gestione dovrebbe essere riservata al VMM: possibilità dirilevare il proprio livello di protezione-> possibili inconsistenze.
41
Sistemi Operativi L-A 81
Architetture non virtualizzabiliSoluzioni:
Virtualizzazione pura: fast binary translation Paravirtualizzazione
Fast binary translation. (es.Vmware): il VMM scansionadinamicamente il codice prima della sua esecuzione persostituire a run time blocchi contenenti istruzioniproblematiche in blocchi equivalenti dal punto di vistafunzionale e contenenti istruzioni per la notifica di eccezionial VMM.
• I blocchi tradotti sono eseguiti direttamente sull’hw econservati in una cache apposita per riusi futuri
Sistemi Operativi L-A 82
applicazioni applicazioni applicazioni
S.O. S.O. S.O.
hardware virtualebinary translation
VMM
Hardware
Virtualizzazione pura mediante Fast Binary Translation (architetturanon virtualizzabile)
Pro:ogni macchina virtuale è una esatta replica della macchina fisica --> possibilità di installare gli stessi s.o. di architetture non virtualizzateContro: la traduzione dinamica è costosa
42
Sistemi Operativi L-A 83
Paravirtualizzazione (es. xen): il VMM (hypervisor) offre alsistema operativo guest un’interfaccia virtuale (hypercall API)alla quale i S.O. guest devono riferirsi per aver accesso allerisorse:• i kernel dei S.O. guest devono quindi essere modificati per
aver accesso all'interfaccia del particolare VMM.• la struttura del VMM è semplificata perché non deve più
preoccuparsi di tradurre dinamicamente i tentativi dioperazioni privilegiate dei S.O. guest.
• per ottenere un servizio che richiede l’esecuzione di istruzioniprivilegiate (es. accesso a dispositivi) non vengono generateinterruzioni al VMM, ma viene invocata la hypercallcorrispondente.
Sistemi Operativi L-A 84
applicazioni applicazioni applicazioni
S.O. S.O. S.O.
Hardware
ParavirtualizzazionePro: prestazioni migliori rispetto a fast binary translationContro: necessità di porting dei S.O. guest (le applicazionirimangono invariate): soluzione preclusa a molti sistemi operativicommerciali non open source.
hypercall API
VMM
43
Sistemi Operativi L-A 85
Architetture Virtualizzabili• La recente uscita sul mercato di processori con supporto
nativo alla virtualizzazione (Intel VT, AMD-V) ha datol’impulso allo sviluppo di VMM semplificati, basati suvirtualizzazione pura: Ring Deprivileging: ogni istruzione privilegiata richiesta dal s.o.
guest genera un trap gestito dal VMM. No Ring Compression/Aliasing: il s.o. guest esegue in un ring
separato (livello di protezione intermedio) da quello delleapplicazioni
Pro: Efficienza: non c’è bisogno di bynary translation; Trasparenza: l’API presentata dall’hypervisor è la stessa
offerta dal processore.Contro: Meno efficienti della paravirtualizzazione.
Sistemi Operativi L-A 86
Architetture Virtualizzabili
Prodotti:Xen e Vmware: hanno già rilasciato nuove versioni
compatibili con architetture virtualizzabili.VirtualIron: prodotto derivato da xen, esplicitamente
sviluppato per architetture Intel VT & AMD-V.
44
Unix & Linux
Sistemi Operativi L-A 88
Storia di Unix• 1969: AT&T, sviluppo di un ambiente di
calcolo multiprogrammato e portabile permacchine di medie dimensioni.
• 1970: prima versione di UNIX(multiprogrammata e monoutente)interamente sviluppata nel linguaggioassembler del calcolatore PDP-7.
• Anni 1970: nuove versioni, arricchite conaltre caratteristiche e funzionalità.Introduzione del supporto alla multiutenza.
45
Sistemi Operativi L-A 89
Unix e il linguaggio C• 1973: Unix viene realizzato nel linguaggio di
programmazione C: Elevata portabilità Leggibilità Diffusione presso la comunità scientifica e accademica.
• Anni 80: la grande popolarità di Unix ha determinato ilproliferare di versioni diverse. Due famiglie: Unix System V (AT&T Laboratories) Unix Berkeley Software Distributions, o BSD (University of
California at Berkeley)
Sistemi Operativi L-A 90
Organizzazione di Unix
hardware
Kernel del Sistema Operativo:gestione processi, memoria, file sytem, I/O, etc
Libreria standard di sistema(open, close, fork, exec...)
Utilità di sistema(shell, editor, compilatori,..)
utenti
System call
Funzioni di libreriastandard
Modo kernel
Modo user
46
Sistemi Operativi L-A 91
Caratteristiche di Unix
multi-utente time sharing kernel monolitico Ambiente di sviluppo per programmi in
linguaggio C Programmazione mediante linguaggi
comandi portabilità
Sistemi Operativi L-A 92
POSIX• 1988: POSIX (Portable Operating Systems
Interface) è lo standard definito dall’IEEE.Definisce le caratteristiche relative allemodalità di utilizzo del sistema operativo.
• 1990: POSIX viene anche riconosciutodall' International Standards Organization(ISO).
• Anni 90: Negli anni seguenti, le versionisuccessive di Unix SystemV e BSD(versione 4.3), si uniformano a POSIX.
47
Sistemi Operativi L-A 93
Introduzione a GNU/Linux• GNU project:
1984: Richard Stallman avvia un progetto di sviluppo di unsistema operativo libero compatibile con Unix:
"GNU is Not Unix" Furono sviluppate velocemente molte utilita` di sistema:
• editor Emacs,• Compilatori: gcc,• shell: bash,• ...
lo sviluppo del kernel (Hurd), invece, subi` moltevicissitudini e vide la luce molto piu` tardi (1996)
Sistemi Operativi L-A 94
GNU/Linux
• 1991: Linus Tornvalds realizza un kernel Unix-compatibile (Minix) e pubblica su web i sorgenti
• In breve tempo, grazie a una comunita` di hackerin rapidissima espansione, Linux acquista lecaratteristiche di un prodotto affidabile e incontinuo miglioramento.
• 1994: Linux viene integrato nel progetto GNUcome kernel del sistema operativo: nasce il sistemaoperativo GNU/Linux
48
Sistemi Operativi L-A 95
GNU/LinuxCaratteristiche: Open Source / Free software multi-utente, multiprogrammato e
multithreaded Kernel monolitico con possibilita` di
caricamento dinamico di moduli estendibilita` affidabilita`: testing in tempi brevissimi da
parte di migliaia di utenti/sviluppatori portabilità
top related