「ミューテックス」の版間の差分

削除された内容 追加された内容
Melan (会話 | 投稿記録)
m編集の要約なし
1行目:
'''ミューテックス'''(Mutex)とは、[[クリティカルセクション]]で[[アトミック性]]を確保するための[[同期 (情報工学)|同期]]機構の一種。Mutexという語はMUTual EXclusion(相互排他)の略である。
 
[[セマフォ]]をクリティカルセクションの[[排他制御]]に用いる時、セマフォでは(初期値が1でなければ)複数のタスクがクリティカルセクションへ入ることを許可するのに対し、ミューテックスでは同時に一つのタスクしかクリティカルセクションに入ることを許されない(ここで言うタスクとは、[[スレッド (コンピュータプログラミング)|スレッド]]または[[プロセス]]を指す)。挙動はセマフォ変数の初期値を1にする事と等価。
 
狭義には、ミューテックスの場合にそれをロック(P操作)したタスクのみがアンロック(V操作)できるのに対して、セマフォではその様な制約はない。また、ミューテックスには、優先度逆転を防止するための[[優先度継承]](Priority Inheritance)機能や、[[デッドロック]]を防止するための [[優先度上限プロトコル]](Priority Ceiling Protocol )機能などが拡張されていることがある。
 
一般的には異なるタスク間で排他制御を行いたい時に使用するが、[[マルチタスク]]環境ではプロセスの多重起動を防止する用途にも使える。