La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.

Presentazioni simili


Presentazione sul tema: "Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu."— Transcript della presentazione:

1 Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.

2 Il sistema operativo deve: 1.Sospendere il programma che la CPU stava eseguendo. 2.Attivare la routine di gestione della specifica situazione occorsa. 3.Riprendere il programma da dove era stato interrotto t1 t2 tempo programma programma routine

3 Un segnale di interrupt può essere: Un segnale hardware (elettrico) inviato da uno dei vari dispositivi alla CPU Un messaggio software inviato da un processo che vuole effettuare una operazione di i/o (la interrupt software è detta SVC (supervisor call).

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

5 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 end fine Fetch Decode Execute

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

7 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, eventuali errori, overflow…ecc. Programm counter: indirizzo della prossima istruzione da eseguire Lunghezza: lunghezza istruzione eseguita Stato del programma Programm counter Lunghezza

8 Registro di stato Per eseguire l’interruzione il SO deve: 1.Aggiornare e salvare il registro di stato inserendo l’informazione «programma interrotto», e l’indirizzo della prossima istruzione da eseguire 2.Eseguire la routine di gestione delle interruzioni 3.Al termine ritornare all’esecuzione del programma sospeso.

9 Registro di stato Quando avviene l’interruzione il registro di stato del programma interrotto viene salvato in Memoria Centrale Dalla Memoria Centrale viene prelevato 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»

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

11 5 Tipi di interruzioni 1.Hardware interrupt: causata da malfunzionamento o guasto hw 2.Supervisor call interrupt: richiesta di i/o 3.Programm interrupt : istruzione errata, overflow, violatione di arre di memoria protette. 4.External interrupt: fine time slice, oppure CTRL/ALT/CANC 5.i/o interrupt: errore di comando, canale non connesso, dispositivo offline.

12 Interrupt multipli Domanda: cosa succede se, mentre la cpu sta eseguendo una routine di interrupt, gli viene chiesta un’altra interruzione? Si usano 2 tecniche: Interruzioni vettorizzate: Ciclo di polling:

13 Interruzioni vettorizzate 1.si associa una priorità ad ogni interrupt 2.se la richiesta ha priorità più alta, viene servita la nuova e accantonata quella in esecuzione. 3.Se il nuovo interrupt ha priorità inferiore allora viene accantonato momentaneamente e resterà «pendente».

14 Interruzioni vettorizzate 1.Il registro di stato del programma è un po’ diverso 2.La maschera degli interrupt è una sequenza di 0 ed 1 che indicano quali interruzioni sono abilitate. 3.0=disabilitato 1=abilitato. Maschera interrupt 00110110 Stato del programma Programm counter Lunghezza

15 Ciclo di polling Se 2 o più periferiche fanno richiesta di interruzione ogni richiesta viene memorizzata. Ogni periferica possiede un FLAG (on/OFF) Se il FLAG è abilitato vuol dire che la periferica ha richiesto una interruzione. La cpu quando riceve una richiesta di interruzione scandisce i FLAG.

16 Ciclo di polling 0 1 1 0 La scansione ciclica è detto «ciclo di polling». Questa operazione è detta «attesa attiva».


Scaricare ppt "Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu."

Presentazioni simili


Annunci Google