La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt.

Presentazioni simili


Presentazione sul tema: "Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt."— Transcript della presentazione:

1 Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt

2 Segnali di interrupt Gli interrupt sono segnali che vengono inviati alla cpu per comunicare eventi ben precisi A seconda dell’interrupt la cpu deve: Sospendere l’esecuzione del programma Attivare una routine specifica Un interrupt è un segnale hardware (elettrico) inviato dai vari dispositivi alla cpu Quando un processo vuole una operazione di i/o genera invece una interrupt software detta SVC (supervisor call)

3 Interrupt handler È quel «reparto» del sistema operativo che gestisce le interruzioni Possiede una serie di sottoprocedure che servono a: Accantonare il programma interrotto Accogliere il nuovo programma Esistono S.O. con più «interrupt handler», ciascuno per ogni dispositivo hardware che chiede l’interruzione ma nella maggior parte dei S.O. IH è unico.

4 Algoritmo della cpu La cpu esegue questo algoritmo ciclico in cui l’istruzione viene prelevata (fetch) interpretata (decode) ed eseguita (execute) in ciclo: Begin repeat fetch decode execute until fine end begin Fetch Decode Execute fine end

5 Algoritmo della cpu con gestione interruzioni
Begin repeat if not interrupt then begin fetch decode execute end else routine interrupt until fine begin V Not interrupt F Fetch Decode Execute Routine interrupt fine end

6 Registro di stato Ogni programma in esecuzione viene dotato di un REGISTRO DI STATO di questo tipo: Stato: informazioni sullo stato di esecuzione del programma Programm counter: indirizzo della prossima istruzione da eseguire Lunghezza: lunghezza istruzione eseguita Stato del programma Programm counter lunghezza

7 Registro di stato Per eseguire l’interruzione il SO deve:
Aggiornare e salvare il registro di stato inserendo l’informazione «programma interrotto», indirizzo della prossima istruzione da eseguire Eseguire la routine di gestione delle interruzioni Al termine ritornare all’esecuzione del programma sospeso Quando avviene l’interruzione il registro di stato del programma interrotto viene salvato In memoria centrale viene portato il registro di stato del programma da eseguire. Quando finisce la procedura subentrata, viene salvato il suo registro di stato e riportato in memoria il registro del programma «sospeso»

8 Switching tra 2 registri di stato
Fase 1: salvataggio in memoria centrale del registro di stato 1 del programma 1 sospeso Fase 2: prelievo di un altro registro di stato 2 del programma 2 da eseguire Fase 3: ripristino del registro di stato 1 per continuare l’esecuzione del programma 1.

9 Tipi di interruzioni Ce ne sono 5 principali:
Hardware interrupt: causata da malfunzionamento o guasto Supervisor call interrupt: richiesta di i/o Programm interrupt : istruzione errata, overflow, memory violation External interrupt: fine time slice, CTRL/ALT/CANC i/o interrupt: errore di comando, canale non connesso, dispositivo offline.

10 Interrupt multipli Cosa succede se, mentre la cpu sta eseguendo una routine di interrupt, gli viene chiesta un’altra interruzione? Si usano 2 tecniche Interruzioni vettorizzate: si associa una priorità ad ogni interrupt, se la richiesta ha priorità più alta, viene servita la nuova e accantonata quella in esecuzione. Ciclo di polling: se 2 o più periferiche fanno richiesta di interruzione ogni richiesta viene memorizzata in un flag associato alla periferica. La cpu fa la scansione ciclica di tutti i flag di ogni periferica e sceglie quella da servire.


Scaricare ppt "Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt."

Presentazioni simili


Annunci Google