Examen Systèmes Répartis - ENSI Tunis

Telechargé par Guesmi Yosra
1
L’idée est de mettre en place une application répartie minimale, Tweett prétendant imiter les
fonctionnalités du réseau social Twitter.
Tweett offrira la possibilité aux clients distants, ayant chacun un compte Tweett, de taper des
publications sous forme de textos, d'en relayer (retweeter) et d’en recevoir les actions et
interactions. Il permet aussi aux clients présentant une relation d’amitié d’échanger des petits
messages en privé.
Une fois, une publication effectuée, un fichier dont le nom est de la forme
Num_pub_Interactions.txt est créé et le texte de la publication y est inscrit. Les interactions
des amis sous forme de commentaires ou de réactions sont enregistrées dans l'ordre
chronologique de leur occurrence. La figure suivante expose la forme du fichier induit par un
scénario possible d’interactions :
Publication : 19 /05/23 9h :00 Px Texte :…………… 300mots
Interaction : 19 /05/23 9h :01 Pz Texte:…………… 100mots
Réaction 19 /05/23 9h :01 Py Type T1
Interaction : 19 /05/23 9h :02 Py Texte : …………. 200mots
Interaction : 19 /05/23 9h :02 Px Texte : …………. 250mots
Réaction 19 /05/23 9h :02 Pz Type T1
Réaction 19 /05/23 9h :02 Px Type T1
Réaction 19 /05/23 9h :02 Pw Type T2
En un premier temps, nous supposons disposer d’une seule copie du fichier
Num_pub_Interactions.txt pour chaque publication, et qu’un processus met quinze secondes
pour écrire cinquante mots dans ce fichier distant; les écritures dans ce fichier sont souvent
conflictuelles.
Partie A. Problème d’exclusion mutuelle répartie (5 points)
Nous considérons l’algorithme de Ricart et Agrawala (1981): pour résoudre le problème
d’exclusion mutuelle quant à l’accès en modification du fichier Num_pub_Interactions.txt.
Ecole Nationale Supérieure d’Ingénieurs de Tunis
Examen
Classe : 2ème année G.INFO
Matière : Systèmes Répartis
Enseignant(e) : Mme Zoulele KOUKI
Date : 19/05/2023
Durée : 02H
Nombre de pages : 04 pages
Documents autorisés : Non Oui
2
On admet que le délai de propagation des messages entre les processus est connu et est
négligeable.
L’algorithme emploie une file d’attente répartie en utilisant les horloges de Lamport. Son
principe est le suivant : chaque site désirant la ressource demande la permission à tous les
autres. On départage les conflits en étiquetant chaque demande par l’heure logique à laquelle
la demande est faite.
1. Montrer que la propriété de sûreté est garantie pour cet algorithme. (1point)
2. Montrer que tout site voulant accéder à la ressource critique finira par y accéder
(pas de phénomène de famine). Comment appelle-t-on cette propriété de
l’algorithme ? (1point)
3. Partant du fait que le processus Px était lancé en premier, Donner le schéma
d’exécution des 4 processus et de leurs accès à la ressource critique : fichier
Num_pub_Interactions.txt. (1point)
4. Quel est le nombre minimum de messages nécessaires pour l’utilisation de cette
ressource, selon votre schéma d’exécution. (1point)
5. Décrire le pire des cas et déduire sa complexité (n processus). (1point)
Partie B. Problème de k-exclusion mutuelle répartie (3 points)
6. Pour des raisons de disponibilité et de sécurité des données, on a décidé de
répliquer ce fichier Num_pub_Interactions.txt. Il est dès lors présent en k copies
(le fichier original et ses (k-1) copies).
Algorithme de Ricart et Agrawala (1981)
Lorsque le gestionnaire d’un processus désire obtenir la ressource, il demande la permission
de l’utiliser à chacun des n 1 autres gestionnaires ; il attend alors d’avoir reçu toutes les
permissions.
Chaque message est estampillé par l’heure logique et l’identité du demandeur ; Lorsqu’un
gestionnaire reçoit une demande de permission, il envoie sa permission sauf s’il est
demandeur et que l’estampille de sa demande est inférieure à celle du site demandant une
permission. Dans le cas le gestionnaire n’envoie pas sa permission immédiatement, il
l’enverra lorsque le processus pour lequel il gère le contrôle de la ressource l’aura restitué.
Variables d’un gestionnaire :
· demandeur : booléen initialisé à faux ; h : (horloge scalaire) entier positif initialisé à 0 ;
· heure_demande : entier ; permissions : ensemble d’identificateurs de sites initialisé à {i} ;
· en_attente : ensemble d’identificateurs de sites initialisé à Ǿ.
3
Nous considérons le même algorithme listé ci-dessus, pour résoudre le problème de la k-
exclusion mutuelle. Toutes les demandes des processus portent chacune sur un exemplaire de
cette ressource.
1.Quel est le nombre de processus qui peuvent être présents simultanément en section critique
pour modifier le fichier Num_pub_Interactions.txt, si k=2. (1point)
2. Combien d’autorisations faut-il recevoir pour garantir qu’au moins une ressource critique :
Num_pub_Interactions.txt est disponible ? (1point)
3. Donner la complexité concernant le nombre de messages pour l’utilisation de cette
ressource. si k=2 (1point)
Partie C : Réplication de données (6 points)
1. Expliquer, pour notre application Tweett, le besoin de la réplication des données
ainsi que les défis qu’elle pose. (2points)
4
2. Quel est le modèle de cohérence idéal des données répliquées et quels défis pose t-
il? Est-il réalisable? (2points)
3. Supposons que nous disposons de trois copies du fichier Appliquer y les
modifications aux fichiers par les processus Pw, Px, Py et Pz , décrits ci-dessus)
selon le modèle de cohérence causal sachant que chaque modification par un
processus est suivie d’une lecture par tous les processus. conclure. (2points)
Partie D : Elections pour la détermination du contrôleur du système de messagerie
(6 points)
A la déconnection du processus-Utilisateur Px, le système composé des processus clients
encore connectés cherchera à le remplacer pour sa mission de contrôleur du système de
messagerie privée.
Ces processus considéreront pour cela un algorithme d’élection sur un réseau de n sites 1,..,n.
Chaque site i a une valeur vali ( qui quantifie la durée de connexion) avec les vali deux à deux
distincts. Nous supposons disposer d’un maillage virtuel en anneau.
Chaque processus présent dans le SD est capable d’initier une élection, i.e démarrer
l’exécution d’un algorithme distribué pour déterminer lequel des processus sera chargé de
cette tâche. Sachant que tous les sites ont le droit d’initier une nouvelle élection tant que le
résultat n’a pas été promulgué.
Le calcul du nouveau chargé (celui qui possède la valeur vali la plus grande parmi tous les
processus disponibles de l’anneau unidirectionnel) se fait en parcourant l’anneau, chaque site
demande au suivant de l’élire tant que sa val est supérieure à celle du son successeur, sinon
l’étiquette émise demandera d’élire celui ayant la plus grande val déjà rencontrée.
L’étiquette résultat est ensuite propagée de proche en proche, jusqu’à ce que l’un des
processus reçoit une étiquette lui demandant de l’élire lui-même. Ce processus diffuse le
résultat de l’élection vers tous les autres processus.
- 1: Ecrire de façon formelle cet algorithme. (1point)
- 2 : Prouver la sûreté et la vivacité de cet algorithme. (2points)
- 3: Donner un exemple d’exécution avec 4 sites. (1point)
- 4: donner la complexité de l’algorithme en termes de nombre de messages échangés
dans les cas plus favorable et moins favorable. (2points)
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!