Architecture des machines et systèmes informatiques
Partiel de systèmes informatiques du 8 juin 2002

Exercice 1 Analyse de langage (7,5 points) Corrigé

On considère un petit langage défini comme suit :

<condition> ::= <facteur> or <condition> | <facteur>
<facteur> ::= <terme> and <facteur> | <terme>
<terme> ::= <primaire> | not <primaire>
<primaire> ::= <élément> | <relation> | (<condition>)
<relation> ::= <élément> = <élément>
<élément> ::= <identificateur> | <entier> | true | false

Les identificateurs sont des unités lexicales composées d’une suite de lettres (au moins une), à l’exception des mots réservés or, and, not, true et false. Les entiers sont constitués d’une suite de chiffres (au moins un). Les espaces, tabulations ou fins de ligne sont sans signification si ce n’est comme séparateur entre deux unités lexicales.

A- On s’intéresse d’abord à l’analyse lexicale.

A.1 (0,5 pt )- Rappeler en quelques lignes le rôle de l’analyse lexicale.

A.2 (2 pts.)- Même si vous savez, évidemment, que l’analyseur lexical fait un codage des différents symboles, nous ne le ferons pas ici pour simplifier. À la place, vous présenterez le découpage en unités lexicales en enfermant celles-ci dans des rectangles. Donner le résultat fourni par l’analyseur lexical pour les lignes suivantes, en justifiant votre raisonnement.

Truc and A = 23
not C = 1.2
A = 12 or 13
A not B

B- On s’intéresse maintenant à l’analyse syntaxique.

B.1 (0,5 pt)- Rappeler en quelques lignes le rôle de l’analyse syntaxique.

B.2 (2 pts.)- Donner le résultat fourni par l’analyseur syntaxique pour les lignes suivantes, en justifiant votre raisonnement.

Truc and A = 23
A = 12 or 13
A not B

C- On s’intéresse enfin à l’analyse sémantique.

C.1 (0,5 pt)- Rappeler en quelques lignes le rôle de l’analyse sémantique.

C.2 (2 pts.)- La sémantique de ce langage précise que les opérations or, and et not ont des opérandes qui sont de type booléen, et ont un résultat de type booléen. L’opérateur = prend deux opérandes qui doivent être du même type (tous les deux entiers ou tous les deux booléens) et retourne un résultat booléen. Donner le résultat fourni par l’analyseur sémantique pour les lignes suivantes, en justifiant votre raisonnement, où Truc est booléen et a pour valeur true, A est entier et a pour valeur 13.

Truc and A = 23
A = 12 or 13

Exercice 2 Représentation de l’espace disque (7,5 points) Corrigé

On dispose d’un disque de 2 Go, qui est structuré de la façon suivante :

Un fichier de 512 Ko est rangé sur ce disque, et occupe donc 1024 secteurs physiques, qui sont les suivants, dans l’ordre :

  1. cylindre 32, face 0, secteurs 0 à 255
  2. cylindre 48, face 1, secteurs 128 à 255
  3. cylindre 64, face 2, secteurs 0 à 255
  4. cylindre 16, face 1, secteurs 0 à 127
  5. cylindre 16, face 3, secteurs 0 à 255

Le but de l’exercice est l’étude de l’implantation selon trois systèmes de gestion de fichiers, FAT, HFS, UNIX. Pour chacun de ces systèmes, on étudie la représentation du descripteur du fichier et les opérations nécessaires pour accéder à trois secteurs logiques particuliers, les secteurs 5, 100 et 800. Vous pouvez noter que, dans le contexte ci-dessus, la transformation du secteur logique en secteur physique doit être la suivante :

Secteur logique

Cylindre

Face

Numéro de secteur

5

32

0

5

100

32

0

100

800

16

3

32

A- Le système de gestion de fichiers est le système FAT, et la taille d’un cluster est de 128 secteurs.

A.1 (1 pt.)- Justifier le choix de cette taille de cluster. Expliquer comment est représenté l’espace attribué au fichier.

A.2 (1,5 pt.)- Décrire les opérations nécessaires pour accéder aux secteurs 5, 100 et 800.

B- Le système de gestion de fichiers est le système HFS, et la taille d’un quantum est de 128 secteurs.

B.1 (1 pt.)- Justifier le choix de cette taille de quantum. Expliquer comment est représenté l’espace attribué au fichier.

B.2 (1,5 pt.)- Décrire les opérations nécessaires pour accéder aux secteurs 5, 100 et 800.

C- Le système de gestion de fichiers est le système UNIX, et la taille d’un bloc est de 2 secteurs.

C.1 (1 pt.)- Expliquer comment est représenté l’espace attribué au fichier. Si vous avez besoin de blocs supplémentaires pour la représentation, vous pouvez disposer de ceux du cylindre 8.

C.2 (1,5 pt.)- Décrire les opérations nécessaires pour accéder aux secteurs 5, 100 et 800.

Exercice 3 Ordonnancement de processus (5 points) Corrigé

A (1 pt.)- Expliquer les états possibles d’un processus et les transitions entre ces états.

B (2 pts.)- Les lectures ou écritures d’un bloc disque sont supposées pour la suite de l’exercice prendre un temps constant de 20 ms, mais une seule opération peut avoir lieu à un instant donné. Lors de la fin d’une entrée-sortie pour un processus, celui-ci est mis en bout de la file des processus prêts. On considère deux processus dont les actions sont les suivantes :

Processus P1

calcul 10 ms
lecture B1
calcul 40 ms
écriture B1
calcul 10 ms
lecture B2
calcul 10 ms

Processus P2

calcul 10 ms
lecture B1
calcul 10 ms
écriture B1

Le processus P1 est lancé au temps 0, et le processus P2 est lancé 10 ms après. Donner le diagramme correspondant sur le dessin ci-dessous.

C (2 pts.)- Expliquer pourquoi le contenu du bloc B1 sur disque peut ne pas être correct. Quelle synchronisation entre les processus faut-il introduire pour garantir cette correction ? Donner le diagramme correspondant sur le dessin ci-dessous.