Académique Documents
Professionnel Documents
Culture Documents
Solution PB RDV Deux Processus PDF
Solution PB RDV Deux Processus PDF
fonction RDV1() pour l’un et RDV2() pour l’autre. En utilisant les sémaphores, écrire la séquence
de pseudo-code de P1 et P2 permettant d’établir ce rendez-vous. Décrire le comportement des deux
processus à partir d’un diagramme temporel.
Réponse :
Si P1 arrive en premier, il doit bloquer pour attendre P2. Sinon, il réveille P2 qui est sûrement en
attente. P2 a ce même comportement.
Définir un variable entière i initialisée à 0 qui indique si mon vis-à-vis est déjà arrivé ou pas. Le
premier qui arrive positionne la variable i à 1.
Définir un sémaphore initialisé à 1 pour contrôler l’accès a cette variable
Définir un autre sémaphore initialisé à 0 pour bloquer si jamais je suis le premier à arriver
var i =0;
semaphore s1 = 1 ;// Contrôle l’accès à la variable i
semaphore s2 = 0 ;// Permet de bloquer si mon vis-à-vis n’est pas encore au lieu du rendez-vous
Pour le processus P1
P1()
BEGIN
DOWN(s1) ;
if (i==0){
i=1;
UP(s1) ;
DOWN(s2) ;
} else {
UP(s1) ;
UP(s2) ;
}
//Exécuter ma fonction d’après le rendez-vous
RDV1()
END;
Pour le processus P2
P2()
BEGIN
DOWN(s1) ;
if (i==0){
i=1;
UP(s1) ;
DOWN(s2) ;
} else {
UP(s1) ;
UP(s2) ;
}
//Exécuter ma fonction d’après le rendez-vous
RDV2()
END;