Interrupt: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 138.41.2.3 (discussione), riportata alla versione precedente di Bultro Etichetta: Rollback |
+ spazio |
||
Riga 11:
*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]].
*il tempo massimo a disposizione per tale processo è raggiunto e lo [[scheduler]] deve riassegnare la CPU ad un altro processo in coda.
|