Aide traduction d'un pseudo code en C

JustineLoveLp Messages postés 1 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 13 septembre 2007 - 13 sept. 2007 à 18:27
 freresscott3 - 3 oct. 2007 à 13:52
Salut tout le monde,
Voila je vous écrit, car je rencontre quelques difficulté avec le problème / Code, suivant:

Le principe est hérité des chemins de fer.
Lorsque le sémaphore est levé, le processus P peut continué
son chemin, lorsqu'il est baissé il doit attendre jusqu'a
ce qu'un autre processus Q le lève.

Dans ce modèle il existe trois primitives:

- Lever(c) fait passer le sémaphore c de la valeur "Baissé" à "Levé"
- Baisser(c) fait passer le sémaphore c de la valeur "Levé" à "Baissé"
- Flag(c) retourne vrai si le sémaphore c est baissé.

Le principe est le transfert de résultat au moyen d'un tampon.

Le fonctionnement est le suivant:

Processus P

Baisser(e);
While (Calculs à faire){
calculs des éléments du tampon(a);
baisser(e);
if (flag(f)) {
attendre(f);
}
écrire tampon (a);
lever(e);

Processus Q

Lever(f);
While (élément à transférer) {
if (flag(e)) {
attendre(e)
}
baisser(f);
lire tampon(a);
lever(f);
}

Personnellement je traduis ce pseudo code C de la manière suivante :

Processus P

Lorsque le sémaphore est levé, P peut continué son chemin.
Lorsqu’il est baissé, il doit attendre que Q ce leve.

On baisse P
Pendant qu’il calcul les éléments du tampon (a)
Si Q est baissé on attend
Sinon
On écrit dans le tampon
Et on lève P.

Processus Q

On lève Q
Pendant qu’ils transfert les éléments
Si P est baisser
On attend

Baisser Q
Lire le tampon (a)
Lever (f)

Voila je bloque sur la traduction de ce pseudo code C depuis quelques jours, c’est pourquoi je poste sur ce forum.

J’aimerais bien aussi vous posez trois petite question svp.

Ma traduction est-elle bonne ?

E correspond à P, et f correspond à Q. C’est ça ?

En ce qui concerne la primitive suivante :
- Flag(c) retourne vrai si le sémaphore c est baissé.

Que veut elle vraiment dire ?

Je vous remercie d’avance pour votre aide, ça serait vraiment gentil.
J'espere avoir poster sur le bon forum sinon je m'en excuse d'avance.
Je m’excuse pour les éventuels fautes d’orthographe, je suis pas très forte …
A bientôt.
A voir également:

1 réponse

freresscott3
3 oct. 2007 à 13:52
Bonjour,

J'aimerai bien te repondre et te dire que c'est juste mais de toute facon je pense que c'est deja trop tard
de plus je n'ai pas beaucoup de temps pour y réfléchir et pouvoir te dire clairement oui ou non ou t'explique.
Si j'avais plus de temps je pourrais y réfléchir
dis moi quand tu dois savoir.
Sinon je te propose d'en discuter alors laisse moi une facon de te contacter
a bientot j'espere que je pourrais t'aider
0