Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Fondamenti di Informatica 1 Evoluzione del sistema operativo Nato come insieme di programmi di utilità generale Accezione moderna: rivestimento software che nasconde la macchina reale rende disponibile una macchina virtuale (intesa come insieme di servizi) Fondamenti di Informatica 2 La struttura gerarchica del calcolatore Software applicativo Software di base Hardware Hardware: struttura fisica del calcolatore Software di base: insieme di programmi per comunicazioni tra le componenti gestione delle risorse utilizzo del calcolatore mediante programmi in linguaggi di alto livello Software applicativo: programmi per il trattamento e la soluzione di classi di applicazioni Fondamenti di Informatica 3 Classificazione dei S.O. rispetto alle funzionalità Sistemi interattivi l'utente, attraverso un terminale, comanda l'esecuzione delle diverse fasi comodo e flessibile (per la messa a punto) Sistemi a lotti (o batch) la sequenza deve essere decisa a priori scomodo, ma utilizzato per processi lunghi o per l'esecuzione finale Fondamenti di Informatica 4 Classificazione dei S.O. rispetto alla struttura Diverse tecniche di gestione delle risorse: monoprogrammazione multiprogrammazione multielaborazione La scelta dipende anche dal tipo di calcolatore e dalle sue caratteristiche hw Fondamenti di Informatica 5 Monoprogrammazione E' il modo più semplice per gestire un elaboratore il S.O. gestisce in modo sequenziale i diversi programmi, uno per volta poca efficienza dell'hw a causa della diversa velocità tra CPU e periferiche Fondamenti di Informatica 6 Multiprogrammazione Vengono gestiti simultaneamente più programmi indipendenti; gestione ottimale Il S.O. è molto più complesso: carica contemporaneamente più programmi mentre uno è in attesa, ne esegue un altro la scelta dipende dalla priorità problemi di starvation; meccanismi di alternanza; time-sharing; Fondamenti di Informatica 7 Multielaborazione Più CPU o più elaboratori cooperano nell'esecuzione dei programmi Problematiche molto complesse Richiedono speciali architetture dei sistemi di elaborazione Sono lo stato dell'arte della tecnologia corrente Fondamenti di Informatica 8 Multielaborazione Può esservi multielaborazione non solo a livello di sistema di elaborazione, ma anche a livello di CPU (parallelismo) La CPU può essere caratterizzata da diversi livelli di parallelismo: parallelismo di parola parallelismo spaziale (o parallelismo sui dati) parallelismo di istruzione Fondamenti di Informatica 9