Cours Système LI324 olivier.marin@lip6.fr Les Interruptions Cours Système LI324 olivier.marin@lip6.fr
Définition Une interruption est un arrêt temporaire de l'exécution normale d'un processus afin de traiter un événement particulier. On appelle routine d'interruption le traitement associé à un événement.
Objectifs Eviter les attentes actives (polling) Protéger le système Notification d'événement eg. périphérique prêt, fin d'E/S, erreur, ... Notion liée : DMA (Direct Memory Access) Gestion d'E/S par contrôleur ie. sans intervention du processeur Protéger le système 2 modes d'exécution : utilisateur / système Appel système = interruption traitée en mode système Gérer la multi-programmation Concurrence pour l'accès au processeur => Commutation de contexte Interruption périodique déclenchée par horloge
Classification par cause Interruption liée à un événement interne propre à l'exécution du processus eg. appel système, erreur d'exécution Interruption liée à un événement externe indépendante du processus eg. fin d'E/S, top d'horloge, kill
Classification par type Interruption d'entrée/sortie (fin, prêt, erreur) Interruption externe (horloge, clavier, …) Appel système Déroutement (traitement d'erreur, de signal) Erreur matérielle
Classification par niveau Priorité Interruption Horloge 1 Disque 2 Console 3 Autre périphérique 4 Appel Système 5 Autres
Non Traitement d'interruption Masquage d'interruption Retardement de la prise en compte Notion de hiérarchie des priorités Masquage des interruptions de prio. inférieure Mémorisation des interruptions masquées Pile d'interruptions globale (SysV) ou par processus (BSD) Désarmement d'interruption Annulation de la prise en compte
Traitement d'interruption Interruption du processus courant Sauvegarde de la valeur du PC PC = Program Counter (compteur ordinal) Registre contenant l'adresse mémoire de la prochaine instruction à exécuter Exécution de la routine associée Un vecteur indique pour chaque interruption l'adresse de sa routine associée
Appel Système
Mécanisme de commutation Fondement de la multi-programmation Destitution du processus élu au profit d'un autre Suspension du processus courant (P) Sauvegarde du contexte de P Traitements système (eg.update stats & horloge) Election d'un processus Q Restauration du contexte de Q
Mécanisme de commutation Process Control Block (PCB) Structure de données associée à chaque processus Décrit le contexte d'exécution du processus Typiquement, elle contient : PID (identifiant du processus) Valeurs de registres, dont le Program Status Word état (actif ou en attente) mode (utilisateur ou système) masque des interruptions PC (dans certains systèmes) Infos sur l'ordonnancement (eg. priorité) Infos sur les E/S (eg. fichiers ouverts) Statistiques (temps CPU, date d'insertion, ...)
Mécanisme de commutation