2016-06-14 8 views
1

セマフォとmutexは、スレッドとプロセスの両方、またはスレッドのみ、またはプロセスのみを同期させますか?セマフォとミューテックスの動作に疑問がある

編集:私の間違いはCで、シェルではありません。私はシェルを介してプログラムして以来、私はそれを間違えた。そしてもう一つ、通信と同期は同じですか?

+1

特に "シェル"のミューテックス/セマフォーメカニズムは何を話していますか?シェルは一般的にその機能を提供しません。シェルは、ファイルロックを提供します。これは、mutexの機能の一部を達成するために使用できます。しかし、あなたが何を正確に言及しているかははっきりしていません。 – kaylum

+0

私の悪い..それはシェルではない –

+1

[セマフォとスレッドとプロセスの同期のためのミューテックス]の可能な複製(http://stackoverflow.com/questions/12251701/semaphores-and-mutex-for-thread-and-process-同期) – kaylum

答えて

1

プロセス間で同期します。

POSIXセマフォでは、sem_init(3)のpshared引数を使用して選択できます。pshared = 1を指定すると、共有メモリの領域にアクセスできるすべてのタスク(スレッドとプロセスの可能性があります)セマフォat。

Pthread mutexesスレッドで処理します。 (Pthreadにはセマフォと機能的に同等の条件変数もあります)。

スレッドバージョンは、共有カウンタを管理できるプロセスであるため、パフォーマンスは向上しますが、セマフォではカーネルがそれを実行する必要があります。

同期化は、タスクが進行することができるか、他のタスクと協調して待機する必要があるかどうかを判断することであり、タスク間で共有されるセマフォを増分および減分するなどの通信が必要です。

関連する問題