• Aucun résultat trouvé

Chapitre 11 Interruptions et appels systèmes

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre 11 Interruptions et appels systèmes"

Copied!
21
0
0

Texte intégral

(1)

Chapitre 11

Interruptions et appels systèmes

Jean Privat

Université du Québec à Montréal

INF2170 — Organisation des ordinateurs et assembleur Automne 2013

(2)

Plan

1 Interruptions

2 Appel système

3 Système Pep/8

Jean Privat (UQAM) 11 — Interruptions INF2170 — Automne 2013 2 / 21

(3)

Fonctionnement d’un ordinateur

Complexe

Plusieurs tâches asynchrones indépendantes Exemple : les périphériques

(4)

Plan

1 Interruptions

2 Appel système

3 Système Pep/8

Jean Privat (UQAM) 11 — Interruptions INF2170 — Automne 2013 4 / 21

(5)

Interruptions

Idée

L’UCT travaille (4 étapes)

Une autre composante peut demander à

l’interrompre pour faire temporairement autre chose IRQ : Interrupt Request

Pourquoi interrompre

Périphérique : un paquet réseau arrive, la souris a bougé

Gestion erreur : erreur arithmétique, instruction invalide

(6)

Détection d’interruption

Registre d’interruption

Chaque catégorie d’interruption est connu

On associe un bit à chacune : cela forme le registre d’interruption

On permet à chacun de modifier seulement son bit

Fonctionnement

Après l’exécution d’une instruction l’UCT vérifie le registre d’interruption

Si pas d’interruption, alors l’UCT charge l’instruction suivant (comme déjà vu)

Si il y a interruption, alors l’UCT va exécuter l’interruption

Jean Privat (UQAM) 11 — Interruptions INF2170 — Automne 2013 6 / 21

(7)

Exemple de catégories d’interruption

IBM PC/XT (historique, 1983) IRQ 0 : Horloge système IRQ 1 : Clavier

IRQ 2 : Second contrôleur d’interruption (PC/AT) IRQ 3 : Port série (COM2/COM4)

IRQ 4 : Port série (COM1/COM3) IRQ 5 : Disque dur

IRQ 6 : Lecteur de disquettes IRQ 7 : Port parallèle (LPT1)

(8)

Masque et choix d’interruption

Masque d’interruption

L’UCT peut ignorer certaines interruptions

Un registre supplémentaire précise les interruptions désactivés (masque de bits)

Les programmes initialisent ce registre pour armer et désarmer les interruptions

Choix d’interruption

Plusieurs interruptions peuvent être signalées en même temps

Les interruptions sont prioritisées

Exécution des interruptions dans l’ordre de priorité

Jean Privat (UQAM) 11 — Interruptions INF2170 — Automne 2013 8 / 21

(9)

Exécution d’une interruption

Vecteur d’interruption

Un vecteur en mémoire contient autant de case que de catégorie d’interruption

On place dans les cases les adresses de

sous-programmes devant traiter l’interruption

Exécution d’une interruption

Lorsqu’une interruption est détectée, l’UCT change son compteur ordinal avec une valeur dans le vecteur d’interruption

Vu qu’on doit revenir, l’UCT sauvegarde le compteur ordinal quelque part avant (comme pour un CALL)

(10)

Étapes d’exécution d’un interruption

Le travail de l’UCT

Termine l’exécution d’une instruction Détermine que l’interruption n est levée

Sauvegarde le CO (et parfois d’autres registres) en mémoire

Charge la case n du vecteur d’interruption dans CO Exécute le sous-programme du (cycles normaux d’exécution de l’UCT)

Termine l’exécution de sous-programme (instruction spéciale)

Restaure le CO (et autre registres) Exécute l’instruction suivante

Jean Privat (UQAM) 11 — Interruptions INF2170 — Automne 2013 10 / 21

(11)

Détails techniques

Où trouver le vecteur d’interruption ?

Adresse fixe en mémoire dictée par le fabriquant de l’UCT

Un registre contient l’adresse du vecteur

