Show page source of internal24-85-メモリiノードの確保 #25085

[[PageNavi(internal24-navi)]]

{{{ comment
h2w-title:メモリiノードの確保
}}}
 

= メモリiノードの確保 = #SECTION03420000000000000000

iノード域の確保は、伝統的UNIXと同じigetという関数で実現されている。igetは指定されたiノード番号に対応するiノード域を確保し返却する。iノード域の初期化は各ファイルシステムが行う。

{{{
   iget(スーパブロック, iノード番号, ...)
        if(iノードキャッシュ内に目的のiノードが見つかった(find_inode関数))
              return 見つかったiノード
        iノード番号に対応するメモリiノードを作成する(get_new_inode関数)
        return 新規に作成したiノード
}}}

キャッシュ内に目的のiノードが見つからなかった場合、以下のget_new_inode関数により、空のiノード域を確保し初期化を行う。

{{{
   get_new_inode(iノード番号)
        iノード域の確保(alloc_inode関数) 
        iノード域をinode_in_useリストに繋ぐ
        iノード域をキャッシュに登録
        iノード初期化
        ディスクinode域の読み込み(read_inodeオペレーション)
        return 拡張したiノード域
}}}

----

''(NIS)HirokazuTakahashi [[BR]]2000年12月09日 (土) 23時55分06秒 JST''1

[[PageNavi(internal24-navi)]]