ページ読み込み要求

まず、ページ読み込み要求処理のアルゴリズムに関して説明する。

    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秒 JST
1