Architettura di un sistema di calcolo

annuncio pubblicitario
Richiami sulla struttura dei sistemi di calcolo
n Gestione delle Interruzioni
n Gestione della comunicazione fra processore e
dispositivi periferici
n Gerarchia di memoria
n Protezione.
2.1
Architettura di un sistema di calcolo
2.2
1
Funzionamento di un Sistema di calcolo
n
I dispositivi di I/O e la CPU possono operare c o n c o r r e n t e m e n t e.
n
Ad ogni dispositivo di I/O corrisponde il proprio controllore.
n
Ogni controllore ha il suo b u f f e r locale .
n
CPU sposta i dati dalla/ verso la memoria centrale verso/ da i
buffer locali
n
L’operazione di I/O ha luogo tra il dispositivo ed il buffer locale
del controller.
n
Il controller informa la CPU del termine di una opera zione
g e n e r a n d o u n interrupt (di fine I/O).
2.3
Interrupt
n Una definizione:
F Un meccanismo che consente l’interruzione del normale
ciclo di esecuzione della CPU
n Introdotti per aumentare l’efficienza di un sistema di
calcolo
n Permettono al S.O. di intervenire durante
l’esecuzione di un processo utente, per gestire le
risorse di un calcolatore (CPU, Memoria, I/O)
n Possono essere sia hardware che software
n Possono essere ritardati (mascherati) se la CPU sta
svolgendo compiti non interrompibili
2.4
2
Classi di Interrupt
n Interrupt Hardware
F Eventi hardware asincroni, non causati dal programma in
esecuzione
4 Dispositivi di I/O (es. fine I/O)
4 Clock (scadenza quanto di tempo)
n Interrupt Software (Trap)
F Causato dal programma
4 Eventi eccezionali, quali divisione per zero, errori di
indirizzamento
4 Richiesta di servizi al S.O. (system call)
2.5
Gestione degli Interrupt
(panoramica)
n Un segnale di interrupt request viene inviato alla CPU
n La CPU:
hardware
F Interrompe l’elaborazione corrente
F Salta all’indirizzo di una locazione di memoria contenente la
routine di gestione dell’interrupt (ISR o interrupt h a n d l e r)
n L’ISR:
F gestisce l’interrupt in modo opportuno
software
F Restituisce il controllo al processo interrotto (o ad altro
processo)
n La CPU riprende l’esecuzione del processo interrotto
2.6
3
Gestione degli Interrupt
(dettagli)
1. Un segnale di interrupt request viene inviato alla CPU
2. La CPU termina l’esecuzione dell’istruzione corrente
3. La CPU verifica la presenza di un segnale di Interrupt e in
caso affermativo invia una conferma (ACK) al device che ha
generato l’interrupt
2.7
Gestione degli Interrupt
(dettagli)
4. La CPU salva sullo stack le informazioni necessarie
a riprendere l’elaborazione interrotta (Registri critici:
PC e Registro di Stato)
5. Selezione dell’interrupt handler appropriato tramite il
vettore di interrupt
6. Caricamento del PC con l’indirizzo iniziale
dell’handler
-
(in pratica si salta all’ISR e il ciclo f e t c h -e x e c u t e viene
ripreso)
TUTTE LE OPERAZIONI FIN QUI SONO SVOLTE IN
HARDWARE
2.8
4
Gestione degli Interrupt
(dettagli)
7. Salvataggio dello stato del processore sullo stack
(informazioni critiche non salvate via hardware)
8. Gestione dell’interrupt
n
Lettura delle informazioni di controllo provenienti dal
dispositivo ed eventuale nuova comunicazione col
dispositivo
9. Ripristino dello stato del processore
n
È l’operazione inversa alla 7
10. Ritorno del controllo al processo in esecuzione
n
Ripristino del PC e del registro di stato salvati sullo stack.
2.9
2.10
5
Sistemi Operativi Interrupt-Driven
n I sistemi operativi sono guidati dalle interruzioni
n Gran parte del nucleo viene eseguito come interrupt
handler
n Gli interrupt (sia hardware che software) guidano
l’avvicendamento dei processi
2.11
Interruzioni multiple
n Un interrupt può avvenire
durante la gestione di un
altro interrupt
n Due possibili approcci:
F Disabilitazione degli interrupt
(riabilitazione prima di
riprendere il processo
interrotto)
F Interrupt annidati (interrupt a
priorità maggiore possono
interrompere la ISR)
2.12
6
Tecniche di comunicazione di I/O
n Tre modalità di comunicazione tra CPU e
dispositivi di I/O:
F I/O programmato
F I/O interrupt driven
F DMA (Direct Memory Access)
2.13
I/O programmato (tecnica obsoleta)
n
La CPU esegue un’istruzione di I/O eseguendo un apposito
programma di I/O.
n
Il programma di I/O (es. input dati):
F Prepara l’operazione di I/O scrivendo sui registri del controller del
dispositivo
n
Il dispositivo esegue l’azione richiesta e al termine scrive sui
registri del controller i risultati (buffer e stato)
n
La CPU attende (busy waiting ) il completamento dell’operazione
testando periodicamente il contenuto di appositi registri di stat o
n
Infine la CPU sposta i dati di input dal buffer del controller alla
memoria centrale
LA CPU DEVE ATTENDERE IL COMPLETAMENTO
DELL’OPERAZIONE
2.14
7
I/O interrupt- driven
n
La CPU esegue un’istruzione di I/O lanciando un apposito
programma di I/O.
n
Il programma di I/O (es. input dati):
F Prepara l’operazione di I/O scrivendo sui registri del controller del
dispositivo
n
Il sistema operativo sospende l’esecuzione del processo che ha
eseguito l’operazione di input ed esegue un altro processo
n
Il dispositivo esegue l’azione richiesta, al termine scrive sul
buffer del controller il risultato e segnala il termine
dell’operazione attraverso interrupt.
n
Al ricevimento dell’interrupt, la CPU copia i dati dal buffer del
controller alla memoria centrale.
2.15
DMA- Direct Memory Access
n
Nei precedenti approcci, il processore spreca parte del suo
tempo a trasferire dati dal controller alla memoria e la velocit à
del trasferimento dipende dalla velocità con cui il processore
può gestire il servizio.
n
Con un modulo di DMA, il controller del dispositivo trasferisce
blocchi di dati dal buffer direttamente in memoria centrale,
senza l’intervento della CPU
n
il S.O. invia al DMA:
F Richiesta di lettura o scrittura
F Indirizzo del dispositivo di I/O
F Locazione di partenza della memoria da cui leggere o scrivere
F Numero di parole da leggere o scrivere
n
Completato il trasferimento, il DMA invia un interrupt alla CPU
2.16
8
Struttura della Memoria
n Memoria Centrale – insieme ai registri è il solo
spazio di memorizzazione che può essere acceduto
direttamente dalla CPU.
n Memoria Secondaria – estensione della memoria
centrale con una vasta e non volatile capacità di
memorizzazione.
n Dischi Magnetici – dischi ricoperti di materiale
magnetico
F Superficie del disco divisa in tracce e settori
F Il disk controller costituisce l’interfaccia fra disco e
computer.
2.17
Disco a testine mobili
2.18
9
Gerarchia di memoria
n
Le memorie possono essere organizzate in una gerarchia.
F Velocità
F Costo
F Volatilità
n
C a c h i n g – copiare informazioni in memorie pù veloci ; la
memoria centrale può essere vista come una cache della
memoria secondaria.
2.19
Gerarchia della memoria
2.20
10
Caching
n
Uso di memorie veloci per conservare dati acceduti di recente
n
Un concetto che si applica a vari livelli:
F Cache della memoria centrale
F Cache del disco in memoria
F Cache di file system distribuiti in file system locali
n
Richiede una politica di gestione della cache.
F Dimensione della cache e dei blocchi
F Una funzione di mapping del blocco nella cash
F Algoritmi di sostituzione.
n
Problema della coerenza.
2.21
Migrazione di A dal Disco ai Registri
2.22
11
2.23
Architetture di Protezione
n
In un ambiente con risorse condivise sono necessari
meccanismi di protezione per evitare
F Interferenze fra processi utente
F Interferenze fra processi utente e processi del S.O.
n
D u a l-Mode Operation
n
I/O Protection
n
Memory Protection
n
CPU Protection
2.24
12
Dual-Mode Operation
n
Impedisce ad un programma scorretto di causare danni ad un
altro programma.
n
È necessario un supporto h a r d w a r e per distinguere fra due
modalità di funzinamento .
1. User mode – esecuzione per conto di un processo utente.
2. Monitor mode ( a n c h e kernel mode o system mode) – esecuzione
per conto del S.O.
2.25
Dual-Mode Operation (Cont.)
n
Un bit di modo deve essere aggiunto nello status register per
indicare il modo corrente : monitor (0) o user (1).
n
Se si verifica un interrupt o una eccezione, l’hardware passa in
m o d o monitor.
Interrupt/fault
monitor
user
set user mode
Istruzioni privilegiate sono quelle eseguibili solo in modo m o n i t o r.
2.26
13
I/O Protection
n
Tutte le istruzioni di I/O devono essere considerate privilegiate.
n
Il S.O. dovrà offrire primitive e servizi per eseguire operazioni di
I/O.
n
L’obiettivo è evitare che un programma utente possa ad
esempio corrompere il file system, accedendo ad un dispositivo
di memoria secondaria
n
È necessario garantire che nessun processo utente possa
avere il controllo del sistema nella modalità monitor (occorre ad
esempio evitare che un programma utente riesca a modificare il
vettore delle interruzioni, inserendovi un indirizzo che fa
riferimento a proprio codice)
2.27
Uso di una System Call per eseguire I/O
2.28
14
Protezione di memoria
n
È necessaria la protezione di memoria per
F
il vettore delle interruzioni e per le ISR.
F Lo spazio dei processi utente e del sistema operativo.
n
Per proteggere la memoria è possibile aggiungere all’hardware
due registri che determinano l’intervallo degli indirizzi validi
accessibili da un processo
F Base register – per il più piccolo indirizzo di memoria fisica
accessibile.
F Limit register – contiene l’ampiezza dell’intervallo
n
La memoria esterna a questo intervallo è inaccessibile.
2.29
Uso dei registri Base e Limite
2.30
15
Hardware per la protezione degli indirizzi
(MMU)
2.31
Hardware Protection
n
Durante l’esecuzione in modo monitor, il S.O. ha libero accesso
sia alla memoria monitor che a quella degli utenti
n
Le istruzioni di caricamento dei registri base e limite devono
essere istruzioni privilegiate.
2.32
16
Protezione della CPU
n
T i m e r – per interrompere il processore dopo uno specifico
intervallo di tempo per garantire che il S.O. mantenga il contro llo
del sistema.
F Timer è decrementato ad ogni tick di clock.
F Quando il timer arriva al valore 0, si verifica un interrupt.
n
Timer è usato per realizzare il time sharing , calcolare l’ora
corrente
n
Anche l’struzione Load -timer è privileg i a t a.
2.33
Network Structure
n
Local Area Networks (LAN)
n
Wide Area Networks (WAN)
2.34
17
Local Area Network Structure
2.35
Wide Area Network Structure
2.36
18
Scarica