Interrupt

termine
Versione del 15 dic 2006 alle 13:44 di Massimiliano Lincetto (discussione | contributi) (Annullate le modifiche di 87.7.81.167 (discussione), riportata alla versione precedente di Thijs!bot)

In informatica, un interrupt è un tipo particolare di istruzione della CPU che consente l'interruzione di un processo qualora si verifichino determinate condizioni oppure il processo in esecuzione debba effettuare una richiesta al sistema operativo. Gli interrupt vengono utilizzati principalmente quando

  • un processo tenta di eseguire un'istruzione non valida, come una divisione per zero. In questi casi non è possibile proseguire con l'esecuzione del processo e l'interrupt consente di informare il sistema operativo di quanto avvenuto in modo da permettere la corretta gestione del problema.
  • un processo richiede un'operazione di I/O al sistema operativo. Le CPU moderne prevedono la possibilità di utilizzare diversi livelli di privilegi che i processi in esecuzione hanno, per ragioni di sicurezza. Solo il sistema operativo può effettuare alcune operazioni, accedere ad alcune aree di memoria, gestire le periferiche.
  • un dispositivo di I/O informa la CPU che è disponibile a ricevere o fornire dati. In questo caso viene avviata un'opportuna procedura del sistema operativo preposta ad occuparsi della relativa periferica. Questo tipo di interrupt necessita una gestione molto attenta da parte della CPU. Infatti è possibile che due dispositivi generino contemporaneamente un'interrupt, ed è necessario disporre di meccanismi che evitino conflitti e la perdita di informazioni, ad esempio decidendo quale interrupt ha maggiore priorità e deve essere eseguito per primo e ponendo in coda il secondo.
  • il tempo massimo a disposizione per tale processo è raggiunto e lo scheduler deve riassegnare la CPU ad un altro processo in coda.
  • viene effettuato il debugging di un'applicazione. Durante la fase di sviluppo di un programma è frequente la necessità di testare il funzionamento di quanto creato per scoprire e risolvere l'origine dei malfunzionamenti. Il debugging consente di seguire l'evoluzione del programma istruzione per istruzione, dando la possibilità di interrompere il processo in qualunque momento per verificare il valore di ogni parametro. Per effettuare questo è necessario che il codice sorgente sia compilato in maniera apposita, in questo caso se il programma viene eseguito sotto il controllo di un apposito programma, il debugger, ad ogni istruzione viene eseguito un interrupt che consente di verificare se in tale punto è richiesto l'interruzione del processo.

Voci correlate

Bibliografia

  • Architettura dei Sistemi di Elaborazione, volume 1 (F. Baiardi, A. Tomasi e Marco Vanneschi, 1988, editore Franco Angeli, ISBN 882042746X). Fondamenti, firmware, architetture parallele . [1]
  • Architettura dei Sistemi di Elaborazione, volume 2 (F. Baiardi, A. Tomasi, Marco Vanneschi, 1987, editore Franco Angeli, ISBN 882042746X) Sistemi operativi, multiprocessore e distribuiti. [2]