No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia -...

30
D. Talia - UNICAL 2.1 Sistemi Operativi Sistemi Operativi STRUTTURE DEI SISTEMI DI CALCOLO

Transcript of No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia -...

Page 1: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.1Sistemi Operativi

Sistemi Operativi

STRUTTURE DEI

SISTEMI DI CALCOLO

Page 2: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.2Sistemi Operativi

Strutture dei sistemi di calcolo

Funzionamento

Struttura dell’I/O

Struttura della memoria

Gerarchia delle memorie

Protezione Hardware

Architettura di un generico sistema

Page 3: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.3Sistemi Operativi

Architettura di un calcolatore

Programma di Bootstrap > Nucleo > Sistema operativo

Page 4: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.4Sistemi Operativi

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.

Page 5: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.5Sistemi Operativi

Gestione degli Interrupt

I sistemi operativi sono guidati dagli interrupt (interruptdriven).

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.

Page 6: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.6Sistemi Operativi

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:pollingsistema di interrupt vettorizzato

Sistema di interrupt vettorizzato: segmenti separati di codice determinano quale azione delle essere svolta a seguito dell’interrupt.

Page 7: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.7Sistemi Operativi

Diagramma temporale di interrupt

Interrupt per un singolo processo che effettua output

Page 8: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.8Sistemi Operativi

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 interruptciclo di attesaAl 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.

Page 9: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.9Sistemi Operativi

Due Metodi di I/O

Sincrono Asincrono

Page 10: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.10Sistemi Operativi

Tabella di stato dei dispositivi

Page 11: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.11Sistemi Operativi

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.

Page 12: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.12Sistemi Operativi

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 traccesuddivise in settori.Il controller del disco determina l’interazione tra il dispositivo e la CPU.

Page 13: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.13Sistemi Operativi

Dischi

Page 14: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.14Sistemi Operativi

Gerarchia di memorie

Le componenti della memoria di un computer possono essere organizzate in modo gerarchico in base a

VelocitàCostiVolatilità

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.

Page 15: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.15Sistemi Operativi

Gerarchia dei dispositivi di memoria

Page 16: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.16Sistemi Operativi

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.

Page 17: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.17Sistemi Operativi

Migrazione di A dal Disco a Registro

Page 18: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.18Sistemi Operativi

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-ModeProtezione dell’I/OProtezione della MemoriaProtezione della CPU

Page 19: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.19Sistemi Operativi

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.

Page 20: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.20Sistemi Operativi

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.

monitor utente

Interrupt/trap

set modo utente

Le istruzioni privilegiate possono essere eseguite solo nel modo monitor.

Page 21: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.21Sistemi Operativi

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.

Page 22: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.22Sistemi Operativi

Uso di una System Call per l’I/O

Page 23: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.23Sistemi Operativi

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 usanodue 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.

Page 24: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.24Sistemi Operativi

Uso di un Registro Base e un Registro Limite

Page 25: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.25Sistemi Operativi

Protezione degli Indirizzi Hardware

Page 26: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.26Sistemi Operativi

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.

Page 27: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.27Sistemi Operativi

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.

Page 28: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.28Sistemi Operativi

Struttura di una Local Area Network (LAN)

Page 29: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.29Sistemi Operativi

Struttura di una Wide Area Network (WAN)

Page 30: No Slide Titletalia/aa0102/sisop/lezione2.pdf · 2002-04-22 · Sistemi Operativi 2.3 D. Talia - UNICAL Architettura di un calcolatore Programma di Bootstrap > Nucleo > Sistema operativo

D. Talia - UNICAL2.30Sistemi Operativi

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 ?