进程间文件缓存

File Caching between processes

我想知道在 windows 和 linux 下,文件缓存是否在进程之间工作?如果进程 A 读取整个文件,而新进程 B 想要读取其中的一部分(或全部),假设文件已经在内存中是否有意义?还是缓存只发生在每个进程中的每个文件对象?

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

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