fondamenti di informatica i cdl in ingegneria elettronica - a.a. 2006-2007 cdl in ingegneria...

28
12. Il Sistema Operativo 12. Il Sistema Operativo Ing. Ing. Simona Colucci Simona Colucci

Upload: rosetta-mauri

Post on 01-May-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

12. Il Sistema Operativo12. Il Sistema Operativo Ing. Ing. Simona ColucciSimona Colucci

Page 2: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

• E’ uno strato software che opera direttamente sull’hardware• Isola gli utenti dai dettagli dell’hardware fornendo funzionalità

di alto livello• Mono-utente o multi-utente:

– Il SO deve garantire che ogni utente avverta la macchina come dedicata

• E’ organizzato a strati:– Architettura a buccia di cipolla– Ogni strato costituisce una macchina virtuale:

• Una macchina che maschera le caratteristiche di una macchina hardware ed offre ai suoi utenti delle funzionalità

• Una macchina che esporta funzionalità all’esterno senza mostrare i propri meccanismi implementativi: struttura modulare del SO

Il sistema operativo(SO)Il sistema operativo(SO)

Page 3: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Programmi utente

Interprete comandiattivazione programmi d’utente o di sistema

File systemcontrollo e gestione degli accessi a file

Gestione delle periferichegestione di ingresso/uscita da periferica

Gestione della memoriaallocazione e gestione della memoria

Gestione dei processi (nucleo)gestione dei processi e delle interruzioni

Macchina fisicaKernel

Architettura del sistema operativoArchitettura del sistema operativo

Page 4: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Funzioni del sistema operativoFunzioni del sistema operativo

• Il gestore dei processi (o nucleo) – è responsabile dell’esecuzione dei programmi da parte dell’unità di

elaborazione– gestisce l’esecuzione contemporanea di molti processi– reagisce agli eventi esterni– offre la visione di un’unità di elaborazione dedicata a ciascun utente

• Il gestore della memoria– ha la funzione di allocare la memoria e partizionarla tra i vari

programmi– offre la visione di una memoria dedicata a ciascun utente

• I driver sono responsabili delle operazioni di ingresso/uscita che coinvolgono le periferiche

• Il file system – è responsabile della gestione dei file in memoria di massa– fornisce all’utente funzioni di alto livello per operare sui file

• L’ interprete comandi usa gli strati sottostanti per:– accedere al programma in memoria di massa tramite file system– allocare la memoria e caricarvi il programma tramite gestore della

memoria– attivare un processo, tramite il nucleo

Page 5: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Obiettivo del SOObiettivo del SO

Ottimizzare le prestazioni del sistema informatico determinando le politiche migliori di gestione

delle risorse sotto il suo controllo

Attività necessarie:– gestire l’eventuale sovraccarico di richieste– ridurre il tempo di attesa dell’utente in condizioni di carico

complessivo elevato

Page 6: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

• Processo: esecuzione(oggetto dinamico) di un programma(oggetto statico)

• Un processo P è una coppia di elementi (E, S)– E: codice eseguibile del programma – S: stato del processo(insieme di tutti i valori contenuti nella memoria

centrale e nei registri della CPU, in particolare il PC)

• Lo stesso programma può essere associato a più processi(assenza di corrispondenza biunivoca):– Un programma può essere scomposto in varie parti e ognuna di esse

può essere associata ad un diverso processo– Lo stesso programma può essere associato a diversi processi quando

diverse copie del medesimo processo sono mandate in esecuzione– Alcuni linguaggi di programmazione (concorrenti) prevedono

l’esecuzione di un programma in più processi• L’unità di elaborazione che esegue i processi prende nome di

processore nel contesto dei SO(in generale vi possono essere n processori, ma ne supporremo uno solo)

Gestione dei processiGestione dei processi

Page 7: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Classificazione dei processiClassificazione dei processi

• in esecuzione: eseguiti istante per istante dal processore(uno solo nelle nostre ipotesi)

• pronti: possono andare immediatamente in esecuzione se il gestore dei processi lo decide

