1、刪除命令(一個進(jìn)程)使用open操作獲得父目錄文件對象
2、通過iget增加 目錄文件的索引節(jié)點對象計數(shù)3、讀取目錄文件數(shù)據(jù)
將目錄文件數(shù)據(jù)轉(zhuǎn)化為目錄項對象由于目錄項包含文件的索引節(jié)點 , 類似的 , 需要通過iget增加文件的索引節(jié)點對象計數(shù)4、刪除目錄的目錄項5、減少文件索引節(jié)點對象的硬鏈接計數(shù)i_nlink6、通過iput結(jié)束對文件索引節(jié)點對象的操作 , 使用計數(shù)i_count減一
判斷i_count是否為零 , 如果為零 , 則釋放內(nèi)存然后 , 判斷i_nlink是否為零 , 如果為零 , 則釋放磁盤空間7、通過iput結(jié)束對目錄索引節(jié)點對象的操作 。
總結(jié)
回頭來看遇到的問題 , 其實可以從兩個角度來理解:
索引與數(shù)據(jù)
文件系統(tǒng)與文件、磁盤管理與文件、進(jìn)程管理與文件 , 最核心的都是文件的索引 , 而不是文件的數(shù)據(jù) 。把數(shù)據(jù)和索引分開是理解文件系統(tǒng)的關(guān)鍵 。
一個數(shù)據(jù)構(gòu)建了各式各樣的索引 , 只有索引全部失效 , 此時數(shù)據(jù)才失去意義 , 此時才能釋放
緩存策略
由于操作系統(tǒng)使用 Write back 的策略 , 意味著只有先釋放內(nèi)存 , 才有可能釋放磁盤 。
Why lsof ?
從上面的模型可以很清楚的理解 , 因為目錄已經(jīng)沒有索引到文件了 , 但是打開文件還有索引到文件 , 所以不能立刻釋放磁盤空間 。
為什么 lsof 可以找到已刪除未釋放的文件呢?
lsof , 顧名思義:list open files , 該命令的原理就是查找打開文件的列表 , 因此可以找到已刪除未釋放的文件 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- mac和win都支持的u盤格式 蘋果u盤格式讀取
- java讀取apollo配置 java判斷文件夾是否存在該文件
- struts2和springMVC的區(qū)別 struts2配置文件詳解
- 教你crontab定時執(zhí)行shell腳本 crontab安裝配置文件
- 文件或目錄損壞且無法讀取方法 input上傳文件獲取內(nèi)容
- 移動硬盤無法讀取的解決方法 移動硬盤文件或目錄損壞無法讀取
- u盤手機連接線 ipad怎么讀取u盤
- 讀取車牌門禁系統(tǒng)原理
- thinkphp數(shù)據(jù)庫配置文件在哪 ThinkPHP配置文件的方法
- u盤無法訪問怎么辦 U盤無法讀取怎么辦
