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 dune suite de lettres (au moins une), à lexception des mots réservés or, and, not, true et false. Les entiers sont constitués dune suite de chiffres (au moins un). Les espaces, tabulations ou fins de ligne sont sans signification si ce nest comme séparateur entre deux unités lexicales.
A- On sintéresse dabord à lanalyse lexicale.
A.1 (0,5 pt )- Rappeler en quelques lignes le rôle de lanalyse lexicale.
A.2 (2 pts.)- Même si vous savez, évidemment, que lanalyseur 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 lanalyseur 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 sintéresse maintenant à lanalyse syntaxique.
B.1 (0,5 pt)- Rappeler en quelques lignes le rôle de lanalyse syntaxique.
B.2 (2 pts.)- Donner le résultat fourni par lanalyseur syntaxique pour les lignes suivantes, en justifiant votre raisonnement.
Truc and A = 23
A = 12 or 13
A not B
C- On sintéresse enfin à lanalyse sémantique.
C.1 (0,5 pt)- Rappeler en quelques lignes le rôle de lanalyse 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. Lopé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 lanalyseur 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
On dispose dun 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 lordre :
Le but de lexercice est létude de limplantation 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 dun cluster est de 128 secteurs.
A.1 (1 pt.)- Justifier le choix de cette taille de cluster. Expliquer comment est représenté lespace 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 dun quantum est de 128 secteurs.
B.1 (1 pt.)- Justifier le choix de cette taille de quantum. Expliquer comment est représenté lespace 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 dun bloc est de 2 secteurs.
C.1 (1 pt.)- Expliquer comment est représenté lespace 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.
A (1 pt.)- Expliquer les états possibles dun processus et les transitions entre ces états.
B (2 pts.)- Les lectures ou écritures dun bloc disque sont supposées pour la suite de lexercice prendre un temps constant de 20 ms, mais une seule opération peut avoir lieu à un instant donné. Lors de la fin dune 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 |
Processus P2 calcul 10 ms |
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.