Fondamenti d’Informatica 1 A.A. 2016/2017 Corsi di Laurea in Ing. Civile e Ing. per l’Ambiente e il Territorio Docente: Giorgio Fumera Università degli Studi di Cagliari Sistemi operativi Cenni storici Calcolatore: insieme di risorse fisiche (hardware) necessarie per l’esecuzione di programmi: I memoria centrale I CPU I dispositivi periferici Unità centrale di elaborazione (Central Processing Unit, CPU) Memoria centrale (Main Memory) Dispositivi periferici (I/O devices) Unità logicoaritmetica (Arithmetic-Logic Unit, ALU) ... Unità di controllo (Control Unit, CU) Nei primi calcolatori elettronici (anni ’40-’50) gli utenti avevano il totale controllo di tutte le risorse hardware, che dovevano quindi conoscere in ogni dettaglio. Cenni storici Primi anni ’50: introduzione di programmi di sistema dedicati alla gestione di operazioni ripetitive, sollevando gli utenti da tale onere: I automatizzare le operazioni necessarie per l’esecuzione dei programmi degli utenti (caricamento nella memoria centrale) I gestione dei dispositivi periferici Anni ’50: sviluppo di nuovi programmi di sistema per rendere più efficiente e più semplice l’uso dei calcolatori, attraverso le seguenti funzionalità: I esecuzione contemporanea di più programmi (multiprogrammazione) I interazione con gli utenti (time sharing) I interfaccia utente Tali programmi hanno dato origine ai sistemi operativi. Sistema operativo Insieme di programmi (software di sistema) che gestiscono le risorse hardware di un calcolatore: I garantendone l’uso corretto, efficiente e sicuro I fornendo un’interfaccia semplificata a utenti e programmi utente Funzioni dei sistemi operativi I Gestione dei processi (programmi in esecuzione) I Gestione della memoria centrale I Gestione della memoria secondaria/terziaria (file system) I Gestione dei dispositivi periferici I Interfaccia utente (shell ) Gestione dei processi Obbiettivo: uso efficiente della CPU. Problemi: I durata delle operazioni di I/O (da/verso le periferiche) molto maggiore rispetto all’esecuzione di operazioni logicoaritmetiche: la CPU resta inattiva per un tempo eccessivo I necessità di tempi di risposta brevi per consentire l’interazione tra utenti e programmi Soluzioni: I multiprogrammazione: mentre un programma è in attesa che si svolga un’operazione di I/O, la CPU può eseguire le istruzioni di un altro programma I time sharing: si alterna l’esecuzione di più programmi assegnando la CPU a ciascuno di essi per un breve intervallo di tempo Gestione della memoria centrale Obbiettivo: massimizzare il numero di programmi in esecuzione contemporaneamente (uso efficiente del calcolatore). Problemi: I capacità limitata della memoria centrale I allocazione contigua della memoria a ciascun programma I accesso dei programmi a tutte le celle di memoria Soluzioni: I allocazione non contigua (paginazione, segmentazione) I protezione della memoria I memoria virtuale Gestione della memoria secondaria e terziaria Obbiettivo: visione logica uniforme del contenuto di diversi dispositivi di memoria (nastri e dischi magnetici, dischi ottici, memorie elettroniche). Soluzione: file system, organizzazione gerarchica (ad albero): I I file (archivio): unità elementare di memorizzazione directory (cartella): “contenitore” di file e altre directory – una directory radice (root directory ) – un insieme di directory di sistema – un insieme di directory utente I proprietà/attributi di file e directory – nome, data di creazione, tipo di contenuto (testo, grafica, ecc.) – proprietario, permessi (lettura, scrittura, esecuzione) I insieme di operazioni eseguibili su file e directory (creazione, cancellazione, lettura, modifica, ecc.) File system: esempio directory di sistema directory root directory file directory utente Gestione dei dispositivi periferici Obbiettivo: interfaccia logica uniforme tra diverse categorie di dispositivi e i programmi degli utenti. Soluzione: I I interfaccia fisica (hardware): controllori dei dispositivi interfaccia logica (software): – definizione di un insieme predefinito di operazioni eseguibili su ogni tipo di dispositivo – programmi dedicati alla gestione dei dispositivi (device driver ) Gestione dei dispositivi periferici Interfaccia utente Obbiettivo: fornire agli utenti una visione astratta e semplificata del calcolatore: I risorse fisiche: dispositivi periferici, dispositivi e calcolatori connessi a una rete I risorse logiche: file system, programmi, dati Tipi di interfacce: I testuali (“riga di comando”) I grafiche (dagli anni ’80): Graphical User Interface (GUI)