Introduzione ai Sistemi Operativi "Senza il software, un computer

Introduzione ai Sistemi Operativi
"Senza il software, un computer non sarebbe
altro che un ammasso di ferraglia inutile"
(A.S. Tanenbaum).
Classificazione software:
- programmi di sistema
- programmi applicativi
In un sistema di elaborazione:
gestione
bancaria
prenotazioni
videogiochi
aeree
compilatori
interprete
dei comandi
Sistema Operativo
hardware
programmi
applicativi
editori
programmi
di sistema
hardware
Fanno parte del software di sistema
- Il Sistema Operativo
- Compilatori, Interpreti, Editor, Interprete dei
comandi del SO, etc.
Sistema operativo (SO): insieme di
programmi che gestiscono le risorse di un
calcolatore in modo da consentire agli utenti
un uso agevole ed efficiente del calcolatore
stesso.
1
Introduzione ai Sistemi Operativi
Il SO è uno strato software che nasconde
all'utente/programmatore la complessità
dell'hardware.
Grazie al SO, l'utente non "vede" la
macchina reale → non deve preoccuparsi
dei problemi di gestione dei dispositivi
hardware.
Es. il File System (parte di SO che gestisce
la memoria di massa) offre all'utente
l'immagine del disco come costituito da una
gerarchia di file che possono essere letti o
scritti.
L'utente per accedere ad un dato non deve
conoscere né l'indirizzo del blocco di disco da
leggere, né il numero di settori per traccia, né
altri dettagli sulle caratteristiche del dispositivo
fisico.
Analogamente, non deve occuparsi della
gestione della CPU, degli interrupts, della
memoria, etc.
2
Introduzione ai Sistemi Operativi
L'utente interagisce
virtuale.
con
una
macchina
La macchina virtuale è l'immagine della
macchina reale che il S.O. offre all'utente.
Rispetto alla macchina reale è:
-più estesa, cioè ha più risorse
-più facile da programmare e da usare.
La macchina virtuale è in grado di offrire
all'utente dei servizi dietro invio di apposite
richieste. (funzione di interfaccia verso
l'utente)
3
Introduzione ai Sistemi Operativi
Le richieste al SO possono essere formulate:
-direttamente
dall'utente
(modalità
interattiva), tramite comandi di Sistema.
-indirettamente, dai programmi utente,
tramite istruzioni particolari (Chiamate di
Sistema) che vengono tradotte in chiamate
ai programmi del SO.
Funzione di interfaccia utente del sistema
operativo: fornire all'utente un dato insieme
di servizi richiamabili mediante comandi o
chiamate di sistema.
4
Introduzione ai Sistemi Operativi
Se la richiesta dell'utente è inviata tramite
comandi (modalità interattiva) occorre un
interprete di comandi.
Interprete di comandi (shell): programma
che riceve i comandi direttamente impartiti
dall'utente, li interpreta e li traduce in
chiamate ai programmi di sistema opportuni.
La shell è l'interfaccia primaria tra l'utente
interattivo e il SO.
Ogni sistema operativo ha la sua shell
(eventualmente anche più d'una), ma la
shell non fa parte del sistema operativo.
Una parte del SO è sempre residente in
memoria, pronta ad esaudire le richieste
dell'utente o dei programmi utente.
5
Introduzione ai Sistemi Operativi
Es. di servizio: esecuzione di un
programma applicativo memorizzato sul
disco rigido.
Il SO si occupa di:
- leggere il programma dal disco e caricarlo
in memoria centrale;
- comandare l'esecuzione del programma;
- riprendere il controllo del sistema di
elaborazione ad esecuzione terminata.
Altri esempi: stampa di un documento,
trasferimento di documenti da un dispositivo
periferico ad un altro, etc.
6
Introduzione ai Sistemi Operativi
Ricapitolando:
Il SO è un insieme di programmi che
consentono:
-la visione astratta delle risorse da parte
degli utenti (macchina virtuale)
-facilità d'uso del sistema di elaborazione;
-la gestione corretta ed efficiente delle
risorse.
Es. problemi di allocazione delle risorse
(processore/i, memoria, periferiche, etc) tra
più processi in competizione fra loro.
Corretta: le modalità di uso della risorsa
sono programmate dal SO.
Efficiente: le richieste d'uso della risorsa
vengono esaudite nel minor tempo possibile.
Sul SO si appoggiano gli altri componenti del
software di sistema (compilatori, interpreti,
editor) e i programmi applicativi.
7
Introduzione ai Sistemi Operativi
gestione
bancaria
prenotazioni
videogiochi
aeree
compilatori
interprete
dei comandi
Sistema Operativo
hardware
programmi
applicativi
editori
programmi
di sistema
hardware
Interpreti, compilatori, editor etc.: sono
programmi di sistema ma non fanno parte del
sistema operativo, anche se normalmente
sono forniti con esso.
Differenza tra SO e altri programmi di sistema:
- il SO esegue in modo kernel o supervisore
ed è protetto da manomissioni da parte
dell'utente.
- compilatori, editor, etc. eseguono in modo
user e possono essere modificati dall'utente.
Se un utente non è soddisfatto di un
particolare compilatore, può scriverne un altro.
Invece non può modificare i programmi che
fanno parte del SO (ad esempio, il gestore
degli interrupt da disco) che sono protetti.
8
Introduzione ai Sistemi Operativi
Classificazione
Sistemi uniprogrammati: in ogni istante in
memoria centrale, oltre al SO, risiede al più
un programma utente. (es. DOS)
Sistema multiprogrammato: in ogni istante
in memoria centrale, oltre al SO, possono
risiedere più programmi utente (Windows’95,
UNIX, etc.)
Sistema dotato di una sola CPU: un solo
programma può trovarsi in esecuzione in
ogni istante → limitato utilizzo del sistema.
Durante le operazioni di I/O la CPU è
pressoché inattiva.
9
Introduzione ai Sistemi Operativi
Soluzioni
Sistema uniprogrammato: si può
-scaricare il programma residente in
memoria
-caricarne un altro dalla memoria di massa
-mandare in esecuzione
Pb. Oneroso in termini di tempo (tempi di
accesso al disco)
Sistema multiprogrammato: poiché sono
già presenti in memoria più programmi, la
commutazione da uno ad un altro è più
efficiente.
Pb. Il SO è più complesso.
10
Introduzione ai Sistemi Operativi
Sistema operativo di rete: oltre alle
funzionalità
di
un
sistema
operativo
tradizionale, ha in più funzionalità di rete.
Contiene i programmi che consentono di
accedere a file remoti, di copiare file da un
host all'altro, di eseguire programmi da remoto,
etc.
Gli utenti di un SO di rete sono consapevoli
dell'esistenza di più calcolatori.
Es. devono esplicitamente:
- collegarsi ad una macchina
- chiedere elaborazioni remote o trasferire
file da un host ad un altro.
Ogni host ha il suo sistema operativo locale
completo ed i suoi utenti locali.
11
Introduzione ai Sistemi Operativi
Sistema Operativo Distribuito: si occupa di
allocare i processi sui vari host della rete, di
gestire i file distribuiti sui vari host, in modo
totalmente invisibile (trasparente) all'utente.
L'utente di un sistema distribuito, grazie
alle funzioni svolte dal Sistema Operativo
Distribuito:
- non si rende conto che ci sono più
calcolatori collegati, ma vede un unico
calcolatore virtuale, che offre una grande
disponibilità di risorse;
- utilizza il sistema distribuito come se
fosse un singolo calcolatore.
Gli utenti di un sistema distribuito non sanno
i loro file vengono effettivamente allocati né
dove i loro programmi vengono eseguiti.
12