sistemi operativi
Post on 02-Jan-2016
45 Views
Preview:
DESCRIPTION
TRANSCRIPT
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Sistemi OperativiSistemi Operativi
Marco D. Santambrogio – marco.santambrogio@polimi.itVer. aggiornata al 13 Agosto 2014
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
AgendaAgenda
• Intro e un po’ di storia• Qualche curiosità• Accenni sul funzionamento di un
SO
2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Cosa vediamo adesso…Cosa vediamo adesso…
• Intro e un po’ di storia
• Qualche curiosità• Accenni sul funzionamento di un
SO
3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Le Le generazionigenerazioni
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
UNIXUNIX
• 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
GNU Operating SystemGNU Operating System
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
LinuxLinux
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
microkernel Vs kernel microkernel Vs kernel modularemodulare
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Linux e la sua comunitàLinux e la sua comunità
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
DOSDOS
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
WindowsWindows
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Mac OS e Mac OS XMac OS e Mac OS X
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
16
Time
#Cores
2007
1
2006
2
4
32
2014
Quadcore
2005
64 cores
Dualcore
1000 cores
Intel
Sun
N Cores
8-24cores
Il mondo dell’informatica è pronto per una rivoluzione
Larrabee
Calcolo paralleloCalcolo parallelo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Sistemi Operativi per Sistemi Operativi per multicoremulticore
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Cosa vediamo adesso…Cosa vediamo adesso…
• Intro e un po’ di storia
• Qualche curiosità
• Accenni sul funzionamento di un SO
18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
In Italia…Alessandro In Italia…Alessandro RubiniRubini
• 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-vecchio-solo-complicato.html
19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• RTAI: RealTime Application Interface Patch Real Time per Linux DIAPM: Dipartimento di Ingegneria Aerospaziale https://www.rtai.org/
• AcOS: Autonomic Operating System for Adaptive Computing Patch Self-Aware per Linux e FreeBSD DEI: Dipartimento di Elettronica e Informazione www.changegrp.org/acos
• morphone.OS Patch Self-Aware per Android DEI: Dipartimento di Elettronica e Informazione www.changegrp.org/morphone
… … il Politecnico di Milanoil Politecnico di Milano
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Cosa vediamo adesso…Cosa vediamo adesso…
• Intro e un po’ di storia• Qualche curiosità
• Accenni sul funzionamento di un SO
21
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
23
Il sistema OperativoIl sistema Operativo
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
24
Il SO e la macchina realeIl SO e la macchina reale
CPU
A, B, C, D
RAM
ABCD
bus
utilizzo a rotazione suddivisione in blocchi
Periferiche
A, B, C, D
utilizzo a rotazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
25
Il SO e le Il SO e le macchine virtualimacchine virtuali
• 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 nella figura OD = other devices (altri dispositivi)
CPU A RAM A
OD A
HD A
Rete A I/O Aproc
. A
CPU B RAM B
OD B
HD B
Rete B I/O B
proc
. B
CPU D RAM D
OD D
HD D
Rete D I/O D
proc. D
CPU C RAM C
OD C
HD C
Rete C I/O C
proc. C
bus
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
26
Architettura del SOArchitettura del SO
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
27
Tipi di Sistema OperativoTipi di Sistema Operativo
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
28
Gestione dell’interfaccia Gestione dell’interfaccia utenteutente
• 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.)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
29
Gestione del file system Gestione del file system
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
31
Organizzazione dei file Organizzazione dei file
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
32
Gestione delle perifericheGestione delle periferiche
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
33
Gestione dei processiGestione dei processi
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
34
Che cosa è un processo per il Che cosa è un processo per il SO?SO?
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Processi e strutture datiProcessi e strutture dati
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ambiente di esecuzioneAmbiente di esecuzione
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Record di attivazioneRecord di attivazione
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lo stackLo stack• 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)
312 312311
310
303
...
Operazione di inserimento: -incremento SP -scrittura in parola indirizzata da SPOperazione di estrazione: -lettura da parola indirizzata da SP -decremento SP
SP
38
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
39
Lo stato di un processoLo stato di un processo
• 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.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Stato di un processo (1)Stato di un processo (1)
• 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
40
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Stato di un processo (2)Stato di un processo (2)
• 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 Coda dei processi
pronti Round-robin Priorità dei processi
41
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
P1 P2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Stato di un processo (3)Stato di un processo (3)
• 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)
42
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
P1
P2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Stato di un processo: cambio Stato di un processo: cambio contestocontesto
Cambiamento di contesto:Salvare il contesto di P1 nel suo descrittore di processo
Il processore è ora libero, un altro processo passerà in esecuzione
43
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
P1
P2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Stati di un processo (5)Stati di un processo (5)
Quando l’operazione di I/O è finita viene generata una interruzione esterna
Il processo in esecuzione viene interrotto
Il kernel esegue il gestore delle interruzioni che esegue le azioni opportune
P1 può tornare pronto Il kernel sceglie quale
processo mandare in esecuzione
44
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
P1
P2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Stato di un processo: Stato di un processo: PreemptionPreemption
Preemption: quando il quanto di tempo è scaduto, il kernel interrompe il processo in esecuzione
Si cerca di garantire un uso equo della CPU a tutti i processi
45
Processo in esecuzione
Processopronto
Processo in attesa
Inizio esecuzione
Primo processopronto
- Fine quanto di tempo- Interruzione esterna
Interruzione interna
Evento esterno atteso
- Fine esecuzione- Abort per errore
P1
P2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
47
Gestione della memoriaGestione della memoria
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
48
• E’ un modello lineare
• La memoria è una sequenza di celle numerate da 0 fino a un valore massimo M
• 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)
MEMORIA
0
1
2
M
Il SO e la gestione della Il SO e la gestione della memoriamemoria
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
49
Spazio di indirizzamentoSpazio di indirizzamento
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
50
Memoria virtuale vs. fisicaMemoria virtuale vs. fisica
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
51
RilocazioneRilocazione
• 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 virtuale
(rilocabile)
+Indirizzo calcolato (fisico)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
52
MEMORIA
PC3
RB1000
PROCESSORE
999
1000
1001
1002
1003
1004+
processo in esecuzione
0
1
2
3
indirizzi virtualiindirizzi fisici
Registro base
Rilocazione: esempioRilocazione: esempio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MEMORIA
Processo P
Problema della Problema della frammentazioneframmentazione
Sistema Operativo
Processo Q
Processo R
Processo S
MEMORIA
Sistema Operativo
Processo P
Processo Q
Processo R
Processo S (1)
Processo S (2)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
54
PaginazionePaginazione
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MEMORIAVIRTUALE Q
MEMORIAVIRTUALE P
MEMORIAFISICA
dimensione pagina
Paginazione: esempioPaginazione: esempio
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
56
Struttura degli indirizzi Struttura degli indirizzi virtualivirtuali
• Un indirizzo virtuale è costituito da un numero di pagina virtuale (NPV) e da uno spiazzamento (offset) all’interno della pagina
NPV offset
indirizzo virtuale
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
57
Struttura degli indirizzi Struttura degli indirizzi fisicifisici
• E’ del tutto analoga: si hanno un numero di pagina fisica (NPF) e da uno spiazzamento (offset) all’interno della pagina
NPF offset
indirizzo fisico
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Traduzione dal virtuale al Traduzione dal virtuale al fisicofisico
NPV offset
indirizzo virtuale
NPF offset
indirizzo fisico
traduzione
le pagine virtuali e quelle fisiche hanno la stessa dimensione, quindi l’offset è lo stesso
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
59
EsempioEsempio
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
60
Esempio (segue)Esempio (segue)
NPV offset
indirizzo virtuale
NPF offset
indirizzo fisico
12bit20bit
10bit 12bit
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
61
La tabella delle pagineLa tabella delle pagine
• E’ il meccanismo più semplice per la traduzione da virtuale a fisico
NPV = 0 offset
indirizzo virtuale
NPF offset
indirizzo fisico
NPV NPF
0
1
2
3
C’è una tabella delle pagine per ciascun processo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
62
Memory Management UnitMemory Management Unit
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
63
Pagine residenti e nonPagine residenti e non
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
64
La memoria cacheLa memoria cache
• 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.
Il problema della memoria: costo vs. prestazioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
65
Prestazioni di processori e Prestazioni di processori e cachecache
µProc60%/anno(2X/1.5yr)
DRAM9%/anno(2X/10yr)
Tempo
1
10
100
1000198
0198
1
198
3198
4198
5198
6198
7198
8198
9199
0199
1199
2199
3199
4199
5199
6199
7199
8199
9200
0
DRAM
CPU
198
2
Divario di prestazioniProcessore-Memoria(cresce 50% / anno)
Pre
staz
ioni
Legge di Moore
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Gerarchia di memoriaGerarchia di memoria
Tipicamente costituita da1. registri contenuti nella CPU (qualche KB)2. cache (da circa 32KB a circa 4096KB)3. memoria principale (da circa 512MB a qualche GB)4. dischi fissi (da qualche centinaio di GB a qualche TB)5. 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:
1. aumenta il tempo di accesso;2. aumenta la capacità di memorizzazione;3. ma diminuisce il costo per bit.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Una gerarchia di memoriaUna gerarchia di memoria
CPU
Registri
Cache I liv
Cache II liv Circ
uito
Inte
grat
o (c
hip)
RAM
Sche
da m
adre
(mot
herb
oard
)
Disco fisso (hard disk) tecnologia magnetica
Invo
lucr
o es
tern
o de
l cal
cola
tore
(ca
se)
Supporti esterni
tecnologia magnetica
(HD esterni)
tecnologia elettronica (flash disk)
tecnologia ottica
(CD, DVD)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Caratteristiche dei diversi Caratteristiche dei diversi livellilivelli
LivelloCapacit
à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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
69
LocalitLocalitàà
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
70
CacheCache
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
71
Gerarchia di memoriaGerarchia di memoria
• 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
Livello infdi memoriaLivello sup.
di memoriaAl Processore
Dal Processoreblocco X
blocco Y
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
72
Gerarchia di memoriaGerarchia di memoria: : definizionidefinizioni
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
73
Gerarchia di memoriaGerarchia di memoria: : definizionidefinizioni
• 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
74
Cache e principio di localitàCache e principio di località
• 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)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
FineFine
Grazie di tutto, è stato un bel cammino!Vi auguro il meglio!
75
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
FineFine
Grazie di tutto, è stato un bel cammino!Vi auguro il meglio!
76
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
FineFine
Grazie di tutto, è stato un bel cammino!Vi auguro il meglio!
77
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Fonti per lo studio + Fonti per lo studio + CreditsCredits• 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
top related