1 Nomi di Unità n I sistemi sono dotati di più unità di memoria n DOS e Windows usano nomi di unità per distinguerle n In UNIX la gestione è trasparente all’utente: utente conosce solo nome di file, e non si interessa dell’unità dove è memorizzato
2 Organizzazione Gerarchica dei file
3 Floppy da 3,5 pollici (A:) Applicazioni Biblioteca Indice Utenti Elab_imm Elab_suoni Elab_testi Narrativa-Fra Narrativa-Ing Narrativa-Ita Bianchi Photoshop.exe Premiere.exe Winword.exe Pautasso Rossi libro1 libro2 libro1 libro2 libro3 libro1 libro2 libro3 Questa struttura viene chiamata albero Radice dell’albero NodiFoglie
4 Organizzazione Gerarchica dei file n Se non esiste la strutturazione in directory, tutti i file possono essere identificati mediante il loro nome n Nel caso di un’organizzazione gerarchica a più livelli il nome non è più sufficiente ad identificare il file (nell’esempio precedente esistono diversi file con lo stesso nome) Per individuare un file o una directory in modo univoco si deve allora specificare l'intera sequenza di directory che lo contengono, a partire dalla radice dell'albero
5 Organizzazione Gerarchica dei file n Ad esempio il file libro1 di narrativa italiana è univocamente identificato dalla sequenza: A:\Biblioteca\Narrativa-Ita\libro1 n La directory Pautasso di Utenti è identificata dalla sequenza: A:\Utenti\Pautasso Il carattere “\” (backslash) viene usato come separatore. n Una sequenza di questo tipo può essere vista come il cammino che si deve compiere per raggiungere un determinato file a partire dalla radice dell'albero, ed è chiamata pathname
6 Organizzazione Gerarchica dei file n Un altro modo di individuare un file (o una directory) è basato sul concetto di posizione In questo caso per individuare un file o una directory in modo univoco si deve specificare l'intera sequenza di directory che lo contengono, a partire dalla posizione corrente
7 Organizzazione Gerarchica dei file Floppy da 3,5 pollici (A:) Applicazioni Biblioteca Indice Utenti Elab_imm Elab_suoni Elab_testi Narrativa-Fra Narrativa-Ing Narrativa-Ita Bianchi Photoshop.exe Premiere.exe Winword.exe Pautasso Rossi libro1 libro2 libro1 libro2 libro3 libro1 libro2 libro3 Posizione corrente
8 Organizzazione Gerarchica dei file n Se la posizione corrente è A:\Biblioteca, il file libro1 di narrativa italiana è univocamente identificato dalla sequenza: Narrativa-Ita\libro1 n Se la posizione corrente è A:\Utenti, la directory Pautasso è identificata dalla sequenza: Pautasso n Per raggiungere un determinato file a partire dalla posizione corrente si utilizza il pathname relativo
9 Organizzazione Gerarchica dei file Per organizzare gerarchicamente i file, il sistema operativo deve fornire all'utente un insieme di operazioni sulle directory, per esempio: –creare una nuova directory –rimuovere una directory –ridenominare una directory –elencare il contenuto (l'insieme di file e sotto-directory) di una directory –copiare o spostare i file da una directory ad un'altra
10 Struttura logica e organizzazione fisica Floppy da 3,5 pollici (A:) Applicazioni Biblioteca Indice Utenti Elab_imm Elab_suoni Elab_testi Narrativa-Fra Narrativa-Ing Narrativa-Ita Bianchi Photoshop.exe Premiere.exe Winword.exe Pautasso Rossi libro1 libro2 libro1 libro2 libro3 libro1 libro2 libro3
11 Organizzazione fisica Elenco file e directory floppy da 3,5 pollici (A:) Applicazioni directory... Biblioteca directory... Utenti directory... Index file-Word... Elenco file e directory directory Applicazioni Elab_imm directory... Elab_suoni directory... Elab_testi directory... Elenco file e directory directory Elab_imm Photoshop.exe program... Premiere.exe program... Elenco file e directory directory Elab_suoni Elenco file e directory directory Elab_imm Photoshop.exe program... Premiere.exe program...
12 Avviamento dell’elaboratore n In genere questa parte del S. O. comprende: –i programmi per la gestione dei processi e del processore –i programmi per la gestione della memoria –i programmi per la gestione delle periferiche e dell'input/output –i programmi per la gestione del file system –un programma che crea l'interfaccia verso l’utente (che può essere sia di tipo testuale che di tipo grafico)
13 Avviamento dell’elaboratore n Una parte del sistema operativo deve essere sempre mantenuta in memoria principale e deve essere sempre pronta per l’esecuzione n Questo significa che parte della memoria principale dovrà essere dedicata a mantenere i programmi e i dati riguardanti il sistema operativo n Durante la fase di bootstrap vengono inoltre effettuate operazioni di inizializzazione del sistema per tener conto delle risorse hardware collegate all'elaboratore
14 Avviamento dell’elaboratore n Vengono identificati i dispositivi di memoria secondaria e le periferiche collegate e, per ciascuno di essi, viene inizializzato il programma di gestione n In alcuni sistemi vengono anche effettuate delle verifiche sulle risorse hardware, ad esempio, sullo stato dei dischi per scoprire se esistono inconsistenze che si sono create nel corso dell'uso dell'elaboratore
15 Avviamento dell’elaboratore n Spesso durante questa fase sono eseguiti anche dei programmi che verificano l'eventuale presenza di virus annidati sul disco dell'elaboratore n I virus sono dei programmi pirata che possono essere trasmessi da un elaboratore ad un altro quando si copiano dei programmi n Un virus può danneggiare il funzionamento dell'elaboratore generando operazioni di disturbo o condizioni di errore (in alcuni casi i virus possono anche portare a danneggiamenti seri)
16 Avviamento in Windows95/98 n Inizializzazione dei driver dei dispositivi descritti nel file config.sys n Esecuzione dei comandi nel file autoexec.bat n Esecuzione dei programmi del menu Avvio alla voce Esecuzione Automatica
17 Gestione del processore e dei processi n Il processore è la componente più importante di un sistema di elaborazione e pertanto la sua corretta ed efficiente gestione è uno dei compiti principali di un sistema operativo n Il ruolo del processore è quello di eseguire programmi n Consideriamo la seguente definizione di processo: un processo è un programma in esecuzione
18 Gestione del processore e dei processi n Uno dei compiti principali del sistema operativo riguarda la gestione dei processi n Per il momento assumiamo di trattare sistemi mono- programmati (anche detti mono-tasking) n In sistemi di questo tipo è possibile eseguire un solo programma alla volta: i programmi devono essere eseguiti in modo sequenziale e si può mandare in esecuzione un programma solo quando quello precedente ha terminato l'esecuzione (es. MS/DOS)
19 Gestione del processore e dei processi n Supponiamo che il nostro sistema sia un bar in cui un barista serve diversi clienti n Il barista è il corrispondente del processore, i clienti sono l’equivalente dei processi da eseguire n Esecusione mono-tasking: Cliente 1 Barista Ord. A.O. Attesa Pr. C. Cons. At. Pag. Ris. Cliente 2 Ord. A.O. Attesa Pr. C. Cons. At. Pag. Ris. Cliente 3 Ord. A.O. Attesa Pr. C. Cons. At. Pag. Ris.
20 Gestione del processore e dei processi n Quello che viene evidenziato dall’esempio precedente è vero in generale: qualunque processo P alterna fasi di esecuzione a fasi in cui è bloccato in attesa di qualche evento esterno n Un processo può essere in attesa che sia terminata un’operazione di input di dati oppure in attesa di poter usare una risorsa in quel momento occupata
21 Gestione del processore e dei processi n Velocità di elaborazione di un calcolatore (quindi il tempo in cui un processo è in esecuzione) molto maggiore dei tempi di lavoro delle periferiche di input/output n In un’esecuzione sequenziale, mentre il processo attivo è bloccato in attesa di eventi esterni, il processore rimane inattivo, in uno stato chiamato idle, e risulta pertanto sotto-utilizzato
22 Gestione del processore e dei processi n Il tempo impiegato per servire un cliente è pari a 300’’ n Durante questo tempo il barista attende (senza fare altro) per un tempo pari a 240’’ n Il tempo di attesa (non produttivo) è 80% del tempo totale Cliente 1 Ord.AttesaCons.Pag. Cliente 2 Ord.AttesaCons.Pag. Cliente 3 Ord.AttesaCons.Pag. Barista A.O.Pr. C.At.Ris.A.O.Pr. C.At.Ris.A.O.Pr. C.At.Ris. 10’’30’’240’’20’’10’’30’’240’’20’’10’’30’’240’’20’’
23 Gestione del processore e dei processi n Una soluzione ragionevole per migliorare sia la “produttività” del barista che la qualità del servizio (i clienti arrivano e si mettono in coda aspettando di essere serviti) potrebbe essere quella di servire più clienti contemporaneamente n Ogni volta che che un cliente inizia la consumazione del suo caffè, il barista, invece di restare inattivo può iniziare il servizio del prossimo cliente
24 Gestione del processore e dei processi P.C.4A.O. 5 P.C.5A.O. 6 P.C. 6 Barista A.O. 1 Cliente 1 Ord. P.C.1 Attesa A.O. 2 Cons. Cliente 2 Ord. P.C. 2 Attesa A.O. 3 Cons. Cliente 3 Ord. P.C.3 Attesa A.O.4 Cons. I.1 Pag.
25 Gestione del processore e dei processi n Si noti che il termine contemporaneamente è sempre scritto in corsivo n Infatti, poiché vi è un solo barista (un solo processore nel caso di un computer) il servizio non è realmente eseguito in parallelo ma avviene alternando il servizio tra i vari clienti n In questo modo i tempi di inattività del barista sono elimiminati
26 Gestione del processore e dei processi n L’idea illustrata mediante l’esempio precedente è l'idea di base del multi-tasking: più programmi vengono eseguiti contemporaneamente sullo stesso processore. Il numero di processi attivi viene detto grado di multi-programmazione del sistema n Dal punto di vista del processore, in ogni istante vi è un solo processo in esecuzione n Se l'alternanza tra i processi è frequente (ad esempio ogni 10 millisecondi), l'utente ha l'impressione che l'esecuzione dei programmi sia veramente simultanea
27 Gestione del processore e dei processi n A livello macroscopico si ha quindi l'impressione della contemporaneità, mentre a livello microscopico si ha una semplice alternanza sequenziale molto veloce n Nota: dal punto di vista di ogni singolo programma il tempo di esecuzione, cioè il tempo che intercorre tra l'inizio e la fine del processo, risulta aumentato rispetto al caso mono-programmato a causa dell’alternanza con gli altri processi
28 Gestione del processore e dei processi n Un processo può trovarsi in tre diversi stati: –in esecuzione, quando sta utilizzando il processore; –in attesa (bloccato), quando è in attesa del verificarsi di un evento esterno (terminazione di un’operazione di input/output o altro) –pronto, quando è potenzialmente in condizione di poter utilizzare il processore che è occupato da un altro processo
29 Gestione del processore e dei processi
30 Gestione del processore e dei processi n Quando processo viene creato (alla richiesta da parte di un utente di eseguire un programma) viene messo nello stato di pronto e in tale stato rimane fino a quando non arriverà il suo turno n Non appena un processo pronto viene selezionato, passa nello stato di esecuzione n Un processo può abbandonare lo stato di esecuzione per tre diverse ragioni
31 Gestione del processore e dei processi n Terminazione: il processo termina la sua esecuzione e abbandona il sistema n Richiesta di un’operazione di input/output o di una risorsa occupata. In questo caso il processo passa allo stato di attesa, il processore viene liberato e può essere concesso ad un altro processo pronto Cambio di esecuzione: per realizzare in modo equo l'alternanza tra i vari processi, in certi casi può essere opportuno fermare un processo, rimetterlo nello stato di pronto e concedere il processore ad un altro processo
32 Gestione del processore e dei processi n Il multi-tasking funziona efficacemente se il S.O. è in grado di offrire alcune assicurazioni n Il cambio di contesto deve essere invisibile al processo. Nell’esempio del bar i clienti non si accorgono che il barista serve un gruppo di clienti contemporaneamente n Quando il barista riprende a servire un cliente il servizio viene ripreso esattamente nel punto in cui era stato interrotto Il barista ha un cronometro e ogni n secondi sospende il servizio che sta effettuando e passa a servire un altro cliente
33 Gestione del processore e dei processi n La politica di gestione in cui il barista divide il suo tempo tra I vari clienti assegnando a ciascuno un certo intervallo di tempo è implementata nei S.O. multi-tasking e prende il nome di Round-Robin n La politica di gestione in cui il barista serve in modo sequenziale i vari clienti viene chiamata First-In First-Out (FIFO)