Linux中“一切皆文件”的思想想必是尽人皆知,从文件系统到虚拟文件系统,从inode和dentry到文件,从文件到命名空间,从命名空间再回到进程,弄清这些概念之间的关系和联系,对于更好的理解Linux文件系统是非常重要的,下面有两篇很好的文章值得参考。
无论是理论还是代码,深入理解Linux内核一书以及很多资料都讲解的非常详尽,所以不妨从整体上再次回顾一番。
Linux 文件系统剖析
页高速缓存
Linux中有很多种缓存机制,内存缓存,文件系统的目录项缓存和索引节点缓存等。
其实缓存就是一个空间换时间的典型,利用内存空间将一些资源暂时缓存起来,从而减少IO等相对耗时的工作时间。
页高速缓存是开辟出一块内存,然后根据一定规则把磁盘数据缓存到内存中,并根据页面的状态进行管理。
既然是缓——存,那就不是真正的存储,这样就必然会产生数据一致性的问题,
比如多个进程同时操作一个文件,或者同一个进程又读又写,或者出现断电等使内存数据可能丢失的情况。
为了解决这类问题,Linux采用了脏页标记和pdflush内核线程来定期查找、将脏页写入磁盘。
版权声明:欢迎交流 ,转载请注明作者及出处。自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0