2016-04-08 1 views
0

Je cours sous linux. J'ai deux processus, disons side-process et main-process. processus parallèle interagit avec le pilote et obtient SIGIO du pilote et remplit les informations du pilote.communication interprocessus en design linux

Le processus B doit obtenir des informations du processus côté processus à chaque fois que le processus parallèle obtient SIGIO et que le processus secondaire génère alors des événements et décide de la procédure à suivre. le processus principal est une sorte de processus central et interagit avec d'autres dizaines de processus. Comment devrait être la communication entre les processus secondaires et les processus principaux? comment notifier le processus principal Quand SIGIO est en cours de traitement.

+3

Peut-être une [file d'attente de messages] (http://man7.org/linux/man-pages/man7/mq_overview.7.html)? Peut-être [sockets locaux] (http://man7.org/linux/man-pages/man7/unix.7.html)? Peut-être nommé [pipes] (http://man7.org/linux/man-pages/man7/pipe.7.html)? Tout dépend vraiment de vos besoins. Expérimentez toutes ces méthodes, ainsi que d'autres méthodes telles que la mémoire partagée, les sockets réseau normaux et même les fichiers simples, jusqu'à ce que vous trouviez le moyen le mieux adapté à votre cas d'utilisation et avec lequel vous vous sentez à l'aise. –

+1

dbus est déjà en cours d'exécution et possède un module Perl. – stark

+0

Est-ce que le processus principal démarre le processus secondaire? –

Répondre

1

Cette question est très large vraiment - si bien qu'il y ait un document entier sur la façon de Ipc en perl - perlipc - pour soutenu IO Je suggère envisager un pipe, ou effectivement possible regarder en utilisant threads et un modèle de mémoire partagée .