linux - 进程间文件缓存

标签 linux windows caching internals

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

最佳答案

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

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

关于linux - 进程间文件缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28828517/

相关文章:

caching - 使用来自多台机器的外部查询结果更新 Redis

cocoa - 创建 CGImageRef 而不缓存任何内容

c - 可能 `epoll_ctl`修改传递给它的 `epoll_event`结构?

windows - 如何在动态创建的 silverlight 子窗口中显示 html 页面

linux - 在 bash 脚本中比较两个文件时没有这样的文件或目录错误

linux - 当 Windows PATH 的文件夹名称带有空格时,WSL(Windows 子系统 linux)会破坏 $PATH

windows - 如何在构建 boost 后列出失败的目标?

java - 如何在多个模块/项目中配置多个缓存管理器 spring cache java

python - 将 SIGINT 信号委托(delegate)给子进程,然后清理并终止父进程

linux - 与 ssh 一起使用时看不到 nohup 命令的输出