Show page source of internal24-299-カーネルロック関数の動作詳細 #25002

[[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)]]