• in attesa: attendono il verificarsi di un evento esterno per passare in stato di pronto

Page 8: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Interruzioni interneInterruzioni interne

• Il processo di esecuzione richiede un’operazione di I/O:– l’esecuzione del processo si sospende– il processo passa dallo stato in esecuzione allo stato in attesa– il nucleo diviene attivo

• Sono eventi sincroni rispetto alle attività del processore• Corrispondono all’esecuzione di una istruzione detta

chiamata a supervisore(SVC, supervisor call) che fa passare il processore dall’esecuzione di un processo utente all’esecuzione di un processo di sistema operativo

• Bloccano il processo in esecuzione per evitare l’attesa di un’operazione di I/O prima della prosecuzione

Page 9: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Interruzioni interne: Interruzioni interne: context switchingcontext switching

• Sospensione: il processo sospeso deve poter riprendere esattamente nello stato al momento dell’interruzione interna, per cui c’è necessità di:– salvataggio del contesto al momento dell’interruzione:

copia del contenuto dei registri del processore nell’area di memoria chiamata descrittore del processo

– ripristino del contesto prima di rimandare in esecuzione il processo: copia del descrittore di processo nei registri del processore

• Scelta del processo pronto da avviare al posto di quello sospeso

• Esecuzione del nuovo processo pronto: ripristino del suo contesto ed esecuzione dell’istruzione contenuta nel registro Program Counter

Page 10: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Interruzioni esterneInterruzioni esterne

• Causano il passaggio di un processo da stato di attesa(dovuto a sospensione per interruzione interna) a stato di pronto

• Si verificano quando la periferica ha terminato di eseguire l’operazione e chiede la sospensione del processo in esecuzione per il completamento dell’operazione di I/O al fine di trasformare in pronto il processo in attesa

• Sono eventi asincroni rispetto alle attività del processore• Vengono segnalate al processore tramite il registro delle

interruzioni(INTR):– ha varie posizioni corrispondenti alle possibili interruzioni,

segnalate da un bit posto ad 1(se l’evento non è presente il bit rimane a 0 per convenzione)

– la CPU verifica la presenza di un’interruzione calcolando l’OR dei bit di registro INTR tramite circuiti elettronici

Page 11: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Interruzioni esterne: gestione Interruzioni esterne: gestione

Il nucleo:– salva il contesto del programma attivo che passa da

stato in esecuzione a stato di pronto– richiama il sottoprogramma gestore delle interruzioni

che esegue le operazioni necessarie a far fronte alla particolare interruzione

– dopo la gestione dell’interruzione sceglie uno dei programmi in stato di pronto e lo manda in esecuzione

Page 12: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Processi: passaggi di statoProcessi: passaggi di stato

• Interruzioni interne(passaggio da esecuzione a in attesa)

• Interruzioni esterne(passaggio da in esecuzione a pronto)

• Evento esterno atteso(passaggio da in attesa a pronto)• Processo pre-empted: sospeso dal nucleo dopo un

certo intervallo temporale per garantire un uso paritario della CPU(passaggio da in esecuzione a pronto)

• Processo aborted: interrotto e terminato forzatamente dal nucleo a seguito di un errore(da in esecuzione a terminato)

Page 13: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Passaggi di stato: Passaggi di stato: diagramma stato/trasizionidiagramma stato/trasizioni

Processo in esecuzione

Processopronto

Processo in attesa

Inizio esecuzione

Evento esterno atteso

Abort per errore

Interruzione esterna, fine quanto di tempo

Interruzione interna

Primo processo

pronto

Fine esecuzione

Page 14: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Gestione dei processi della CPUGestione dei processi della CPU

• Obiettivo: ogni programma utente deve essere eseguito entro un tempo approssimativamente proporzionale alla sua complessità(necessità di processi pre-empted)

• Politica più semplice: rotazione dei processi(round robin):– si assegna il processore ad un processo per un quanto di

