-
Systeme & sémaphore
Bonjour,
En cours on a vu les processus mais partie du cours n'est pas terrible notamment en ce qui concerne la traduction de l'algorithme vers le C (que le prof appel schéma de traduction, qui à mes yeux mérite à peine d'être appelé ébauche du schéma qui ressemble plus à une figure géométrique qu'à un code), aussi j'aurais voulu savoir si vous pouviez me donner un exemple de code avec 2 processus et sémaphore. Je cherche aussi un lien vers un cours de système sur les sémaphore et j'aurais voulu votre avis sur ce site qui porte sur la théorie (puisque je n'ai pas vu de code):
http://cuiwww.unige.ch/~billard/systemeII/index.html et
http://deptinfo.cnam.fr/~paradinas/cours/
-
-
j'ai bien compris ca mais c'est au niveau programmation que je ne comprends pas comment représenter dans un programme C :
Philosophe i
penser();
prendre_fourchette(i);
manger();
poser_fourchette(i);
---------------------------
prendre_fourchette(i)
P(mutex);
état[i] = FAIM;
test(i);
V(mutex);
P(s[i]);
---------------------------
poser_fourchette(i)
P(mutex);
état[i] = PENSE;
test(GAUCHE);
test(DROITE);
V(mutex);
---------------------------
test(i)
si (état[i] == FAIM && état[GAUCHE] != MANGE && état[DROITE] != MANGE) alors
. état[i] = MANGE;
. V(s[i]);
l'algo me semble claire mais je ne vois pas comment organiser le code avec les fork() et tout ce qui est en rapport avec les sémaphores
-
Bonsoir,
Commence par les pthreads : https://computing.llnl.gov/tutorials/pthreads/. Ils permettent de gérer des mutexs et apparemment tu n'as pas besoin de sémaphores pour ce problème.
Oublie les fork() pour le moment, c'est moins performant et les problèmes de synchronisation sont les mêmes donc tu n'apprendras pas moins sur la programmation parallèle en utilisant des threads à la place.
-
1 pièce(s) jointe(s)
Bonjour
Je vous donne une documentation je pense qu'elle est utile où tu trouve des exemples réal.
Je te conseil par le tutoriel du man disponible sur developpez.com il est bien fait
Si tu cherche un livre professionnel alors envoyer moi juste un signale :lun:
Sinon tu peux chercher des exemple sur google avec type de fichier c Bien sûr.
Je te souhaiter une bonne journée ;)
-