La synchronisation des processus

ilyes19 Messages postés 24 Statut Membre -  
 loupius -
Bonjour,
g un problème avec les sémaphores et je voudrais justement poser cette question:

si on initialise un sémaphore à 1 et dans le cas ou on veut synchroniser 4 processus on a :
• le premier exécute p() et le rend a 0 ;
• le deuxième exécute p() et le rend à -1 donc il entre dans la file ;
• le troisième même chose ;
• le 4eme même chose ;
mais quand le premier fini , il exécute v() et il le rend à -2, donc comment un autre processus peut ne pas se bloquer en exécutant p() ? c’est a dire en trouvant le compteur >0 ? alors qu’il est a -2 !!!

3 réponses

DarkRodWarrior Messages postés 1947 Statut Membre 91
 
LoL je connaissais pas ce truc ^^

C'est du quel langage ?
0
ilyes19 Messages postés 24 Statut Membre
 
c'est pas un language!!!
c'est une methode pour les système d'exploitation de synchroniser les processus
0
loupius
 
En parlant des opérations P() et V(à, je suppose que tu parles de sémaphores Système V.
Dans l'exemple que tu prends, sémophore = 1 et, je suppose, demande de chaque opération P et V avec la valeur 1, alors:
• le premier exécute P() et le rend à 0 ;
• le deuxième ne pourra pas exécuter P() puisque le sémaphore est inférieur à la valeur demandée.
Si tu veux exécuter 4 processus en même temps, il sera nécessaire de partir avec sémaphore = 4.
0