差分

移動先: 案内検索

プロセス間通信

152 バイト追加, 2014年12月18日 (木) 11:36
/* System V IPC */
プロセス間通信の機能というと、System Vで使われていたプロセス間通信の機Vで使われていたプロセス間通信の機能(System V IPC)のセマフォー<ref>セマフォーとは、元々は列車運行で列車が単線の区間に入ることを許されているか、あるいは待つのかを示す信号機なのだそうです。セマフォーとは、元々は列車運行で列車が単線の区間に入ることを許されているか、あるいは待つのかを示す信号機なのだそうです。</ref>(semaphore)、メッセージキュー(message
queues)、シェアードメモリ(shared memory)が有名です。
ソフトウェアの世界では、複数のプロセスが同じ資源の競合を避けるために、ソフトウェアの世界では、複数のプロセスが同じ資源の競合を避けるために、使われる機能で、たとえば複数のプロセスが同時にファイルを書き込みするタ使われる機能で、たとえば複数のプロセスが同時にファイルを書き込みするタイミングが同じになってしまわないように、セマフォを使って待ちます。セマフォは高速に処理できるので、たとえばデータベースのようなアプリケーショイミングが同じになってしまわないように、セマフォを使って待ちます。セマフォは高速に処理できるので、たとえばデータベースのようなアプリケーションでの処理のロックなどに使われています。しかし、同様な処理はmmapを使っても可能ですので、今日ではありまり価値があるとはいえません。むしろ、互換性のために残していると考えた方が良いでしょう。ンでの処理のロックなどに使われています。しかし、同様な処理はmmapを使っても可能ですので、今日ではセマフォがなくては実装ができない、というわけではありません。むしろ、互換性のために残していると考えた方が良いでしょう。
メッセージキューは古いアプリケーションを動かすための互換性のために残さメッセージキューは古いアプリケーションを動かすための互換性のために残されているようなもと考えても良いレベルになって来ています。今日では新規のプログラムに使うような場面を見かけたことがありません。最近ではメッセージキューを使う所を名前つきパイプで済ますことができます。シェアードメモリもmmapが使えます。れているようなもと考えても良いレベルになって来ています。今日では新規のプログラムに使うような場面を見かけたことがありません。最近ではメッセージキューを使う所を名前つきパイプで済ますことができます。シェアードメモLinuxのカーネルが2.6以降ではPOSIX IPCが使えるようになりました。新しくプログラムを作る場合で、メッセージキューなどを使いたい時はSystem V IPCではなくPOSIX IPCを使うべきでしょう。リもmmapが使える今日ではあまり特別な価値はありません。現在もあるのは、互換性のためにあると考えてかまわないでしょう。== POSIX IPC == TBD
== 名前つきパイプ ==