Introduzione
Gestione dei processi
Gestione della memoria
Memoria cache (cenni)
Informatica B Prof. A. Morzenti
Il sistema Operativo
Il SO tipicamente organizzato a
strati
Ciascun strato costituisce
una macchina virtuale che gestisce
una risorsa del calcolatore
Le principali funzionalit offerte
sono:
La
La
La
La
La
La
gestione
gestione
gestione
gestione
gestione
gestione
dei processi
della memoria
delle periferiche
del file system
della rete
dellinterfaccia utente
Programmi utente
Interprete comandi
File system
Kernel
3
Multiutente
Consente lutilizzo contemporaneo da parte di pi utenti
E inerentemente multiprogrammato
Esempio: Linux
La struttura ad albero
10
Gestione dell
dellinterfaccia utente
11
Processo programma !
Processo = esecuzione di un programma, composto da:
codice eseguibile (il programma stesso)
dati dellesecuzione del programma
informazioni relative al suo funzionamento (stato)
Lo stesso programma pu essere associato a pi
processi:
Un programma pu essere scomposto in varie parti
e ognuna di esse pu essere associata a un diverso
processo
Lo stesso programma pu essere associato a
diversi processi quando esso viene eseguito pi
volte, anche simultaneamente
12
Lo stato di un processo
13
RAM B
HD B
CPU C
RAM C
HD C
bus
OD B
Rete B
I/O B
OD C
Rete C
I/O C
CPU A
RAM A
HD A
CPU D
RAM D
HD D
OD A
Rete A
I/O A
OD D
Rete D
I/O D
proc. D
proc. A
CPU B
proc. C
proc. B
14
utilizzo a rotazione
suddivisione in blocchi
CPU
A, B, C, D
suddivisione in blocchi
RAM
HD
A
B
C
D
A
B
C
D
bus
OD
A
B
C
D
suddivisione in blocchi
Rete
I/O
A, B, C, D
A, B, C, D
utilizzo a rotazione
utilizzo a rotazione
15
16
Chiamate al supervisor
I processi utente per eseguire operazioni privilegiate
(accesso a file, accesso ad altre risorse, operazioni di I/O,
ecc.) invocano il supervisor tramite chiamate di sistema
Perch usare la modalit privilegiata (supervisor)?
Le operazioni di I/O sono operazioni riservate:
un
un
un
un
17
Inizio esecuzione
In esecuzione:
assegnato al processore
ed eseguito da esso
Pronto: pu andare in
esecuzione, se il
gestore dei processi lo
decide
In attesa: attende il
verificarsi di un evento
esterno per andare in
stato di pronto
Processo
pronto
Primo processo
pronto
Processo in
esecuzione
Evento esterno
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
Processo in
attesa
18
Inizio esecuzione
I processi appena creati
sono messi in stato di
pronto
Il nucleo decide quale
processo pronto mettere
in stato di esecuzione
Il nucleo assegna il
processore a un processo
per un quanto di tempo
Coda dei processi
pronti
Round-robin
Priorit dei processi
P1 P2
Processo
pronto
Evento esterno
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
Processo in
attesa
19
Inizio esecuzione
Il processo in esecuzione
passa in stato di attesa se
richiede operazioni di I/O
(interruzione interna)
Corrisponde alla
esecuzione dellistruzione
chiamata a supervisore
(SuperVisor Call, SVC)
P2
Processo
pronto
P1
Processo in
esecuzione
Primo processo
pronto
Evento esterno
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
Processo in
attesa
20
Cambiamento di
contesto:
Salvare il contesto di
P1
nel suo descrittore di
Inizio esecuzione
- Fine quanto di tempo
- Interruzione esterna
Primo processo
pronto
processo
Il processore ora
libero, un altro processo
passer in esecuzione
P2
Processo
pronto
Processo in
esecuzione
Interruzione interna
- Fine esecuzione
- Abort per errore
Evento esterno
atteso
P1
Processo in
attesa
21
Inizio esecuzione
Quando loperazione di I/O
finita viene generata
uninterruzione esterna
Il processo in esecuzione
viene interrotto
Il nucleo esegue il gestore
delle interruzioni che
esegue le azioni opportune
P1 pu tornare pronto
Il nucleo sceglie quale
processo mandare in
esecuzione
P2
Processo in
esecuzione
Primo processo
pronto
Interruzione interna
- Fine esecuzione
- Abort per errore
Processo
pronto
Evento esterno
atteso
P1
Processo in
attesa
22
Pre-emption: quando il
quanto di tempo
scaduto, il nucleo
interrompe il processo in
esecuzione
Si cerca di garantire un
uso equo della CPU a
tutti i processi
Inizio esecuzione
P2
Processo
pronto
Evento esterno
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
Processo in
attesa
23
24
MEMORIA
0
1
2
M
25
Spazio di indirizzamento
26
Indirizzo
calcolato
(fisico)
Indirizzo
virtuale
(rilocabile)
27
MEMORIA
PROCESSORE
999
RB
1000
1000
1001
1002
1003
processo in
esecuzione
1004
PC
3
indirizzi fisici
indirizzi virtuali
28
29
MEMORIA
Sistema Operativo
Processo P
MEMORIA
Processo S
Sistema Operativo
Processo P
Processo S (1)
Processo Q
Processo Q
Processo S (2)
Processo R
Processo R
30
Paginazione
31
MEMORIA
FISICA
MEMORIA
VIRTUALE P
dimensione
pagina
MEMORIA
VIRTUALE Q
32
offset
indirizzo fisico
NPF
offset
34
indirizzo virtuale
offset
NPV
traduzione
NPF
offset
indirizzo fisico
Esempio
36
Esempio (segue)
indirizzo virtuale
offset
NPV
20bit
12bit
10bit
12bit
NPF
offset
indirizzo fisico
37
indirizzo virtuale
NPV = 0
NPV
offset
NPF
0
1
2
3
NPF
offset
indirizzo fisico
39
40
LA MEMORIA CACHE
Il problema della memoria: costo vs. prestazioni
Obiettivo:
fornire agli utenti una memoria grande e veloce
fornire al processore i dati alla velocit con cui in
grado di elaborarli
Problema: Il tasso di crescita nella velocit dei processori
non stato seguito da quello delle memorie
Tempo di accesso alle SRAM: 2 - 25ns al costo di $100 $250 per Mbyte.
Tempo di accesso alle DRAM: 60-120ns al costo di $5 $10 per Mbyte.
Tempo di accesso al disco: da 10 a 20 million ns al costo
di $0.10 - $0.20 per Mbyte.
41
Prestazioni
1000
CPU
Legge di Moore
100
Divario di prestazioni
Processore-Memoria
(cresce 50% / anno)
10
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
DRAM
Proc
60%/anno
(2X/1.5yr)
DRAM
9%/anno
(2X/10yr)
Tempo
42
CPU
Livelli della
gerarchia di
memoria
Livello 1
Livello 2
Incremento del
tempo di
accesso da
parte della
CPU
Utilizzare diversi
livelli di memoria, con
tecnologie diverse in
modo da ottenere un
buon compromesso
costo/prestazioni
Livello n
43
Capacit
Tempo di accesso
Costo
Registri CPU
h Bytes
<10s ns
Cache
K Bytes
10-100 ns
1-0.1 cents/bit
Registri
Istr. Operandi
Predisposizione
Unit di trasf.
prog./compilatore
1-8 bytes
Cache
Blocchi
Memoria centrale
M Bytes
200ns- 500ns
$.0001-.00001 cents /bit
Memoria
Disco
G Bytes, 10 ms
(10,000,000 ns)
10E-6 10E-5 cents/bit
Disco
Nastro
infinito
sec-min
10E-8 cent/bit
Livello
superiore
+ veloce
Pagine
Files
Nastro
Controllore cache
8-128 bytes
OS
512-4K bytes
utente
Mbytes
+ grande
Livello
inferiore
44
Localit
Localit
spaziale
45
Il principio di localit
localit
Localit temporale: se un dato viene referenziato in un
dato istante, probabile che lo stesso dato venga
nuovamente richiesto entro breve
Localit Spaziale: Se un dato viene utilizzato in un dato
istante, probabile che dati posizionati in celle di memoria
adiacenti vengano anchessi richiesti entro breve
Negli ultimi 15 anni, le tecniche di miglioramento delle
prestazioni nellhardware si sono basate sul principio di
localit
46
Gerarchia di memoria
Al Processore
Livello sup.
di memoria
Livello inf
di memoria
blocco X
Dal Processore
blocco Y
47
Gerarchia di memoria:
memoria: definizioni
48
Gerarchia di memoria:
memoria: definizioni
49
Cache
Memoria al livello superiore della gerarchia
Sfruttare il principio di localit dei programmi e tenere in
memoria cache i dati utilizzati pi di recente
Obiettivo: fornire dati al processore in uno o due cicli di
clock
Memoria cache: veloce nei tempi di accesso ma di
dimensioni ridotte
50
51