1

同じプロセスの親プロセスの子プロセス間の通信に問題があります。

  • 親プロセスは N 個の子プロセスを作成します。
  • 各子プロセスには ID があります。
  • 最初の子の ID は N、2 番目は (N-1)、...、最後は (1) です。

プロセス i は、プロセス j= i-1 (兄弟の左) からシグナル SIGRTMIN を受信した後にのみ動作を継続できます。

プロセス i は、プロセス j = i+1 >(brother right) からシグナル SIGRTMIN+1 を受信した後にのみ終了できます。

親プロセスは、すべての子プロセスが終了した後にのみ終了できます。

問題は 、IPC(メッセージのキュー、共有メモリ、セマフォ)またはIO(ソケット、チューブ、パイプ、ファイル)を使用せずに、プロセスが兄弟のプロセスIDを左に、兄弟のプロセスIDを右に知る方法です。

For the question of brother left, プロセス ID の配列を使用します。より明確には、親プロセスでは、配列は作成する各子のプロセス ID を保持し、プロセスが作成されると、プロセス i-1 のプロセス ID を認識します (プロセスの ID = N-i+1)。

しかし、プロセス i+1 のプロセス ID を取得する方法がわかりません (兄弟)。

4

1 に答える 1

0

リアルタイムシグナルを使用すると、値を送信できます。したがって、プロセスがシグナル SIGRTMIN を左の兄弟に送信すると、彼は pid を送信できます ,)

それがあなたを助けることを願っています。

于 2014-05-15T09:16:54.190 に答える