シンプル

シンプル
開発者株式会社iCanProgram
安定版リリース
2012年1月26日 SIMPL v3.3.7 リリース[ 1 ] / 2012年1月26日 (2012年1月26日
リポジトリ
オペレーティング·システムリナックス
タイププロセス間通信
ライセンスGNU劣等一般公衆利用許諾書[ 2 ]
Webサイトwww .icanprogram .com /simpl /

SIMPL(Synchronous Interprocess Messaging Project for LINUX)は、共有メモリやUnixパイプ[ 3 ]などのユーザー空間技術を使用してLinuxライブラリを追加し、プロセス間メッセージングメカニズムを実装することで、 QNXスタイルの同期メッセージパッシングを可能にする無料のオープンソースプロジェクトです。 SendMssgReceiveMssgReplyMssg

機構

メッセージを送信するクライアントスレッドは、サーバースレッドが受信メッセージの確認応答を送信し、メッセージを処理し、応答を実行するまで、ブロック状態(プロセススレッドの実行が一時的に停止)になります。サーバースレッドが応答すると、クライアントスレッドは準備完了状態(ブロック解除)になります。サーバースレッドは通常、クライアントスレッドからのメッセージ受信を待機するためにループ状態になります。

ブロッキングは、クライアント スレッドの実行を同期してブロックし、他の形式の IPC のように次にどのスレッドを実行するかを決定するためのカーネルによる明示的なプロセス制御作業を必要とせずに、サーバー スレッドの実行を暗黙的にスケジュールします。

送信および受信操作はブロッキングおよび同期であり、応答はブロックされません。クライアントスレッドは既に応答を待機してブロックされているため、追加の同期は必要ありません。サーバースレッドはクライアントに応答し、カーネルお​​よび/またはネットワークコードが応答データを非同期的にクライアントスレッドに渡し、実行準備完了としてマークする間、実行を継続します。[ 4 ]

同期メッセージパッシングの利点

同期メッセージ パッシングには次の利点があります。

  • シンプルなコーディングモデルは複雑なシステムの分割作業を簡素化し、テストに役立ちます。
  • 固有のスレッド同期により、通信プログラムの実行を調整します。
  • データのバッファリングは不要
  • ネットワークインタラクションの簡素化 - スレッドは異なるマシン上の異なるプログラムに存在できる

制限事項

SIMPL はスレッドセーフではないようです。

類似プロジェクト

Linuxで利用可能なQNXに着想を得た同期メッセージパッシングプロジェクトがもう1つあります。Cogent Real-Time Systems, Inc.のSam Roberts氏とAndrew Thomas氏によるSRR IPC(Send/Receive/Replyの略)は SIMPLプロジェクトに関連し、QNX互換のAPIレイヤーを追加します。SRRは、コードの移植を容易にするためにQNX API互換となるように設計されたロード可能なカーネルモジュールです。

参照

参考文献

  1. ^ “2012Jan26 SIMPL v3.3.7 リリース - Mac および Cygwin コンパイルに対応” . 2012年1月26日. 2012年4月16日時点のオリジナルよりアーカイブ2012年3月16日閲覧。
  2. ^ 「SourceForge SIMPL-同期プロセス間メッセージング追加プロジェクト詳細ライセンス」 。 2012年3月16日閲覧
  3. ^ 「SRR -- Linux向けQNX API互換メッセージパッシング」 。 2016年3月4日時点のオリジナルからアーカイブ2015年2月4日閲覧。このモジュールはSIMPLプロジェクトと関係があり、私はsimplメーリングリストに登録しています。FC Softwareは共有メモリとUnixパイプを使用してS/R/Rメッセージパッシングを実装しています。
  4. ^ QNX. 「プロセス間通信 (IPC)」 . 2012年3月16日閲覧