页面缓存如何在内存中工作?特别是在Linux

时间:2015-06-03 22:50:38

标签: caching process kernel

众所周知,操作系统实现了一种页面机制来实现快速访问。每当进程请求内核将二进制文件从磁盘加载到其内存空间时,内核将首先查看页面缓存。如果二进制文件已缓存在页面缓存中,则无需访问硬件磁盘。通过这种方式,操作系统可以减少开销。

但是,我有疑问。

众所周知,操作系统将帮助页面缓存在物理内存中分配页面,以保存可能很快就会使用的数据。当内核在页面缓存中发现进程的请求数据时,内核会将哪些内容传递给进程?内核是否会将包含需要数据的PageCache页面的内容复制到分配给此进程的新页面?或者内核只返回PageCache中页面的指针?

1 个答案:

答案 0 :(得分:0)

有许多操作系统,所以如果我们谈论任何真实的,未来的或理论上的操作系统,答案可能是"要么"。

但是,对于我所知道的所有实际操作系统,页面只会在内存中一次。创建每个页面的副本效率非常低,这样做不会带来任何好处。