Informatique — Ordinateurs et systèmes d’exploitation Examen écrit du jeudi 4 juin 2009 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 1re 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 capable de contrôler la sonnerie et la lampe de demande d’arrêt d’un autobus. Le circuit possède deux entrées : – i vaut 1 lorsqu’au moins un des boutons poussoirs de demande d’arrêt situés dans l’autobus est enfoncé, et 0 sinon. – p vaut 1 lorsque les portes de l’autobus sont ouvertes, et 0 sinon. Le circuit possède deux sorties : une sonnerie s et une lampe `. Leur comportement est le suivant : lorsqu’une demande d’arrêt est reçue (par l’entrée i) lorsque les portes sont fermées, la lampe ` passe à 1, et le reste jusqu’à ce que les portes de l’autobus soient ouvertes par le conducteur. En outre, la sonnerie retentit pendant une période d’horloge. Si des demandes d’arrêt ultérieures arrivent avant que les portes de l’autobus ne soient ouvertes, la sonnerie ne doit plus retentir. Lorsque les portes de l’autobus s’ouvrent, la lampe doit s’éteindre jusqu’à la prochaine demande d’arrêt, moment auquel le processus recommence. 2. (a) Quel est le plus grand nombre naturel représentable de façon exacte dans le standard IEEE 754 double précision ? Justifiez votre réponse. Quelle est sa représentation ? (b) Parmi les procédés de représentations “par valeur signée”, “par complément à un”, “par complément à deux” et “IEEE 754”, lequel est utilisé en pratique dans les processeurs modernes pour représenter et manipuler des nombres entiers signés ? Pour quelles raisons ? (c) Donnez la plus petite représentation du nombre −109 dans chacun des formats suivants : i. complément à un ; ii. complément à deux ; iii. IEEE 754 simple précision. 3. (a) Donnez la forme générale d’une mémoire vive de type m × n, en détaillant le nombre et le rôle de chacune de ses entrées et sorties. (b) De quelle manière peut-on combiner des composants de mémoire vive afin d’obtenir un composant possédant un plus grand nombre de cellules, la taille des cellules restant identique ? Détaillez. 1 4. On demande d’écrire un programme assembleur 80x86 déterminant la valeur maximale des observations issues d’un ensemble d’expériences. Ces données sont organisées en mémoire de la manière suivante. Le nombre d’expériences est contenu dans le registre CX ; le nombre d’observations par expérience est contenu dans le registre DX. Ces deux valeurs peuvent être supposées non nulles. Chaque expérience consiste en un tableau d’observations, chacune de ces obervations étant représentée par une valeur entière non signée codée sur 8 bits. Les adresses (sur 16 bits) des CX tableaux d’expériences sont contenues dans un tableau pointé par le registre BX. A la fin de l’exécution du programme, le registre AL doit contenir la valeur maximale des observations, toutes expériences confondues. En guise d’illustration, le schéma ci-dessous représente une situation où il y a 3 expériences, chacune contenant 2 observations. Le registre AL doit contenir la valeur 8 à la fin de l’exécution du programme. 6 CX = 3 4 DX = 2 2 8 DX = 2 4 1 DX = 2 BX 5. Les étudiants inscrits en 1re année de bachelier en sciences de l’ingénieur, orientation ingénieur civil ne doivent pas répondre à cette question. (a) Dans quels états un processus peut-il se trouver ? Décrivez brièvement chacun d’entre-eux. Quelles sont les transitions possibles entre ces états ? (b) Quelles sont les raisons pour lesquelles la gestion de la mémoire est habituellement confiée aux systèmes d’exploitation ? 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)