127
Sistemi Operativi T - AA 2009-2010 1 Università di Bologna Università di Bologna Laurea in Ingegneria Informatica Laurea in Ingegneria Informatica A.A. 200 A.A. 2009 -2010 -2010 Sistemi Operativi T Sistemi Operativi T Prof. Anna Ciampolini http://lia.deis.unibo.it/Courses/sot0910

Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

Embed Size (px)

Citation preview

Page 1: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 2: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 3: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 4: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 5: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 6: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 7: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 8: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 9: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 10: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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.

Page 11: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 12: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 13: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 14: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 15: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 16: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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.

Page 17: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 18: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 19: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 20: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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]

Page 21: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 22: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 23: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 24: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 25: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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), ...

Page 26: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

Sistemi Operativi T - AA 2009-2010 26

Che cosChe cos’è’è un Sistema Operativo? un Sistema Operativo?

Sistema Operativo

Hardware

Programmi Applicativi

Utenti

Page 27: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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?

Page 28: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 29: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 30: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 31: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 32: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 33: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 34: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 35: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 36: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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)

Page 37: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 38: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

Sistemi Operativi T - AA 2009-2010 38

Sistemi Sistemi batch multiprogrammatibatch multiprogrammati

tt22tt11 t

job1

job2

job3

t0

Attesa di eventiUsoCPU

Page 39: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 40: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 41: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 42: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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)

Page 43: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 44: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 45: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 46: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

Sistemi Operativi T - AA 2009-2010 46

Evoluzione dei concetti nei SOEvoluzione dei concetti nei SO

Page 47: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

Sistemi Operativi T - AA 2009-2010 47

Alcuni richiami al funzionamentoAlcuni richiami al funzionamentohardware di un sistema dihardware di un sistema di

elaborazioneelaborazione

Page 48: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 49: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 50: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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)

Page 51: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 52: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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).

Page 53: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 54: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 55: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 56: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 57: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 58: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 59: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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)• …

Page 60: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 61: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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)

Page 62: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 63: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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).

Page 64: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

Sistemi Operativi T - AA 2009-2010 64

Introduzione allIntroduzione all’’Organizzazione deiOrganizzazione deiSistemi OperativiSistemi Operativi

Page 65: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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?

Page 66: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 67: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 68: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 69: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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)

Page 70: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 71: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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)

Page 72: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 73: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 74: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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…

Page 75: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 76: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 77: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 78: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 79: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 80: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 81: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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à

Page 82: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 83: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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.

Page 84: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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.

Page 85: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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.

Page 86: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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.

Page 87: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 88: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 89: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

Sistemi Operativi T - AA 2009-2010 89

GNU/HurdGNU/Hurd

processi utente

µkernel MACH

Server diHurd

spaziokernel

spazioutente

authserver

processserver

filesystemserver

Page 90: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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).

Page 91: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 92: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 93: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 94: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 95: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 96: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 97: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 98: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 99: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 100: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

Sistemi Operativi T - AA 2009-2010 100

Organizzazione di Organizzazione di UNIXUNIX

kernelprogram

mi

utente e di sistem

a

Page 101: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 102: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

Sistemi Operativi T - AA 2009-2010 102

Page 103: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 104: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

Sistemi Operativi T - AA 2009-2010 104

Una piccola panoramicaUna piccola panoramica::organizzazione di organizzazione di OS/2OS/2

Buonastrutturazione

a livelli emodulare

Page 105: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 106: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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)

Page 107: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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.

Page 108: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 109: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 110: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 111: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 112: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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.

Page 113: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 114: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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;

Page 115: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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)

Page 116: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 117: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 118: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 119: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

Sistemi Operativi T - AA 2009-2010 119

Unix Unix & & LinuxLinux

Page 120: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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.

Page 121: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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)

Page 122: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 123: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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à

Page 124: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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.

Page 125: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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)

Page 126: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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

Page 127: Università di Bologna Laurea in Ingegneria Informatica A.A ...lia.deis.unibo.it/Courses/sot0910/materiale/1-Intro.pdf · della teoria dei sistemi operativi Illustrare le caratteristiche

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à