System V IPC
とPOSIX IPC
の違いは何ですか?- なぜ2つの基準がありますか?
- 使用するIPC機能を決定する方法は?
答えて
セマフォ、共有メモリ、メッセージキューの両方に同じ基本ツールがあります。これらのツールは、これらのツールとわずかに異なるインターフェースを提供しますが、基本的な概念は同じです。注目すべき違いの1つは、POSIXがSys Vにないメッセージキューの通知機能をいくつか提供していることです。 Sys V IPCは、実用的な意味合いのカップルを持っている長いの周りされている
(mq_notify()
を参照してください。) -
まず、POSIX IPCはあまり広く実装されています。POSIX IPC用のPythonラッパーとits documentation lists what I know about POSIX IPC implementations on various platformsを書きました。
このドキュメントに記載されているすべてのプラットフォームで、Sys V IPCは完全にAFAIKに実装されていますが、POSIX IPCは完全に実装されていません。
相対的な年齢の第2の意味は、POSIX IPCがSys V IPCをしばらく使用した後に設計されたことです。したがって、POSIX APIの設計者は、Sys V APIの長所と短所から学ぶことができました。その結果、POSIX APIはより簡単で であり、IMOを使いやすくなりました.Sys V APIよりも推奨されています。
この2つを比較するためにパフォーマンステストを実行したことはありません。私は古いAPI(Sys V)にはパフォーマンス調整のためにもっと多くの時間があったと思うだろうが、それは実際のテストに代わるものではない。
なぜ2つの標準があるのですか?POSIXは、それがSys V標準の改善だと思ったので標準を作成しました。しかし、誰もがPOSIX IPCが優れていることに同意すれば、多くの多くのプログラムがSys V IPCを使用しており、すべてをPOSIX IPCに移植するには数年かかるでしょう。実際には、新しいコードがすべて明日の時点でPOSIX IPCを使用していたとしても、Sys V IPCは長年にわたり固執していました。
あなたが何をしようとしているかについて多くのことを知らずに使用する必要があるとは言えませんが、あなたがここで回答した場合は、自分で決定するのに十分な情報が必要です。
- SystenのVおよびPOSIX IPCは同じものの二つの異なる、しかし関連の実装です。
「UNIX System Vの、一般的に略さSysVの(通常は発音-もののめったに書かない-として 『』システムファイブ)、Unixオペレーティングシステムの最初の商用バージョンのいずれかである。それはもともとによって開発されましたアメリカ電話&テレグラフ(AT & T)と1983年に最初にリリースされました。
-Wikipedia
「POSIXまたは 『[Unix用]ポータブルオペレーティングシステムインタフェースは、』アプリケーション・プログラミング・インターフェース(API)を定義するためにIEEEによって指定された関連規格の家族の名前です」
-Wikipedia
Vが早いたSystm。 POSIXはIEEEの標準化イニシアチブから発展しました。
GNU/Linuxは、POSIX準拠の
partially
です。どちらを使用するかは、このIPCを使用しているOSによって異なります。ほとんどのベンダーはPOSIX
に向かっています。
Unix Network Programming: Interprocess Communications v. 2 by Richard Stevensこれらの両方をよく見てください。
Unix Network Programming http://ecx.images-amazon.com/images/I/51V1DSSA8NL._SL500_AA300_.jpg
System V IPCが古いバージョンで、POSIX IPCが新しいバージョンです。しかし、いくつかの点でいくつかの違いがあります。 System Vの下、これらは整数で与えられている間、常にではないのPosixは、System Vの
よりも優れているPosixのためのセマフォ、キューと共有メモリは、ASCII文字列名を持ちます。
System Vセマフォは、プロセスが終了すると自動的に解放されます(semop SEM_UNDOフラグ)。 Posixにはこのようなことはありません。
LinuxとFreeBSDでは、mq_openによって与えられるハンドラは基本的にポーリング/エピロー/選択/キューイングが可能なファイル記述子であるため、posixキューの大きな利点があります。
- 1. System V IPCの制限
- 2. .NETコアPOSIX IPC
- 3. システムv IPCの「キー」とは何ですか? System Vメッセージキューで
- 4. Linuxでは、XSI/System-V IPCメカニズムが古くなっていますか?
- 5. ローカルIPCのPOSIXメッセージキューまたはUnixドメインソケット
- 6. パイプ、フォーク、ノンブロッキングIPC
- 7. Mono&.NETのIPC
- 8. IPCウィンドウのサービスウィンドウフォーム
- 9. one-to-many IPC
- 10. RProperty IPC通信
- 11. IPCリモート問題
- 12. Java IPCのベストプラクティス
- 13. AndroidアプリケーションのIPCメカニズム
- 14. kextモジュール間のIPC
- 15. WindowsサービスのIPCメソッド
- 16. PHP IPC with geth Ethereum
- 17. IPC - Excelと.Netアプリケーション
- 18. Python IPC one to many
- 19. Android Couchdb - libcouchとIPC Aidlサービス
- 20. ローカルIPC用のメモリベースのデータサーバ
- 21. C#イベントのIPC全体
- 22. Unixユーザ空間のリアルタイムIPC
- 23. ShellExecuteでのプロセス間のIPC
- 24. UWP IPC:バックグラウンド>フォアグラウンド通信
- 25. VB6と.netアプリケーションのベストIPC
- 26. Cデーモンの多対1 IPC
- 27. マイクロサービス - IPC認証/認可
- 28. Android IPCの最大トランザクションサイズ?
- 29. シグナル/スロットを持つPySide IPC
- 30. システムサービス間のAndroid IPCセキュリティ
質問に記載されているプロセス間コミュニケーションについては何も話しません。 –