Upload
buixuyen
View
213
Download
0
Embed Size (px)
Citation preview
Sistemi Operativi T - AA 2009-2010 1
Università di BolognaUniversità di BolognaLaurea in Ingegneria InformaticaLaurea in Ingegneria Informatica
A.A. 200A.A. 20099-2010-2010Sistemi Operativi TSistemi Operativi T
Prof. Anna Ciampolini
http://lia.deis.unibo.it/Courses/sot0910
Sistemi Operativi T - AA 2009-2010 2
Obiettivi del CorsoObiettivi del Corso Fornire i principali concetti alla base
della teoria dei sistemi operativiteoria dei sistemi operativi Illustrare le caratteristiche di alcunisistemi operativi reali (UNIX,GNU/Linux e Windows XP) e gli strumentia disposizione di utenti e programmatori per illoro utilizzo
Sperimentare ampiamente in laboratoriolaboratorioi concetti e gli strumenti visti in aula
Sistemi Operativi T - AA 2009-2010 3
Capacità richieste in ingresso:Capacità richieste in ingresso: conoscenza dei linguaggi C e Java fondamenti di architettura degli elaboratori
Capacità ottenute in uscita:Capacità ottenute in uscita: conoscenza dei concetti alla base dei sistemi
operativi moderni conoscenza delle soluzioni realizzative adottate
nei più diffusi sistemi operativi moderni capacità di sviluppare programmi di sistema e
applicazioni principalmente in ambienteUNIX/Linux.
Capacità di sviluppo di applicazioni concorrentiin java
Sistemi Operativi T - AA 2009-2010 4
Argomenti trattatiArgomenti trattati Che cos’è un sistema operativo: ruolo e funzionalità Organizzazione e struttura di un sistema operativo Gestione dei Processi Interazione tra processi mediante memoria condivisa
e scambio di messaggi Cenni di sincronizzazione dei processi Gestione della memoria Gestione del file system Gestione dei dispositivi di Input/Output Protezione delle risorse Strumenti e metodi per la programmazione
concorrente
Sistemi Operativi T - AA 2009-2010 5
Panoramica sul CorsoPanoramica sul Corso
Introduzione:Introduzione:• Che cos’è un sistema operativo: ruolo,
funzionalità e struttura• Evoluzione dei sistemi operativi: batch,multiprogrammazione, time-sharing
• Richiami sul funzionamento di un elaboratore:interruzioni e loro gestione, I/O, modi difunzionamento single e dual, system call
Sistemi Operativi T - AA 2009-2010 6
Panoramica sul CorsoPanoramica sul Corso
Organizzazione di un sistema operativo:Organizzazione di un sistema operativo:• Funzionalità• Classificazione in base a struttura: sistemimonolitici, modulari, sistemi stratificati,microkernel, macchine virtuali
• Cenni introduttivi di organizzazione efunzionalità del sistema operativoUNIX/Linux
• Cenni introduttivi di organizzazione efunzionalità del sistema operativoWindowsXP
Sistemi Operativi T - AA 2009-2010 7
Panoramica sul CorsoPanoramica sul CorsoGestione dei Processi:Gestione dei Processi:
• Concetto di processo e sua rappresentazione nelsistema operativo:Processi pesantiProcessi leggeri (thread)
• Stati di un processo• Gestione dei processi pesanti/leggeri da parte del
SO• Operazioni sui processi• Classificazione dei processi• La gestione dei processi in UNIX/Linux: stati,
rappresentazione, gestione (scheduling), operazioni ecomandi relativi ai processi
• Java thread e memoria condivisa
Sistemi Operativi T - AA 2009-2010 8
Panoramica sul CorsoPanoramica sul Corso
Scheduling Scheduling della CPU :della CPU :• Concetti generali: code, preemption,dispatcher
• Criteri di scheduling• Algoritmi di scheduling: FCFS, SJF, con
priorità, round-robin, con code multiple, …• Scheduling in UNIX/Linux e MSWinXP
Sistemi Operativi T - AA 2009-2010 9
Panoramica sul CorsoPanoramica sul Corso
Interazione tra processi:Interazione tra processi: Mediante memoria condivisa Mediante memoria condivisa
Cenni sul problema della sincronizzazione traprocessi. Il semaforo.
Mediante scambio di messaggiMediante scambio di messaggi• Comunicazione
diretta/indiretta,simmetrica/asimmetrica,buffering
• Interazione tra processi UNIX: comunicazionemediante pipe e fifo, sincronizzazione tramite segnali
Sistemi Operativi T - AA 2009-2010 10
Panoramica sul CorsoPanoramica sul Corso
Gestione della memoria:Gestione della memoria: Spazi degli indirizzi e binding Allocazione della memoria
• Contigua: a partizione singola e partizionimultiple; frammentazione;
• Non contigua: paginazione,segmentazione
Memoria virtuale Gestione della memoria in UNIX e
GNU/Linux.
Sistemi Operativi T - AA 2009-2010 11
Panoramica sul CorsoPanoramica sul CorsoGestione dei dispositivi di I/O:Gestione dei dispositivi di I/O:Il sottosistema di I/O: funzioni e
meccanismi. Driver di dispositivi.
Gestione del file system:Gestione del file system:File system e sua realizzazione. Metodi di
accesso e di allocazione.Il file system di UNIX: organizzazione logica
e fisica, comandi e system call per lagestione e l’accesso a file/direttori
Sistemi Operativi T - AA 2009-2010 12
Panoramica sul CorsoPanoramica sul Corso
Protezione:Protezione:• Modelli, politiche e meccanismi di protezione.• Domini di protezione• Matrice di accesso• Controllo degli accessi• Sistemi basati su capability
Sistemi Operativi T - AA 2009-2010 13
Panoramica sul CorsoPanoramica sul Corso
Programmazione concorrente:Programmazione concorrente:• Algoritmi non sequenziali e programmi
concorrenti• Proprietà di programmi concorrenti• Il deadlock• Il problema della mutua esclusione• Strumenti linguistici per la sincronizzazione
nel modello a memoria comune: il monitor• Monitor in java
Sistemi Operativi T - AA 2009-2010 14
Percorso didatticoPercorso didattico• Argomenti teorici• Esemplificazioni: sui sistemi operativi
UNIX/Linux e MSWinXP, sia tramiteprogrammazione di sistema in linguaggio C chetramite sviluppo di file comandi in shell e diapplicazioni concorrenti in Java
• Esercitazioni:Attività in laboratorioAttività in laboratorio
Sistemi Operativi T - AA 2009-2010 15
Attività in laboratorioAttività in laboratorio• Esattamente come le lezioni in aula, èparte integrante dell’attivitàdidattica!
• Ogni settimana verrà svolta in Lab4 unaesercitazione su argomenti trattati in aula.
• Le esercitazioni cominciano lunedì 1 Marzo• L’attività sarà assistita da un tutortutor:
IngIng. Stefano Monti. Stefano Monti
Sistemi Operativi T - AA 2009-2010 16
Attività in laboratorioAttività in laboratorio• Programma:
Uso e amministrazione del sistema GNU/linux Comandi shell: uso e realizzazione di file
comandi (shell scripting) System Calls: realizzazione di programmi di
sistema in linux:• Gestione di processi• Sincronizzazione tra processi• Gestione di file e direttori
Programmazione concorrente: semafori, lock,monitor e variabili condizione.
Sistemi Operativi T - AA 2009-2010 17
Accesso Accesso al al LaboratorioLaboratorio L’attività si svolgerà in Lab4 su sistemi dual-
boot GentooLinux/MSWinXP e su macchinevirtuali CentOS.
Account: sono già attivi per tutti gli studenti• Username determinato in base a matricola ecognome
• Password: è il pin associato al vostro badge
Sistemi Operativi T - AA 2009-2010 18
Una prova “scritta” obbligatoria (in parteteorica e per la maggior parte di sviluppo di codicein Lab4):
• 11 giugno 2010 ore 9-13• 30 giugno 2010 ore 9-13• 12 luglio 2010 ore 9-13
• Una prova orale: Facoltativa, se il voto dello scritto è maggiore
di 22/30 Obbligatoria, se il voto delle prova scritta dopo
il superamento dello scritto è minore o uguale a22/30
EsameEsame
Sistemi Operativi T - AA 2009-2010 19
Materiale DidatticoMateriale Didattico
•• CopiaCopia delle diapositive mostrate a lezione (scaricabili dalle pagineWeb del corso)
•• Libro adottato:Libro adottato:• P. Ancilotti, M. Boari, A. Ciampolini, G. Lipari: Sistemi Operativi
(seconda edizione), McGraw-Hill, 2008.
•• Libri consigliatiLibri consigliati:• A. Silbershatz, P.B. Galvin, G. Gagne: Sistemi Operativi – Concetti
ed Esempi (settima edizione), Pearson, 2006• A. Tanenbaum: I Moderni Sistemi Operativi, Jackson Libri, 2002• H.M. Deitel, P.J. Deitel, D.R. Choffnes: Sistemi Operativi, Pearson,
2005• W. Stallings: Sistemi Operativi, Jackson Libri, 2000• K. Havilland, B. Salama: Unix System Programming, Addison
Wesley, 1987
Sistemi Operativi T - AA 2009-2010 20
Ricevimento StudentiRicevimento Studenti• Anna Ciampolini
martdì ore 11:00-13:00c/o nuovi studi – edificio aule nuove (di fianco
aula 5.7)E-mail: [email protected]
• Stefano Montiper il ricevimento, si prega di contattareanticipatamente il tutor tramite e-mail
E-mail: [email protected]
Sistemi Operativi T - AA 2009-2010 21
Interazione docente-studentiInterazione docente-studenti• Ricevimento• E-mail• Lista di distribuzione del corso: è un servizio del portale di
ateneo che consente di inviare, via e-mail, comunicazioni, messaggi emateriali di approfondimento agli studenti Accesso mediante lo stesso account della “mia e-mail” alla
pagina:
http://www.unibo.it/Portale/Servizi+online/Liste+distribuzione/default.htm
Nome della lista: sot0910Password: gnu
Sistemi Operativi T - AA 2009-2010 22
Orario delle LezioniOrario delle Lezioni
Normalmente:
• Lun 13-16, Lab4: 1 ora di lezione e 2 diEsercitazione.
• Mar 14-16, aula 0.5• Mer 14-16, aula 6.1
Eventuali variazioni verranno comunicate via sito Web emailing list di distribuzione del corso
Sistemi Operativi T - AA 2009-2010 23
Università di BolognaUniversità di BolognaCdSCdS: Laurea Triennale in Ingegneria Informatica: Laurea Triennale in Ingegneria Informatica
A.A. 200A.A. 20077-2008-2008Sistemi Operativi L-ASistemi Operativi L-A
Introduzione ai Sistemi Operativi
Sistemi Operativi T - AA 2009-2010 24
Che cosChe cos’è’è un Sistema Operativo (SO)? un Sistema Operativo (SO)?
È un programma (o un insieme di programmi) cheagisce come intermediario tra l’utente el’hardware del computer:
fornisce un ambiente di sviluppo e diesecuzione per i programmi applicativi
gestisce efficientemente le risorse del sistemadi calcolo
fornisce una visione astratta dell’HW
Sistemi Operativi T - AA 2009-2010 25
SO e HardwareSO e Hardware SO interfaccia programmi applicativi o di
sistema con le risorse HW:- CPU - memoria volatile e persistente- dispositivi di I/O - connessione di rete- dispositivi di comunicazione - …
SO mappa le risorse HW in risorse logicherisorse logiche,accessibili attraverso interfacce bendefinite:
processi (CPU)file system (dischi)memoria virtuale (memoria), ...
Sistemi Operativi T - AA 2009-2010 26
Che cosChe cos’è’è un Sistema Operativo? un Sistema Operativo?
Sistema Operativo
Hardware
Programmi Applicativi
Utenti
Sistemi Operativi T - AA 2009-2010 27
• Un programma che gestisce risorsegestisce risorsedel sistema di calcolo in modocorretto ed efficientecorretto ed efficiente e le allocaalloca aiprogrammi/utenti
• Un programma che innalza il livello dilivello diastrazioneastrazione con cui utilizzare lerisorse logicherisorse logiche a disposizione
Che cosChe cos’è’è un Sistema Operativo? un Sistema Operativo?
Sistemi Operativi T - AA 2009-2010 28
Aspetti importanti di un SOAspetti importanti di un SO StrutturaStruttura: come è organizzato il SO? CondivisioneCondivisione:: quali risorse vengono condivise tra
utenti e/o programmi? In che modo? EfficienzaEfficienza:: come massimizzare l’utilizzo delle
risorse disponibili? AffidabilitàAffidabilità:: come reagisce il SO a
malfunzionamenti (HW/SW)? EstendibilitàEstendibilità:: è possibile aggiungere funzionalità al
sistema? ProtezioneProtezione e SicurezzaSicurezza:: il SO deve impedire
interferenze tra programmi/utenti. In che modo? Conformità a standardConformità a standard:: portabilità, estendibilità,
apertura
Sistemi Operativi T - AA 2009-2010 29
Evoluzione SOEvoluzione SO
Prima generazionePrima generazione (anni ‘50)• linguaggio macchina• dati e programmi su schede perforate
Seconda generazioneSeconda generazione (‘55-’65): sistemi sistemi batch batch semplicisemplici
• linguaggio di alto livello (fortran)• input mediante schede perforate• aggregazione di programmi in lotti (batch)
con esigenze simili
Sistemi Operativi T - AA 2009-2010 30
Sistemi Sistemi batch batch semplicisempliciBatch: insieme di programmi (job) da
eseguire in modo sequenziale
JOB begin$compile
$load$run
JOB end
Sistemi Operativi T - AA 2009-2010 31
Sistemi Sistemi batch batch semplicisempliciCompito di SO (monitor):
trasferimento di controllo da un job (appena terminato)al prossimo da eseguire
Caratteristiche dei sistemi Caratteristiche dei sistemi batch batch semplici:semplici:• SO 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 T - AA 2009-2010 32
Sistemi Sistemi batch batch semplicisempliciIn memoria centrale, ad ogni istante,è caricato (al più) un solo job:
Sistemaoperativo
Jobdi utente
Configurazione dellamemoria centrale in
sistemi batchsemplici
Sistemi Operativi T - AA 2009-2010 33
Spooling (Simultaneous Peripheral Operation On Line):simultaneità di I/O e attività di CPU
disco viene impiegato come buffer molto ampio, dove leggere in anticipo i dati memorizzare 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 Sistemi batchbatch semplici semplici
cpu outputinput
disco
Sistemi Operativi T - AA 2009-2010 34
Sistemi Sistemi batch batch semplicisemplici
Problemi: finché il job corrente non è terminato, ilsuccessivo non può iniziare l’esecuzione
se un job si sospende in attesa di unevento, la CPU rimane inattivainattiva
non c’è interazione con l’utente
Sistemi Operativi T - AA 2009-2010 35
Sistemi Sistemi batch multiprogrammatibatch multiprogrammatiSistemi Sistemi batch batch semplicisemplici: l’attesa di un evento causa inattività
della CPU. Per evitare il problema
MultiprogrammazioneMultiprogrammazione
Pool di jobPool di job contemporaneamente presenti sudisco:
• Il SO seleziona un sottoinsieme dei jobsottoinsieme dei jobappartenenti al pool da caricare in memoriacaricare in memoriacentralecentrale
• mentre un job è in attesa di un eventoattesa di un evento, ilsistema operativo assegna CPU a un altrojob
Sistemi Operativi T - AA 2009-2010 36
Sistemi Sistemi batch multiprogrammatibatch multiprogrammatiSO è in grado di portare avanti l’esecuzione di piùjob contemporaneamente.
Ad ogni istante:•• un solo jobun solo job utilizza la CPU•• più job,più job, appartenenti al pool selezionato e caricati in
memoria centrale, attendono di acquisire la CPU
Quando il job che sta utilizzando la CPUsi sospende in attesa di un evento:
• SO decidedecide a quale job assegnare la CPU ed effettua loscambio (schedulingscheduling)
Sistemi Operativi T - AA 2009-2010 37
Sistemi Sistemi batch multiprogbatch multiprog.: .: schedulingscheduling
SO effettua delle scelteSO effettua delle scelte tra tutti i job 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)
Memoria centrale CPUdisco
Schedulingdei job
Schedulingdella CPU
Sistemi Operativi T - AA 2009-2010 38
Sistemi Sistemi batch multiprogrammatibatch multiprogrammati
tt22tt11 t
job1
job2
job3
t0
Attesa di eventiUsoCPU
Sistemi Operativi T - AA 2009-2010 39
Sistemi Sistemi batch multiprogrammatibatch multiprogrammati
In memoria centrale, ad ogniistante, possono essere caricati piùjob:
Configurazione dellamemoria centrale in
sistemi batchmultiprogrammati
Necessità diNecessità diprotezioneprotezione
SistemaOperativo
job 1
job 2
job 3
Sistemi Operativi T - AA 2009-2010 40
Sistemi Sistemi time-sharing time-sharing ((MulticsMultics, 1965, 1965))Nascono dalla necessità di:
•• interattivitàinterattività con l’utente•• multi-utenzamulti-utenza: : più utenti interagiscono
contemporaneamente con SO
Sistema Operativo
Hardware
Utente 1 Utente 2 Utente n
Sistemi Operativi T - AA 2009-2010 41
Sistemi Sistemi time-sharingtime-sharingMultiutenzaMultiutenza: il sistema presenta ad ogni utente
una macchina virtuale completamentededicata in termini di
• utilizzo della CPU• utilizzo di altre risorse, ad es. file system
InterattivitàInterattività: per garantire un’accettabilevelocità di “reazione” alle richieste dei singoliutenti, SO interrompeinterrompe l’esecuzione di ogni jobdopo un intervallo di tempo prefissato (quantodi tempo, o time slice), assegnando la CPU aun altro job
Sistemi Operativi T - AA 2009-2010 42
Sistemi Sistemi time-sharingtime-sharing
Sono sistemi in cui:Sono sistemi in cui:• attività della CPU è dedicata a job diversi che si
alternano ciclicamente nell’uso della risorsa• 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)
Sistemi Operativi T - AA 2009-2010 43
Sistemi Sistemi time-sharingtime-sharing
job1job2job3CPU
t
job1
job2
job3
t0 tt22 tt33 tt44 tt55tt11
Dt Dt
Attesa di eventi fine del quanto di tempo
Sistemi Operativi T - AA 2009-2010 44
Time-sharingTime-sharing: requisiti: 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 CPU•• Sincronizzazione/comunicazioneSincronizzazione/comunicazione tra job:
• interazione• prevenzione/trattamento di blocchi critici (deadlock)
•• InterattivitàInterattività: accesso on-line al file system perpermettere agli utenti di accedere semplicemente a codice e dati
Sistemi Operativi T - AA 2009-2010 45
Esempi di SOEsempi di SO
MSDOSMSDOS: monoprogrammato, monoutente Windows 95/98, molti SO attuali perWindows 95/98, molti SO attuali per
dispositivi portabili (dispositivi portabili (SymbianSymbian, , PalmOSPalmOS,,AndroidAndroid, , etcetc.).): multiprogrammato (timesharing), tipicamente monoutente
Windows NT/2000/XP2000/XP: multiprogrammato,“multiutente”
MacOSXMacOSX: multiprogrammato, multiutente UNIX/LinuxUNIX/Linux: multiprogrammato, multiutente
Sistemi Operativi T - AA 2009-2010 46
Evoluzione dei concetti nei SOEvoluzione dei concetti nei SO
Sistemi Operativi T - AA 2009-2010 47
Alcuni richiami al funzionamentoAlcuni richiami al funzionamentohardware di un sistema dihardware di un sistema di
elaborazioneelaborazione
Sistemi Operativi T - AA 2009-2010 48
Architettura di un sistema di elaborazioneArchitettura di un sistema di elaborazione
ControllerController: interfaccia HW delle perifericheverso il bus di sistema
CPU
Controllerdischi
Controllermemoria
Controllervideo
Controllerstampante
Memoria
bus
Sistemi Operativi T - AA 2009-2010 49
Hardware di un sistema di elaborazioneHardware di un sistema di elaborazione
Funzionamento a interruzioni:Funzionamento a interruzioni: le varie componenti (HW e SW) del sistema
interagiscono con SO mediante interruzioniasincrone (interrupt)
ogni interruzione è causata da un eventoevento,, ad es.:richiesta di servizi al SOcompletamento di I/Oaccesso non consentito alla memoria
ad ogni interruzione è associata una routine diroutine diservizio servizio (handler) per la gestione dell’evento
Sistemi Operativi T - AA 2009-2010 50
•• Interruzioni hardwareInterruzioni hardware:dispositivi inviano segnali a CPU perrichiedere l’esecuzione di servizi diSO
Interruzioni hardware e softwareInterruzioni hardware e software
•• Interruzioni softwareInterruzioni software::programmi in esecuzione possonogenerare interruzioni SW quando tentano l’esecuzione di
operazioni non lecite (ad es.divisione per 0): trap
quando richiedono l’esecuzionedi servizi al SO - system call
Sistema
Operativo
dispositivo
Segnale di
interrupt
Sistema
Operativo
dispositivo
Segnale di
interrupt
Sistema
Operativo
programma
Interruzione SW
(system call)
Sistemi Operativi T - AA 2009-2010 51
Gestione delle interruzioniGestione delle interruzioniAlla ricezione di un’interruzione, il SO (lo
vedremo in seguito nel dettaglio per il cambio di contesto):1] interrompe la sua esecuzione => salvataggio dello stato in
memoria (locazione fissa, stack di sistema, ...)2] attiva la routine di servizio all’interruzione (handler)3] ripristina lo stato salvato
Per individuare la routine di servizio, si puòutilizzare un vettore delle interruzioni
Routine di
servizioi
Vettore delleinterruzioni
Sistemi Operativi T - AA 2009-2010 52
Input/OutputInput/Output
Come avviene l’I/O in un sistema dielaborazione?
ControllerController: interfaccia HW delle perifericheverso il bus di sistema
ogni controller è dotato di un registro dati (ove memorizzare temporaneamente
le informazioni da leggere o scrivere) alcuni registri speciali , ove memorizzare le specifiche
delle operazioni di I/O da eseguire (reg. controllo) el’esito delle operazioni eseguite (reg. stato).
Sistemi Operativi T - AA 2009-2010 53
Quando un job richiede un’operazione di I/O (adesempio, letturalettura da un dispositivo):
CPU scrive nei registri speciali del dispositivo coinvolto lespecifiche dell’operazione da eseguire
controller esamina i registri e provvede a trasferire i datirichiesti dal dispositivo al registro dati
invio di interrupt alla CPU (completamento deltrasferimento)
CPU esegue l’operazione di I/O tramite la routine di servizio(trasferimento dal registro dati del controller alla memoriacentrale)
driver di dispositivo: driver di dispositivo: componente del SO che copia nei registri del controller le informazioni
relative all’operazione da effettuare è l’unica componente del s.o. device-dependent
(la sua struttura è strettamente dipendente dalparticolare dispositivo controllato)
Input/OutputInput/Output
Sistemi Operativi T - AA 2009-2010 54
2 tipi di I/O2 tipi di I/O Sincrono: il job viene sospeso in attesa del
completamento dell’operazione di I/O Asincrono: il sistema restituisce immediatamente il
controllo al job se necessario, funzionalità
di blocco in attesa dicompletamento dell’I/O
possibilità di più I/O pendenti-> tabella di stato dei dispositivi
I/O asincrono = maggiore efficienza
Input/OutputInput/Output
Disp.1:stampante Rich. di stampa
A
Rich. di stampa
B
Disp.2:disco 1
Disp.3:disco 2
Sistemi Operativi T - AA 2009-2010 55
Il trasferimento tra memoria e dispositivo puòessere effettuato direttamente, senza interventodella CPU
Introduzione di un dispositivo HW per controllareI/O: DMA controllerDMA controller driver di dispositivo (DMA) driver di dispositivo (DMA) componente del
SO che copia nei registri del DMA controller i dati
relativi al trasferimento da effettuare invia comando richiesto al DMA controller
interruptinterrupt alla CPU (inviato dal DMA controller)solo alla fine del trasferimento dispositivo ->memoria, usualmente di grandi quantità di dati
Direct Direct Memory Memory AccessAccess
Sistemi Operativi T - AA 2009-2010 56
Protezione HW degli accessi a risorseProtezione HW degli accessi a risorse
• Nei sistemi che prevedono multiprogrammazione emultiutenza sono necessari alcuni meccanismi HW(e non solo…) per esercitare protezioneprotezione
• Le risorse allocate a programmi/utenti devonoessere protette nei confronti di accessi illecitiaccessi illeciti dialtri programmi/utenti:
dispositivi di I/O memoria CPU
Ad esempio: accesso a locazioni esterne allospazio di indirizzamento del programma
Sistemi Operativi T - AA 2009-2010 57
Protezione della memoriaProtezione della memoria
In 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 memoriaesterne al proprio spazio (ad esempio del SOoppure di altri job)
Sistemaoperativo
Job 1
Job 2
Job 3
Se fosse consentito: unprogramma potrebbe modificarecodice e dati di altri programmi
o, ancor peggio, del SO
Sistemi Operativi T - AA 2009-2010 58
ProtezioneProtezione
Per garantire protezione, moltePer garantire protezione, moltearchitetture di CPU prevedono unarchitetture di CPU prevedono un dupliceduplicemodo di funzionamento (modo di funzionamento (dual dual mode):mode): useruser mode kernelkernel mode (supervisorsupervisor, monitormonitor mode)
Realizzazione:Realizzazione: l’architettura hardware della CPUprevede almeno un bit di modobit di modo
• kernel: 0• user: 1
Sistemi Operativi T - AA 2009-2010 59
Dual Dual modemodeIstruzioni privilegiateIstruzioni privilegiate:: sono quelle più pericolose
e possono essere eseguite soltanto se il sistema sitrova in kernel mode:
• accesso a dispositivi di I/O (dischi,schede di rete, ...)• gestione della memoria (accesso a strutture dati di
sistema per controllo e accesso alla memoria, …)• disabilitazione interruzioni• istruzione di shutdownshutdown (arresto del sistema)• …
Sistemi Operativi T - AA 2009-2010 60
Dual Dual ModeMode SO esegue in modo kernel
Ogni programma utente esegue in user mode:• quando un programma utente tenta l’esecuzione di
una istruzione privilegiata, viene generato un trap
• se necessita di operazioni privilegiate:chiamata a system system callcall
Sistemi Operativi T - AA 2009-2010 61
System System callcall
Per ottenere l’esecuzione di istruzioniprivilegiate, un programma di utente devechiamare una system call:
invio di un’interruzione software al SO salvataggio dello stato (PC, registri, bit di
modo, ...) del programma chiamante e trasferimento del controllo al SO
SO esegue in modo kernelkernel l’operazione richiesta
al termine dell’operazione, il controllo ritornaal programma chiamante (ritorno al modo useruser)
Sistemi Operativi T - AA 2009-2010 62
System System callcall
UserUser mode mode
KernelKernel mode mode
system call: read( )
Interrupt SW(salvataggio dello stato delprogramma utente)
Routine di gestionedell’interruzione
Esecuzione dell’operazionead es. read()
ripristino dellostato delprogramma utente
Programma utente
Sistemi Operativi T - AA 2009-2010 63
ProtezioneProtezioneES: Architettura Intel IA32.• I 2 bit meno significativi del registro CS rappresentano il
livello (ring) di privilegio corrente (Current Privilege Level):
Ring 0 dotato dei maggiori privilegi e quindi destinato alkernel del sistema operativo -> modo kernel
…Ring 3, quello dotato dei minori privilegi e quindi destinato
alle applicazioni utente -> modo user
I sistemi operativi Windows e Linux usano solo il ring 0(kernel mode) e il ring 3 (user mode).
Sistemi Operativi T - AA 2009-2010 64
Introduzione allIntroduzione all’’Organizzazione deiOrganizzazione deiSistemi OperativiSistemi Operativi
Sistemi Operativi T - AA 2009-2010 65
Struttura dei SOStruttura dei SO
Quali sono le componenticomponenti di un SO?• gestione dei processi• gestione della memoria centrale• gestione di memoria secondaria e file system• gestione dell’I/O• protezione e sicurezza• interfaccia utente/programmatore
Quali sono le relazioni mutuerelazioni mutue tra lecomponenti?
Sistemi Operativi T - AA 2009-2010 66
Processo = programma + contesto di esecuzione (PC, registri, …)
ProcessiProcessiProcesso = programma in esecuzione
• il programma è un’entità passiva (uninsieme di byte contenente le istruzioniche dovranno essere eseguite)
• il processo è un’entità attiva:• è l’unità di lavoro/esecuzione all’interno del
sistema. Ogni attività all’interno del SO èrappresentata da un processo
• è l’istanza di un programma in esecuzione
Sistemi Operativi T - AA 2009-2010 67
Gestione dei processiGestione dei processiIn un sistema multiprogrammato: più processi
possono essere simultaneamente presenti nelsistema
Compito cruciale del SOCompito cruciale del SO creazione/terminazione dei processi sospensione/ripristino dei processi sincronizzazione/comunicazione dei processi gestione del blocco critico (deadlock) di processi
Sistemi Operativi T - AA 2009-2010 68
Gestione della memoria centraleGestione della memoria centrale
HW di sistema di elaborazione è equipaggiato con ununico spazio di memoria accessibile direttamente daCPU e dispositivi
Compito cruciale di SOCompito cruciale di SO separare gli spazi di indirizzi associati ai processi allocare/deallocare memoria ai processi memoria virtuale - gestire spazi logici di indirizzi
di dimensioni complessivamente superiori allospazio fisico
realizzare i collegamenti (binding) tra memorialogica e memoria fisica
Sistemi Operativi T - AA 2009-2010 69
Gestione dei dispositivi di I/OGestione dei dispositivi di I/O
Gestione dell’I/O rappresenta unaparte importante di SO:
interfaccia tra programmi e dispositivi per ogni dispositivo: device driver
• routine per l’interazione con un particolaredispositivo
• contiene conoscenza specifica sul dispositivo(ad es., routine di gestione delle interruzioni)
Sistemi Operativi T - AA 2009-2010 70
Gestione della memoria secondariaGestione della memoria secondaria
Tra tutti i dispositivi, la memoria secondaria riveste unruolo particolarmente importante: allocazione/deallocazione di spazio gestione dello spazio libero scheduling delle operazioni sul disco
Di solito:• la gestione dei file usa i meccanismi di gestione della
memoria secondaria• la gestione della memoria secondaria è indipendente
dalla gestione dei file
Sistemi Operativi T - AA 2009-2010 71
Gestione del file systemGestione del file systemOgni sistema di elaborazione dispone di uno o piùdispositivi per la memorizzazione persistente delleinformazioni (memoria secondaria)
Compito di SOCompito di SOfornire una visione logica uniforme della memoriasecondaria (indipendente dal tipo e dal numero deidispositivi):
• realizzare il concetto astratto di file, comeunità di memorizzazione logica
• fornire una struttura astratta perl’organizzazione dei file (direttorio)
Sistemi Operativi T - AA 2009-2010 72
Gestione del file systemGestione del file system
Inoltre, SO si deve occupare diInoltre, SO si deve occupare di:: creazione/cancellazione di file e direttori manipolazione di file/direttori associazione tra file e dispositivi di memorizzazione
secondaria
SpessoSpesso file, direttori e dispositivi di I/O vengonofile, direttori e dispositivi di I/O vengonopresentatipresentati a utenti/programmi a utenti/programmi in modo uniformein modo uniforme
Sistemi Operativi T - AA 2009-2010 73
Protezione e sicurezzaProtezione e sicurezzaIn un sistema multiprogrammato, più entità (processi o utenti)possono utilizzare le risorse del sistema contemporaneamente:necessità di protezioneProtezioneProtezione:: controllo dell’accesso alle risorse delsistema da parte di processi (e utenti) mediante
• autorizzazioni• modalità di accesso
Risorse da proteggereRisorse da proteggere: memoria processi file dispositivi
Sistemi Operativi T - AA 2009-2010 74
Protezione e sicurezzaProtezione e sicurezza
Sicurezza:se il sistema appartiene a una rete, la sicurezzamisura l’affidabilità del sistema nei confronti diaccessi (attacchi) dal mondo esterno
Non ce ne occuperemo all’interno di questo corso…
Sistemi Operativi T - AA 2009-2010 75
Interfaccia utenteInterfaccia utente
SO presenta un’interfaccia che consentel’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 interazione mouse-elementigrafici su desktop; di solito è organizzata afinestre
Sistemi Operativi T - AA 2009-2010 76
Interfaccia programmatoreInterfaccia programmatore
LL’’interfaccia del SO verso i processi èinterfaccia del SO verso i processi èrappresentato dalle rappresentato dalle system system callcall::
• mediante la system call il processo richiede aSO l’esecuzione di un servizio
• la system call esegue istruzioni privilegiate:passaggio da modo useruser a modo kernelkernel
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 sistema Programma di sistema = programma che chiama system call
Sistemi Operativi T - AA 2009-2010 77
Struttura e organizzazione di SOStruttura e organizzazione di SOSistema operativo = insieme di componenti
gestione dei processi gestione della memoria centrale gestione dei file gestione dell’I/O gestione della memoria secondaria protezione e sicurezza interfaccia utente/programmatore
Le componenti non sono indipendenti tra loro, mainteragiscono
Sistemi Operativi T - AA 2009-2010 78
Struttura del Sistema OperativoStruttura del Sistema Operativo
Come sono organizzate le varie componentiall’interno del sistema operativo?
Varie soluzioni:Varie soluzioni: struttura monolitica struttura modulare Microkernel Macchine virtuali
Sistemi Operativi T - AA 2009-2010 79
Struttura MonoliticaStruttura 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
Sistemi Operativi T - AA 2009-2010 80
Sistemi Operativi MonoliticiSistemi 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à• ...
Soluzione: Soluzione: organizzazione modulare
Sistemi Operativi T - AA 2009-2010 81
Struttura modulareStruttura modulareLe varie componenti del SO vengonoorganizzate in moduli caratterizzati dainterfacce ben definite.
Sistemi Stratificati (a livelli) (THE, Dijkstra1968)
il sistema operativo è costituito da livellisovrapposti, ognuno dei quali realizza uninsieme di funzionalità:
• ogni livello realizza un’insieme di funzionalità chevengono offerte al livello superiore medianteun’interfaccia
• ogni livello utilizza le funzionalità offerte dal livellosottostante, per realizzare altre funzionalità
Sistemi Operativi T - AA 2009-2010 82
Ad 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 livelliStruttura a livelli
Sistemi Operativi T - AA 2009-2010 83
Struttura StratificataStruttura Stratificata
Vantaggi:• 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.
Sistemi Operativi T - AA 2009-2010 84
Struttura StratificataStruttura 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 T - AA 2009-2010 85
Nucleo del Sistema Operativo (Nucleo del Sistema Operativo (kernelkernel))
“E` la parte del sistema operativo che esegue inmodo kernel”
• È la parte più interna del sistema operativo, che siinterfaccia direttamente con l’hardware dellamacchina.
• Le funzioni realizzate all’interno del nucleo varianoa seconda del Sistema Operativo.
Sistemi Operativi T - AA 2009-2010 86
Nucleo del Sistema OperativoNucleo del Sistema Operativo((kernelkernel))
• Tipicamente, tra le funzioni del nucleo ci sono:• 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• implementazione system call.
Sistemi Operativi T - AA 2009-2010 87
Sistemi Operativi a Sistemi Operativi a MicrokernelMicrokernel
• La struttura del nucleo è ridotta a poche funzionalità dibase.
• 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: Minix, L4, Mach, Hurd, BeOS/Haiku
Sistemi Operativi T - AA 2009-2010 88
L4 L4 µµkernelkernelhttp:http://os//os..infinf..tu-dresdentu-dresden.de.de
• gestione dei thread• allocazione della memoria (pager esterni)• Inter Process Communication
Comunicazione Threads
Memoria
Hardware
IRQ
IPC
Externalpagers Unmap
Mapping
Sistemi Operativi T - AA 2009-2010 89
GNU/HurdGNU/Hurd
processi utente
µkernel MACH
Server diHurd
spaziokernel
spazioutente
authserver
processserver
filesystemserver
Sistemi Operativi T - AA 2009-2010 90
Kernel Kernel IbridiIbridi
• microkernel che integrano a livellokernel funzionalità non essenziali.
Esempi: Microsoft Windows. XNU, il kernel di Mac OS X (inclusione di
codice BSD in un kernel basato su Mach).
Sistemi Operativi T - AA 2009-2010 91
XNU (Darwin) - XNU (Darwin) - ““X X is Not Unixis Not Unix””Mach:kernel threadsProcessespre-emptive multitaskingmessage-passingMemory management
BSD: basic security policies,protezione, network stack, filesystem, Posix API
Sistemi Operativi T - AA 2009-2010 92
MSWinXPMSWinXP
Kernel implementa:• Scheduler• Gestore della
memoria• Interprocess
communication(IPC)
Server in user-mode
MemoryServer
ClientApp
Network Server
ProcessServer
FileServer
DisplayServer
Microkernel
Hardware
request
reply
User Mode
Kernel Mode
Sistemi Operativi T - AA 2009-2010 93
Architettura di WinXPArchitettura di WinXP::vista vista semplificatasemplificata
Systemsupport
processes
Serviceprocesses
Userapplications
Environmentsubsystems
Subsystem DLLs
ExecutiveKernel Device drivers
Hardware Abstraction Layer (HAL)
Windowingand graphics
UserMode
KernelMode
Sistemi Operativi T - AA 2009-2010 94
Cenni di architettura Cenni di architettura WinXPWinXP• Progettato per avere più “personalità”
Applicazioni utente non chiamano servizi di sistemadirettam.
• DLL di sottosistema per tradurre una funzionenella corrispondente chiamata di sistema interna
• Processi di Sottosistema (Environment Subsystem) Espongono una serie di funzionalità sottostanti alle applic. Possono fare cose diverse nei diversi sottosistemi (e.g.,
POSIX fork)• Originariamente tre sottosistemi: Windows, POSIX
e OS/2 Windows 2000 include solo sottosistemi Windows e POSIX Windows XP/Vista include solo il sottosistema Windows
• “Services for Unix” offrono un sottosistema POSIX• Inclusi in Windows Server 2003 R2
Sistemi Operativi T - AA 2009-2010 95
OS/2Windows
POSIX
Environment Subsystems
UserApplicationSubsystem DLL
WindowsUser/GDI
UserMode
ExecutiveDevice Drivers Kernel
Hardware Abstraction Layer (HAL)
KernelMode
System& ServiceProcesses
Componenti di sottosistemaComponenti di sottosistema• DLL per le API
per Windows: Kernel32.DLL, Gdi32.DLL, User32.DLL, etc.• Processi di sottosistema
per Windows: CSRSS.EXE (Client Server Runtime SubSystem)• Solo per Windows: kernel-mode GDI code
Win32K.SYS - (il codice era originariamente parte di CSRSS)
3
2
1
3
2
1
Sistemi Operativi T - AA 2009-2010 96
NtDll.Dll
OS/2Windows
POSIX
Environment Subsystems
WindowsUser/GDI
UserMode
ExecutiveDevice Drivers Kernel
Hardware Abstraction Layer (HAL)
KernelMode
System& ServiceProcesses
1 3 2
KiSystemService
UserApplicationSubsystem DLL
LPC
ComunicazioneComunicazione applicazioniapplicazioni con SO con SO
• La maggior parte delle Windows Kernel API• La maggior parte delle Windows User e GDI API• Alcune Windows API321
Sistemi Operativi T - AA 2009-2010 97
ModularitàModularità Molti moderni SO implementano il kernel in maniera
modulare ogni modulo core è separato ogni modulo interagisce con gli altri tramite interfacce note ogni modulo può essere caricato nel kernel quando e ove
necessario possono usare tecniche object-oriented
Strutturazione simile ai livelli, ma con maggiore flessibilità
Esempio di SO Solarisdi SUN
Sistemi Operativi T - AA 2009-2010 98
Una piccola panoramicaUna piccola panoramica::organizzazione di organizzazione di MS-DOSMS-DOS
MS-DOS – progettatoper avere minimo footprint non diviso in moduli sebbene abbia una
qualche struttura,interfacce e livelli difunzionalità non sonoben separati
Sistemi Operativi T - AA 2009-2010 99
UNIX – dati i limiti delle risorse hw del tempo,originariamente UNIX sceglie di avere unastrutturazione limitata. Consiste di due partiseparabili: programmi di sistema kernel
• costituito da tutto ciò che è sotto l’interfacciadelle system-call interface e sopra hw fisico
• fornisce funzionalità di file system, CPUscheduling, gestione memoria, …; moltefunzionalità tutte allo stesso livello
Una piccola panoramicaUna piccola panoramica::organizzazione di organizzazione di UNIXUNIX
Sistemi Operativi T - AA 2009-2010 100
Organizzazione di Organizzazione di UNIXUNIX
kernelprogram
mi
utente e di sistem
a
Sistemi Operativi T - AA 2009-2010 101
UNIX: UNIX: qualche cenno storicoqualche cenno storico• Thompson e Ritchie, Bell Laboratories (1969). Raccolti diversi
spunti dalle caratteristiche di altri SO contemporanei, specieMULTICS
• Terza versione del sistema scritta in C, specificamentesviluppato ai Bell Labs per supportare e implementare UNIX
• Gruppo di sviluppo UNIX più influente (escludendo Bell Labs eAT&T) - University of California at Berkeley (BerkeleySoftware Distributions): 4.0BSD UNIX fu il risultato di finanziamento DARPA per lo
sviluppo di una versione standard di UNIX 4.3BSD UNIX, sviluppato per VAX, influenzò molti dei SO
successivi• Numerosi progetti di standardizzazione per giungere
a interfaccia di programmazione uniformePOSIX
Sistemi Operativi T - AA 2009-2010 102
Sistemi Operativi T - AA 2009-2010 103
UNIX: UNIX: principi di progettazione principi di progettazione e e vantaggivantaggi• Progetto snello, pulito e modulare• Scritto in linguaggio di alto livello (linguaggio C)• Disponibilità codice sorgente• Potenti primitive di SO su una piattaforma a
basso prezzo Progettato per essere time-sharing User interface semplice (shell), anche sostituibile File system con direttori organizzati ad albero Concetto unificante di file, come sequenza non strutturata
di byte Supporto semplice a processi multipli e concorrenza Supporto ampio allo sviluppo di programmi applicativi e/o di
sistema
Sistemi Operativi T - AA 2009-2010 104
Una piccola panoramicaUna piccola panoramica::organizzazione di organizzazione di OS/2OS/2
Buonastrutturazione
a livelli emodulare
Sistemi Operativi T - AA 2009-2010 105
Macchine virtualiMacchine virtuali
Macchine virtuali (VMWare, VirtualBox, xen, Java?,.NET?) sono la logica evoluzione dell’approccio alivelli. Virtualizzano sia hardware che kernel delSO
• Creano l’illusione di processi multipli, ciascuno inesecuzione sul suo processore privato e con lapropria memoria virtuale privata, messa adisposizione dal proprio kernel SO, che può esserediverso per processi diversi
Sistemi Operativi T - AA 2009-2010 106
VirtualizzazioneVirtualizzazioneDato un sistema caratterizzato da un insieme di risorse (hardware esoftware), virtualizzare il sistema significa presentare all’utilizzatore unavisione delle risorse del sistema diversa da quella reale.
Ciò si ottiene introducendo un livello di indirezione tra la vista logica e quellafisica delle risorse.
Obiettivo: disaccoppiare il comportamento delle risorse hardware esoftware di un sistema di elaborazione, così come viste dall’utente, dalla lororealizzazione fisica.
Tecnologie di virtualizzazione
Sistema realerisorse HW/SW
Vista fisica(sistema reale)
Vista logica (sistema virtuale)
Sistemi Operativi T - AA 2009-2010 107
Esempi di Esempi di virtualizzazionevirtualizzazioneAstrazione: in generale un oggetto astratto (risorsa virtuale) è larappresentazione semplificata di un oggetto (risorsa fisica):
• esibendo le proprietà significative per l’utilizzatore• nascondendo i dettagli realizzativi non necessari.
Es: tipi di dato vs. rappresentazione binaria nella cella di memoriaIl disaccoppiamento è realizzato dalle operazioni (interfaccia) con le quali èpossibile utilizzare l’oggetto.
Linguaggi di Programmazione. La capacità di portare lo stesso programma(scritto in un linguaggio di alto livello) su architetture diverse è possibilegrazie alla definizione di una macchina virtuale in grado di interpretare edeseguire ogni istruzione del linguaggio, indipendentemente dall’architetturadel sistema (S.O. e HW):
• Interpreti (esempio Java Virtual Machine)• Compilatori
Virtualizzazione a livello di processo. I sistemi multitasking permettono lacontemporanea esecuzione di più processi, ognuno dei quali dispone di unamacchina virtuale (CPU, memoria, dispositivi) dedicata. La virtualizzazione èrealizzata dal kernel del sistema operativo.
Sistemi Operativi T - AA 2009-2010 108
Sistemi Operativi Sistemi Operativi per laper laVirtualizzazioneVirtualizzazione
• La macchina fisica viene trasformata in n interfacce(macchine virtuali), ognuna delle quali e` una replica dellamacchina fisica: dotata di tutte le istruzioni del processore (sia privilegiate che
non privilegiate) dotata delle risorse del sistema (memoria, dispositivi di I/O).
Su ogni macchina virtuale è possibile installare ed eseguireun sistema operativo (eventualmente diverso da macchina amacchina): Virtual Machine Monitor
Sistemi Operativi T - AA 2009-2010 109
Virtualizzazione di Sistema. Una singola piattaforma hardware viene condivisada più sistemi operativi, ognuno dei quali è installato su una diversa macchinavirtuale.Il disaccoppiamento è realizzato da un componente chiamato Virtual MachineMonitor (VMM, o hypervisor) il cui compito è consentire la condivisione da partedi più macchine virtuali di una singola piattaforma hardware. Ogni macchinavirtuale è costituita oltre che dall’applicazione che in essa viene eseguita, anchedal sistema operativo utilizzato.
Il VMM è il mediatore unico nelle interazioni tra le macchine virtuali e l’hardwaresottostante, che garantisce:
• isolamento tra le VM• stabilità del sistema
VIRTUAL MACHINE MONITOR
HARDWARE
applicazioni
sistema operativo
applicazioni applicazioni
sistema operativo sistema operativo
VM1 VM2 VM3
Sistemi Operativi T - AA 2009-2010 110
VMM di Sistema. le funzionalità di virtualizzazione vengono integrate in un sistemaoperativo leggero, costituendo un unico sistema postodirettamente sopra l’hardware dell’elaboratore.
E’ necessario corredare il VMM di tutti i driver necessari perpilotare le periferiche.
Esempi di VMM di sistema: Vmware ESX, xen
VMM di sistema VMM di sistema vsvs. VMM ospitati. VMM ospitati
Sistemi Operativi T - AA 2009-2010 111
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
Sistemi Operativi T - AA 2009-2010 112
VMM ospitatoil VMM viene installato come un’applicazione sopra un sistemaoperativo esistente, che opera nello spazio utente e accedel’hardware tramite le system call del S.O. su cui viene installato.
• Più semplice l’installazione (come un’applicazione).• Può fare riferimento al S.O. sottostante per la gestione delle
periferiche e può utilizzare altri servizi del S.O.(es. scheduling,gestione delle risorse.).
• Peggiore la performance.
Prodotti: User Mode Linux, VMware Server/Player, MicrosoftVirtual Server , Parallels, VirtualBox.
Sistemi Operativi T - AA 2009-2010 113
Applicazionihost
Applicazioniguest
Applicazioniguest
S.O. S.O.
HARDWARE
VMM ospitato
SISTEMA OPERATIVO
VM1 VM2
VIRTUAL MACHINE MONITOR
guest
host
Sistemi Operativi T - AA 2009-2010 114
Virtualizzazione Virtualizzazione e e EmulazioneEmulazione
Emulazione:• eseguire applicazioni (o SO) compilate per un'architettura su di
un’altra.• uno strato software emula le funzionalita` dell'architettura; il s.o.
esegue sopra tale strato (a livello user). Le istruzioni macchinaprivilegiate e non privilegiate vengono emulate via SW. (Bochs,Qemu)
Virtualizzazione:• definizione di contesti di esecuzione multipli (macchine virtuali) su
di un singolo processore, partizionando le risorse;
Sistemi Operativi T - AA 2009-2010 115
Tecniche di VirtualizzazioneTecniche di Virtualizzazionevirtualizzazione completa: le istruzioni non privilegiate vengono
eseguite direttamente a livello HW; solo le istruzioni privilegiatevengono traslate dinamicamente; il set di istruzioni delle macchinevirtuali e` lo stesso della macchina fisica.(VMware)
paravirtualizzazione: l’hardware virtuale esposto dal VMM e`funzionalmente simile, ma non identico, a quello della sottostantemacchina fisica. Definizione di una Applications ProgrammingInterface (Virtual Hardware API). Il kernel dei sistemi operativinelle macchine virtuali deve essere modificato. (xen)
Sistemi Operativi T - AA 2009-2010 116
Vantaggi della virtualizzazioneVantaggi 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 T - AA 2009-2010 117
Vantaggi della Vantaggi della virtualizzazionevirtualizzazione• 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
Sistemi Operativi T - AA 2009-2010 118
Vantaggi della Vantaggi della virtualizzazionevirtualizzazione• 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) ha realizzato un laboratorio dimacchine virtuali che offre ad ogni studente una macchina virtuale personale daamministrare 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` del sistema. possibilita` di testing di applicazioni potenzialmente pericolose senza il rischio di
interferire con altri utenti/macchine; possibilita` di trasferire le proprie macchine virtuali in supporti mobili (es:
memorie USB, per continuare le esercitazioni sul computer di casa).
Dotazione hw: 5 server Intel-VT xeon (2 processori quadcore), storage unit CORAID12TB
Software: xen
Sistemi Operativi T - AA 2009-2010 119
Unix Unix & & LinuxLinux
Sistemi Operativi T - AA 2009-2010 120
Storia di Storia di UnixUnix• 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.
Sistemi Operativi T - AA 2009-2010 121
Unix Unix e il linguaggio Ce 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 T - AA 2009-2010 122
Organizzazione di Organizzazione di UnixUnix
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
Sistemi Operativi T - AA 2009-2010 123
Caratteristiche di Caratteristiche di UnixUnix
multi-utente time sharing kernel monolitico Ambiente di sviluppo per programmi in linguaggio C Programmazione mediante linguaggi comandi portabilità
Sistemi Operativi T - AA 2009-2010 124
POSIXPOSIX• 1988: POSIX (Portable Operating Systems
Interface) è lo standard definito dall’IEEE.Definisce le caratteristiche relative alle modalitàdi utilizzo del sistema operativo.
• 1990: POSIX viene anche riconosciuto dall'International Standards Organization (ISO).
• Anni 90: Negli anni seguenti, le versionisuccessive di Unix SystemV e BSD (versione 4.3),si uniformano a POSIX.
Sistemi Operativi T - AA 2009-2010 125
Introduzione Introduzione a GNU/Linuxa GNU/Linux
• GNU project: 1984: Richard Stallman avvia un progetto di sviluppo di un
sistema 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` molte vicissitudini evide la luce molto piu` tardi (1996)
Sistemi Operativi T - AA 2009-2010 126
GNU/LinuxGNU/Linux• 1991: Linus Tornvalds realizza un kernel
Unix-compatibile (Minix) per l’architetturaintel x86 e pubblica su web i sorgenti
• In breve tempo, grazie a una comunita` dihacker in rapidissima espansione, Linuxacquista le caratteristiche di un prodottoaffidabile e in continuo miglioramento.
• 1994: Linux viene integrato nel progettoGNU come kernel del sistema operativo:nasce il sistema operativo GNU/Linux
Sistemi Operativi T - AA 2009-2010 127
GNU/LinuxGNU/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à