进程之间的文件缓存

时间:2015-03-03 09:44:05

标签: linux windows caching internals

我有兴趣知道在windows和linux下,进程之间的文件缓存是否有效?如果进程A读取整个文件,并且新进程B想要读取它的一部分(或全部),那么假设文件已经在内存中是否有意义?或者只在每个进程中按文件对象进行缓存?

1 个答案:

答案 0 :(得分:2)

Windows和Linux都将文件数据缓存在系统内存中,与进程分开。但是,您无法对在任何给定时间仍在缓存中的文件数量(如果有)做出任何假设。

在较高级别,操作系统维护固定大小页面的缓存(Linux上通常为4 KB,Windows上为256 KB)。每个页面都包含文件的一部分。当您的进程执行读取操作时,操作系统会在缓存中搜索包含您请求的数据的页面。如果找不到您请求的所有数据,它会将所需的页面从磁盘读入缓存,可能会覆盖其他现有页面。