问题

  1. swap space:
  2. 内存映射:比read/write 少一次内存拷贝,因为 read 需要先从磁盘拷贝到内核缓冲区,再拷贝到用户缓冲区,而内存映射,在发生缺页时会直接将数据从磁盘拷贝到用户缓冲区。

Linux中的进程可以通过内存映射文件来访问文件数据。这个特性使我们可以把一个文件映射到进程空间的一部分而该文件就可以像位于内存中的字节数组一样被读写。把一个文件映射进来使得随机读写比使用read和write之类的I/O系统调用要容易得多。共享库的访问就是用这种机制映射进来后进行的。一个文件被同时映射到两个进程中,但在不同的虛拟地址上。

  1. 虚拟空间和物理内存都分为 内核空间 和 用户空间。

物理内存

虚拟内存

numa

Reference

  1. What Every Programmer Should Know About Memory