Station MinuitPortail personnel de révision

IFT-2001 — Systèmes d’exploitationAutomne 2026

Semaine 3 — Processus et appels système

8. Interruptions et sauvegarde du contexte

LECTURE 11 / 235 repèresSynthèse avec omissions acceptées

8. Interruptions et sauvegarde du contexte

8.1 Pourquoi interrompre le flot courant?

Le CPU suit normalement le cycle chercher–décoder–exécuter. Sans événement externe, il continuerait le programme courant. Une interruption suspend ce flot et transfère l'exécution vers une routine connue du noyau.

Sources possibles :

  • périphérique matériel;
  • minuterie;
  • exception processeur;
  • mécanisme logiciel employé pour demander un service protégé.

Le numéro d'interruption sélectionne une entrée d'une table. Dans le modèle x86 étudié, l'IDT contient jusqu'à 256 descripteurs donnant l'adresse du gestionnaire, son type, sa présence et ses règles de protection.

8.2 Exemple du registre corrompu

Pour calculer A = A + 4, le programme peut charger A dans EAX, additionner 4, puis réécrire EAX en mémoire. Si A vaut 3, le résultat intermédiaire 7 existe momentanément seulement dans EAX.

Les schémas suivent aussi EIP, le compteur ordinal, et ESP, le pointeur de pile. Ces registres permettent respectivement de retrouver la prochaine instruction utilisateur et le cadre de pile approprié après l'interruption.

Une interruption survient avant l'écriture. La routine noyau utilise EAX et y place 666. Si le système restaure l'adresse de retour et la pile, mais pas la valeur originale du registre, le programme reprend et écrit 666 dans A.

La leçon est générale : le contexte doit inclure tout état que le gestionnaire risque de modifier. Sauvegarder seulement le compteur ordinal ne suffit pas.

8.3 Séquence d'une interruption

  1. un événement produit un numéro d'interruption;
  2. le processeur sauvegarde un état minimal;
  3. il consulte la table protégée;
  4. il valide les privilèges et localise le gestionnaire;
  5. il passe au contexte noyau;
  6. le noyau sauvegarde les registres nécessaires et traite l'événement;
  7. l'ordonnanceur peut choisir le même processus ou un autre;
  8. le contexte choisi est restauré;
  9. un retour d'interruption reprend l'exécution utilisateur.

Une interruption n'implique pas automatiquement un changement de processus. Le noyau peut traiter l'événement et restaurer le même processus. Il y a néanmoins entrée noyau, sauvegarde, traitement et restauration.

8.4 Privilèges

Le matériel empêche un programme utilisateur de sauter librement vers du code noyau. Les descripteurs de portes et niveaux de privilège déterminent si une transition est permise et à quel niveau la routine s'exécute.

Les diapositives et l'audio emploient des sigles x86 comme DPL et RPL dans un modèle simplifié. Les formulations exactes du transcript sont parfois déformées. Le principe fiable à retenir est : métadonnées protégées, validation matérielle, changement de pile ou de contexte si nécessaire, exécution privilégiée puis retour contrôlé.

Retour au sommaire de l’unitéHaut de page
Récupérer manuellement les données locales

Copier séparément les données ci-dessous dans des fichiers texte avant de fermer la page ou de modifier le stockage. Une valeur illisible ou incompatible reste en place. Aucun effacement ni rétablissement écrasant n’est effectué automatiquement. L’export/import JSON est disponible sur la page Progression du cours. Cette récupération séparée reste utile pour une valeur brute ou un conflit.

Clé de ce cours : . Format v1 porté par cette clé; dates UTC et identifiants durables.

Si l’accès est refusé, la valeur persistée peut rester inaccessible. Réautoriser le stockage dans le navigateur puis rouvrir ce cours permet de la relire. Une réinitialisation exige une décision explicite après récupération; aucune commande de suppression n’est proposée ici. Les données restent sur cette origine et cet appareil, sans transfert automatique.