複数のデーモン(1つのゲートウェイと複数のサービス、すべて同じノードで実行)があり、そのうちのいくつかのサービスデーモンは、ネットワークに到着する要求に「ソフトリアルタイム」で応答する必要があります。私のアーチはゲートウェイがあるようなものです。あるプロトコルタグに基づいて着信パケットを対応するサービスデーモンにルーティングするデーモン。サービスデーモンは要求を処理し、応答をgwデーモンに送り返します。gwデーモンはネットワークに接続します。すべてうまく機能していますが、「ソフトリアルタイム」を達成しておらず、遅れが見られます。
ゲートウェイとサービスデーモン間でネットワーク接続を共有し、以下の方法でこれを即興で行う予定です。パケットが接続に到着したときに、ソケットからパケットをデキューせずにgwデーモンが接続する通知スキームを使用します。キューはプロトコルヘッダーを調べ、対応するサービスデーモンに「データが到着した」ことを「通知」します。通知を受信すると、サービスデーモンはバイナリセマフォを取得し、ソケットキューからデータをデキューします。そのようなセマフォは2つあり、1つは書き込み用、もう1つは読み取り用です。サービスデーモンがデータを送信する必要がある場合、書き込みセマフォを取得してデータを送信します。ゲートウェイデーモンから「データ到着」通知を受信すると、読み取りセマフォを取得し、ソケットからデータをデキューします。
誰かがこの計画をいつでも試しましたか?このアプローチに問題がありますか?plsコメント/アドバイス。