メモリiノードの解放

利用が終わったiノード域の解放は下記iput関数にて実現されている。iノード域の解放といっても、メモリ上から消えてなくなる訳ではなく、iノード域の参照数を一つ減らすだけである。参照数が0でも即フリーリストに戻される訳ではなく、フリーリストinode_unusedに戻す候補となるだけである。

   iput(iノード)
         iノードの参照数を一つ減らす
         if(参照数が1以上なら) return;
         if(既にファイルが削除されている) {
               iノードキャッシュのリンクを切る
               ディスク上のiノードの解放(後で詳しく説明)
         }
         if(iノードキャッシュ上にない) {
               iノードをフリーリストinode_unusedにリンク
         } else {
               iノードをリストinode_in_useにリンク
         }

(NIS)HirokazuTakahashi
2000年06月11日 (日) 22時29分57秒 JST
1