IFT-17583
Structure interne des ordinateurs
Examen 2. Le jeudi 9 décembre 1999, 19h30 à 22h20, salle 1112 du pavillon Pouliot.
1. a. Donnez l’allure du signal de sortie lors de la transmission du caractère ‘A’ par un port série réglé sur 8 bits, 1 bit d’arrêt et parité impaire.
b. En supposant que le port est réglé sur 28 800 baud, quelle est l’intervalle entre chacun des bits ?
a.
b. L’intervalle est 1 / 28 288 = 34 µs.
2. a. Combien de bits par signal devra avoir un modem afin de pouvoir transmettre à 28 800 bps sur une ligne téléphonique de bande passante 3000 Hz ?
b. Quel devra être le rapport signal sur bruit minimum pour que cette ligne puisse transmettre à 28 800 bps ?
a. C = 2Wn = 2 x 3000 x n = 28 800, donc n ≥ 4.8. Il faut donc 5 bits par signal.
b. C = W log2(1 + S/B) = 28 800 = 3000 log2(1 + S/B) log2(1+ S/B) = 9,6 -> S/B = 29,6 – 1 = 775.
3. À la figure 12.13 du livre, p. 349, complétez la table du haut (table d’allocation), avec les données de la table du bas (bitmap). dans laquelle 0 = secteur libre ou allouable, 1
= secteur occupé.
0 1 2 3 4 5 6 7 8 9 10 11 12 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0
1 2 3 4 5
Secteurs Pistes
Piste Secteur Nombre de secteurs Allouables Consécutivement
0 0 5
0 10 3
1 3 5
2 0 3
2 7 6
3 0 4
3 8 2
4 2 2
4 6 4
4 11 2
5 4 7
4. Supposons que vous configurez votre PC pour avoir 512 Mo de mémoire virtuelle et que votre mémoire vive soit de 32 Mo. Sachant que les systèmes d’exploitation Microsoft utilisent des pages de 4 Ko,
a. Combien d’entrées la table des pages devra-t-elle avoir ?
b. Combien de bits devra contenir au minimum chaque entrée de la table des pages en supposant que les adresses virtuelles ont 32 bits ?
a. Il y aura 512 Mo / 4 Ko = 128 K pages virtuelles de 4 Ko. La table des pages devra donc avoir 128 K entrées (rangées).
b. La mémoire réelle de 32 Mo aura 32 Mo / 4 Ko = 8 K pages. Il faudra donc 13 bits pour adresser ces pages. Chaque entrée de la table des pages devra donc contenir au moins ces 13 bits + le bit V, donc 14 bits.
5. Écrivez une fonction assembleur pour enlever les espaces en double dans une chaîne de caractères. Cette fonction aurait la signature :
void ElimEspDbl(char * string);
Ainsi, la chaîne «Ceci est un test» deviendrait «Ceci est un test». Le symbolise ici l’espace blanc (caractère ASCII 3210 ou 20h).
void ElimEspDbl(char *string) {
_asm {
mov esi, string mov edi,esi
cld // direction vers le haut
mov ecx, -1 // s’assurer que ecx est assez grand
rep1 : lodsb // copier chaque caractère
stosb
test al,al // si nul, terminé je fin
cmp al,’ ‘ // si c’était un ‘ ‘ jne rep1
rep2 : lodsb // éliminer les suivants
cmp al,’ ‘
je rep2
stosb // pas un espace, l’écrire
jmp rep1 }
}