PDF - V1 - Politecnico di Milano-DEIB

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Sistemi Operativi
Marco D. Santambrogio – [email protected]
Ver. aggiornata al 24 Gennaio 2014 Agenda
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Intro e un po’ di storia
•  Qualche curiosità
•  Accenni sul funzionamento di un SO
2
Cosa vediamo adesso…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Intro e un po’ di storia
•  Qualche curiosità
•  Accenni sul funzionamento di un SO
3
Le generazioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  40’: Prima generazione
§  E’ in realtà difficile parlare di SO
•  50’: Seconda generazione
§  La General Motors Research Laboratories crea il 1mo SO per
l’IBM 701
•  60’: Terza generazione
§  Multiprogramming, più programmi simultaneamente nella
memoria centrale
§  Time-sharing
•  70’-90’: Quarta generazione
§  Circuiti LSI (Large Scale Integration)
•  Nascita dei Personal Computer
•  00’: Quinta generazione
§  Sistemi multicore
4
UNIX
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  1969: La storia di UNIX inizia nei laboratori
Bell della AT&T
•  1973: La svolta, UNIX viene scritto in C. •  1975: Viene scritta la Versione 6 di UNIX
§  Divenne largamente utilizzata anche fuori dai
laboratori Bell
§  Il problema/il vantaggio:
•  Essendo allora UNIX libero, ogni venditore di
macchine si faceva una versione proprietaria
esclusiva, un po' diversa ed spesso incompatibile
con le versioni degli altri venditori
5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
6
*NIX
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
7
GNU Operating System
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  1984: Nasce il progetto GNU
§  GNU’s Not Unix
•  GNU è un sistema operativo tipo Unix
distribuito come SW libero
•  Il Kernel di GNU è Hurd
§  Kernel in continuo sviluppo
§  GNU/Linux
•  Nota: il kernel (nucleo) è un programma
che si occupa di dare le funzionalità di
base per il funzionamento di un computer
8
Linux
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  1991: Nascita di Linux
§  Linus Torvalds
§  Si scontra in un newsgroup Usenet con
il professor Andrew Tanenbaum
•  Tanenbaum è l’invetore di Minix
•  Divieto di modifcare il codice per fini non
educational e sotto approvazione
dell’autore
•  Kernel monolitici Vs microkernel 9
microkernel Vs kernel modulare
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  microkernel
§  kernel minimale con “lo stretto indispensabile” ad
utilizzare l’hardware
§  si scrivono tutti i servizi (chiamate di sistema) in
user-space
•  comunicano direttamente con il kernel minimale
•  le altre applicazioni in user-space possono decidere di
utilizzare le chiamate di sistema o riferirsi
direttamente al microkernel. •  kernel monolitico
§  Tutto quanto necessario ad usare il sistema e a
fornirne un utilizzo ai programmi che vi girano è
programmato in un unico programma (monolitico)
che gira in kernel-space
10
Linux e la sua comunità
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  I LUG: Linux User Group
§  Associazioni senza fine di lucro
§  Diffondere l’uso del SW Libero
§  Diffondere l’uso dei SO basati sul
kernel di Linux
•  Il Linux DAY
§  Evento per la promozione del SW libero
e dei sistemi basati su Linux
11
shell di DOS
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
12
DOS
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  CP/M
§  Control Program for Microcomputers
§  Gary Kildall della Digital Research
•  1980: 86-DOS/QDOS
§  Quick and Dirty Operating System
§  Tim Paterson della Seattle Computer Products
•  1981: §  Luglio: Microsoft compra per$50K(?) l’86-DOS
§  Agosto: Microsoft Disk Operating System
•  MS-DOS 1.0
13
Windows
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 
• 
• 
• 
• 
• 
• 
Nov. 1983: Annuncio di Windows
Nov. 1955: Windows 1.0 rilasciato
1998: Windows 98
2000: Windows 2000
2001: Windows XP
2007: Windows Vista
2009: Windows 7
•  kernel ibrido
§  microkernel fatto comunicare tramite
messaggi con i restanti servizi, tutto in
kernel-space
14
Mac OS e Mac OS X
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  1984: Mac OS
§  Macintosh Operating System
§  Primo OS ad usare con successo una GUI
•  ‘86-’95: NextSTEP (’98 Rhapsody)
§  kernel Mach (microkernel)
§  Objective-C
§  Gestione orientata agli oggetti
•  Diventerà Cocoa
•  Mac OS X
§  Rhapsody + Mac OS
15
Calcolo parallelo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
N Cores
#Cores
1000 cores
64 cores
32
Larrabee
Sun
8-24
cores
Intel
4
Quad
core
2
Dual
core
1
2005
16
2006
2007
2014 Time
Il mondo
dell’informatica è
pronto per una
rivoluzione
Sistemi Operativi per multicore
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Barrelfish Operating System §  @ ETH
§  http://www.barrelfish.org/
•  K42/Tornado OS §  @ IBM/Uniersity of Toronto
§  http://www.eecg.toronto.edu/~tornado/
•  fos: Factored Operating System
§  @ MIT
§  groups.csail.mit.edu/carbon/fos
•  Tessellation OS §  @ Berkeley
§  http://tessellation.cs.berkeley.edu/
17
Cosa vediamo adesso…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Intro e un po’ di storia
•  Qualche curiosità
•  Accenni sul funzionamento di un SO
18
In Italia…Alessandro Rubini
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Co-autore di Linux Device Drivers
•  Pagina personale
§  http://ar.linux.it/
•  Intervista: Il kernel? Non è vecchio,
solo complicato
§  http://linea-dombra.blogspot.com/
2010/04/il-kernel-non-e-vecchiosolo-complicato.html
19
… il Politecnico di Milano
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  RTAI: RealTime Application Interface
§  Patch Real Time per Linux §  DIAPM: DiparAmento di Ingegneria Aerospaziale §  hEps://www.rtai.org/ •  AcOS: Autonomic Operating System for Adaptive
Computing
§  Patch Self-­‐Aware per Linux e FreeBSD §  DEI: DiparAmento di EleEronica e Informazione §  www.changegrp.org/acos •  morphone.OS
§  Patch Self-­‐Aware per Android §  DEI: DiparAmento di EleEronica e Informazione §  www.changegrp.org/morphone Cosa vediamo adesso…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Intro e un po’ di storia
•  Qualche curiosità
•  Accenni sul funzionamento di un SO
21
Ma prima…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
PAUSA!!!... 10’
22
Il sistema Operativo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il sistema operativo (SO) è uno strato
software che nasconde agli utenti i dettagli
dell’architettura hardware del calcolatore
•  Fornisce diverse funzionalità ad alto livello
che facilitano l’accesso alle risorse del
calcolatore
•  Supporta l’esecuzione dei programmi
applicativi definendo una macchina
virtuale, cioè un modello ideale del
calcolatore, sollevando il software
applicativo dal compito di gestire i limiti
delle risorse disponibili
23
Il SO e la macchina reale
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
utilizzo a rotazione
suddivisione in blocchi
utilizzo a rotazione
RAM
CPU
A, B, C, D
A
B
C
D
Periferiche
A, B, C, D
bus
24
Il SO e le macchine virtuali
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il sistema operativo può gestire più processi
simultaneamente
•  Rende quindi visibile ad ogni processo una macchina
virtuale ad esso interamente dedicata e quindi con risorse
proprie
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
§  nella figura OD = other devices (altri dispositivi)
25
Architettura del SO
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il SO è tipicamente organizzato a strati •  Ciascun strato costituisce una macchina
virtuale che gestisce una risorsa del
calcolatore
•  Le principali funzionalità offerte sono:
§  La gestione dei processi
§  La gestione della memoria
§  La gestione delle periferiche (tra cui la
rete)
§  La gestione del file system
§  La gestione dell’interfaccia utente
•  Le prime tre funzionalità sono
indispensabili per il funzionamento del
sistema e pertanto costituiscono il
nucleo del SO (Kernel)
Programmi utente
Interprete comandi
File system
Gestione delle periferiche
Gestione della memoria
Gestione dei processi
Macchina fisica
Kernel
26
Tipi di Sistema Operativo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Esistono diversi tipi di sistema operativo, ma
in generale si possono dividere in:
§  Monoutente e monoprogrammato
•  Esecuzione un solo programma applicativo alla volta
•  Viene utilizzato da un solo utente per volta
•  Esempio: DOS
§  Monoutente e multiprogrammato (multitasking)
•  Consente di eseguire contemporaneamente più
programmi applicativi
•  Esempio: Windows 95
§  Multiutente
•  Consente l’utilizzo contemporaneo da parte di più
utenti
•  E’ inerentemente multiprogrammato
•  Esempio: Linux
27
Gestione dell’interfaccia utente
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il SO fornisce un interprete dei comandi
inseriti dall’utente attraverso la tastiera o il
mouse
•  L’interfaccia utente può essere
§  Testuale (esempio: DOS)
§  Grafica (esempio: Windows)
•  Consente l’inserimento di diversi comandi:
§ 
§ 
§ 
§ 
Esecuzione di programmi applicativi
Operazioni sulle periferiche
Configurazione dei servizi del SO
Operazioni sul file system (creazione, rimozione,
copia, ricerca, ecc.)
28
Gestione del file system DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il SO si occupa di gestire i file sulla memoria di
massa:
§  Creare un file
§  Dargli un nome
§  Collocarlo in un opportuno spazio nella memoria di
massa
§  Accedervi in lettura e scrittura
•  Gestione dei file indipendente dalle
caratteristiche fisiche della memoria di massa
•  I file vengono inclusi all’interno di directory (o
cartelle, o cataloghi)
§  In genere, le directory sono organizzate ad albero
29
La struttura ad albero DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
30
Organizzazione dei file DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  A ciascun utente è normalmente
associata una directory specifica, detta
home directory
•  Il livello di protezione di un file indica
quali operazioni possono essere
eseguite da ciascun utente
•  Ciascun file ha un pathname (o nome
completo) che include l’intero
cammino dalla radice dell’albero
•  Il contesto di un utente all’interno del
file system è la directory in cui
correntemente si trova
31
Gestione delle periferiche
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Sono meccanismi software a cui è
affidato il compito di trasferire dati
da e verso le periferiche
•  Consentono ai programmi
applicativi di leggere o scrivere i
dati con primitive di alto livello che
nascondono la struttura fisica delle
periferiche
§  e.g., nel sistema Unix le periferiche
sono viste come file speciali
32
Gestione dei processi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il SO multiprogrammato e multiutente si
occupa di gestire l’esecuzione concorrente
di più programmi utente
•  La CPU del calcolatore (o le CPU nei sistemi
multiprocessore) deve essere distribuita in
maniera opportuna fra i programmi da
eseguire
•  Ogni programma eseguito ha a
disposizione una macchina virtuale
realizzata dal SO che ne consente
l’esecuzione come se la CPU del calcolatore
fosse interamente dedicata a esso
33
Che cosa è un processo per il SO?
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Processo ≠ programma !
•  Processo = esecuzione di un programma, composto da:
§  codice eseguibile (il programma stesso)
§  dati
•  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
34
Processi e strutture dati
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Ad un processo sono associate le
seguenti strutture dati:
§  Uno o più segmenti di codice
§  Uno o più segmenti di memoria dati
§  I descrittori di eventuali risorse in uso
(file, finestre, periferiche, ecc.)
§  Uno o più thread
•  Un processo consta di tre zone di
memoria chiamate regioni: dati,
codice e stack
35
Ambiente di esecuzione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  L’ambiente di esecuzione di una funzione (variabili
e parametri formali) viene creato al momento della
chiamata e rilasciato quando la funzione termina
•  In una sequenza di chiamate, l’ultima chiamata è
la prima a terminare
•  La zona di memoria di lavoro che contiene
l’ambiente di esecuzione di un sottoprogramma è
gestito con la logica di una pila (stack)
§  L’ultimo elemento inserito nello stack è il primo ad
essere estratto
§  Logica LIFO (Last In First Out)
36
Record di attivazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Alla chiamata di una funzione
§  si alloca uno spazio di memoria (record di attivazione) in
cima allo stack per contenere i parametri formali e le variabili
locali
§  lo spazio viene rilasciato quando la funzione termina
•  Il record di attivazione contiene:
§  L’ambiente locale della funzione
§  L’indirizzo di ritorno al chiamante
•  Funzionamento:
§  Ad ogni attivazione viene allocato un record di attivazione
§  Al termine dell’attivazione il record viene rilasciato (l’area di
memoria è riutilizzabile)
§  La dimensione del record di attivazione è già nota in fase di
compilazione
§  Il numero di attivazioni della funzione non è noto
§  Il primo record di attivazione è destinato al main()
37
Lo stack
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 
• 
• 
• 
Nello stack, i record vengono allocati “uno sopra l’altro”; il primo
record dello stack è relativo all’ultima funzione attivata e non
ancora terminata
Lo stack cresce dal basso verso l’alto
Stack pointer: registro della CPU che contiene l’indirizzo della cima
della pila
Una parte della RAM è destinata a contenere lo stack
§  Stack overflow: quando l’area della RAM destinata allo stack
viene superata (troppi annidamenti di chiamate)
SP
312
Operazione di inserimento:
-incremento SP
-scrittura in parola indirizzata da SP
Operazione di estrazione:
-lettura da parola indirizzata da SP
-decremento SP
312
311
310
...
303
38
Lo stato di un processo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Lo stato del processo può essere distinto
fra stato interno e stato esterno.
•  Lo stato interno indica:
§  la prossima istruzione del programma che
deve essere eseguita;
§  i valori delle variabili e dei registri utilizzati
dal processo.
•  Lo stato esterno indica se il processo è:
§  in attesa di un evento, ad es. la lettura da
disco o l’inserimento di dati da tastiera;
§  in esecuzione;
§  pronto per l’esecuzione, e quindi in attesa di
accedere alla CPU.
39
Stato di un processo (1)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Inizio esecuzione
•  In esecuzione:
assegnato al
processore ed
eseguito da esso
- Fine quanto di tempo
- Interruzione esterna
•  Pronto: può
andare in
esecuzione, se il
gestore dei
processi lo decide
Processo
pronto
Primo processo
pronto
Processo in
esecuzione
Evento esterno
atteso
•  In attesa: attende
Interruzione interna
il verificarsi di un
evento esterno per
andare in stato di
- Fine esecuzione
pronto
Processo in
attesa
- Abort per errore
40
Stato di un processo (2)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  I processi appena
creati sono messi in
stato di pronto
•  Il kernel decide quale
processo pronto
mettere in stato di
esecuzione
•  Il kernel assegna il
processore a un
processo per un
quanto di tempo
Inizio esecuzione
P1 P2
Processo
pronto
- Fine quanto di tempo
- Interruzione esterna
Primo processo
pronto
Processo in
esecuzione
Evento esterno
atteso
§  Coda dei processi
Interruzione interna
pronti
§  Round-robin
§  Priorità dei processi
- Fine esecuzione
- Abort per errore
Processo in
attesa
41
Stato di un processo (3)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Il processo in
esecuzione passa in
stato di attesa se
richiede operazioni di
I/O (interruzione
interna)
§  Corrisponde alla
esecuzione
dell’istruzione
“chiamata supervisore”
(SuperVisor Call, SVC)
Inizio esecuzione
P2
Processo
pronto
- Fine quanto di tempo
- Interruzione esterna
P1
Processo in
esecuzione
Primo processo
pronto
Evento esterno
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
Processo in
attesa
42
Stato di un processo: cambio contesto
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Inizio esecuzione
P2
Processo
pronto
- Fine quanto di tempo
q  Cambiamento di contesto:
- Interruzione esterna
" Salvare il contesto di P1
nel suo descrittore di
Primo processo
processo
pronto
q  Il processore è ora libero,
un altro processo passerà in
Processo in
Evento esterno
esecuzione
esecuzione
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
P1
Processo in
attesa
43
Stati di un processo (5)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
q  Quando l’operazione di
I/O è finita viene
generata una
interruzione esterna
q  Il processo in
esecuzione viene
interrotto
q  Il kernel esegue il
gestore delle
interruzioni che esegue
le azioni opportune q  P1 può tornare pronto
q  Il kernel sceglie quale
processo mandare in
esecuzione
Inizio esecuzione
- Fine quanto di tempo
- Interruzione esterna
P2
Processo in
esecuzione
Processo
pronto
Primo processo
pronto
Evento esterno
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
P1
Processo in
attesa
44
Stato di un processo: Preemption
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
q Preemption:
quando il quanto
di tempo è
scaduto, il kernel
interrompe il
processo in
esecuzione
q Si cerca di
garantire un uso
equo della CPU a
tutti i processi
Inizio esecuzione
P2
Processo
pronto
- Fine quanto di tempo
- Interruzione esterna
P1
Processo in
esecuzione
Primo processo
pronto
Evento esterno
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
Processo in
attesa
45
Pausa
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
46
Gestione della memoria
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  La gestione concorrente di molti
programmi applicativi comporta la
presenza di molti programmi in memoria
centrale
•  Il SO offre a ogni programma applicativo la
visione di una memoria virtuale, che può
avere dimensioni maggiori di quella fisica
•  Per gestire la memoria virtuale il SO
dispone di diversi meccanismi:
§  Rilocazione
§  Paginazione
§  Segmentazione
47
Il SO e la gestione della memoria
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  E’ un modello lineare
MEMORIA
0
•  La memoria è una
sequenza di celle
numerate da 0 fino a un
valore massimo M
1
2
•  Il numero che identifica
ogni cella è detto
indirizzo
•  La dimensione della
cella dipende dal tipo di
calcolatore (per noi sarà
di 8 bit, ossia un byte)
M
48
Spazio di indirizzamento
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Lo spazio di indirizzamento è il numero
massimo di indirizzi possibili della memoria
•  Dipende dalla lunghezza in bit degli indirizzi
•  Se gli indirizzi sono lunghi N bit, lo spazio di
indirizzamento è di 2N celle
•  Tutte le celle devono essere indirizzabili (cioè
devono avere un indirizzo), quindi
§  Dimensione memoria ≤ Spazio indirizzamento
•  Le dimensioni della memoria sono
generalmente espresse in:
§  KB (Kilobyte) = 210 byte
§  MB (Megabyte) = 220 byte
§  GB (Gigabyte) = 230 byte
49
Memoria virtuale vs. fisica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  La memoria virtuale e quella fisica non coincidono per i
seguenti motivi:
§  nella memoria fisica risiedono contemporaneamente il SO e i
diversi processi
§  conviene mantenere nella memoria fisica una sola copia di
parti di programmi che sono uguali in diversi processi
(memoria condivisa)
•  Per evitare la frammentazione della memoria (spazi vuoti
in memoria inutilizzabili) è utile allocare i programmi
suddividendoli in pezzi
•  La memoria fisica può essere insufficiente a contenere la
memoria virtuale di tutti processi
•  Gli indirizzi contenuti in un programma eseguibile sono
indirizzi virtuali e fanno riferimento alla memoria virtuale
•  La memoria effettivamente presente nel calcolatore è la
memoria fisica e i suoi indirizzi sono detti indirizzi fisici
50
Rilocazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Rilocazione: meccanismo di trasformazione da
indirizzo virtuale (detto anche rilocabile) a fisico
§  Statica: i nuovi indirizzi vengono calcolati al
caricamento del programma in memoria
§  Dinamica: ogni indirizzo viene calcolato al momento
durante l’esecuzione
Registro base
+
Indirizzo
calcolato
(fisico)
Indirizzo
virtuale
(rilocabile)
51
Rilocazione: esempio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MEMORIA
PROCESSORE
Registro base
999
RB
1000
+
1000
0
1001
1
1002
2
1003
3
processo in
esecuzione
1004
PC
3
indirizzi fisici
indirizzi virtuali
52
Problema della frammentazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
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
Paginazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si rinuncia ad avere una zona contigua
della memoria fisica per ciascun
processo
•  La memoria virtuale del programma
viene suddivisa in porzioni (pagine
virtuali) di lunghezza fissa (pot. di 2,
e.g., 4K) •  La memoria fisica viene divisa in
pagine fisiche della stessa dimensione
•  Le pagine virtuali di un programma
vengono caricate in altrettante pagine
fisiche, non necessariamente contigue
54
Paginazione: esempio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MEMORIA
FISICA
MEMORIA
VIRTUALE P
dimensione
pagina
MEMORIA
VIRTUALE Q
Struttura degli indirizzi virtuali
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Un indirizzo virtuale è costituito da
un numero di pagina virtuale (NPV) e
da uno spiazzamento (offset)
all’interno della pagina
indirizzo virtuale
NPV
offset
56
Struttura degli indirizzi fisici
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  E’ del tutto analoga: si hanno un
numero di pagina fisica (NPF) e da
uno spiazzamento (offset)
all’interno della pagina
indirizzo fisico
NPF
offset
57
Traduzione dal virtuale al fisico
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
indirizzo virtuale
offset
NPV
traduzione
NPF
offset
indirizzo fisico
le pagine virtuali e quelle fisiche hanno la
stessa dimensione, quindi l’offset è lo stesso
Esempio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Spazio di indirizzamento virtuale: §  indirizzi da 32 bit ð 232 indirizzi •  Dimensione di pagina: 4K parole (o celle) ð 212byte (1 cella occupa 1 byte)
§  Offset ð numero di bit necessari per indirizzare una
cella all'interno di una pagina =
log2(dimensione_pagina)=12
•  Numero di pagine dello spazio di indirizzamento virtuale
§  232/212 = 220 pagine
•  Spazio di indirizzamento fisico: §  4M parole (o celle) ð 222 indirizzi •  Numero di pagine dello spazio di indirizzamento
fisico
§  222/ 212 = 210 pagine
59
Esempio (segue)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
indirizzo virtuale
offset
NPV
20bit
12bit
10bit
12bit
NPF
offset
indirizzo fisico
60
La tabella delle pagine
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  E’ il meccanismo più semplice per la
traduzione da virtuale a fisico
indirizzo virtuale
NPV = 0
NPV
offset
NPF
0
1
2
3
NPF
offset
indirizzo fisico
C’è una tabella delle pagine per
ciascun processo
61
Memory Management Unit
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Per accelerare la traduzione da NPV a NPF si
ricorre allora alla MMU
•  La MMU è una memoria particolarmente veloce
(memoria associativa) dalle dimensioni ridotte,
contenente le informazioni per la traduzione da
NPV a NPF delle pagine più utilizzate
•  Visto che gli NPV e gli NPF si riferiscono alle
pagine di un processo, ogni volta che il processo
in esecuzione cambia la MMU dovrebbe essere
tutta riscritta •  Per evitare ciò si aggiunge una colonna che dice a
quale processo appartengono le pagine e un
registro che dice qual è il processo attualmente in
esecuzione
62
Pagine residenti e non
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Durante l’esecuzione di un programma solo
un certo numero delle sue pagine virtuali è
caricato in altrettante pagine fisiche
•  Tali pagine sono dette pagine residenti
•  A ogni accesso alla memoria si controlla che
all’indirizzo virtuale corrisponda una pagina
residente, altrimenti si produce un interrupt di
segnalazione di errore detto page-fault
•  Il processo viene sospeso in attesa che la
pagina richiesta venga caricata in memoria,
eventualmente scaricando su disco una pagina
già residente per liberare lo spazio necessario
63
La memoria cache
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
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 (Static Random Access
Memory): •  2 - 25ns al costo di $100 - $250 per Mbyte.
§  Tempo di accesso alle DRAM (Dynamic Random
Access Memory): •  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.
64
Prestazioni di processori e cache
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
1000!
CPU!
Legge di Moore
Divario di prestazioni
Processore-Memoria
(cresce 50% / anno)
10!
DRAM
1!
DRAM
9%/anno
(2X/10yr)
1980!
1981!
1982!
1983!
1984!
1985!
1986!
1987!
1988!
1989!
1990!
1991!
1992!
1993!
1994!
1995!
1996!
1997!
1998!
1999!
2000!
Prestazioni
100!
µProc
60%/anno
(2X/1.5yr)
Tempo
65
Gerarchia di memoria
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Tipicamente costituita da
1. 
2. 
3. 
4. 
5. 
registri contenuti nella CPU (qualche KB)
cache (da circa 32KB a circa 4096KB)
memoria principale (da circa 512MB a qualche GB)
dischi fissi (da qualche centinaio di GB a qualche TB)
nastri magnetici e dischi ottici (da qualche centinaio di GB a
qualche TB per ogni supporto)
Man mano che ci si sposta verso il basso
nella gerarchia aumenta il valore dei
parametri fondamentali:
§ 
§ 
§ 
aumenta il tempo di accesso;
aumenta la capacità di memorizzazione;
ma diminuisce il costo per bit.
Una gerarchia di memoria
RAM
Supporti esterni
tecnologia tecnologia
magnetica
ottica
(HD esterni) (CD, DVD)
tecnologia
elettronica
(flash disk)
Disco fisso (hard disk)
tecnologia magnetica
Involucro esterno del calcolatore (case)
Cache II liv
Scheda madre (motherboard)
Cache I liv
Circuito Integrato (chip)
Registri
CPU
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Caratteristiche dei diversi livelli
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Livello
Capacità
Tempo di accesso
Transfer rate (GB/s)
Registri
~ 1 KB
~ 0.2 ns (1 ciclo di clock)
–
Cache I livello
~ 32 KB
~ 0.4 ns (2/4 cicli di clock)
–
Cache II livello
~ 1/2 MB
~ 1/2 ns (5/10 cicli di
clock)
~ 100
Cache III livello
~ 2/8 MB
~ 5 ns
~ 50
Memoria centrale
~ 2/8 GB
~ 50 ns (1ª parola richiesta)
~ 10 ns (parole successive)
~ 5/10
Dischi interni
> 300 GB
~ 10 ms
0.15/0.6
Dischi esterni
> 300 GB
~ 10 ms
~ 0.05
Località
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  E’ la proprietà fondamentale dei programmi che
rende possibile sfruttare l’organizzazione
gerarchica della memoria per incrementarne le
prestazioni •  Località: in ogni istante di tempo un programma
accede a una parte relativamente piccola del suo
spazio di indirizzamento
§  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 69
Cache
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  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 70
Gerarchia di memoria
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Si considerino solo due livelli di
gerarchia
•  Il processore richiede un dato al
sistema di memoria:
§  La richiesta viene prima inviata al livello di
memoria superiore (più vicino al processore) §  Se il dato non è presente nel livello superiore
(fallimento della richiesta) la ricerca viene
effettuata nel livello inferiore
Al Processore
Livello sup.
di memoria
Livello inf
di memoria
blocco X
Dal Processore
blocco Y
71
Gerarchia di memoria: definizioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Hit (successo): dati presenti in un blocco del
livello superiore (esempio: Blocco X) §  Hit Rate (“%” di successo): numero di accessi
a memoria che trovano il dato nel livello
superiore sul numero totale di accessi
§  Hit Time (tempo di successo): tempo per
accedere al dato nel livello superiore della
gerarchia
72
Gerarchia di memoria: definizioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Miss (fallimento): i dati devono essere recuperati dal
livello inferiore della memoria (Blocco Y)
§  Miss Rate (“%” di fallimento) = 1 - (Hit Rate)
§  Miss Penalty (tempo di fallimento): tempo per
determinare il MISS + tempo necessario a sosituire
un blocco nel livello superiore + tempo per
trasferire il blocco al processore
§  tipicamente si ha: Hit Time << Miss Penalty
•  Tempo medio di accesso in presenza di memoria
cache: semplicemente la media pesata con le
probabilità
§  HitTime*HitRate + MissRate*MissPenalty
73
Cache e principio di località
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Le memorie cache sfruttano il principio di
località spaziale trasferendo dal livello inferiore
della gerarchia più dati di quanti non ne siano
stati strettamente richiesti (blocco o linea di
cache)
•  La località temporale viene sfruttata nella scelta
del blocco da sostituire nella gestione di un
fallimento (es: sostituire il blocco a cui si è fatto
accesso meno di recente)
74
Fine
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Grazie di tutto, è stato un bel cammino!
Vi auguro il meglio!
75
Fine
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Grazie di tutto, è stato un bel cammino!
Vi auguro il meglio!
76
Fine
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Grazie di tutto, è stato un bel cammino!
Vi auguro il meglio!
77
Fonti per lo studio + Credits
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•  Fonti per lo studio
§  Il Sistema di elaborazione, Slide Info B, M. D. Santambrogio
§  Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella,
McGrawHill •  Capitolo 2
§  Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno,
L. Mari, 4a Ed, McGrawHill •  Capitolo 1, 2, 5
§  The Art & Craft of Computing, S. Ceri, D. Mandrioli, L.
Sbattella, Addison-Wesley •  Capitolo 2
•  Approfondimenti
§  Struttura e progetto dei calcolatori, D. A. Patterson, J.
Hennessy, 3a Ed, Zanichelli •  Capitolo 1, 2
•  Credits §  Prof. G. Buonanno e D. Sciuto, LIUC
78