La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Architettura degli elaboratori 24 novembre 2004 Lorganizzazione dellI/O: dispositivi di accesso, gestione degli interrupt.

Presentazioni simili


Presentazione sul tema: "Architettura degli elaboratori 24 novembre 2004 Lorganizzazione dellI/O: dispositivi di accesso, gestione degli interrupt."— Transcript della presentazione:

1 Architettura degli elaboratori 24 novembre 2004 Lorganizzazione dellI/O: dispositivi di accesso, gestione degli interrupt

2 Gestione degli interrupt 1.Definizioni di eccezione ed interrupt 2.Perché introdurre interrupt 3.Cosa deve fare il sistema in caso di interrupt 4.Esempi di I/O interrupt 5.Comunicazione tra il processore ed il dispositivo di I/O 6.Abilitazione/disabilitazione di interrupt : livelli 7.Interrupt multipli e simultanei : gestione delle priorità

3 Definizioni di eccezione ed interrupt Un'eccezione è un evento inaspettato dallinterno del processore (ad es. divisione per zero) Un interrupt è un evento inaspettato che proviene dallesterno del processore (ad es. terminazione di unoperazione di stampa) Entrambi, come le operazioni di jump/branch, modificano il normale flusso di esecuzione delle istruzioni

4 Definizioni di eccezione ed interrupt Esempi di tipologie di eccezioni Overflow aritmetici Esecuzione di istruzioni non definite Esecuzione di istruzioni privilegiate … … Fault di accesso in memoria System calls (meglio classificate come trap) Esempi di tipologie di interrupt Segnalazioni da parte di dispositivi di I/O Approfondimenti nei corsi sui Sistemi Operativi

5 Perché introdurre interrupt Le operazioni di I/O sono di gran lunga piú lente delle operazioni della CPU In un sistema senza interrupt la CPU si ritrova spesso: a fare polling delle periferiche a intervalli regolari per iniziare operazioni di I/O ad attendere il completamento di operazioni di I/O IDEA DI BASE : mettere la CPU in condizioni di svolgere lavoro utile durante le operazioni di I/O

6 Perché introdurre interrupt Il diagramma di stato che descrive il ciclo di istruzione

7 Perché introdurre interrupt Il diagramma di stato che descrive il ciclo di istruzione - come si modifica

8 Salvataggio dellindirizzo dellistruzione corrente e di tutti i registri necessari al ripristino CPU job j dispositivo type: X job j X_handler() Disabilitazione di interrupt successivi durante la gestione di un interrupt Scelta del segmento di codice (routine di gestione dellinterrupt) appropriato per la gestione di quel tipo di interrupt Memoria Cosa deve fare il sistema in caso di interrupt

9 CPU job j Memoria X_ handler() Cosa deve fare il sistema in caso di interrupt Salvataggio dellindirizzo dellistruzione corrente e di tutti i registri necessari al ripristino Disabilitazione di interrupt successivi durante la gestione di un interrupt Scelta del segmento di codice (routine di gestione dellinterrupt) appropriato per la gestione di quel tipo di interrupt dispositivo

10 Cosa deve fare il sistema in caso di interrupt … e quando linterrupt handler ha terminato… CPU job k X_handler() Memoria dispositivo

11 CPU job j Memoria dispositivo Durante lesecuzione dellinterrupt handler si è in kernel mode, per permettere al solo Sistema Operativo di manipolare le strutture dati utili allo scopo Cosa deve fare il sistema in caso di interrupt A LIVELLO LOGICO… X_ handler()

12 Un esempio : interrupt di disco La CPU mette in comunicazione memoria e controller del disco Il controller, quando ha finito il trasferimento dei dati, informa la CPU mediante un interrupt Può quindi evitare di attendere e dedicarsi ad altro Trasferimento di un blocco dalla memoria al disco

13 … ed un altro esempio : interrupt di stampante … elabora … stampa n righe … elabora … stampa n righe … elabora … Stampare senza interrupt : mandare una riga attendere il completamento mandare la riga successiva la stampante accetta solo una riga alla volta Stampare con interrupt : mandare una riga andare avanti alla prossima elaborazione quando arriva linterrupt mandare la riga successiva waitingelaborating

14 Comunicazione tra il processore ed il dispositivo di I/O POLLING (diverso dal polling a intervalli regolari!!!) la CPU riceve un interrupt anonimo interroga tutti i dispositivi per vedere chi deve eseguire unoperazione di I/O esegue la routine appropriata VECTORED INTERRUPT SYSTEM la CPU riceve un interrupt con un indirizzo mediante luso di un interrupt vector, manda in esecuzione la routine appropriata CAUSE REGISTER la CPU riceve un interrupt con identificatore del dispositivo (o di un gruppo di dispositivi), che va caricato nel cause register il controllo passa allunica routine di gestione dellinterrupt che determina ed esegue la subroutine appropriata Maggior dettaglio nella gestione degli interrupt multipli

15 Interrupt vector : mappa tipi di interrupt a indirizzi di routine di gestione interrupt

16 Comunicazione tra il processore ed il dispositivo di I/O ALTRI REGISTRI DI SUPPORTO Cause register – contiene il codice dellinterrupt generato (utilizzato anche per gestire le eccezioni) IPC – contiene il Program Counter memorizzato prima di passare il controllo alla gestione dellinterrupt Status register – per gestire i livelli di interrupt ed il mascheramento … che discuteremo in altra occasione LATENZA DI INTERRUPT : come velocizzare il salvataggio dei registri?

17 … E PER FISSARE I CONCETTI… Chiediamoci quali sono le principali differenze tra una normale chiamata a procedura e la gestione di un interrupt Per esempio, cè sempre identità tra loriginatore dellinterrupt e chi lo subisce?!

18 Studiare anche… Abilitazione/disabilitazione di interrupt Interrupt multipli e simultanei : gestione delle priorità


Scaricare ppt "Architettura degli elaboratori 24 novembre 2004 Lorganizzazione dellI/O: dispositivi di accesso, gestione degli interrupt."

Presentazioni simili


Annunci Google