Gestion parallèle d'executionde fonctions c++

hazelia Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -  
hazelia Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -
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 592 Date d'inscription   Statut Membre Dernière intervention   26
 
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   Statut Membre Dernière intervention  
 
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 592 Date d'inscription   Statut Membre Dernière intervention   26
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   1 299
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   1 299
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
Merciiii^^
0
freesta Messages postés 592 Date d'inscription   Statut Membre Dernière intervention   26
 
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   Statut Membre Dernière intervention  
 
dak ;)
0