tempo (sufficientemente maggiore del tempo di context switching e sufficientemente minore del tempo di esecuzione del programma)

– dopo il quanto di tempo il processo viene interrotto di autorità e passato nei processi pronti

– si gestisce una coda di processi pronti con strategia FIFO(First In First Out)

• Risultato: – attesa proporzionale alla lunghezza del programma e al

numero di operazioni I/O richieste– programmi brevi favoriti nel completamento– massimizzazione del throughput di sistema: programmi

completati nell’unità di tempo

Page 15: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

• Gestione delle priorità:– si crea una coda dei processi pronti per ogni livello di

priorità– si preleva sempre il primo processo della coda a priorità

più alta

• Scenario applicativo: sistemi di sicurezza

• Problema: attesa troppo lunga per priorità basse• Soluzione: cambio dinamico della priorità in base

allo stato

Gestione dei processi della CPU: Gestione dei processi della CPU: politiche alternativepolitiche alternative

Page 16: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

• Coordinamento delle attività di diversi processi:– coordinamento sequenziale: un processo termina

invocando l’attivazione di un altro processo(coordinamento semplice)

– coordinamenti complessi:•competizione: due processi vogliono accedere simultaneamente a una medesima risorsa (risorsa critica)•cooperazione: un processo ha bisogno dell’altro per evolvere

Fanno uso di variabili condivise(semafori) per l’accesso a parti critiche dei programmi e della comunicazione esplicita tra processi tramite scambio di messaggi.

SincronizzazioneSincronizzazione

Page 17: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

• La gestione concorrente di molti processi comporta la presenza di molti programmi in memoria centrale: la MM diventa una risorsa unica, in generale scarsa, da suddividere tra i vari programmi

• Problemi connessi con la gestione della memoria:– Per allocare i programmi in memoria è necessario

