cherche exemple de synchronisation de sémaphores - C++ - Programmation
Marsh Posté le 19-12-2002 à 12:14:24
ReplyMarsh Posté le 19-12-2002 à 12:39:56
tiens c'est marrant j'ai le meme projet en cours de systeme
et ce qui m'emmerde le + c de devoir le faire sur une lib graphique vraiment pourrie !
Marsh Posté le 19-12-2002 à 13:02:22
muad_dib a écrit : tiens c'est marrant j'ai le meme projet en cours de systeme |
si ça se trouve, on bosse dans la même fac...
j'ai quand même réussi à faire 2 trains, 2 voitures, et les barrières.
il me reste à générer plusieurs voitures et trains aléatoirement, et surtout, à synchroniser les sémaphores! (par exemple quand mes voitures arrivent avant le train au niveau de la barrière, elles s'arretent et ensuite la barrière se ferme )
je ne recherche pas le projet tout fait, juste un exemple d'utilisation de sémaphores (et de signaux aussi).
Marsh Posté le 19-12-2002 à 13:11:21
pour la lib graphique tu dois aussi utiliser ncurses ?
si oui, ils ressembles a quoi tes trains/voitures/barrieres?
pour les semaphores, a prioi une seule pourrait suffire
lorsqu'une voiture arrive au niveau de la barriere elle "wait" la semaphore.
des que la semaphore est disponible elle la relache (signal) et continue son chemin (traverse le passage et continue sur la route)
lorsqu'un train arrive a une certaine distance il "wait" la semaphore et ne la "signal" que lorsq'il s'est eloigné du passage.
je sais pas trop si l'utilisation des signaux serait vraiment utile.
(pour savoir si on est fans la meme fac : t'as un partiel cet apres midi ?)
Marsh Posté le 19-12-2002 à 13:15:07
muad_dib a écrit : (pour savoir si on est fans la meme fac : t'as un partiel cet apres midi ?) |
ouais en logique, j'ai pas révisé grand chose d'ailleurs
t dans kel groupe en tp?
Marsh Posté le 19-12-2002 à 13:15:44
moi non plus, c la galere
j suis dans le groupe 1
(et apres on a un TD d'algo)
Marsh Posté le 19-12-2002 à 13:20:53
muad_dib a écrit : pour la lib graphique tu dois aussi utiliser ncurses ? |
en fait, j'utilise 2 processus (trains & voitures)et 2 sémaphores (init à 0); et dans le processus du train, j'affiche une barrière dès que le train arrive à la zone critique et l'enlève dès qu'il ressort.
peut-être que ce serait mieux si je faisais plus de processus (un pour chaque véhicule et un pour la barrière) ?
Marsh Posté le 19-12-2002 à 13:27:21
peut etre que ca serait plus "propre" de faire un processus par objet... je sais pas trop, mais en tout cas ca me parait moins simple
au depart je pensais plutot a une fonction qui met a jour a chaque tour de boucle la position de chaque objet, mais ca risque de ne pas vraiment etre en accord avec le sujet du probleme (semaphores et processus)
tu bosses a la fac ou chez toi ? (si c'est chez toi : c'est compliqué de configurer son systeme pour gerer les semaphores comme a la fac ?)
Marsh Posté le 19-12-2002 à 13:33:19
muad_dib a écrit : |
non, j'bosse à la fac...
d'ailleurs j'ai prévu d'y passer la journée demain, pour terminer, j'espère
car à la rentrée il faudra attaquer le projet ADA, qui est pas mal non plus.
Marsh Posté le 19-12-2002 à 13:36:56
en effet le projet ADA a l'air bien plus lourd
j'pensais aussi essayer de finir le projet systeme demain mais apparemment on a aucun TD, j'me trompe ?
(dans quel cas j'aurai sans doute pas envie de me lever juste pour le projet )
Marsh Posté le 19-12-2002 à 13:40:57
muad_dib a écrit : en effet le projet ADA a l'air bien plus lourd |
ben non, ya aucun TD demain... normalement on est sensé avoir maths discrètes mais le chargé de td ne semble pas au courant
Marsh Posté le 19-12-2002 à 13:43:09
oui et d'apres "la" chargée de TD le 2eme TD du mercredi soir passera le vendredi matin (a partir de janvier)
bon sur ce j'vais voir si j'peux sauver quelques meubles en logique...
Marsh Posté le 19-12-2002 à 13:44:45
ah oui j'oubliais
j'ai une derniere question:
avec ncruses, est-ce qu'il est possible de dessiner autre chose que des caracteres ou des lignes horizontales/verticales ? et ce uniquement sur une resolution lignes/colonnes et avec quelques couleurs ?
Marsh Posté le 19-12-2002 à 13:51:32
ben ca depend comment tu fais ton programme: si c'est vraiment une histoire de voiture, alors y a pas grand chose a voir avec la programamtion concurrente. par contre si c'est une métaphore, comme par exemple 1 thread par voiture, etc, cherche dans les pthread et les semaphore LinuxThread (man sem_init, etc)
Marsh Posté le 19-12-2002 à 13:54:37
muad_dib a écrit : ah oui j'oubliais |
ça je sais pas, mais il faut que je remette la main sur le site que j'avais trouver sur ncurses. il me semble qu'il expliquait ce genre de choses...
par contre g trouvé le "man ncurses" en format pdf et il fait près de 500pages! aolrs pour l'imprimer, ça va être galère!
Marsh Posté le 19-12-2002 à 13:56:35
Taz@PPC a écrit : ben ca depend comment tu fais ton programme: si c'est vraiment une histoire de voiture, alors y a pas grand chose a voir avec la programamtion concurrente. par contre si c'est une métaphore, comme par exemple 1 thread par voiture, etc, cherche dans les pthread et les semaphore LinuxThread (man sem_init, etc) |
oui, j'irai voir ce qu'il y a sur "man sem_init"
Marsh Posté le 19-12-2002 à 13:57:09
oui en effet
j'avais aussi trouvé un site qui donnait un assez bon tutorial pour debuter avec ncurses (c comme ca que j'ai compris comment tracer des lignes assez simplement)
si tu veux j pourrais te passer le lien, la salle des machines sera encore ouverte apres le partiel ?
Marsh Posté le 19-12-2002 à 13:58:14
muad_dib a écrit : oui et d'apres "la" chargée de TD le 2eme TD du mercredi soir passera le vendredi matin (a partir de janvier) |
non moi je suis avec monsieur "machin'scu" (dsl je sais plus son nom), celui que personne n'aime
Marsh Posté le 19-12-2002 à 13:59:17
muad_dib a écrit : ah oui et c'est en quelle salle le partiel ? |
tiens ça je sais pas! normalement en amphi bleu
d'ailleurs je ne suis même pas sûre de l'heure! (14h40, c ça?)
Marsh Posté le 19-12-2002 à 14:01:59
oui 14h40
c ptet bien amphi bleu, mais avec le coup du partiel de langage formels je me mefie
Marsh Posté le 19-12-2002 à 14:03:09
muad_dib a écrit : oui 14h40 |
bon ben j'y vais sinon je serai à la bourre!
Marsh Posté le 19-12-2002 à 14:07:36
c sur, il faut bien 35 minutes pour aller du batiment T a l'amphi bleu
hum desolé
a+
Marsh Posté le 19-12-2002 à 16:55:20
voila le lien
http://www.pa2600.org/articles/ncurses.php
(une horreur ce partiel)
Marsh Posté le 19-12-2002 à 20:52:19
muad_dib a écrit : c sur, il faut bien 35 minutes pour aller du batiment T a l'amphi bleu |
non non, je n'étais pas bat' T, j'était chez moi
Marsh Posté le 19-12-2002 à 20:54:11
muad_dib a écrit : voila le lien |
merci pour le lien, mais c pas celui là ke j'avais vu...
(ouais CT dur ce partiel )
Marsh Posté le 20-12-2002 à 17:08:33
muad_dib a écrit : alors si t'en as un meilleur (de lien) je suis preneur |
dès que je mets la main dessus, je te l'envoie
Marsh Posté le 20-12-2002 à 20:35:04
sylvie_jr a écrit : bonjour tout le monde! |
Andrew Tanenbaum donne de tres bons exemples sur la synchronisation de threads.
Sinon, un lien pas mal pour les threads Linux :
http://www-106.ibm.com/developerwo [...] /l-posix3/
Marsh Posté le 20-12-2002 à 21:37:38
ReplyMarsh Posté le 20-12-2002 à 21:38:44
BotMan a écrit : Andrew Tanenbaum donne de tres bons exemples sur la synchronisation de threads. |
ok, merci pour l'info
(j'avais pas chercher les sites en anglais )
Marsh Posté le 20-12-2002 à 21:46:16
sylvie_jr a écrit : |
l'anglais cai bien
Marsh Posté le 20-12-2002 à 22:07:23
pour info, g passé la journée à la fac, et g réussi à synchroniser une voiture, un train et une barrière avec que des sémaphores. Maintenant, je dois rajouter les trains et voitures en sens inverse. Et ensuite, je devrai générer aléatoirement le circulement des voitures et des trains.
Mais d'après ce ke g entendu, synchroniser tout ça n'est possible que si on utilise les signaux
déjà les sémaphores, g du mal, alors les signaux...
voilà
Marsh Posté le 20-12-2002 à 22:39:10
Reply
Marsh Posté le 19-12-2002 à 12:08:18
bonjour tout le monde!
tout est dans le titre: cela m'aidera à écrire mon programme (langage C) qui consiste à simuler un passage à niveau (voitures, trains, barrieres).
merci
Remarque: g regarder sur google, g pas trouvé.