Première session 2010 - Montefiore Institute ULg

publicité
Informatique — Ordinateurs et systèmes d’exploitation
Examen écrit du lundi 31 mai 2010
Livres fermés. Durée : 3 heures 1/2.
Veuillez répondre à chaque question sur une feuille séparée sur laquelle figurent
nom, prénom et section. Soyez bref et concis, mais précis.
Les étudiants inscrits en 1ère année de bachelier en sciences de l’ingénieur, orientation ingénieur civil ne doivent pas répondre à la question 5.
1. On demande de construire un circuit séquentiel possédant une entrée i et sept
sorties a, b, c, d, e, f, g connectées à un afficheur numérique à sept segments. Un
segment est allumé lorsque la sortie correspondante vaut 1.
Si t1 et t2 dénotent les instants de deux coups d’horloge successifs quelconques,
et si i1 et i2 sont respectivement les valeurs de l’entrée i aux temps t1 et t2 ,
l’afficheur doit indiquer au temps t2
– si i1 et i2 sont toutes deux égales à 0 ;
– si une seule valeur parmi i1 et i2 est égale à 1 ;
– si i1 et i2 sont toutes deux égales à 1.
a
f
b
g
e
c
d
A titre d’illustration, voici le comportement souhaité de l’afficheur pour des
valeurs particulières de l’entrée i (le temps évoluant de gauche à droite) :
i
Afficheur
0
0
1
0
1
1
0
0
0
1
1
0
2. (a) Calculez la somme 3 + (−17) à partir des représentations de ces nombres
i. par complément à un ;
ii. par complément à deux.
(b) Donnez un nombre n tel que, parmi les nombres n et n + 1, l’un est
représenté de façon exacte en IEEE754 simple précision, et l’autre non.
Justifiez votre réponse.
1
3. (a) Quelles sont les grandes différences entre un registre et une mémoire vive
(RAM), au niveau de leurs entrées et sorties, et de leurs performances ?
Dans quelles circonstances a-t-on recours à l’un de ces types de mémoire
plutôt qu’à l’autre ?
(b) Quelles sont les différentes unités du circuit de données d’un processeur ?
Pour chacune d’entre elles, précisez son rôle ainsi que la manière dont elle
est pilotée.
4. Écrivez un programme assembleur 80x86 calculant la différence entre la valeur
maximale et la valeur minimale d’une séquence de n nombres entiers signés
encodés dans des cellules consécutives du segment de données.
Initialement, le registre AX pointe vers la séquence de nombres, et CX contient
le nombre n, supposé non nul, de valeurs formant cette séquence. Chacun des
nombres de la séquence est encodé sur 16 bits.
A la fin de l’exécution du programme,
– Le registre DX doit contenir la différence entre la valeur maximale et la
valeur minimale des n nombres formant la séquence ;
– A l’exception des registres DX et FLAGS, tous les registres doivent avoir
retrouvé leur valeur initiale.
5. Les étudiants inscrits en 1ère année de bachelier en sciences de l’ingénieur, orientation
ingénieur civil ne doivent pas répondre à cette question.
Dans le noyau d’un système d’exploitation,
(a) Quels sont les différents niveaux de privilège associés au registre de privilège ?
(b) Pourquoi ces niveaux sont-ils nécessaires ?
(c) Quand et comment passe-t-on d’un niveau de privilège à l’autre ?
2
Annexe 1 : Modes d’adressage des instructions 80x86
Op.1
rα
mα
rα
pα
MOV
Op.2 Op.1
rα
rα
rα
rα
mα
pα
rα
mα
ADD,
Op.1
rα
mα
rα
pα
r16
m16
Op.2
pα
iα
iα
iα
XCHG
Op.1 Op.2
rα
rα
mα
rα
pα
rα
rα
mα
rα
pα
SUB, AND, OR, XOR, CMP
Op.2
Op.1 Op.2
rα
rα
pα
rα
rα
iα
mα
pα
iα
rα
mα
iα
i8
p16
i8
i8
PUSH
Op.1
r16
m16
i16
POP
Op.1
r16
m16
INC, DEC, MUL, NOT
Op.1
rα
mα
pα
JMP, LOOP, CALL
Op.1
i16
r16
m16
p16
r = registre, i = immédiat, m = direct, p = indirect ou indirect indexé, α = 8 ou
16.
Annexe 2 : Instructions de saut conditionnel
Instr.
JE
JNE
JG
JGE
JL
JLE
JA
JAE
JB
JBE
Condition de saut
Op1 = Op2
Op1 6= Op2
Op1 > Op2 (valeurs
Op1 ≥ Op2 (valeurs
Op1 < Op2 (valeurs
Op1 ≤ Op2 (valeurs
Op1 > Op2 (valeurs
Op1 ≥ Op2 (valeurs
Op1 < Op2 (valeurs
Op1 ≤ Op2 (valeurs
3
signées)
signées)
signées)
signées)
non signées)
non signées)
non signées)
non signées)
Téléchargement