Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

ロックプリミティブ

従来の UNIX システムでは、カーネルコードのすべてのセクションは、sleep(1) の明示的呼び出しによりプロセッサを解放して終了するか、またはハードウェア割り込みによって終了します。Oracle Solaris OS の動作は異なります。別のスレッドを実行するためにカーネルスレッドをいつでも横取りできます。すべてのカーネルスレッドはカーネルアドレス空間を共有し、同じデータの読み取りおよび変更を行う必要がしばしば生じるため、スレッドが共有データを破棄することを防ぐために、カーネルは多くのロックプリミティブを提供します。これらのメカニズムには、(mutex とも呼ばれる) 相互排他ロック、読み取り/書き込みロック、およびセマフォーが含まれます。