cmake读取配置文件操作 虚拟文件系统的作用( 三 )


1、删除命令(一个进程)使用open操作获得父目录文件对象
2、通过iget增加 目录文件的索引节点对象计数3、读取目录文件数据
将目录文件数据转化为目录项对象由于目录项包含文件的索引节点 , 类似的 , 需要通过iget增加文件的索引节点对象计数4、删除目录的目录项5、减少文件索引节点对象的硬链接计数i_nlink6、通过iput结束对文件索引节点对象的操作 , 使用计数i_count减一
判断i_count是否为零 , 如果为零 , 则释放内存然后 , 判断i_nlink是否为零 , 如果为零 , 则释放磁盘空间7、通过iput结束对目录索引节点对象的操作 。
总结
回头来看遇到的问题 , 其实可以从两个角度来理解:
索引与数据
文件系统与文件、磁盘管理与文件、进程管理与文件 , 最核心的都是文件的索引 , 而不是文件的数据 。把数据和索引分开是理解文件系统的关键 。
一个数据构建了各式各样的索引 , 只有索引全部失效 , 此时数据才失去意义 , 此时才能释放
缓存策略
由于操作系统使用 Write back 的策略 , 意味着只有先释放内存 , 才有可能释放磁盘 。
Why lsof ?
从上面的模型可以很清楚的理解 , 因为目录已经没有索引到文件了 , 但是打开文件还有索引到文件 , 所以不能立刻释放磁盘空间 。
为什么 lsof 可以找到已删除未释放的文件呢?
lsof , 顾名思义:list open files , 该命令的原理就是查找打开文件的列表 , 因此可以找到已删除未释放的文件 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: