Lucidi - Lintar
Transcript
Lucidi - Lintar
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione Sistema Operativo Prima parte Sistema Operativo: punto di vista funzionale • Insieme di programmi (componente sw) che interagiscono e cooperano per – Gestire in modo efficace ed efficiente l’elaboratore e le sue periferiche – Creare un “ambiente virtuale” per facilitare l’interazione uomo-macchina: il SO opera sull’hw isolando gli utenti dai dettagli dell’architettura hw e fornendo loro un insieme di funzionalità di alto livello (es. linguaggio di comandi per interagire con la macchina) • Alcuni esempi di SO: DOS, MS-Windows, Mac System X, UNIX, LINUX Sistema Operativo: Punto di vista strutturale • Struttura a “buccia di cipolla”: insieme di strati funzionali in cui ogni livello – Fornisce funzionalità e servizi diversi – Maschera le caratteristiche della macchina hw – Si basa sulle funzioni e servizi offerti dagli altri livelli Kernel Gestione delle risorse Interfaccia comandi Sistema Operativo: diverse tipologie • Monoutente (Personal Computer) vs Multiutente (più utenti possono operare contemporaneamente sul medesimo elaboratore) • Monoprogrammato (un solo programma) vs Multiprogrammato (più programmi possono essere eseguiti “contemporaneamente”) • In ambiente multiprogrammato (multiutente) il SO maschera la presenza di altri programmi in esecuzione (utenti) – Gestione risorse in modo condiviso tra i diversi processi (utenti) – Gestione interazione di diversi processi (utenti) Sistema Operativo: principali servizi offerti • Accensione e creazione ambiente virtuale • Gestione del processore e dei processi • Gestione memoria principale • Gestione memoria virtuale • Gestione memoria secondaria (File System) • Controllo e gestione delle periferiche di I/O (driver) • Interazione uomo/macchina (Interprete comandi) Avviamento dell’elaboratore: fase di bootstrap • Caricamento di una parte del SO in memoria principale – Programmi per gestione processi – Programmi per gestione memoria – Programmi per gestione periferiche • Identificazione delle risorse hw e inizializzazione dei relativi programmi di gestione • Esecuzione programmi antivirus • ... Gestione dei Processi • “Processo = programma in esecuzione” • P.S. ad ogni programma in esecuzione possono corrispondere più processi • Oggetto dinamico (vs programma = oggetto statico) • Esecuzione di un processo – Il programma è prelevato dal disco (memoria secondaria) – Portato in memoria centrale – Attivato Evoluzione dei processi – diagramma stati/transizioni Interruzione esterna generata dal SO Inizio esecuzione In esecuzione Pronto Interruzione interna Fine esecuzione In attesa Evento esterno atteso Interruzioni • Interna: generata dal processo stesso – Il processo passa dallo stato In Esecuzione a In Attesa – Per una buona logica di gestione dei processi (es. se il processo è in attesa di un input dall’utente o da un altro programma è inutile che tenga occupata l’unità di elaborazione) • Esterna: generata da un processo diverso dal processo in esecuzione – Dal SO Å politiche di gestione dei processi (es. Round-Robin) Da In Esecuzione a Pronto – Dai programmi di gestione delle periferiche (es.l’utente ha inserito un input da tastiera ...) da In Attesa a Pronto Modalità di esecuzione in ambienti multi-tasking (1) • Modalità batch – Per l’esecuzione di programmi caratterizzati da lunghe elaborazioni non interattive (es. calcoli matematici) – Un programma in esecuzione non viene interrotto: il processo i-esimo parte solo quando si è conclusa l’elaborazione del processo (i-1)- esimo • Modalità real-time – Per programmi che possono necessitare un’esecuzione immediata (es. sistemi di controllo di volo, impianti di sicurezza) Modalità di esecuzione in ambienti multi-tasking (2) • Modalità time-sharing – Tempo di elaborazione suddiviso fra vari processi: alternanza dei programmi in esecuzione – Il processore inizia un processo, ma lo può sospendere per dedicarsi a un altro e poi tornare al processo sospeso – L’utente ha comunque la sensazione di avere un processore dedicato Modalità Batch: come il triathlon • I tre processi nuoto, bici, corsa vengono iniziati e portati alla fine senza interruzioni • Le risorse di ogni processo (cuffia e occhialini, scarpette e casco) vengono caricate all’inizio del processo e rilasciate alla fine NUOTO BICI CORSA Time-sharing come il duathlon • Dopo la prima corsa salvo le risorse (tolgo le scarpe da corsa) e carico quelle per la bici (scarpette e casco); alla fine scambio di nuovo per ripartire a piedi CORSA BICI CORSA Modalità d’esecuzione – time-sharing In esecuz Pronto P1 Pronto In esecuz P2 In esecuz Pronto Dal pto di vista di P1 Dal punto di vista di P2 P1 • Percezione che P1 e P2 siano eseguiti contemporaneamente • Dal punto di vista del processore, viene eseguito un solo processo alla volta Gestione della Memoria Principale • L’esecuzione di un programma richiede che esso risieda (con i dati su cui opera) in memoria principale • Gestire della memoria – Gestione memoria principale “reale”: condivisione della memoria – Gestione memoria virtuale – realizzazione di una visione astratta della memoria reale (secondaria) per estendere le potenzialità della memoria principale Gestione della Memoria Reale • Condivisione da parte dei processi delle celle di memoria 0 • Partizione della X memoria con X+1 allocazione – contigua – non contigua Sistema Operativo Processi N