我有兴趣了解在 windows 和 linux 下,文件缓存是否在进程之间工作?如果进程 A 读取整个文件,而新进程 B 想要读取其中的一部分(或全部),假设文件已经在内存中是否有意义?还是缓存只发生在每个进程中的每个文件对象?
最佳答案
Windows 和 Linux 都在系统内存中缓存文件数据,与进程分开。但是,您不能对在任何给定时间有多少文件(如果有的话)仍在缓存中做出任何假设。
在较高级别,操作系统维护固定大小页面的缓存(在 Linux 上通常为 4 KB,在 Windows 上为 256 KB)。每个页面包含一个文件的一部分。当您的进程进行读取时,操作系统会在缓存中搜索包含您请求的数据的页面。如果它找不到您请求的所有数据,它会从磁盘将所需页面读入缓存,可能会覆盖其他现有页面。
关于linux - 进程间文件缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28828517/