[[PageNavi(internal22-navi)]]
{{{ comment
h2w-title:ディスクブロックのバッファへの読み込み
}}}
= ディスクブロックのバッファへの読み込み = #SECTION03250000000000000000
バッファの確保はbread関数によって行われる。(伝統的UNIXと同じ)大雑把なアルゴリズムは以下のとおり
{{{
bread(dev, blkno, size)
getblk関数でバッファを確保
if(既にバッファの内容が有効である)
return バッファ
ドライバに対してI/O要求を発行
バッファのI/O完了の待ち合わせ
return バッファ
}}}
breadと似た関数で一度に複数のバッファに対する先読み要求をだすbreada関数も存在する。全てのバッファに対するI/O要求を発行した後、先頭のバッファに対するI/Oの完了だけを待ち合わせる。一般的なファイルのシーケンシャルアクセスの高速化に効果がある。
----
''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST''1
[[PageNavi(internal22-navi)]]