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)