以下にその大雑把なアルゴリズムを示す。アルゴリズム中に付いている◆印は同期書き込みを、◇印は遅延書き込みを表す。
ext2_getblk(iノード、オフセット, ...)
ファイルオフセットをブロック番号に変換(ext2_get_block関数)
空のバッファを確保(getblk関数)
if (新規割り当てれたブロックであった場合) {
バッファをクリア(memset関数)
バッファを有効にする(mark_buffer_update関数)
◇バッファの遅延書き込み要求をだす(mark_buffer_dirty関数)
}
バッファを返却
下図は、ちょうど二段間接ブロックが作成される時の、データの更新順を表したものである。◆の後ろに書かれた番号が更新順を表している。
問題点など
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1