Université de Chlef
Département Informatique
Filière : 1ère Année Master
Juin 2012
Examen de rattrapage
Module de Systèmes d’exploitation I
Durée : 01H30
Corrigé
Exercice 1 (16 points) :
1/ Dans un système d’exploitation distribué, dans quels cas est-il intéressant de faire migrer les calculs ?.
Réponse :
On opte pour la migration des calculs dans les cas où le temps de transfert des données et des résultats est plus long que le
temps d’exécution de la commande à distance (sur un serveur distant). Dans ces cas, il est plus intéressant de faire
exécuter les calculs sur le serveur distant.
(01 point)
2/ Dans un système distribué comment peut-on détecter si un site est tombé en panne ? Que doit-on faire dans ce cas ?
Réponse :
Détection de la panne : on utilise la technique dite « poignée de main » : les sites s’échangent périodiquement des
messages pour dire qu’il sont « éveillés ». Si un tel message ne parvient pas au bout d’un temps fini, on suppose que le
site en question est en panne.
Lorsqu’on découvre qu’un site est tombé en panne, on doit déclencher une reconfiguration du système : informer tous les
sites du système, afin qu’ils n’essayent plus d’utiliser les services du site en panne. La défaillance d’un site qui sert de
coordinateur central exige l’élection d’un nouveau coordinateur. De même si le site tombé en panne fait partie d’un
anneau logique, on doit donc construire un nouvel anneau logique.
(02 points)
3/ Dans un système distribué que doit faire un site qui vient de reprendre son exécution après une panne ?.
Réponse :
Quand un site tombé en panne est réparé, il doit être intégré dans le système. Le site réparé doit avertir tous les autres sites
qu’il est à nouveau éveillé. Ensuite, le site peut recevoir des autres sites diverses informations pour actualiser ses tables
locales (tables de routage, la liste de sites qui ne sont pas éveillés, les messages non délivrés…)
(02 points)
4/ Dans un système distribué, dans quelles conditions peut-on appliquer l’algorithme du banquier pour l’évitement des
interblocages ?. Quels sont les inconvénients si on opte pour ce choix ?.
Réponse :
1
er
cas : si on opte pour une allocation des ressources centralisée au niveau d’un seul site allocateur, dans ce cas
l’allocateur connaît l’état global de ressources.
Les inconvénients : surcharge de l’allocateur (toutes les demandes et libérations de ressources doivent passer par lui) ,
vulnérabilité (cas de panne de l’allocateur).
2
ème
cas : Si on opte pour une allocation répartie, on doit maintenir une copie cohérente de l’état d’allocation des
ressources pour tous les allocateurs.
Les inconvénients : Difficulté de maintien de la cohérence de l’état global des ressources.
(02 points)
Exercice 2 : On considère l’algorithme d’exclusion mutuelle de Lamport pour les systèmes répartis.
1/ Quel est le nombre de messages obtenus si tous les sites sont entrés en section critique. Justifiez.
Réponse :
L’entrée de chaque site en section critique exige 3*(N-1) messages : (N-1) messages REQ, (N-1) messages ACK et (N-1)
messages REL.
Le nombre total de messages, si les N sites entrent en section critique, est donc : N*3*(N-1) messages. (02 points)
2/ Quels sont les inconvénients de cet algorithme ?
Réponse :
- Le nombre de messages générés par l’entrée en SC est important.
- N’est pas applicable si si les canaux de communication ne fonctionnent pas en FIFO (les messages sont reçus
dans l’ordre de leur émission). (02 points)
3/ Quel se passe-t-il si un message REL ou ACK est perdu ?.
Réponse :
Dans le cas d’une perte de message (REL ou ACK) , on peut avoir : au minimum un site ne peut pas entrer en SC, au pire tous les
sites ne peuvent pas entrer en SC. (02 points)
4/ Si on prend comme critère le nombre de messages nécessaires pour entrer en section critique, lequel des deux algorithmes Lamport
ou de Ricart/Agrawala, est le meilleur ?. Expliquez pourquoi il donne un nombre de message inférieur.
Réponse :
Nombre de messages de Lamport : 3N*(N-1)
Nombre de messages de Ricart/Agrawala : 2N*(N-1)
L’algorithme de Ricart/Agrawala donne un nombre de messages inférieur car avec cet algorithme on n’a pas besoin d’envoyer les
messages de type REL. (02 points)
Exercice 3 :
Dans un système distribué, les sites sont organisés en un anneau unidirectionnel : un site ne
peut envoyer un message qu’à son voisin(voir figure). Chaque site a un numéro différent des
autres. On propose la méthode suivante pour l’élection d’un processus dans un tel système :
un site i qui souhaite être candidat, envoie à son voisin un message particulier (Elire , i). Le
processus élu sera celui qui a le plus grand numéro.
1/ Ecrire en langage algorithmique ce que doit faire un site j qui reçoit un message (Elire, i) ?
Réponse :
Si i > j alors Envoyer(Elire, i)
Sinon Envoyer(Elire, j)
Finsi (1.5 points)
2/ Quand un site peut-il connaître s’il est l’élu ?
Réponse :
Un site peut se considérer l’élu s’il reçoit son propre numéro. Dans ce cas, il doit arrêter la diffusion du message d’élection.
L’algorithme est donc le suivant :
Si i > j alors Envoyer(Elire, i)
Sinon si j > i alors Envoyer(Elire, j)
Sinon
/* (i=j)le site j découvre qu’il est l’élu */
Site 4
Site 1
Site 2
Site 3Site 5
Site 6
Finsi (1.5 points)
3/ Que doit faire le nouveau processus élu ?.
Réponse :
Il doit proclamer son élection en envoyant un message particulier (Proclamer, i). Ce message est diffusé de site en site jusqu’à arriver
au site i lui-même. (2 points)
……………………………………………………………………………………………………………………………………..………
1 / 3 100%