rilocarli : trasformare gli indirizzi logici, presenti nei programmi, in indirizzi fisici(l’uso degli indirizzi simbolici consente il caricamento del programma in porzioni di memoria differente.

Gestione della memoria centraleGestione della memoria centrale

Page 18: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari Meccanismi di gestione Meccanismi di gestione

• Paginazione: – il gestore della memoria la considera partizionata in pagine,

che occupano aree contigue di dimensione fissata– i programmi vengono partizionati in pagine

• Segmentazione:– durante la compilazione un programma viene frazionato in

parti che svolgono differenti funzioni– la dimensione dei segmenti è variabile perché essi sono

semanticamente significativi– il gestore della memoria può caricare in maniera

indipendente i segmenti

• NON sono tecniche alternative. Spesso sono applicate contemporaneamente

Page 19: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari La memoria virtualeLa memoria virtuale

• Sia nel caso della paginazione, sia in quello della segmentazione, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale

• La memoria virtuale v può essere maggiore di quella fisica p: è sufficiente allocare più pagine o segmenti di quelli che possono stare contemporaneamente in p(quelli non caricati in MM rimangono disponibili in memoria di massa dove i programmi con i relativi dati sono organizzati in file):– i programmi con dimensione s>p possono essere eseguiti se

s>v; in questo caso gli indirizzi di s sono riferiti a v quindi:• i registri devono potere indirizzare tutta v;• il gestore della memoria converte gli indirizzi virtuali in fisici

Page 20: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Gestione dei processi e della Gestione dei processi e della memoriamemoria

• La gestione della memoria è coordinata con la gestione dei processi:– le pagine e i segmenti di programma che sono attualmente in

esecuzione o che contengono dati attualmente indirizzati devono risiedere in MM

– se una pagina o un segmento necessari ad un processo in esecuzione non si trovano in MM, il processo viene sospeso e passa in stato di attesa

– dopo l’operazione di input da memoria di massa della pagina o segmento il processo torna ad essere pronto

Page 21: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

1. Il compilatore • trasforma un modulo di programma sorgente in un modulo

di programma oggetto; • trasforma le variabili locali ai moduli in indirizzi rilocabili

2. Il linker• trasforma diversi moduli oggetto in un unico programma

eseguibile• collega il programma utente a librerie di programmi di

utilità• trasforma le variabili esterne a tutti i moduli in indirizzi

rilocabili

3. Il loader carica il programma eseguibile in memoria• se il programma ha indirizzi assoluti il loader non ha margini

di intervento• se il programma ha indirizzi rilocabili il loader si occupa

della rilocazione

Rilocazione: Rilocazione: La catena di programmazioneLa catena di programmazione

Page 22: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

La rilocazioneLa rilocazione

• Rilocazione statica: – All’atto del caricamento in memoria– Trasforma il codice:

indirizzi rilocabili indirizzi assolutiRegistro base

Indirizzo rilocabile

+Indirizzo calcolato

• Rilocazione dinamica:– Non comporta una conversione del

codice– Richiede l’utilizzo di due registri

speciali:• Il registro base contiene il valore

dell’indirizzo della prima cella di memoria a partire dalla quale il programma è stato caricato

• Il registro dimensione contenente la dimensione del programma; permette di verificare che l’indirizzo generato dal programma rientri nello spazio indirizzabile

Page 23: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Modo S e modo U Modo S e modo U

• La memoria è suddivisa in:– Memoria di modo S (supervisore): contiene i programmi di sistema

operativo (possono usare tutte le istruzioni del calcolatore, possono essere allocati in memoria in maniera ottimale,devono essere protetti da errori procurati da altri programmi) e le strutture dati da esso utilizzate

– Memoria di modo U (utente): contiene i programmi utente• Se il processore sta eseguendo un processo utente :

– Lo si dice attivo in modo utente (in modo U)– può accedere soltanto alla memoria di modo U

• Se il processore sta eseguendo un processo di sistema:– E’ attivo il nucleo– Si dice attivo in modo supervisore (in modo S)– Può accedere alla memoria di modo S e di modo U– Può eseguire istruzioni “privilegiate”

Page 24: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

• Sono meccanismi software cui è affidato il compito di comunicare dati da e verso le periferiche

• Garantiscono ai programmi che li usano una visione di alto livello– E’ possibile leggere o scrivere tramite primitive indipendenti

dalla struttura hardware delle periferiche

• Si distingue fra:– Driver fisici (hardware): Vengono attivati direttamente dal

gestore delle interruzioni– Driver logici (software): Fanno parte del sistema operativo e

forniscono una gerarchia di operazioni, con un’organizzazione a strati

I driverI driver

Page 25: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Il file system Il file system

• Consente di gestire i file sulla memoria di massa:– Creare un file– Dargli un nome– Collocarlo in un opportuno spazio nella memoria di massa– Accedervi in lettura e scrittura

• Gestione dei file indipendente dalle caratteristiche fisiche della memoria di massa

• I file vengono inclusi all’interno di directory (o cataloghi):– Hanno una tipica organizzazione ad albero– Alcuni sistemi operativi permettono una struttura a grafo(un

file può appartenere a più directory)

Page 26: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

La struttura ad albero La struttura ad albero

Page 27: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

Organizzazione dei file Organizzazione dei file

• A ciascun utente è normalmente associata una directory specifica, detta home directory, che ha lo stesso nome dell’utente

• Il livello di protezione di un file indica quali operazioni possono essere eseguite da ciascun utente

• Ciascun file ha un pathname (o nome completo) che include l’intero cammino dalla radice dell’albero: nome unico

• Il contesto di un utente all’interno del file system è la directory in cui correntemente si trova

Page 28: Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A. 2006-2007 CDL in Ingegneria Elettronica - A.A. 2006-2007 12. Il Sistema Operativo Ing

Sistemi Sistemi InformativiInformativiDEE - Politecnico di BariDEE - Politecnico di Bari

File System: File System: funzioni disponibili agli utentifunzioni disponibili agli utenti

• creazione di file• creazione di directory• elencazione dei file• cambiamento del contesto• copia di un file• visualizzazione di un file• rinomina di un file• cancellazione di file o directory