Interruption matérielle vs Exception processeur

Interruption matérielle

Origine : provoquée par un périphérique externe au cœur d'exécution (clavier, disque, carte réseau, timer, autre cœur via IPI).
Source : signal envoyé via un contrôleur d'interruption (PIC/APIC sous x86, GIC sous ARM), ou message MSI/MSI-X sur PCIe.
Cause typique :
événement asynchrone : frappe clavier, fin d'une opération d'E/S, expiration du timer ;
demande de prise en charge par le processeur.
Mécanisme :
le processeur termine l'instruction en cours, sauvegarde un contexte minimal (compteur de programme, registre d'état), puis saute vers une routine de service d'interruption (ISR) ;
l'ISR est localisée via un vecteur issu de la table des interruptions (IDT sous x86).
Synchronisation : asynchrone — sans relation avec l'instruction en cours.
Masquage : masquable par le bit d'autorisation (IF sous x86, PSTATE.I sous ARM), sauf la NMI (Non Maskable Interrupt) qui est non masquable.
Exemples : IRQ timer (ordonnancement préemptif), IRQ réseau (paquet reçu), IRQ clavier.

Exception processeur

Origine : générée en interne par le processeur pendant l'exécution d'une instruction.
Source : détectée par le processeur lui-même (unité de calcul, MMU, décodeur) ; le système d'exploitation ne fait que traiter l'exception, il ne la détecte pas.
Cause typique :
condition anormale : division par zéro, accès mémoire invalide, défaut de page ;
instruction illégale ou privilège insuffisant ;
trap volontaire : point d'arrêt, instruction d'appel système (syscall, int 0x80, svc).
Mécanisme : sauvegarde du contexte, puis branchement vers un gestionnaire d'exception dont le vecteur est fixé par l'architecture.
Classification x86 :
Faults : reprise possible, l'instruction fautive est rejouée après correction (ex. : PF défaut de page, vecteur 14 ; GP violation de protection générale, vecteur 13) ;
Traps : reprise après l'instruction (ex. : BP point d'arrêt, vecteur 3 ; appel système) ;
Aborts : état incohérent, non reprenable (ex. : DF double fault, vecteur 8).
Synchronisation : synchrone — reproductible, liée à une instruction précise.
Masquage : non masquable par le bit d'autorisation des interruptions (une exception ne peut être « ignorée »).
Remarque : « segmentation fault » n'est pas une exception x86 mais le signal SIGSEGV délivré par le noyau Unix à la suite d'un PF ou GP non résoluble.

Tableau comparatif

Critère Interruption matérielle Exception processeur

Origine Périphérique externe Processeur (interne)
Synchronisation Asynchrone Synchrone
Reproductibilité Non déterministe Déterministe
Cause Événement externe (E/S, timer) Instruction fautive ou trap volontaire
Gestion ISR (Interrupt Service Routine) Gestionnaire d'exception
Masquage Oui (sauf NMI) Non
Vecteur Assigné dynamiquement par l'OS/APIC (ex. : IRQ1 clavier) Fixé par l'architecture (0–31 sous x86)
Lien avec l'instruction Aucun L'adresse fautive est fournie (ex. : CR2 pour PF)

Nuances
Mécanisme commun : sous x86, interruptions et exceptions partagent la même IDT et le même protocole de commutation de contexte ; la distinction est sémantique (origine et synchronisme), pas structurelle.
Interruptions logicielles : int n / syscall sont classées comme traps — mécanisme d'exception utilisé volontairement comme point d'entrée contrôlé dans le noyau.
Coût : il n'y a pas de hiérarchie générale de coût entre les deux. Le coût dépend du traitement : un défaut de page mineur est très rapide, un défaut majeur (accès disque) coûte des millions de cycles, tout comme une IRQ de disque.

Références
Intel® 64 and IA-32 Architectures Software Developer's Manual, Vol. 3A, Chapitre 6 (« Interrupt and Exception Handling »).
Tanenbaum, Modern Operating Systems, 4ᵉ éd., §1.4 et §5.1.