1. Il Ruolo Fondamentale delle Interruzioni
Nei sistemi di calcolo moderni, il processore (CPU) esegue istruzioni a velocità elevatissime rispetto ai dispositivi periferici (come tastiere, dischi rigidi o schede di rete). Per evitare che la CPU sprechi cicli preziosi in attesa attiva (polling) di un evento esterno, si adotta il meccanismo delle interruzioni (interrupt).
Un'interruzione è un segnale asincrono inviato alla CPU dall'hardware (o un evento sincrono generato da un'eccezione software) che richiede lo spostamento immediato dell'attenzione verso una routine di gestione specifica.
2. Tipologie di Interruzioni
- Interruzioni Hardware (Asincrone): Generate dai dispositivi periferici tramite linee fisiche dedicate (IRQ - Interrupt Request) per segnalare eventi come la pressione di un tasto, il completamento di una lettura da disco o un pacchetto di rete ricevuto.
- Eccezioni / Trap (Sincrone): Generate internamente dalla CPU durante l'esecuzione di un'istruzione a causa di anomalie (es. divisione per zero, accesso a un indirizzo di memoria non valido - Page Fault) o chiamate di sistema (System Call).
3. Il Flusso di Gestione (ISR e Context Switch)
Quando si verifica un'interruzione, il sistema operativo segue una procedura rigorosa per preservare lo stato del sistema:
- Salvataggio del Contesto: La CPU salva i registri correnti e il Program Counter (PC) all'interno del PCB (Process Control Block) del processo in esecuzione.
- Identificazione della Sorgente: Tramite il vettore delle interruzioni, la CPU individua la corretta ISR (Interrupt Service Routine) associata all'evento.
- Esecuzione della ISR: Viene eseguito il codice specifico per gestire la periferica o l'eccezione.
- Ripristino del Contesto: Vengono ricaricati i registri salvati in precedenza, permettendo al processo interrotto di riprendere l'esecuzione esattamente dal punto in cui era stato sospeso.
Il tempo impiegato per passare dal processo in esecuzione alla ISR e viceversa prende il nome di Interrupt Latency. Ridurre al minimo questo overhead è cruciale nei sistemi operativi Real-Time (RTOS).
4. Simulatore Interattivo: Ciclo di Vita di un'Interruzione
Seleziona un tipo di interruzione per simulare la sequenza operativa eseguita dalla CPU e dal sistema operativo.