Gestion parallèle d'executionde fonctions c++

Fermé
hazelia Messages postés 40 Date d'inscription dimanche 4 juillet 2010 Statut Membre Dernière intervention 2 juin 2014 - 14 juin 2011 à 10:25
hazelia Messages postés 40 Date d'inscription dimanche 4 juillet 2010 Statut Membre Dernière intervention 2 juin 2014 - 15 juin 2011 à 09:04
Bonjour,

Je suis débutante en C++ et je suis en train de programmer un simulateur de réseau. Il consiste à générer différents flux et les envoyer dans un réseau. Les paquets de chaque flux doivent évoluer d'un noeud réseau à un autre selon leur chemin, en leurs appliquant des fonctions de délais lors de leur passage par chaque noeud. J'ai défini à cet effet des classe flux, paquets, noeud réseau et port. Toutefois, je ne sais pas trop comment gérer le parallélisme de l'évolution des paquets dans le réseau (je suis débutante :s).

S'il vous plait, si vous avez des suggestions, des liens, des références,.. n'importe quelle proposition qui peut m'éclaircir dans ma requête, n'hésitez pas à m'en faire part.

Merci d'avance de vos retours^^


A voir également:

6 réponses

freesta Messages postés 591 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 12 avril 2012 26
14 juin 2011 à 10:31
Bonjour, je suis un débutant aussi, mais d'après se que j'ai compris, tu veut que tes paquets évolus en même temps?

si oui tu devrais faire des recherche sur processus, thread et sémaphore
1
hazelia Messages postés 40 Date d'inscription dimanche 4 juillet 2010 Statut Membre Dernière intervention 2 juin 2014
14 juin 2011 à 10:40
Oui effectivement. le programme doit connaitre à chaque instant l'état de chaque paquet dans le réseau, et gérer par la suite les files d'attente éventuelles.


Merci pour la suggestion :)

By the way, tu n'aura pas une documentation efficace?! :)
0
freesta Messages postés 591 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 12 avril 2012 26
14 juin 2011 à 10:51
j'ai eu des cours dessus, mais en papier, le mieux reste de faire une recherche sur le net, va voir sur se site, il sont pas mal en aide
https://cpp.developpez.com/telecharger/
désoler de ne pas pouvoir plus t'aider!
0
hazelia Messages postés 40 Date d'inscription dimanche 4 juillet 2010 Statut Membre Dernière intervention 2 juin 2014
14 juin 2011 à 10:57
merciii, une bonne orientation est une grande aide! :D

Bon courage pour la suite^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
14 juin 2011 à 11:01
Salut.
Comme tout évolue en même temps, je ne ferai pas du parallélisme, car un thread risque d'aller plus vite que l'autre, du coup tu n'aura pas d'instant.
Chaque paquet passe d'un élément à un autre, en fonction du temps écoulé tu dois pouvoir savoir où il se trouve.
Ton problème est un peu obscure pour moi, je ne vois pas ce que tu cherches à faire.
à ta place, au lieu de parallélisme, je ferai une liste de paquet que je ferai évolué à chaque pas de temps.
0
hazelia Messages postés 40 Date d'inscription dimanche 4 juillet 2010 Statut Membre Dernière intervention 2 juin 2014
14 juin 2011 à 11:09
Mon programme consiste essentiellement à avoir les instants, car je dois les enregistrer dans des fichiers en sortie dédiés à cet effet: ça revient à enregistrer les dates d'arrivée des paquets dans des points particuliers du réseau, sachant que l'existance de chaque paquet influe, selon sa position dans le réseau, un ensemble de paquets.

Suis-je claire maintenant?
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
14 juin 2011 à 12:10
Ok, je comprends mieux.
donc, je renouvèle : pas de thread ni d'exécution concurente pour le moment.
Tes paquets passent d'un élément à l'autre, sauf coup de vraiment pas de bol, il n'y aura jamais de changement simultané (mais tu pourras toujours traité ça après).
Tant qu'un paquet ne change pas d'élément (d'un noeud à autre chose) ton état est le même il n'y a pas de raison de changer le traitement, il ne faut donc faire un traitement qu'aux changements. Sur ta liste de paquet, tu reperds celui qui changera d'élément en premier, et tu te mets à ce temps là, tu traites ce que tu as à faire et tu cherches le temps suivant. Tu vois l'idée ?
0
hazelia Messages postés 40 Date d'inscription dimanche 4 juillet 2010 Statut Membre Dernière intervention 2 juin 2014
14 juin 2011 à 14:11
Si j'ai bien compris, je peux donc créer un tableau d'état associé à chaque traitement et qui fait correspondre des instants de temps à des états (dans ce cas deux états: disponible ou non disponible). Ce tableau est rempli en fonction du paquet qui vient en premier et puis celui qui le suit dans une logique FIFO. Pour avoir un traitement "simultané" des paquets, il suffit que ces paquets lisent le contenu de ce tableau et attendre ou faire le traitement selon l'état de cet élément.
0
hazelia Messages postés 40 Date d'inscription dimanche 4 juillet 2010 Statut Membre Dernière intervention 2 juin 2014
15 juin 2011 à 09:04
Merciiii^^
0
freesta Messages postés 591 Date d'inscription mercredi 26 novembre 2008 Statut Membre Dernière intervention 12 avril 2012 26
14 juin 2011 à 11:02
merci, si besoin d'aide sur autre chose poste un mp peutètre que je pourais t'aidé
0
hazelia Messages postés 40 Date d'inscription dimanche 4 juillet 2010 Statut Membre Dernière intervention 2 juin 2014
14 juin 2011 à 11:09
dak ;)
0