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)