Interrupt: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Botcrux (discussione | contributi)
m Bot: fix citazione web (v. discussione)
Riga 10:
Gli interrupt vengono utilizzati principalmente quando:
 
*un processo tenta di eseguire un'[[istruzione (informatica)|istruzione]] non valida, come una divisione per zero. In questi casi non è possibile proseguire con l'esecuzione del processo, perché genererebbe parecchi errori, corromperebbe i dati nei [[registro (informatica)|registri]] della CPU e/o porterebbe a un [[Crash (informatica)|crash]] il sistema stesso. Quindi 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, per ragioni di [[sicurezza informatica|sicurezza]],che i processi in esecuzione possono ricevere. Solo il sistema operativo può effettuare alcune operazioni come accedere ad alcune aree di [[memoria (informatica)|memoria]] protette o gestire le [[periferica|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, infatti è possibile che due dispositivi abbiano generato un interrupt durante l'esecuzione di un processo, 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, delegando il compito al [[Programmable Interrupt Controller]].