Ombrescure2
Ominide
1 min. di lettura
Vota 4 / 5

Concetti Chiave

  • Gli interrupt permettono alla CPU di gestire le periferiche interrompendo l'esecuzione del programma per eseguire routine specifiche.
  • Esistono due tipi di interrupt: hardware, legati a malfunzionamenti dei dispositivi, e software, derivanti da esigenze di I/O o richieste del sistema operativo.
  • Le routine di risposta agli interrupt sono caricate in memoria RAM da un indirizzo specifico, calcolato tramite un offset del codice di richiesta.
  • La CPU può gestire interrupt nidificati, interrompendo un interrupt in corso se arriva un altro di priorità superiore.
  • Il processo di gestione degli interrupt include il salvataggio dello stato del programma corrente, l'esecuzione della routine richiesta e il successivo ripristino dello stato originale.

Per evitare che la CPU sprechi questo tempo e prevede che quando una periferica deve entrare in azione, emetta un segnale di interrupt verso la CPU che viene testato alla fine di ogni fase di esecuzione. Quando la CPU riconosce che il segnale è attivo, interrompe l'esecuzione del programma in corso, salva il suo stato nello stack, riconosce il codice di interrupt che vine inviato sul bus dati, attiva la routine di interrupt relativa al tipo di richiesta. Alla fine ripristina lo stato del programma interrotto. Possono essere di 2 tipi: hardware se dipendono dal mal funzionamento dei dispositivi. Software sono quelle che derivano dalla necessità di trasferire dati in I/O o da richieste di eseguire procedure di un SO. Le procedure di risposte sono presenti su disco fisso, ma vengono caricate a partire da un indirizzo particolare della memoria RAM e quindi una procedura di risposta viene calcolata partendo dall'indirizzo iniziale e sommando un offset relativo al suo codice di richiesta. Gli interrupt possono essere a loro volta interrompibili da interrupt con un codice maggiore di quello in esecuzione. Per ottenere questo risultato la CPU confronta i due codici e se il secondo che è arrivato e di livello superiore viene interrotto il primo interrupt, viene servito il secondo, viene ripristinato il primo e si ritorno al programma iniziale.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community