Contrôle INF346 - 15 Mai 2009
Documents papier autorisés (dictionnaires papiers autorisés, aucun dispositif
électronique)
Durée : 1 heure 30
Si vous n'êtes pas francophone, vous pouvez répondre aux questions en anglais.
Merci de répondre à chaque partie sur une feuille séparée en indiquant bien votre nom
sur chaque feuille.
1ère Partie (7 points)
I Messages, invocations synchrones, asynchrones (2 points)
Indiquer et illustrer les ressemblances et les différences sémantiques entre le passage de
message et l'invocation de méthode asynchrone. Quelle difficulté présente l'invocation de
méthode asynchrone comparée à son homologue synchrone ?
Réponse
I. Ressemblance : en terme de communication, l'invocation de thode asynchrone ne
cessite qu'un seul envoi de message. Donc, en général, le client n'attend pas que
l'invocation soit totalement terminée pour reprendre sa propre exécution.
Différences : la plus importante est que dans le passage de message le client peut reprendre
son activité avant même que le message soit reçu par le serveur.
Dans l'appel de méthode asynchrone, ce n'est pas le cas car il faut vérifier que l'objet sur
lequel est invoqué l'appel existe bien sur le serveur, que sa méthode existe bien et que les
paramètres sont bien emballés.
Ce qui fait que le client reste bloqué pendant toute la transmission et une partie de
l'exécution (du moins la résolution de l'appel). Sinon, il y a plein de petites raisons. Sur le
client, en appel de méthode, on passe au travers d'une structure intermédiaire (un objet ou
une strucuture locale) qui se charge de cacher toutes les informations réseaux, les opérations
d'emballages etc qui sont exposées dans l'appel de messages en général. Même chose pour le
serveur. Le niveau d'abstraction est toujours plus élevé et la sémantique toujours plus
complète.
II Maintenance avionique (2 points)
Un groupe de techniciens de maintenance des avions d'une compagnie aérienne, inspecte les
avions avant chaque vol et effectue les actions de maintenance demandées. La compagnie
veut remplacer les bordereaux papiers des techniciens par une application qui s'exécute sur un
PDA. Le PDA serait relié à un ordinateur exécutant une application "centre de contrôle" par
un réseau wifi.
Dans la nouvelle application informatisée, chaque technicien peut recevoir soit un formulaire
d'inspection, soit une liste d'actions à effectuer.
Cas 1 : dans le cas où il reçoit un formulaire, il le remplit au fur et à mesure de son inspection.
Lorsqu'il a terminé il le valide et le résultat est transmis au centre de contrôle.
Le centre de contrôle traite les formulaires des techniciens et décide des actions à leur faire
faire sur les avions inspectés. Ces décisions peuvent nécessiter le traitement d'un ou plusieurs
formulaires suivant les cas.
Cas 2 : dans le cas où il reçoit une liste d'actions à effectuer il envoie un avis de fin de travaux
quand il a terminé.
Vous êtes en charge de l'étude de l'intergiciel à utiliser pour cette application. On vous
demande si une solution de type intergiciel orienté messages permettant l'envoi de messages
en point-à-point de façon asynchrone serait appropriée.
Donnez deux arguments en faveur de cette solution.
Réponse
II
1/ Les techniciens travaillent de façon asynchrone par rapport au centre de contrôle. Ils
reçoivent des questionnaires ou des listes d'actions et ils renvoient des réponses ou des avis
de fin de travaux. Ces échanges peuvent se faire par envoi de messages. Cela permet au
centre de contrôle comme aux techniciens de traiter les messages reçus à leur rythme sans
attendre de réponse et d'avoir donc un bon recouvrement des traitements et des
communications.
2/ La connexion wifi étant plus sujette aux déconnections, les solutions asynchrones qui ne
nécessitent pas de maintenir une connexion permanente sont bien adaptées.
III.Cohérence causale (2 points)
III.1 Rappeler ce qu’est la cohérence causale (1 point).
Réponse
III.1. Soient Opé1 et Opé2, deux opérations (lecture / écriture) ; Opé1 précède Opé2
causalement si :
1/ Opé1 précède Opé2 sur le même processeur, ou
2/ Opé2 est une lecture de la valeur écrite par Opé1, ou
3/ il existe Opé3 telle que Opé1 précède Opé3 causalement et Opé3 précède Opé2
causalement.
Opé1 et Opé2 sont concurrentes elles ne sont pas en dépendance causale.
On rappelle que la cohérence causale respecte l’ordre causal pour les opérations
causalement dépendantes mais deux écritures concurrentes peuvent être vues dans des ordres
différents sur des processeurs différents.
III.2 L'exemple ci-dessous respecte-t-il la cohérence causale (même notations qu'en cours) (1
point)
Réponse :
P1
P2
P3
P4
W(x)1
R(x)1
W(x)2
R(x)1
R(x)2
R(x)2
R(x)1
III.2 NON car les événements causalement dépendants ne sont vus dans un même
ordre par tous les sites : les écritures W(x)1 et W(x)2 sont causalement dépendantes
car P2 a lu la valeur 1 en x avant d'écrire 2 en x ; cependant P3 voit l'écriture de la
valeur 1 dans x avant celle de la valeur 2 dans x et P4 voit les deux opérations
d'écriture dans l'ordre inverse.
IV-Définition Intergiciel (1 point)
Pourquoi dit-on que l'intergiciel est aux systèmes répartis ce que le système d'exploitation est
aux architectures matérielles ?
Réponse
IV. Le système d'exploitation est le logiciel qui rend l'architecture matérielle utilisable.
Sans le système d'exploitation, l'écriture de programmes serait extrêmement fastidieuse.
Les programmeurs devraient travailler à un niveau très bas et se préoccuper de l'accès
aux ressources matérielles et de la gestion de ces ressources.
De façon similaire, l'intergiciel est la couche logicielle qui rend le système réparti utilisable.
Sans l'intergiciel, le développement d'applications réparties serait une opération fastidieuse.
Les programmeurs devraient travailler à un niveau très bas et se préoccuper des
communications de bas niveau de l'accès aux ressources réparties, et de la gestion de ces
ressources.
Merci de répondre à chaque partie sur une feuille séparée en indiquant bien votre nom
sur chaque feuille.
me Partie (6 points)
II.1. Composant et intergiciels
a) CCM et DDS sont deux standard récents de l'OMG pour la construction d'applications
réparties. En indiquant sommairement les fonctionnalités de chacun, expliquer en quoi ils sont
similaires et différents (2 points)
b) CCM dispose de la possibilité d'utiliser des ports dédiés pour l'échange de message
asynchrone en se basant sur COS Notification. Proposer une extension à l'architecture de
CCM pour remplacer ces ports par des entités DDS. (2 points)
Indication: vous fournirez un schéma décrivant une application CCM avec son environnement
d'exécution, et indiquerez les éléments à ajouter.
II.2 Intergiciel orienté messages
On attribue à P. Deutsch de Sun MicroSystems un texte intitulé "Fallacies of Distributed
Computing". Cette liste indique quelques erreurs fréquentes de conception d'un système
parti. Parmi celles-ci, on peut citer :
• The network is reliable.
• Topology doesn't change.
• There is one administrator.
• The network is homogeneous.
a) Indiquer comment JMS répond à ces différents points (2 points)
---------------------
Réponse
II.1 a) cf deux derniers slides du cours DDS.
II.1 b) il faut faire l'union des deux, tout simplement
II.2a)
reliable -> asynchrone + ACK
tolpology -> transparent pour l'utilisateur
adminstrator -> idem, découplé du code
homogénéi-> pas de solution pour JMS au niveau runtime (on ne peut utiliser qu'une seul
implem pour tout le systeme),
interoperabilité au niveau transport.
Merci de répondre à chaque partie sur une feuille séparée en indiquant bien votre nom
sur chaque feuille.
me Partie (7 points)
Question 1 (2 points) : Le dessin ci-dessous représente le déroulement du temps sur trois
sites ; chaque ligne horizontale correspond à un site, le temps s’écoule de la gauche vers la
droite. Chaque point noir correspond à un événement. Chaque flèche correspond à un
message envoyé d’un site à l’autre. Les sites utilisent des horloges vectorielles. Indiquer à
côté de chaque événement la date de celui-ci et à côté de chaque flèche l’estampille du
message correspondant.
S1
(0, 0, 0)
(0, 0, 0)
S2
S3
(0, 0, 0)
Question 2 (2 points)
L’algorithme de Naimi et Tréhel vu en cours et en TP sert à gérer une file d’attente pour
l’utilisation d’une ressource en exclusion mutuelle par plusieurs processus.
a ) Indiquer la structure sous-jacente à l’algorithme qui permet à un processus de s’ajouter à la
fin de la file d’attente. Si la file d’attente est non vide, dire se trouve le dernier de la file
d’attente par rapport à la structure précisée dans la question a).
b) Indiquer quel principe simple assure l’exclusion mutuelle dans l’algorithme de Naimi et
Tréhel.
Question 3 (3 points)
Des processus P1, P2, .., Pn participent à un calcul réparti. Un autre processus, nommé P, tente
de détecter la terminaison du calcul. Pour cela, le processus P envoie un messages à chacun
des processus P1, P2, .., Pn afin que ceux-ci répondent en indiquant s’ils sont passifs ou actifs.
Si tous les processus P1, P2, .., Pn ont déclaré être passifs, P conclut que le calcul est terminé.
a) L’algorithme utilisé par P est-il exact ? Justifier votre réponse.
b) Si la réponse est gative, proposer une modification pour rendre l’algorithme
exact en indiquant une éventuelle hypothèse sur les lignes de communication. On
s’appuiera de préférence sur un algorithme permettant de calculer un état global.
On ne prouvera pas que l’algorithme proposé est exact.
1 / 7 100%