1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta elettronica Pagina web del corso: (sommario delle lezioni in fondo alla pagina)
2 I sistemi operativi
3 Cos’è un sistema operativo ? Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi quali : Compilatori Editori di testi, Sistemi bancari, Navigatori per Web... Software È il livello di SW che interagisce direttamente con l’HW e che si occupa di un uso corretto ed efficiente delle risorse fisiche (processore, memorie, periferiche etc.) Windows Unix/Linux Mac OS gcc, Word, PowerPoint Excel, Explorer Fotoshop, Gimp L’architettura del calcolatore e i meccanismi di funzionamento sono mascherati dal SO e all’utente appare una “macchina virtuale”
4 Quali sono le funzioni di un SO ? Esegue applicazioni : carica il programma binario prodotto della compilazione (e residente su disco) nella RAM cede il processore all’applicazione da eseguire Facilita l’accesso ai dispositivi di I/O interagisce con le periferiche facendosi carico di tutti i dettagli fisici (es. modem, reti, video…) mette a disposizione operazioni di lettura/scrittura ad alto livello che possono essere usate senza conoscere i dettagli tecnici della periferica
5 Gestisce le risorse ripartisce le risorse disponibili fra le varie applicazioni (processore, RAM, periferiche) evita che ci siano malfunzionamenti dovuti all’uso contemporaneo di risorse es: un word processor e un web browser che inviano contemporaneamente dati alla stampante provocano una stampa erronea (il SO invece accoda le richieste e manda gli ordini di stampa in successione) ottimizza le prestazioni scegliendo delle politiche che permettano di sfruttare al meglio tutte le parti del computer Quali sono le funzioni di un SO ? 2
6 Archivia dati e programmi : mette a disposizione dell’utente una visione astratta della memoria secondaria (il file system basato sulle astrazioni : file/archivi e folder/cartelle) gestisce la realizzazione di queste astrazioni sul supporto fisico (disco) gestendo tutti i dettagli legati alla lettura/scrittura dei settori Quali sono le funzioni di un SO ? 3
7 Quali sono le funzioni di un SO ? 4 Gestisce malfunzionamenti del sistema rileva e gestisce situazioni anomale es: se il disco ha un settore difettoso, il SO può trasportare automaticamente le informazioni residenti su quel settore da un’altra parte es: se un’applicazione cerca di effettuare una operazione non permessa (come leggere i dati di un’altra applicazione) può bloccare l’applicazione segnalando all’utente la situazione erronea
8 Bootstrap e shutdown Quando si applica la corrente elettrica al calcolatore viene attivata una fase di bootstrap che comprende l’attivazione di: 1. programmi di diagnostica scritti in memoria ROM (non volatile), es. presenza moduli hardware e assenza guasti 2. un programma che contiene le istruzioni necessarie a caricare dalla memoria di massa (floppy, CD, HD) una prima parte del sistema operativo Quando si spegne il calcolatore è necessaria un procedura di shutdown per salvare le informazioni in transito
9 Astrazione delle risorse L’esecuzione contemporanea di più programmi da parte della CPU richiede che questi allo stesso tempo risiedano in memoria possano prendere il controllo delle stesse periferiche Per evitare conflitti è necessario virtualizzare le risorse: le richieste confluiscono sui programmi di sistema che le accodano (es. coda di stampa)
10 Stato utente e stato supervisore Stato utente : modalità di funzionamento del computer che permette l’accesso solo a un numero limitato di risorse es. un sottoinsieme delle istruzioni assembler (non si può accedere alle istruzioni che istruiscono le interfacce di I/O), una sola parte della RAM etc. Stato supervisore : modalità che permette l’accesso a tutte le risorse es. i processi mandati in esecuzione dal SO
11 Stato utente e in stato supervisore 2 I programmi che si eseguono in stato utente richiedono servizi al SO tramite invocazione di sottoprogrammi speciali, dette system call o chiamate di sistema Il SO decide come e quando effettuare il servizio Es. un processo richiede l’accesso a una risorsa come una stampante, etc.) Il SO può interrompere un programma in esecuzione in stato utente per eseguire altri programmi o per effettuare operazioni di ‘gestione’ della macchina (vedi dopo ‘Interruzione di programmi’) Es. una risorsa precedentemente occupata notifica al SO di essersi resa disponibile
12 Quali sono le parti di un SO ? Gestore dei processi Gestore dei processori File system Gestore della memoria Interfaccia grafica (desktop) Gestore dell’I/O nucleo del SO (kernel) lato utente servizi richiesti dagli utenti HW SISTEMAOPERATIVOSISTEMAOPERATIVO
13 Gestore dei processi
14 Esecuzione di un programma Algoritmo Codifica in un linguaggio di programmazione (C, Java etc) Programma Compilatore Input : programma Output : rappresentazione comprensibile alla macchina Eseguibile Passo 1 : scrivere e compilare il programma
15 Esecuzione di un programma 2 Come è organizzata la rappresentazione binaria eseguibile del programma (spazio di indirizzamento): testo dati Stack/pila Struttura che permette di realizzare correttamente il meccanismo di chiamata a sottoprogrammi Codifica binaria delle istruzioni assembler in cui il programma è stato tradotto Codifica binaria dei dati È un array di parole !
16 Esecuzione di un programma 3 Passo 2 : ricopiare lo spazio di indirizzamento di un programma da memoria secondaria a RAM Sistema Operativo Spazio programma 1 Area riservata, non accessibile in modalità utente Una possibile organizzazione della RAM con più programmi attivi contemporaneamente 0 Ampiezza RAM - 1 Spazio programma 2 Spazio programma 3
17 Esecuzione di un programma 4 Passo 3 : modificare il PC del processore in modo che contenga correttamente l’indirizzo della prima istruzione assembler da eseguire nel nostro programma Sistema Operativo Spazio programma 1 0 AmpiezzaRAM - 1 Spazio programma 2 Spazio programma Prima istruzione da eseguire nel programma 2 È l’indirizzo da scrivere nel PC
18 Esecuzione di un programma 5 Quando un programma utente è stato attivato il processore esegue una dopo l’altra le istruzioni assembler che lo compongono Un programma in esecuzione viene detto ‘processo’ ( parte statica [il programma] + parte dinamica [informazioni sullo stato di esecuzione del programma] ) Il gestore dei processi controlla la terminazione, interruzione e riattivazione, sincronizzazione dei processi
19 Terminazione di un processo Un processo termina : Quando esegue una istruzione assembler di terminazione Quando effettua una operazione illecita (es. cerca di accedere a memoria privata di altri processi) Quando c’è un errore che non gli permette di proseguire (es. overflow, etc) In tutti questi casi il processore ricomincia automaticamente ad eseguire il sistema operativo ad un indirizzo prefissato
20 Interruzione di un processo Il sistema operativo può bloccare un processo in un qualsiasi istante della sua esecuzione per effettuare qualche operazione di gestione della macchina Questo avviene attraverso il meccanismo hardware degli interrupt
21 Interruzione di un processo 2 Come funzionano gli interrupt: ogni periferica può ‘richiedere attenzione’ inviando un segnale di interrupt usando le linee di controllo del bus alla fine dell’esecuzione di ogni istruzione assembler il processore controlla la presenza di una interruzione se è presente il controllo passa automaticamente al sistema operativo
22 Sistemi monotasking I SO che gestiscono l’esecuzione di un solo processo per volta si chiamano monotasking. Non è possibile sospendere l’esecuzione di un processo per assegnare la CPU a un altro Sono storicamente i primi SO (MS-DOS)
23 Sistemi monotasking: diagramma temporale CBACBA in esecuzione (E) in attesa di I/O (A) pronto (P)
24 Sistemi multitasking I SO che permettono l’esecuzione contemporanea di più processi si chiamano multitasking (Windows-XP, Linux) Un processo può essere interrotto e la CPU passata a un altro processo
25 Sistemi multitasking: diagramma temporale CBACBA in esecuzione (E) in attesa di I/O (A) pronto (P) T_multi- tasking T_mono- tasking
26 Time-sharing È il meccanismo che permette di far condividere il processore a tutti i programmi attivi in modo corretto Ogni programma ha l’impressione di avere un suo processore ‘dedicato’ Per evitare che un processo resti troppo a lungo in attesa, le risorse sono ripartite tra i processi i processi vengono accodati e ciascuno ha a disposizione la CPU per un quanto di tempo (time-slice) quando il quanto finisce il processo viene messo in fondo alla coda Due tempi di esecuzione: elapsed time e CPU time
27 Time-sharing 2 Es: 3 programmi attivi Prog1, Prog2, Prog3 vengono mandati in esecuzione ciclicamente Quanto ms Eseguo Prog1 Eseguo Prog2 Eseguo Prog3 Periferica ‘orologio interno’ Eseguo Prog1 Interruzione : il SO riprende il controllo e decide chi eseguire nel quanto successivo
28 Sistemi real-time Nelle applicazioni real-time il tempo di completamento dell’esecuzione è un parametro critico (es. controllo rotta di un aereo, applicazioni multimediali) I sistemi real-time garantiscono che i requisiti temporanei vengano soddisfatti. Es.: Ad ogni istante si esegue il processo più critico I processi non vengono interrotti finché non arriva uno con priorità più alta La priorità è fissa (diversamente da time- sharing)
29 Tabella dei processi Ciascun processo ha un ciclo di vita: in esecuzione, pronto, bloccato. Per poter passare da uno stato all’altro le informazioni più importanti del processo devono essere salvate La tabella del processo risiede in memoria centrale e contiene: ID processo PC Registri Stato Informazioni gestione memoria Informazioni scheduling (priorità) Informazioni I/0 (dispositivi allocati, etc.)
30 Tabella dei processi 2 Permette le seguenti operazioni: creazione processo cambio priorità liberazione risorse (se il processo è bloccato) terminazione di un processo Context-switching: salvataggio dei registri e dello stato del processo che si è terminato di eseguire e di quello che si eseguirà
31 Comunicazione/sincronizzazione di processi Riguarda la condivisione di risorse fisiche, logiche, funzioni eseguite da più moduli (processi cooperativi/competitivi) Race condition: due processi competono per l’accesso a un dato o risorsa La comunicazione viene gestita con scambi di messaggi o memoria condivisa. Memoria condivisa: realizzata tramite semafori, monitor, rendezvous