Bon generalement quand je dois faire de la com inter-processus j'utilise du RMI en JAVA et du Corba pour les autres. J'ai meme utilise des objets COM/DCOM. Mais la j'ai pas la puissance machine pour jouer a ca. Quelqu'un connait de bons docs sur le sujet ?
Je cherche en fait a faire un systeme de pipe ameliore. Je ne peux pas utiliser les pipes "normaux" pour tout un tas de raison et je dois donc recoder mon propre systeme
Si quelqu'un connait , a deja plancher sur ce genre de choses ou peut me filer un coup de main il gagnera ma reconnaissance eternelle.
Kha
# Re: Communication inter-processes
Posté par Jean-Yves B. . Évalué à 5.
Sinon, les sockets. Ca roulaize bien les sockets.
[^] # Re: Communication inter-processes
Posté par Jerome Herman . Évalué à 4.
IPC systeme V est pas mal, mais pas trop flexible. Quand on veut faire du multicast ou du broadcast il faut des plombes aux mesages pour arriver. Je pensais plus a un systeme de memoire partagee, mais la aussi j'ai un peu de mal avec la gestion des buffers.
Il va y avoir des centaines de processes qui dialoguent, respawnent se font shooter par d'autres processes etc... D'ou la necessite de faire mechament rapide sinon bonjour les timeout.
Kha
[^] # Re: Communication inter-processes
Posté par Jean-Yves B. . Évalué à 3.
En plus, tu peux utiliser des sockets Unix.
Sinon, pour la mémoire partagée, shm + sémaphores roxorent mais pas en utilisant les IPC sysV, paluches-toi tes sémaphores à la main, ça vaut mieux.
Et man mmap
[^] # Re: Communication inter-processes
Posté par Jerome Herman . Évalué à 3.
C'est clair qu'avec un morceau de memoire partage je suis heureux, mais comment le reserver de facon propre et rapide ? Le truc c'est que ca va a l'encontre de tout ce que fait un OS (process qui va ecrire dans la memoire reservee par un autre process). J'ai peur qu'il ne me faille chercher l'artillerie lourde.
Au fait il n'y aura pas de semaphores, c'est du reseau de Petri colore complet, on en mangerait. Tu me dira je peux toujours faire un reseau avec un jeton d'une couleur et deux etats, mais ca risque de se voir.
Kha
[^] # Re: Communication inter-processes
Posté par Jean-Yves B. . Évalué à 2.
Pas du tout. C'est des threads, c'est tout.
=> man mmap et man pthread*
Accessoirement, OpenMP est pas fait _du_tout_ pour ça, AMHA.
[^] # Re: Communication inter-processes
Posté par Jerome Herman . Évalué à 2.
Si je pouvais me limiter a des threads je seras content et ca serait deja fini. Mais non il faut que ce soit vraiment entre des processus differents (N.B c'est une etude de faisabilite donc si ca passe pas tant pis.)
Accessoirement, OpenMP est pas fait _du_tout_ pour ça, AMHA.
On est bien d'accord, mais ca permet de partager la memoire assez facilement et avec une interface de controle. C'est un peu l'histoire du bazooka pour tuer une mouche... C'est bien pour ca que je ne compte pas m'en servir.
Kha
[^] # Re: Communication inter-processes
Posté par Jean-Yves B. . Évalué à 1.
Si tu utilises la mémoire partagée (avec mmap(), clone(), rfork() etc. suivant l'OS), tu es sur une idée des threads.
Si tu utilises les sockets, moins rapide que la mémoire partagée (forcément), tu es dans une optique message-passing qui montre mieux la séparation entre processus. C'est juste un peu casse burnes.
[^] # Re: Communication inter-processes
Posté par Jerome Herman . Évalué à 1.
Un systeme de passage de signaux est obligatoire de toute facon (reseau de Petri oblige) mais j'aimerais le limiter le plus possible, sinon ca sera pas faisable. J'ai pense a une solution et creeant un device (un ramdrive en raw) mais ca me parait carrement bourrin, difficile a faire accepter, et je me sens pas vraiment de me lancer dans des hacks impossibles la tout de suite.
Mais ca se presente de plus en plus comme si les sockets etaient la seule solution a mon probleme. Tant pis il va falloir se resigner....
Kha
[^] # Re: Communication inter-processes
Posté par Sylvain Rampacek (site web personnel) . Évalué à 1.
Quand même pas une place = un process ? si ?
Ou un regroupement de place (un (t/p)flot par exemple) = un process ?
[^] # Re: Communication inter-processes
Posté par Jerome Herman . Évalué à 1.
[^] # Re: Communication inter-processes
Posté par samds . Évalué à 2.
mais si tu as bcp de process, tu peux utiliser une sorte de master qui aurait le role d'un serveur irc en fait, en redirigeant les messages vers les bonnes personnes :)
donc tu n'as qu'un seul port en LISTEN sur la machine, celui du serveur !
vala ma ptite idee
++
sam
# Re: Communication inter-processes
Posté par Hardy Damien . Évalué à 2.
Dam
[^] # Re: Communication inter-processes
Posté par Jerome Herman . Évalué à 2.
Je garde de cote et je jette un oeuil plus tard.
Kha
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.