- Sistemi operativi -
SISTEMI OPERATIVI
1
- Sistemi operativi -
L’architettura dei calcolatori attuali
è la stessa dei primi calcolatori
(fine anni ‘40)
(MACCHINA DI
VON NEUMANN)
CPU
unità
di
controllo
unità
di
input
unità
logico aritmetica
MEMORIA
2
unità
di
output
- Sistemi operativi -
anni 50
Passi per il calcolo della
soluzione di un problema:
1.preparare il programma in linguaggio macchina e trascriverlo
su schede perforate
2.memorizzare istruzioni e dati
mediante un programma caricatore (loader)
3.far eseguire il programma
4.estrarre il risultato dalla memoria, facendo trascrivere il risultato
su schede o su nastri perforati
3
- Sistemi operativi -
Ogni singolo utente,
per poter caricare il proprio programma in
memoria, deveva prima memorizzare il
programma caricatore
dati
programma
utente
programma
caricatore
il programma caricatore è
una utility comune
a tutti i programmi utente
4
- Sistemi operativi -
La presenza di un programma caricatore
disponibile a tutti gli utenti costituì
il primo embrione di
sistema operativo
o
software di base
SISTEMA OPERATIVO
programma
caricatore
HARDWARE
5
- Sistemi operativi -
Fine anni ‘50
introduzione dei
linguaggi ad alto livello
necessità di programmi
traduttori
programma
utente
programma
traduttore
6
- Sistemi operativi -
SISTEMA OPERATIVO
programma traduttore
programma
caricatore
HARDWARE
7
- Sistemi operativi -
Le istruzioni di I/O comportano
l’esecuzione di operazioni anche
manuali e meccaniche, che sono molto
più lente rispetto alla velocità
con cui opera la CPU
.
durante lo svolgimento di tali
operazioni la CPU resta inattiva e
l’intero processo di esecuzione risulta
rallentato.
8
- Sistemi operativi -
CPU
istruzione di
stampa
attivazione
stampante
programma utente
MEMORIA
Mentre viene eseguita l’istruzione
di stampa, la CPU resta inattiva.
CPU
I/O
tempo
9
- Sistemi operativi -
PROBLEMA:
E` possibile utilizzare nel frattempo la
CPU per eseguire le istruzioni
successive?
SOLUZIONE:
dispositivo aggiuntivo per
controllare esclusivamente
le operazioni di I/O
CANALE di I/O
10
- Sistemi operativi -
MEMORIA
CANALE
istruzione di
stampa
I/O
CPU
mentre il canale controlla la stampa,
la CPU può prendere in esame
un’altra istruzione
11
- Sistemi operativi -
Il canale può essere visto come un
“calcolatore”
indipendente dalla CPU
che provvede a gestire l’I/O
(eventuale conversione di codici,
controllo sulla quantità di dati da
memorizzare, indirizzamento delle
varie unità di I/O, ...)
12
- Sistemi operativi -
Di solito un canale gestisce
più unità di I/O
memoria
bus
canale
I/O
I/O
gestione mediante bus
I/O
memoria
canale
I/O
gestione a stella
13
I/O
I/O
- Sistemi operativi -
sistema operativo
programma per la
gestione dell’I/O
programma per la sincronizzazione
tra CPU e canale
programma caricatore
programma traduttore
HARDWARE
14
- Sistemi operativi -
Per ottimizzare ulteriormente l’uso
della CPU, se ne consente
la condivisione da
parte di più programmi
MULTIPROGRAMMAZIONE
CPU
I/O
prog1
prog2
tempo
15
- Sistemi operativi -
MULTIPROGRAMMAZIONE
=
capacità del sistema operativo di
far condividere a più programmi
l’uso della CPU
quando un programma effettua una
operazione di I/O, l’uso della CPU
passa ad un altro programma
MA
i programmi in coda possono attendere
lunghi periodi di tempo
nell’attesa di una istruzione di
I/O del programma che sta utilizzando
la CPU
16
- Sistemi operativi -
SOLUZIONE:
ad ogni programma viene
assegnato un
tempo massimo di utilizzo della
CPU (time slice)
TIME SHARING
17
- Sistemi operativi -
Ogni programma può utilizzare la
CPU finché non si verifica una delle
seguenti condizioni:
1 ) il programma finisce
2) il programma va in errore (es.
divisione per zero, overflow...)
3) è richiesta una operazione di I/O
4) è terminato il tempo assegnato
Casi 1 e 2: il programma è eliminato
dalla memoria
Casi 3 e 4: il programma è sospeso
18
- Sistemi operativi -
esempio: multiprogrammazione
senza time sharing
due programmi con le seguenti
caratteristiche sono presenti in memoria:
Prog. 1
Prog. 2
tempo CPU
15
2
tempo I/O
1
2
CPU
I/O
prog 1
prog 2
15
17
tempo
il programma 2 attende 15 unità di tempo
per utilizzare la CPU solo per 2 unità
19
- Sistemi operativi -
esempio: multiprogrammazione
con time sharing (time slice = 3 unità)
CPU
I/O
3
5
17
tempo
con il time sharing il programma 2 attende
solo 3 unità di tempo prima di utilizzare la
CPU
20
- Sistemi operativi -
Multiprogrammazione e time sharing
consentono di
simulare l’esecuzione contemporanea
di più programmi
e comportano la presenza di un
programma che gestisce la corretta
sospensione e ripresa dei programmi
nella CPU
• conservare tutte le informazioni relative allo stato del programma da
sospendere, necessarie per una corretta ripresa della sua esecuzione
• decidere a quale tra i programmi in
attesa passare il controllo
• interrompere l’esecuzione del programma e mandare in esecuzione il
nuovo programma
21
- Sistemi operativi -
Per decidere quale programma
passare in memoria
quando diversi
programmi sono in attesa,
bisogna stabilire
un ordine di accesso alla CPU
Un programma è incaricato di
stabilire tale ordine
SCHEDULER
22
- Sistemi operativi -
Lo scheduler tiene conto
di diversi fattori:
•memoria richiesta dai programmi
•tempo di CPU richiesto dai programmi
•tipo del programma (di utente o
di sistema)
•tipo di utente (utente qualunque
o gestore del sistema)
•uso recente della CPU
23
- Sistemi operativi -
L’insieme dei programmi
del sistema operativo
che gestiscono
l’allocazione del tempo di CPU
è detto
GESTORE DELLA CPU
24
- Sistemi operativi -
sistema operativo
Gestore della CPU
Altri programmi di S.O.
HARDWARE
25
- Sistemi operativi -
L’esecuzione di un programma
richiede due azioni:
1.mettere a disposizione la CPU
(allocazione di tempo)
2.trasferire il programma in
memoria (allocazione di spazio)
26
- Sistemi operativi -
PROBLEMA:
limitatezza della memoria
impossibilità di memorizzare
grosse quantità di
informazioni
MA
la CPU esegue un programma solo se
questo è in memoria
27
- Sistemi operativi -
Si dice che un programma è in
esecuzione ad un certo istante, se la
CPU in quell’istante sta eseguendo
una istruzione di quel programma
La memoria in cui risiede un programma in esecuzione è detta
MEMORIA CENTRALE
La CPU accede direttamente ai dati
in essa immagazzinati, tramite gli indirizzi delle locazioni
28
- Sistemi operativi -
Non è necessario che un programma
che non è in esecuzione sia presente
in memoria centale
Esso viene generalmente
memorizzato in una memoria
secondaria, detta
memoria ausiliaria o di massa
(dischi e nastri magnetici)
MEMORIA DI MASSA
minor costo, maggiore capacità,
ma tempo di accesso piú lento
29
- Sistemi operativi -
La CPU non può accedere
direttamente alle informazioni
presenti nella memoria di massa.
Queste devono essere prima
trasferite in
memoria centrale
necessità di un programma per
automatizzare il trasferimento
dei programmi
dalla memoria di massa
alla memoria centrale
30
- Sistemi operativi -
I programmi eseguibili non
possono superare le dimensioni
della memoria centrale
l’utente deve
dividere il programma
in pezzi (pagine)
per tenere in memoria centrale
solo l’istruzione in esecuzione
ed un certo numero di quelle
che seguono
31
- Sistemi operativi -
MEMORIA
AUSILIARIA
MEMORIA
CENTRALE
programma
utente
pagina 2
programma utente
diviso in pagine
32
- Sistemi operativi -
L’insieme dei programmi di S. O.
che automatizza lo scambio
di informazioni tra memoria
centrale e memoria ausiliaria
nell’esecuzione di programmi di
utente suddivisi in pagine,
realizza la
MEMORIA VIRTUALE
33
- Sistemi operativi -
L’insieme dei programmi che
gestisce l’allocazione automatica
di spazio nelle memorie del
computer è detto
GESTORE DELLA
MEMORIA
34
- Sistemi operativi -
sistema operativo
Gestore della memoria
Altri programmi di S.O.
HARDWARE
35
- Sistemi operativi -
Un SISTEMA OPERATIVO è
l’insieme dei programmi che
provvedono al controllo e
alla gestione di tutte le risorse del
calcolatore inteso come macchina
virtuale
HARDWARE + SISTEMA OPERATIVO
(SOFTWARE DI BASE)
=
macchina virtuale
36
- Sistemi operativi -
La memoria di massa permette di
organizzare i programmi
del sistema operativo in
•parte residente in memoria centrale
costituita dai programmi che
devono essere utilizzati da tutti i
programmi in esecuzione (ad es.
gestore della memoria e della CPU)
•parte presente in memoria ausiliaria
costituita dai programmi non necessari a soddisfare al momento le richieste
dell’utente (ad es. i programmi traduttori e i programmi utente)
37
- Sistemi operativi -
Il Kernel del S.O. è l’insieme dei
programmi che risiedono
“permanentemente” in memoria centrale (cioè vengono caricati al momento
dell’accensione del computer)
Oltre ai gestori della memoria e della
CPU, appartengono generalmente al
kernel i programmi per la gestione di
•I/O
•situazioni speciali (accensione, spegnimento, accesso via rete, malfunzionamenti, ...)
•scambio di informazioni tra memoria centrale e memorie ausiliarie
38
- Sistemi operativi -
Suddivisione della memoria centrale
in:
•ROM = Read Only Memory
memoria di sola lettura che contiene
informazioni inserite al momento della
costruzione ed il cui contenuto non si
perde se si spegne il computer
(memoria non volatile)
•RAM = Random Access Memory
memoria ad accesso diretto in cui
risiedono i programmi in esecuzione
(memoria volatile)
Ad es. risiedono nella ROM le istruzioni
per la fase di inizializzazione al momento dell’accensione del computer (fase di
boot)
39
- Sistemi operativi -
Inoltre fanno parte della memoria
centrale particolari memorie di capacità ridotta ma ad accesso molto
rapido
REGISTRI
che fanno parte della CPU
e
MEMORIA CACHE
che è posta tra CPU e RAM
40
- Sistemi operativi -
Nella cache memory si memorizzano
le informazioni più frequentemente
utilizzate o le istruzioni e i relativi dati
in sequenza rispetto a quella in
esecuzione
velocizzazione del processo di
elaborazione in quanto la CPU
per tali informazioni accede alla
cache e non alla RAM
41
- Sistemi operativi -
Velocità e capacità
dei vari livelli di memoria
capacità
velocità
10-9 sec =
1 n sec
registri
3 n sec
cache
memory
10-8
sec
-7sec
10
RAM
memoria di
massa
42
16 - 512
bytes
512 -2000
Kbytes
32 - 512
Mbytes
fino a 80
Gbyte
- Sistemi operativi -
MEMORIA DI MASSA
MEMORIA
CENTRALE
CPU
INPUT
CANALE
43
OUTPUT
- Sistemi operativi -
La comunicazione tra il calcolatore e l’esterno avviene tramite il
LINGUAGGIO DI COMANDO
cioè
il linguaggio tecnico di
comunicazione,
in cui ogni frase è una richiesta al
sistema operativo di esecuzione di
una particolare operazione
44
- Sistemi operativi -
ESEMPI DI COMANDI AL
SISTEMA OPERATIVO
UNIX MS/DOS
ls
dir
lista dei file
cp
copy
copia di file
rm
delete
cancellazione di un file
cat
type
f77
fl
lista il contenuto di
un file
compilazione Fortran
45
- Sistemi operativi -
Ogni richiesta al S.O. comporta le
seguenti azioni:
• interpretare le frasi del linguaggio di
comando
•individuare il programma di sistema
che soddisfa la richiesta
•caricare tale programma in memoria
cen-trale
•far eseguire il programma
•restituire il controllo all’utente per
rispondere ad altre richieste
Tali azioni sono eseguite da un programma
del kernel del sistema operativo
INTERPRETE DEL
LINGUAGGIO DI COMANDO
46
- Sistemi operativi -
Recentemente sono state
introdotte delle
INTERFACCE GRAFICHE
(GUI)
ai comandi del sistema operativo
per facilitarne l’uso attraverso un
semplice click del mouse
47
- Sistemi operativi -
L’evoluzione dei sistemi operativi
ha definito una
struttura logica “a livelli”
utente
interfaccia grafica
interprete
programmi di utilità
kernel
HARDWARE
48
sistema
operativo
- Sistemi operativi -
Esistono due tipi di
sistemi operativi:
MONOUTENTE: il sistema
operativo permette
ad un solo utente
l’accesso alle risorse della
macchina
MULTIUTENTE: il sistema
operativo permette
a più utenti
l’accesso alle risorse della
macchina, mediante terminali
remoti
49
- Sistemi operativi -
sistema operativo multiutente (es. UNIX)
sistema operativo monoutente (es. MS/DOS)
50
- Sistemi operativi -
•Se il sistema operativo è monoutente, l’utente ha immediato
accesso al sistema
•Se il sistema operativo è multiutente, l’utente è obbligato a
dichiarare la propria identità
prima di qualunque richiesta al
sistema operativo
FASE DI LOGIN
l’utente ha accesso alla macchina
solo se il suo nome è registrato nella
memoria del calcolatore
51
- Sistemi operativi -
L’obiettivo degli attuali sistemi
operativi è non solo permettere lo
sviluppo di programmi, ma
creare un ambiente di lavoro
completo e confortevole
Disponibilità di strumenti per far
fronte alle esigenze di
diversi tipi di utente
(ricercatori , segreterie, ...)
52
- Sistemi operativi -
Strumenti per lo
sviluppo di software
•compilatori
•programmi per la ricerca degli
errori (debugger)
•programmi per la valutazione
delle prestazioni (timer)
•programmi per la scrittura dei
programmi di utente (editor)
•...................
53
- Sistemi operativi -
Strumenti per
l’office automation
•programmi per l’elaborazione
di testi
•posta elettronica
•agende elettroniche e calendari
elettronici
•.................
54
- Sistemi operativi -
nei moderni centri di ricerca e università
convivono più calcolatori collegati in rete
mondo
esterno
terminali
concentratore
stampante
router
rete locale
supercalcolatori e workstation
55
- Sistemi operativi -
in tale ambiente di calcolo ogni utente può
accedere a tutte le risorse della rete
in maniera trasparente
ESEMPIO:
l’utente collegato con il calcolatore 1
utilizza un programma residente
sul calcolatore 2 con
dei dati residenti sul calcolatore 3
calcolatore 3
calcolatore 2
56
calcolatore 1
- Sistemi operativi -
necessità di programmi per il
trasferimento automatico
delle informazioni
tra i calcolatori della rete
sistema operativo
programmi per il
trasferimento delle
informazioni
HARDWARE
57
- Sistemi operativi -
ogni calcolatore è identificato da un nome
INTERNET
=
connessione di più livelli di rete
altre reti nazionali
rete nazionale
rete
cittadina
reti locali
ogni rete è identificata da un nome
58
- Sistemi operativi -
ESEMPIO
rete
nazionale
cittadina
locale
calcolatore
nome
it
unina
dma
matna2
matna2.dma.unina.it
identifica lo specifico calcolatore
in tutto il mondo
59
- Sistemi operativi -
I sistemi operativi attuali
includono alcuni
strumenti software per
l’utilizzo delle reti di
calcolatori
•trasferimento di file (ftp)
•collegamento remoto (telnet)
60
- Sistemi operativi -
61