Où sauvegarder le CO ? Adresse fixe mémoire Dans la pile

Dans une autre pile (pile système)

présence éventuelle d’un deuxième pointeur de pile

(12)

Variations

Masquage automatique

Lors du traitement d’une interruption, les interruptions moins prioritaires sont

automatiquement temporairement désactivées

Cela permet à un évènement urgent d’interrompre le traitement d’un évènement moins urgent

Contrôleur d’interruption

Un dispositif matériel peut être dédié à la gestion des files de priorités de requêtes d’interruptions

Le PC/AT (1984) avait deux contrôleurs en cascade APIC (Advanced Programmable Interrupt

Controllers) dans les PC modernes

Jean Privat (UQAM) 11 — Interruptions INF2170 — Automne 2013 12 / 21

(13)

Plan

1 Interruptions

2 Appel système

3 Système Pep/8

(14)

Système d’exploitation (SE)

Couche logicielle

À qui les programmes demandent des services Qui s’occupe de la gestion des programmes Qui s’occupe de la gestion du matériel

Appel système

La demande d’un service SE par le programme Par extension, l’implantation du service dans le SE

Jean Privat (UQAM) 11 — Interruptions INF2170 — Automne 2013 14 / 21

(15)

Appel système

Idée

Exécuter un sous-programme du SE

Problème

On ne connaît pas (ne veut pas connaître) l’adresse du sous-programme dans le SE

On veut donner plus du pouvoir au SE

Solution

Le SE numérote ses services

L’UCT a une instruction : « exécute le service numéro x »

Analogie : c’est une interruption manuelle

(16)

Interruption manuelle

Mise en place

Un vecteur contenant autant de cases que de services Le système remplit la case i avec le sous-programme implémentant le service numéro i

Mise en œuvre

Instruction spéciale « TRAP n » rencontrée CO (et autres registres) sauvegardé

Case n du vecteur d’appel système changée dans CO On exécute l’appel système (cycles normaux)

Instruction spéciale de restauration du CO

Jean Privat (UQAM) 11 — Interruptions INF2170 — Automne 2013 16 / 21

(17)

Plan

1 Interruptions

2 Appel système

3 Système Pep/8

(18)

Le système de Pep/8

Système simplifié

Pas d’interruption matérielle

Quelques appels systèmes de base : DECI, DECO et STRO

Appels systèmes (et tout le SE) redéfinissables

Deux modes de démarrage : chargement et exécution Deux piles : utilisateur et système

Jean Privat (UQAM) 11 — Interruptions INF2170 — Automne 2013 18 / 21

(19)

Vecteur spécial Pep/8

4 adresses

FFF8 : adresse de la pile utilisateur FFFA : adresse du la pile système FFFC : adresse du chargeur

FFFE : adresse de la gérante d’appel système (pour TRAP)

Initialisation

En même temps que le système d’exploitation

(20)

Démarrages de Pep/8

Chargement

PP initialisé à mem[FFFA]

CO initialisé à mem[FFFC]

Lancement de l’UCT (jusqu’au STOP)

Exécution

PP initialisé à mem[FFF8]

CO initialisé à 0

Lancement de l’UCT (jusqu’au STOP)

Jean Privat (UQAM) 11 — Interruptions INF2170 — Automne 2013 20 / 21

(21)

Appel système en Pep/8

Instructions spéciales TRAPs

De 00100100 (NOP0) à 01000111 (STRO,sxf)

Fonctionnement

Empile (sur la pile système) :

Le registre d’instruction (1o) ; PP (2o) ; CO (2o) ; X (2o) ; A (2o) ; NZVC (1 octet)

PP réinitialisé à sommet la pile système CO réinitialisé à mem[FFFE]

Instruction RETTR : Retour de TRAP

Restaure les registres à partir de la pile système

Références

Documents relatifs

Ces étoiles sont trop froides pour émettre dans le domaine visible ; leur rayonnement thermique se produit dans l’infrarouge, elles sont visibles sur la photographie