Sistemi di INTERRUZIONI Sono sistemi che modificano il normale flusso di esecuzione delle delle istruzioni per gestire situazioni anomale o particolari : 4trasferimenti di dati tra dispositivi, 4errori durante la esecuzione delle istruzioni, 4condizioni anomale durante l'esecuzione delle istruzioni, ecc. CdL in Informatica - Università di Bari Architettura degli Elaboratori A.A. 2003-2004 Trasferimento dati tra dispositivi Il trasferimento dati può essere controllato da : Programma: il processore controlla periodicamente lo stato del dispositivo Interrupt: il dispositivo invia sul bus un segnale di Interrupt: interruzione per segnalare la sua disponibilità al trasferimento dati interrupt Il processore : interrompe il programma in esecuzione e disabilita altri interrupt esegue la procedura di up servizio associata all'interrupt ripristina la esecuzione del programma interrotto, riabilitando altri interrupt disp1 disp2 dispn polling Il processore attende che il dispositivo sia pronto (busy waiting) iterando una istruzione che esamina lo stato del dispositivo (flag di stato) CdL in Informatica - Università di Bari Architettura degli Elaboratori A.A. 2003-2004 Classificazione delle interruzioni aeccezioni ainternal interrupt ainterruzioni sincrone Sono interruzioni generate dalla stessa Unità Centrale durante l'esecuzione di una istruzione in maniera sincrona rispetto ai segnali di clock Errori o condizioni anomale durante l'esecuzione di istruzioni, richieste di cambiamento di stato del sistema ainterrupt aexternal interrupt ainterruzioni asincrone Sono interruzioni generate da eventi esterni su dispositivi che operano in parallelo ed indipendentemente dalla Unità Centrale. Condizioni anomale che alterano il normale funzionamento della CPU, evento legato a scadenze temporali, richieste di comunicazioni da altri processi CdL in Informatica - Università di Bari Architettura degli Elaboratori A.A. 2003-2004 processore Service routine FUNZIONI di un SISTEMA di INTERRUZIONI 1) Garantire che il verificarsi di una interruzione non provochi interferenze indesiderate sul programma che viene interrotto (commutazione del contesto - trasparency) 2) il sistema deve saper identificare l'interruzione al fine di selezionare ed attivare la routine di servizio ad essa associata (interrupt vector) 3) il sistema deve poter gestire gerarchie di priorità delle richieste di interruzione, per evitare i problemi che sorgono quando le richieste di interruzione generate da dispositivi diversi entrano in conflitto (multiple interrupt, daisy chain) CdL in Informatica - Università di Bari Architettura degli Elaboratori A.A. 2003-2004 Diagramma di stato per la gestione delle interruzioni interrupt Salva lo stato del processo nello stack Commutazione del contesto ed attivazione procedura di servizio start Interpreta una istruzione alla volta Sequenza normale di esecuzione delle istruzioni Ulteriore interrupt Fine di tutti gli interrupt Ripristina lo stato del processo (pop dallo s Continua »