Sistemi Operativi STRUTTURE DEI SISTEMI DI CALCOLO

annuncio pubblicitario
Sistemi Operativi
STRUTTURE
DEI
SISTEMI DI CALCOLO
Sistemi Operativi
2.1
D. Talia - UNICAL
Strutture dei sistemi di calcolo
„ Funzionamento
„ Struttura dell’I/O
„ Struttura della memoria
„ Gerarchia delle memorie
„ Protezione Hardware
„ Architettura di un generico sistema
Sistemi Operativi
2.2
D. Talia - UNICAL
1
Architettura di un calcolatore
Programma di Bootstrap > Nucleo > Sistema operativo
Sistemi Operativi
2.3
D. Talia - UNICAL
Funzionamento di un calcolatore
„ I dispositivi (device) di I/O e la CPU possono essere in
esecuzione concorrentemente.
„ Ogni controller si occupa di un particolare tipo di
dispositivo. Esempio: Controller SCSI
„ Ogni controller ha un buffer locale.
„ La CPU guida lo spostamento dei dati dalla memoria ai
buffer locali e viceversa.
„ L’I/O avviene dal dispositivo al buffer locale del controller.
„ Il controller segnala che ha completato la sua operazione
tramite un interrupt.
Sistemi Operativi
2.4
D. Talia - UNICAL
2
Gestione degli Interrupt
„ I sistemi operativi sono guidati dagli interrupt (interrupt
driven).
„ Un interrupt trasferisce il controllo alla routine di servizio
tramite il vettore di interrupt che contiene gli indirizzi
delle routine di servizio dei diversi interrupt.
„ La gestione dell’interrupt deve salvare l’indirizzo della
istruzione interrotta.
„ Durante la gestione di un interrupt altri interrupt in arrivo
vengono disabilitati per evitare la perdita dell’interrupt
corrente.
„ Un interrupt software generato da un errore o da una
particolare richiesta degli utenti è detto trap.
2.5
Sistemi Operativi
D. Talia - UNICAL
Gestione degli Interrupt
„ Il sistema operativo conserva lo stato della CPU a seguito
di un interrupt memorizzando i valori dei registri e del
program counter.
„ Determina che tipo di interrupt si è verificato:
¾ polling
¾ sistema di interrupt vettorizzato
„ Sistema di interrupt vettorizzato: segmenti separati di
codice determinano quale azione delle essere svolta a
seguito dell’interrupt.
Sistemi Operativi
2.6
D. Talia - UNICAL
3
Diagramma temporale di interrupt
Interrupt per un singolo processo che effettua output
2.7
Sistemi Operativi
D. Talia - UNICAL
Due Metodi di Gestione dell’I/O
„ Dopo l’avvio di un’operazione di I/O il controllo ritorna al
programma utente solo dopo il completatamento dell’I/O.
¾ istruzione wait che sospende la CPU fino ad un interrupt
¾ ciclo di attesa
¾ Al più una richiesta di I/O per volta
„ Dopo l’avvio di un’operazione di I/O il controllo ritorna al
programma utente senza attendere la fine dell’I/O.
¾ System call – richiesta al sistema operativo per attendere il
completamento.
¾ Tabella di stato dei dispositivi contiene elementi per ogni
dispositivo di I/O device che indica tipo, indirizzo e stato.
¾ Il sistema operativo accede alla Tabella per determinare lo
stato del dispositivo e modificare la sua descrizione.
Sistemi Operativi
2.8
D. Talia - UNICAL
4
Due Metodi di I/O
Sincrono
Sistemi Operativi
Asincrono
2.9
D. Talia - UNICAL
Tabella di stato dei dispositivi
Sistemi Operativi
2.10
D. Talia - UNICAL
5
Direct Memory Access (DMA)
„ Usato per dispositivi di I/O capaci di trasmette dati a
velocità simili a quelle della memoria.
„ Il controller del dispositivo trasferisce blocchi di dati
direttamente alla memoria centrale senza l’intervento
della memoria centrale.
„ Viene generato un singolo interrupt per blocco trasferito
piuttosto che un interrupt per ogni byte trasferito.
2.11
Sistemi Operativi
D. Talia - UNICAL
Struttura della Memoria
„ Memoria
Centrale - celle di memoria accessibili
direttamente dalla CPU (oltre ai registri).
„ Memoria
Secondaria - estensione della memoria
centrale di grandi dimensioni e non volatile.
„ Dischi Magnetici – piatti di metallo coperti da materiale
magnetico
¾ La superficie dei dischi è divisa logicamente in tracce
suddivise in settori.
¾ Il
controller del disco determina l’interazione tra il
dispositivo e la CPU.
Sistemi Operativi
2.12
D. Talia - UNICAL
6
Dischi
2.13
Sistemi Operativi
D. Talia - UNICAL
Gerarchia di memorie
„ Le componenti della memoria di un computer possono
essere organizzate in modo gerarchico in base a
¾ Velocità
¾ Costi
¾ Volatilità
„ Altri tipi di memorie: cache, registri, nastri, disco RAM.
„ Caching – copia dei dati in memorie più veloci; la
memoria centrale può essere vista come una cache per la
memoria secondaria.
Sistemi Operativi
2.14
D. Talia - UNICAL
7
Gerarchia dei dispositivi di memoria
Sistemi Operativi
2.15
D. Talia - UNICAL
Cache
„ Uso di memoria ad alta velocità per memorizzare i dati
più frequentemente acceduti.
„ Richiede una politica di cache management.
„ Caching introduce un altro livello nella gerarchia delle
memorie.
„ Questo richiede che i dati memorizzati in diversi livelli di
memoria siano consistenti.
Sistemi Operativi
2.16
D. Talia - UNICAL
8
Migrazione di A dal Disco a Registro
Sistemi Operativi
2.17
D. Talia - UNICAL
Protezione Hardware
„ Un sistema operativo deve impedire che il cattivo
funzionamento di un programma influenzi la corretta
esecuzione del sistema operativo e di altri programmi.
„ L’hardware supporta meccanismi di protezione.
„ Approcci alla protezione:
¾ Funzionamento Dual-Mode
¾ Protezione dell’I/O
¾ Protezione della Memoria
¾ Protezione della CPU
Sistemi Operativi
2.18
D. Talia - UNICAL
9
Funzionamento Dual-Mode
„ Fornisce un supporto hardware per differenziare tra due
modalità principali di esecuzione delle operazioni:
1. Modo Utente – esecuzione svolta per conto dell’utente.
2. Modo Monitor (o kernel o system) – esecuzione svolta per
conto del sistema operativo.
Nel modo utente non si possono eseguire istruzioni che
possano creare malfunzionamenti.
2.19
Sistemi Operativi
D. Talia - UNICAL
Funzionamento Dual-Mode
„ Si usa un Bit di modo per indicare il modo corrente:
monitor (0) o user (1).
„ Quando avviene un interrupt o una trap il sistema passa
al modo monitor.
Interrupt/trap
monitor
utente
set modo utente
Le istruzioni privilegiate possono essere eseguite solo nel modo monitor.
Sistemi Operativi
2.20
D. Talia - UNICAL
10
Protezione dell’I/O
„ Tutte le istruzioni di I/O sono istruzioni privilegiate.
„ Bisogna assicurare che un programma utente non possa
ottenere il controllo del computer in modo monitor.
„ Questo potrebbe succedere se le operazioni di I/O
venissero eseguite in modo utente.
„ Le system call si usano a questo scopo.
Sistemi Operativi
2.21
D. Talia - UNICAL
Uso di una System Call per l’I/O
Sistemi Operativi
2.22
D. Talia - UNICAL
11
Protezione della Memoria
„ Occorre proteggere aree di memoria critiche come il
vettore delle interruzioni e le routine di servizio degli
interrupt.
„ Per proteggere la memoria da usi non corretti si usano
due registri per determinare l’intervallo di valori corretto
che un programma può accedere:
¾ Registro Base– contiene l’indirizzo iniziale della memoria
che un programma può accedere.
¾ Registro Limite – contiene la dimensione dell’intervallo.
„ La memoria al di fuori dell’intervallo è protetta.
Sistemi Operativi
2.23
D. Talia - UNICAL
Uso di un Registro Base e un Registro Limite
Sistemi Operativi
2.24
D. Talia - UNICAL
12
Protezione degli Indirizzi Hardware
Sistemi Operativi
2.25
D. Talia - UNICAL
Protezione Hardware
„ Quando il sistema operativo è in esecuzione in modo
monitor può accedere tutte le celle di memoria.
„ Le istruzioni di caricamento e modifica dei registri base e
limite vengono eseguite dal sistema operativo in modalità
monitor.
Sistemi Operativi
2.26
D. Talia - UNICAL
13
Protezione della CPU
„ E’
fondamentale che un processo utente non usi
indefinitamente la CPU.
„ Soluzione:
„ Timer – per l’invio di un interrupt dopo un dato intervallo
di tempo.
¾ Timer è decrementato ad ogni tick del clock.
¾ Quando il timer avrà valore o viene generato l’interrupt.
„ Il Timer viene usato implementare il time sharing.
„ Il caricamento del timer è una istruzione privilegiata.
Sistemi Operativi
2.27
D. Talia - UNICAL
Struttura di una Local Area Network (LAN)
Sistemi Operativi
2.28
D. Talia - UNICAL
14
Struttura di una Wide Area Network (WAN)
Sistemi Operativi
2.29
D. Talia - UNICAL
Domande
„ Spiegare la motivazione e il funzionamento del DMA.
„ Indicare le motivazioni per l’uso delle memorie cache.
„ Descrivere il funzionamento dual mode per la protezione
del sistema operativo.
„ Come la mancanza della protezione hardware sulla
memoria può generare un comportamento non corretto
del sistema operativo ?
Sistemi Operativi
2.30
D. Talia - UNICAL
15
Scarica