セマフォは IPC メカニズムですか?
4 に答える
はい、多くのプラットフォームで、セマフォはプロセス間で同期できます。これには「名前付き」セマフォを使用します。ファイルシステム オブジェクトと同様に、複数のプロセスが名前を介してオブジェクトにアクセスします。
POSIX では、 を介して名前付きセマフォを作成できますsem_open()
。名前のないセマフォの場合、 の 2 番目のパラメーターsem_init()
がゼロ以外の場合、プロセス間である可能性がありますが、名前のないプロセス間セマフォがどのように機能するのか正確にはわかりません。
ENOSYS
一部のシステムでは、プロセス間セマフォがサポートされていない場合 (OpenBSD など)、これらの関数が失敗する可能性があることに注意してください。
CreateSemaphore()
Windows では、 @sergiom が言及したように、名前付きセマフォを作成できます。
実際にはセマフォは同期ツールですが、複数のプロセスからアクセスされる IPC bcoz としてカウントされます
オペレーティングシステムに依存します
Windows では、CreateSemaphore() および OpenSemaphore() 関数を使用してプロセス間で名前付きセマフォにアクセスできます。
http://msdn.microsoft.com/en-us/library/ms682438%28VS.85%29.aspx
POSIX セマフォは、名前なしまたは名前付きにすることができます。名前のないセマフォはプロセス メモリに割り当てられ、初期化されます。名前のないセマフォは、セマフォの割り当てと初期化の方法によっては、複数のプロセスで使用できる場合があります。[...]
もっと知りたいですか?