磁盘数据的内存缓存

时间:2016-03-15 23:48:49

标签: caching memory-management operating-system cpu-architecture

我一直都知道主内存缓存从磁盘上的文件读取的数据,但是我无法将其与程序的典型内存使用情况进行协调,如下图所示:enter image description here

如果我在一个非常大的文件fread上使用fgetl2010Stats.txt,上面图表的哪个部分会从磁盘缓存数据?

1 个答案:

答案 0 :(得分:3)

这是您的流程的地址空间。每个进程都有自己的虚拟内存地址空间。除非您mmap一个文件,否则只有read系统调用或同等文件复制时,其数据才会显示在进程的内存中。 (C stdio / iostream函数将在类似系统调用的基础上实现。)

磁盘缓存由操作系统内核管理,操作系统内核必须跟踪内存物理页面的使用方式,以及每个进程的虚拟地址映射。