Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
まず、ページ読み込み要求処理のアルゴリズムに関して説明する。
block_read_full_page(読み込むページ, getblock関数) ページにまだバッファヘッドが割り付けられていなければ、 バッファヘッドを確保しページとリンク(create_empty_buffer関数) do { if(バッファが有効) continue; if(バッファがブロックと対応付けられていない) { getblock関数を利用し、inodeとファイルオフセットから ブロック番号を求める。 ブロックの割り当てられてない領域なら、バッファの0クリア。 } バッファヘッドを初期化 (I/O完了コールバック関数としては、end_buffer_io_asyncを登録) } while(バッファのある間) I/O要求の発行(ll_rw_block関数)
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[ページ情報]
更新日時: 2008-08-27 14:18:22, 更新者: hiromichi-m
[権限]
表示:無制限, 編集:ログインユーザ, 削除/設定:メンバー