Sistema Operativo e Applicativi Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Software A.A. 2012-2013 1 / 36 Software Conosciamo due classi di software: Programmi Applicativi Sistemi Operativi Modulo di Informatica () Software A.A. 2012-2013 2 / 36 Software: Programmi applicativi programmi di videoscrittura (es. Word) browser, usati per ’navigare il Web’ (es. Firefox) fogli elettronici, usati per manipolare e analizzare numeri e dati (es. Fogli di calcolo) programmi per la gestione di banche di dati (database), utilizzati per conservare ed elaborare dati strutturati (es. Mysql, PosgreSQL) programmi per creare applicazioni multimediali/ grafiche, manipolare foto, fare presentazioni con audio/video, ecc. videogiochi ··· Modulo di Informatica () Software A.A. 2012-2013 3 / 36 Il Sistema Operativo Definizione e tipi di SO Le funzionalità di un SO Come macchina astratta Modulo di Informatica () Software A.A. 2012-2013 4 / 36 SO e interazioni con gli utenti Modulo di Informatica () Software A.A. 2012-2013 5 / 36 Definizione di SO Un sistema operativo è un programma che agisce come intermediario tra Utente, Software Applicativo e Hardware. Il suo scopo è di fornire un ambiente nel quale un utente possa eseguire programmi in modo conveniente ed efficiente. Deve evitare che i programmi utente in esecuzione entrino in conflitto Un sistema operativo fornisce sevizi ai programmi. Modulo di Informatica () Software A.A. 2012-2013 6 / 36 Obiettivi del SO Efficienza: Un S.O. cerca di utilizzare in modo efficiente le risorse del calcolatore Semplicità: Un sistema operativo dovrebbe semplificare l’utilizzazione dell’hardware di un calcolatore c 2002-2005 Renzo Davoli, Alberto Montresor Modulo di Informatica () Software A.A. 2012-2013 7 / 36 I tipi di SO (1/2) Sistemi Batch (lotti): Il SO gestiva il passaggio da un Job a quello successivo. (I: Schede perforate, O: stampante, Utente: non interagiva) Sistemi Multi-programmati: permettono di avere la funzione di multi- programmazione, per cui in memoria centrale si possono caricare simultaneamente più programmi (scheduling) Sistemi Time sharing: è un’estensione della multi-programmazione in cui la CPU esegue i vari processi con una frequenza tale che permetta all’utente di interagire con più programmi. Modulo di Informatica () Software A.A. 2012-2013 8 / 36 I tipi di SO (2/2) Sistemi Multi-processore: Questo sistema dispone di più processori che condividono il bus di sistema (quello dentro la scheda madre), il clock, e talvolta dispositivi di memoria. Sistemi Distribuiti: Sono un insieme di processori che non condividono nè memoria nè clock. I sistemi distribuiti comunicano tra loro con mezzi di comunicazione diversi. Sistemi Real Time: Sono sistemi operativi nati dall’esigenza che alcuni processi devono essere elaborati in un tempo ben preciso Modulo di Informatica () Software A.A. 2012-2013 9 / 36 Una similitudine per i SO Batch Ristorante Sistema Informativo Fila degli Utenti Programmi Strumenti Tecnologia Preparazione Processo in sequenza Cassiere Sistema Operativo Modulo di Informatica () La cassa della banca è composto da un cassiere, da un cliente, da risorse materiali (carta, denaro, ecc..) Il cassiere per gestire ogni utente deve svolgere una procedura che dipende dalla richiesta dell’utente Carta, denaro, cassaforte, moduli, ecc... La procedura viene eseguita compiendo una serie di operazioni stabilite, in un certo ordine Esegue e gestisce le risorse in modo tale da soddisfare un utente di seguito all’altro Software A.A. 2012-2013 10 / 36 Una similitudine per i SO multi-programmati Ristorante Sistema Informativo Menù e piatti del giorno Programmi Strumenti Tecnologia Preparazione Processi e Coerenza Cuoco Sistema Operativo Modulo di Informatica () Il ristorante è composto di risorse umane addette alle comande (camerieri), da cuochi, da risorse materiali (cucina, strumenti, ecc..), da un menù Il menù propone il nome di tutti possibili piatti del ristorante Ciotola, fornello, forno, padella antiaderente, forchetta, cucchiaio di legno, lavapiatti, ecc.. La preparazione dei piatti gestendo le risorse in maniera coerente ed efficiente, nel rispetto dei tempi di attesa degli utenti Esegue e gestisce le risorse in modo tale da soddisfare nel minor tempo possibile il maggior numero di utenti Software A.A. 2012-2013 11 / 36 Le altre similutidini SO multiprocessore SO Realtime Modulo di Informatica () Software A.A. 2012-2013 12 / 36 Il sistema operativo Definizione e tipi di SO Le funzionalità di un SO Come macchina astratta Modulo di Informatica () Software A.A. 2012-2013 13 / 36 Le funzionalità di un SO È il Sistema Operativo che : decide quale programma può utilizzare la CPU in ogni istante (e in questo modo gestisce l’esecuzione delle diverse applicazioni); consente l’accesso ai file (salvataggio, cancellazione, ecc.); gestione della memoria gestisce dispositivi I/O; gestione file system interprete di programmi c 2002-2005 Renzo Davoli, Alberto Montresor Modulo di Informatica () Software A.A. 2012-2013 14 / 36 Gestisce i processi Un processo è un programma in esecuzione: I Un processo utilizza le risorse fornite dal computer per assolvere i propri compiti Dai SO multi-programmati questo è responsabile delle seguenti attività riguardanti la gestione dei processi: I I I I I creazione e terminazione dei processi sospensione e riattivazione dei processi gestione dei deadlock comunicazione tra processi sincronizzazione tra processi c 2002-2005 Renzo Davoli, Alberto Montresor Modulo di Informatica () Software A.A. 2012-2013 15 / 36 Stati di un processo Modulo di Informatica () Software A.A. 2012-2013 16 / 36 Stati di un processi In un SO multi-programmato (più processi sono pronti per l’elaborazione) Ogni processo durante la sua vita alterna gli stati: I I I I I new: Il processo è creato running: Il processo è in esecuzione waiting: Il processo è in attesa di un evento ready: Il processo è pronto per essere eseguito (è in coda) termiated: Il processo ha finito la sua esecuzione/o è stata forzata la sua interruzione Modulo di Informatica () Software A.A. 2012-2013 17 / 36 Eventi Ogni processo durante la sua vita alterna gli stati al determinarsi di un evento: I I I I I I admited:Il processo creato è inserito in coda scheduler dispatch: lo scheduler assegna al processo il processore interrupt: è un segnale di interruzione dell’esecuzione del processo per poter usare la CPU I/O or event Wait: Si richiede un’operazione di I/O e si mette in coda il processo, oppure un altro processo richiede una particolare operazione da un altro processo I/O or event completion: la periferica I/O o il processo ha completato la sua esecuzione e il processo può ritornare nella coda ready exit: il processo termina Modulo di Informatica () Software A.A. 2012-2013 18 / 36 Scheduler L’avanzamento dei processi è determinato dalla disponibilità del processore e dalla politica con la quale l’uso del processore è ripartito tra i processi Le politiche di assegnazione del processore ai processi pronti si chiamano politiche di scheduling. Lo scheduling ha come obiettivo un uso efficiente del processore, e decide come fare avanzare i processi. Lo scheduling fa delle scelte ad esempio: I I I I In base all’ordine di arrivo (FIFO: first in first out) In base alla priorità In base al tempo di esecuzione ecc.. Modulo di Informatica () Software A.A. 2012-2013 19 / 36 Gestione dei deadlock Il deadlock è una situazione in cui due (o più) processi si bloccano a vicenda aspettando che uno esegua una certa azione (es. rilasciare il controllo su una risorsa come un file, una porta input/output ecc.) che serve all’altro e viceversa. Il SO è responsabile della prevenzione se possibile, individuazione e risoluzione di questa situazione anomala: I I Evitare i deadlock: Il SO ad ogni richiesta di una risorsa da parte di un processo, effettua una verifica dello stato in cui si troverebbe allocando la risorsa. Risolvere deadlock: si procede con la terminazione (forzata) di tutti i processi in stallo o di un processo alla volta fino alla risoluzione del Deadlock, oppure con la prelazione sulla risorsa che causa il problema. Particolare cura deve essere riposta nella scelta della vittima della prelazione. Modulo di Informatica () Software A.A. 2012-2013 20 / 36 Gestione della memoria principale La memoria principale: I I è un array di byte indirizzabili singolarmente. è un deposito di dati facilmente accessibile e condiviso tra la CPU ed i dispositivi di I/O Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione della memoria principale: I I I tenere traccia di quali parti della memoria sono usate e da chi decidere quali processi caricare quando diventa disponibile spazio in memoria allocare e de allocare lo spazio di memoria quando necessario c 2002-2005 Renzo Davoli, Alberto Montresor Modulo di Informatica () Software A.A. 2012-2013 21 / 36 Gestisce la memoria secondaria Memoria secondaria: Poichè la memoria principale è volatile e troppo piccola per contenere tutti i dati e tutti i programmi in modo permanente, un computer è dotato di memoria secondaria In generale, la memoria secondaria è data da hard disk, dischi ottici, nastri Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione della memoria secondaria: Allocazione dello spazio inutilizzato Gestione dello spazio di memorizzazione Ordinamento efficiente delle richieste (disk scheduling) c 2002-2005 Renzo Davoli, Alberto Montresor Modulo di Informatica () Software A.A. 2012-2013 22 / 36 Gestisce il file system Un file è l’astrazione informatica di un archivio di dati: I Il concetto di file è indipendente dal media sul quale viene memorizzato (che ha caratteristiche proprie e propria organizzazione fisica) Un file system è composto da un insieme di file Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione del file system: I I I I Creazione e cancellazione di file Creazione e cancellazione di directory Manipolazione di file e directory Codifica del file system sulla memoria secondaria c 2002-2005 Renzo Davoli, Alberto Montresor Modulo di Informatica () Software A.A. 2012-2013 23 / 36 File Directory e Filesystem File (o archivio, o documento elettronico): è sequenza di caratteri (byte) identificata da un nome Directory è un contenitore di file. Filesystem: è meccanismo con il quale i file sono organizzati. Modulo di Informatica () Software A.A. 2012-2013 24 / 36 Gestisce le operazioni di Input/Output La gestione dell’I/O richiede: Un’interfaccia comune per la gestione dei device driver Un insieme di driver per dispositivi hardware specifici Un sistema di gestione di buffer per il caching delle informazioni c 2002-2005 Renzo Davoli, Alberto Montresor Modulo di Informatica () Software A.A. 2012-2013 25 / 36 Protezione Il termine protezione si riferisce al meccanismo per controllare gli accessi di programmi, processi o utenti alle risorse del sistema e degli utenti Il meccanismo di protezione software deve: I I I Distinguere tra uso autorizzato o non autorizzato Specificare i controlli che devono essere imposti Fornire un meccanismo di attuazione della protezione c 2002-2005 Renzo Davoli, Alberto Montresor Modulo di Informatica () Software A.A. 2012-2013 26 / 36 Protezione della memoria Dai SO multi-programmati in avanti: ogni processo ha un suo spazio di indirizzi: I I è necessario impedire al processo di accedere ad aree di memoria esterne al proprio spazio (ad es., del S.O. oppure di altri processi). se fosse consentito: un programma potrebbe modificare codice e dati di altri programmi o del S.O. Modulo di Informatica () Software A.A. 2012-2013 27 / 36 Gestione della protezione Per garantire protezione, molte architetture prevedono un duplice modo di funzionamento (dual mode): I user mode: F I tutti i programmi utenti eseguono sul processore in user mode, se un programma utente ha bisogno di un’istruzione privilegiata deve richiamare una System Call kernel mode: si possono gestire istruzioni critiche: F F F accesso a dispositivi di I/O gestione della memoria arresto del sistema Modulo di Informatica () Software A.A. 2012-2013 28 / 36 Networking Consente I I Di far comunicare due o più elaboratori Di condividere risorse Quali servizi: I I I Protocolli di comunicazione a basso livello TCP/IP UDP c 2002-2005 Renzo Davoli, Alberto Montresor Modulo di Informatica () Software A.A. 2012-2013 29 / 36 Interfaccia utente - S.O. Interprete dei comandi permette di: I I attivare un programma, terminare un programma interagire con le componenti del sistema operativo (file system) Può essere: I I grafica (a finestre, icone, etc.) testuale (linea di comando) c 2002-2005 Renzo Davoli, Alberto Montresor Modulo di Informatica () Software A.A. 2012-2013 30 / 36 Interfaccia programmatore - S.O. System Call: Ogni volta che un processo ha bisogno di un servizio del S.O. richiama una system call sono in genere disponibili come istruzioni a livello assembler esistono librerie che permettono di invocare le system call da diversi linguaggi (ad es. librerie C) vengono normalmente realizzate tramite interrupt software c 2002-2005 Renzo Davoli, Alberto Montresor Modulo di Informatica () Software A.A. 2012-2013 31 / 36 System call Le system call sono specifiche dei vari S.O.: Modulo di Informatica () Software A.A. 2012-2013 32 / 36 Il Sistema Operativo Definizione e tipi di SO Le funzionalità di un SO Come macchina astratta Modulo di Informatica () Software A.A. 2012-2013 33 / 36 Il SO come Macchina Astratta Il SO consente di utilizzare l’HW, la comunicazione con l’utente, in modo efficiente, corretto e sicuro, fornendo una visione astratta della macchina reale, e viene definita la macchina estesa. Attraverso questa visione di macchina estesa si riesce a gestire un adeguato insieme di risorse tramite un linguaggio semplice, che è il linguaggio fornito dal SO. Modulo di Informatica () Software A.A. 2012-2013 34 / 36 SO e interazioni con gli utenti Modulo di Informatica () Software A.A. 2012-2013 35 / 36 Conclusione Cosa è il SO? Le funzionalità di un SO? Dove si colloca nella struttura a livelli? Modulo di Informatica () Software A.A. 2012-2013 36 / 36