Algorithmique des systèmes et applications réparties TD n°2 Exercice 1 : Décrire les variables locales à utiliser par le coordinateur afin d’implémenter l’algorithme d’exclusion mutuelle centralisé. Ecrire l’algorithme d’exclusion mutuelle centralisé sous forme d’une méthode qui a la signature suivante : Recevoir (message, Pi). o message a deux valeurs possibles libérer ou demander. o Pi est le PID du processus d’indice i. o Nous supposons également l’existante de la méthode prédéfinie Envoyer (“OK”, Pi) coté coordinateur, cette méthode permet d’envoyer le message OK au processus Pi. Exercice 2 : Dans l’algorithme de « Gérard Le Lann », un jeton unique circule en permanence entre les processus via une topologie en anneau. La condition nécessaire pour utiliser la ressource est d’avoir le jeton. Nous disposons localement et dans chaque processus Pi (i allant de 1 à n) d’une procédure Emettre (Jeton, i, i+1), cette procédure permet d’envoyer le jeton de Pi à Pi+1. La procédure Emettre (Jeton, i, i+1) pose un problème, lequel ? Ecrire une procédure Emettre_Voisin (Jeton, i) qui utilise Emettre (Jeton, i, i+1) et qui règle le problème précédent. Ecrire la procédure Réception_jeton (Jeton, i), cette procédure doit décrire le comportement du processus Pi lors de la réception du jeton. Exercice 3 : Nous avons vu en cours un algorithme d’exclusion mutuelle qui modélise une file d’attente répartie en utilisant les horloges de Lamport. Le principe de l’algorithme est le suivant : chaque site désirant la ressource va demander la permission à tous les autres. On départage les conflits en étiquetant chaque demande par l’heure logique à laquelle on a fait cette demande. Calculer la complexité de cet algorithme dans le meilleur et dans le pire des cas.