Cosa sono gli interrupt di sistema
Anche se alcuni computer, come quello che gestisce il forno a microonde, eseguono un compito alla volta, desktop, smartphone e mainframe hanno diversi processi simultanei. Il computer gestisce questo tramite gli interrupt di sistema, un meccanismo per cui un programma ottiene temporaneamente priorità sugli altri. La CPU permette vari tipi di interrupt basati su una gerarchia di task predeterminata.
Programmi multipli
Un PC, smartphone o server moderno tiene diversi programmi in memoria, anche se la CPU ne esegue solo una manciata alla volta; la maggior parte è inattiva. Programmi includono applicazioni (word processor, foglio elettronico, email), funzioni utility (monitor memoria, spooler stampa), e programmi che gestiscono scheda di rete, tastiera, altoparlanti. Quando un programma importante richiede servizio, invia un interrupt alla CPU, che interrompe altri lavori per gestire l'urgenza. La CPU serve l'interrupt solo se ha priorità sugli altri task.
Interrupt hardware
Hard disk, schede di rete, stampanti e altri dispositivi inviano interrupt hardware per attirare l'attenzione della CPU. Esempio: un programma richiede dati dall'hard disk; anche se il task richiede ~10 millisecondi, per la CPU è molto tempo, che usa per altro lavoro. Quando l'hard disk trova i dati, invia un interrupt hardware, dicendo alla CPU di fermarsi temporaneamente e consegnare i dati al programma richiedente.
Interrupt software
I programmi inviano interrupt software per gestire richieste speciali tramite il sistema operativo. Esempio: nel word processor vuoi incollare la data in un'intestazione. Il word processor invia un interrupt software richiedendo la data a Windows. Attende brevemente mentre Windows la recupera dal calendario di sistema. Quando pronta, Windows restituisce il controllo al word processor. Gli interrupt software hanno priorità relativamente bassa: se mentre prende la dati la CPU riceve una richiesta dall'hard disk, serve prima l'interrupt hardware, poi finisce di recuperare la data.
Trap della CPU
Il sistema operativo riserva interrupt di priorità altissima per emergenze. Esempio: i dati di un programma si corrompono causandone il crash. Il SO emette una CPU trap che ferma il programma e mostra un messaggio di avviso. In casi estremi, il SO stesso sviluppa un problema grave. Emette un'altra CPU trap che mostra un messaggio diagnostico e blocca ogni elaborazione.