230 likes | 377 Views
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
E N D
Corso di Laurea in Biotecnologiecorso diInformatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione
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 Evento esterno atteso In attesa Fine esecuzione
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 NUOTO BICI CORSA • 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
Time-sharing come il duathlon CORSA BICI CORSA • 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
Modalità d’esecuzione – time-sharing P1 P1 P2 • Percezione che P1 e P2 siano eseguiti contemporaneamente • Dal punto di vista del processore, viene eseguito un solo processo alla volta Dal pto di vista di P1 Pronto In esecuz In esecuz Dal punto di vista di P2 Pronto Pronto In esecuz
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 0 Sistema Operativo X X+1 Processi 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 Lezione1 Paolo Lezione2 Lezione3 Utenti Lezione1 Marco DISCO FotoMarco Sistema DIRECTORIES FILES
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