Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione
Sistemi Operativi
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 In esecuzione Pronto In attesa Fine esecuzione Inizio esecuzione Evento esterno atteso Interruzione esterna generata dal SO Interruzione interna
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 NUOTOBICICORSA
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 CORSABICICORSA
Modalità d’esecuzione – time-sharing Percezione che P1 e P2 siano eseguiti contemporaneamente Dal punto di vista del processore, viene eseguito un solo processo alla volta P1P2P1 Pronto In esecuz Dal pto di vista di P1 Dal punto di vista di P2 Pronto
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 Partizione della memoria con allocazione –contigua –non contigua Sistema Operativo Processi 0 X X+1 N
Problemi che il SO deve gestire per la condivisione della memoria Quante partizioni? Quale dimensione? Partizioni statiche e definite a priori o dinamiche? Quali processi nelle varie partizioni? Come si tiene traccia dei vari processi in esecuzione (es. stato)? Come si proteggono i dati dei vari processi tra loro?
Gestione della Memoria Virtuale Necessaria in particolare per sistemi multiprogrammati e multiutente (elevati requisiti di memoria) Il SO operativo fornisce una visione astratta in cui i vari processi (e utenti) hanno a loro disposizione una macchina virtuale (con quantità di memoria per ogni processo o utente pari alla quantità totale di memoria reale) Diverse tecniche (es. Swapping, Demand Paging): tutte richiedono oltre alla memoria principale una memoria secondaria (es. hard disk)
File System: Gestione della memoria secondaria Parte del SO per la gestione e strutturazione delle informazioni Insieme di programmi per l’organizzazione –Logica Fornire all’utente una visione logica dei file (che astrae dall’organizzazione fisica) –Fisica gestire i file nella memoria secondaria (dischi) e ottimizzare l’utilizzo dello spazio disponibile
File system: Organizzazione logica L’utente deve poter –Organizzare un insieme in file e cartelle i dati –Accedere ai dati –Identificare ogni file con un nome logico –Operare sui file (creare, eliminare, cambiare nome, modificare) –Proteggere i propri file (da accessi non desiderati)
File system: Organizzazione logica DISCO Utenti Sistema Paolo Marco Lezione1 Lezione2 Lezione3 Lezione1 FotoMarco DIRECTORIESFILES
File system: Organizzazione fisica Il SO deve: –Tener traccia dei file memorizzati e della loro posizione fisica sui dischi –Ottimizzare l’utilizzo dello spazio su disco –Diverse tecniche (es. Allocazione contigua, allocazione sparsa)
Gestione delle Periferiche di Input/Output Il SO deve –Fornire all’utente visione astratta dei dispositivi comandi per utilizzare i dispositivi –Ottimizzare l’utilizzo dei dispositivi
Gestione Input/Output I dispositivi sono seriali: possono essere usati da un solo processo alla volta La maggior parte dei dispositivi sono pre-emptive (non interrompibili) Meccanismi di coordinazione delle varie richieste Diverse politiche/strategie per la gestione delle code di processi in attesa di utilizzare una risorsa (es. con priorità, FIFO – First-In-First- Out)
Gestione Input/Output Il SO fornisce un insieme di comandi (linguaggio d’interazione tra utente e sistema) che fornisce una visione astratta del dispositivo Es. –Stampa: per l’utente equivale all’invio di un messaggio, indipendentemente da come avviene il trasferimento dei byte –Lettura dello stato della stampante –Modifica delle caratteristiche della stampa: l’utente utilizza un pannello di controllo, senza curarsi dei dettagli implementativi
Interazione con Utente – Interfaccia Testuale
Interazione con Utente – Interfaccia Grafica