TD 2
TD 2
TD 2
TD Systèmes d’interruption
Exercice 1:
Soit une machine composée de 2 périphériques d’entrée/sortie, 1 CPU et de
la mémoire. Elle dotée d’un timer qui se déclenche à chaque 1 milliseconde.
La machine comporte un niveau d’interruption pour chaque périphérique et un
niveau d’interruption pour le timer et un autre pour l’appel au
superviseur.
On désire programmer un moniteur d’enchaînement où le processus actif garde
le processeur central jusqu’à sa terminaison ou jusqu’à la demande d’une
ressource. Par ailleurs, tout processus ne doit pas avoir une durée de vie
(de sa création à sa terminaison) supérieure à 7 minutes.
a- quelles sont les causes d’appel au superviseur ?
b- écrire le code de l’appel au superviseur.
c- à quel moment un processus peut être débloqué ? écrire le code
associé.
d- comment peut-on implanter le délai de garde (durée de vie)? écrire le
code associé.
e- Ecrire le moniteur d’enchaînement.
On utilisera les primitives suivantes :
Activer(n) : activer le processus dont le pid (process identifier) est n
Getpid(p) : retourne un entier qui représente le pid du processus décrit
par le PCB p
Create(p) : crée un nouveau processus et retourne son PCB dans p
Bloquer(n) : bloque le processus dont le pid est n
Réveiller(n) : débloque le processus dont le pis est n
Prêt(i) : rend un booléen (vrai : périphérique prêt, faux sinon) selon
l’état du périphérique i
Lancer(i) : lance une opération d’entrée/sortie sur le périphérique i
Sauve(n) : sauvegarde le contexte du processus dont le pid est n
Restaure(n) : restaure le contexte du processus dont le pid est n
Terminate(n) : met fin au processus dont le pid est n
Exercice 2:
Une machine X reconnaît 6 causes d'interruption, qui sont:
EX: action faite par un organe directement connecté
A : fin d'opération sur le canal d'E/S
B : fin d'opération sur le canal d'E/S
C : fin d'opération sur le canal d'E/S
D : fin d'opération sur le canal d'E/S
H : déclenchement de l'horloge
Pour que l'un de ces événements conduise à une interruption, deux
conditions sont nécessaires:
-le système d'interruption doit être actif
-la condition doit être armée, ce qui est réalisé en plaçant
un "1" dans la position correspondante d'un registre masque appelé RM.
Celui-ci comporte 6 bits qui correspondent de gauche à droite à EX, A, B,
C, D et H.
Exercice 3:
On s'intéresse à l'étude des interruptions et déroutements sur une machine
X. La machine comporte un seul niveau d'interruption (déclenché par le
passage à 0 de l'horloge), un seul déroutement et un seul appel au
superviseur. L'horloge proprement dite est un compteur dont le contenu est
décrémenté de 1 toutes les 5µs. Un appel au superviseur comporte plusieurs
paramètres dont le premier indique la cause de l'appel.
Le format du mot d'état du processeur est donné ci-après.
0 3 4 5 7 8 9 31
4 : mode (maître 1/ esclave 0)
8 : masque d'it (masqué 1/ démasqué 0)
9-31 : compteur ordinal
demande d'it de Ci autorisation/inhibition des its de Ci
Exercice 5:
Le contexte d'un programme s'exécutant sur le MC68000 est constitué de 16
registres généraux (R0 à R15), du compteur ordinal (PC) et du mot d'état du
processeur (PS) dont la structure est la suivante:
15 13 10 9 8 4 3 2 1 0
T S I1 I2 I3 X N Z V C
trap mode masque d’it code condition