Interrupt: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
nuovo
 
Alfio (discussione | contributi)
mNessun oggetto della modifica
Riga 1:
In [[informatica]], un '''Interruptinterrupt''' è un tipo particolare di istruzione della [[CPU]] che consente l'interruzione di un processo qualora si verifichino determinate condizioni oppure il processo in esecurione debba effettuare una richiesta al [[Sistemasistema operativo]]. Gli interrupt vengornovengono utilizzati principalmente quando
 
*un processo tenta di eseguire un'istruzione non valida, come una divisione per 0zero. In questi casi non è possibile proseguire con l'esecuzione del processo e l'interrupt consente di informare il [[Sistemasistema operativo]] di quanto avvenuto in modo da permettere la corretta gestione del problema.
 
*un processo richiede un'operazione di I/O al [[Sistemasistema 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 [[Sistemasistema 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 [[Sistemasistema 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'interruzzione del processo.