• Showing Page History #16021

Show page source of internal22-228-カーネルロック関数の動作詳細 #25305

[[PageNavi(internal22-navi)]]

{{{ comment
h2w-title:カーネルロック関数の動作詳細
}}}
 

= カーネルロック関数の動作詳細 = #SECTION06470000000000000000

  *  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()関数 
    *  再スケジューリング後、再びカーネルロックを行い、システムコール	処理、ページフォルト処理を継続する。  
{{{
          if(current->lock_depth >= 0) spin_lock(&kernel_flag);
}}}

----

''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1

[[PageNavi(internal22-navi)]]