Concetti Chiave

  • La gestione degli interrupt consente alla CPU di risparmiare tempo, interrompendo l'esecuzione del programma corrente per rispondere a segnali da periferiche.
  • Esistono due tipi di interrupt: hardware, causati da malfunzionamenti dei dispositivi, e software, legati a richieste di trasferimento dati o esecuzione di procedure del sistema operativo.
  • Le routine di risposta agli interrupt sono memorizzate su disco fisso e caricate in memoria RAM per essere eseguite quando necessario.
  • Gli interrupt possono essere interrotti da altri interrupt di livello superiore, permettendo una gestione prioritaria delle richieste della CPU.
  • La CPU salva lo stato del programma interrotto, gestisce l'interrupt corrente e poi ripristina il programma iniziale al termine della routine di risposta.

Che cos'è la gestione degli interrupt?

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.

Tipi di interrupt

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 da interrogazione

  1. Come funziona la gestione degli interrupt nella CPU?
  2. La CPU gestisce gli interrupt emessi dalle periferiche interrompendo l'esecuzione del programma corrente, salvando il suo stato, riconoscendo il codice di interrupt e attivando la routine di risposta appropriata. Alla fine, ripristina lo stato del programma interrotto.

  3. Quali sono i due tipi di interrupt e come si differenziano?
  4. Gli interrupt possono essere di tipo hardware, causati da malfunzionamenti dei dispositivi, o di tipo software, derivanti dalla necessità di trasferire dati in I/O o di eseguire procedure del sistema operativo.

  5. È possibile che un interrupt venga interrotto da un altro?
  6. Sì, gli interrupt possono essere interrotti da altri interrupt con un codice di livello superiore. La CPU confronta i codici e, se il secondo è di livello maggiore, interrompe il primo, serve il secondo e poi ripristina il primo per tornare al programma iniziale.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community