[[PageNavi(internal24-navi)]]
{{{ comment
h2w-title:カーネルロック関数の動作詳細
}}}
= カーネルロック関数の動作詳細 = #SECTION07560000000000000000
* kernel_flag
* Linuxカーネルのロックのためのフラグ
* task_struct中のメンバlock_depth
* Linuxカーネルロックのネスト数
* lock_kernel()関数
* カーネル資源をロックする。
{{{
if(current->lock_depth++ >= 0) spin_lock(&kernel_flag);
}}}
* unlock_kernel()関数
* カーネル資源のロックを解除する。
{{{
if(--current->lock_depth <= 0) spin_unlock(&kernel_flag);
}}}
* release_kernel_lock()関数
* スケジューラを呼び出しCPUを放棄する時に、 一時的にカーネルロックを解除する。
{{{
if(current->lock_depth >= 0) spin_unlock(&kernel_flag);
}}}
* reacquire_kernel_lock()関数
* 再スケジューリング後、再びカーネルロックを行う。 カーネルロック状態をrelease_kernel_lock()関数呼び出し 以前の状態に戻す。
{{{
if(current->lock_depth >= 0) spin_lock(&kernel_flag);
}}}
----
''(NIS)HirokazuTakahashi [[BR]]2000年12月09日 (土) 23時55分06秒 JST''1
[[PageNavi(internal24-navi)]]