| 開発者 | 株式会社アイキャンプログラム |
|---|---|
| 安定リリース | 2012年1月26日 SIMPL v3.3.7 リリース[1]
/ 2012年1月26日 |
| オペレーティング·システム | リナックス |
| タイプ | プロセス間通信 |
| ライセンス | GNU劣等一般公衆利用許諾書[2] |
| Webサイト | ホームページ |
SIMPL (Synchronous Interprocess Messaging Project for LINUX)は、共有メモリやUnixパイプ[3]などのユーザー空間技術を使用してLinuxライブラリを追加し、プロセス間メッセージングメカニズムを実装することで、 QNXスタイルの同期メッセージパッシングを可能にする無料のオープンソースプロジェクトです。
SendMssgReceiveMssgReplyMssg
機構
メッセージを送信するクライアント スレッドは、サーバー スレッドが受信メッセージの確認を送信し、メッセージを処理し、応答を実行するまで、ブロックされます (プロセス スレッドの実行が一時的に中断されます)。サーバー スレッドが応答すると、クライアント スレッドは READY (ブロック解除) になります。サーバー スレッドは通常、クライアント スレッドからのメッセージを受信するまでループします。
ブロッキングは、クライアント スレッドの実行を同期してブロックし、他の形式の 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 互換となるように設計された ロード可能なカーネル モジュールです。
参照
参考文献
- ^ 「2012Jan26 SIMPL v3.3.7 リリース - Mac および Cygwin コンパイルの有効化」 2012-01-26 . 2012-03-16閲覧。
- ^ 「SourceForge SIMPL-同期プロセス間メッセージング追加プロジェクト詳細ライセンス」 。2012年 3 月 16 日閲覧。
- ^ 「SRR -- Linux 用の QNX API 互換メッセージ パッシング」 。2015年2 月 4 日閲覧。
このモジュールは SIMPL プロジェクトと何らかの関係があり、私は simpl メーリング リストを購読しています。FC Software は、共有メモリと Unix パイプを使用して S/R/R メッセージ パッシングを実装しています。
- ^ QNX. 「プロセス間通信 (IPC)」 . 2012 年 3 月 16 日閲覧。
外部リンク
- シンプル
- SourceForge、SIMPL-同期プロセス間メッセージング
- Amazon - SIMPL 方式のプログラミング
- SRR モジュール srripc Linux カーネル モジュール、バージョン 1.4.43 2010 年 1 月 13 日
- SRR - Linux 用の QNX API 互換メッセージ パッシング
- Cogent DataHub ソフトウェア ダウンロード ページ (SRR カーネル モジュールを含む)
