ミューテックス
ミューテックスの起源はディジタル・イクイップメント・コーポレーションにおける、機材の使用管理が由来である。使用可能な機材の上には小さな旗が置かれ、その旗を手にいれた者がその機材の使用権利を獲得する。この排他制御からヒントを得たVMS開発チームはVMSの排他制御にミューテックスを実現した。そしてその技術はデヴィッド・カトラーを筆頭としたVMS開発チームと共にMicrosoft Windows NTにも移された(著:戦うプログラマーより)。
POSIXスレッド (Pthreads) のミューテックスは、VMSやWin32と違い、自らP操作したミューテックスをさらにP操作するとデッドロックを起こす(そして誰もロックを解除できなくなる)。そのため若干取り扱いは不便である。再帰ロックを許可する場合は、ミューテックスの初期化時にPTHREAD_MUTEX_RECURSIVEを設定した属性を使用する必要がある。
ミューテックスを実現する方法は様々あり、大きくハードウェアによる方式とソフトウェアによる方式に分けられる。ソフトウェアによる方式にも、様々なアルゴリズムが提案されている。詳しくは、排他制御の実施を参照。
ミューテックス機構を使用するには、プログラムでミューテックスオブジェクトを作成する必要がある。ミューテックスオブジェクトはシグナルおよび非シグナルの二つの状態を持ち、それぞれミューテックスオブジェクトが所有可能および所有不可能である事を表す。