• 简化内存分配
    • 每个虚拟内存页面都要被映射到一个物理页面
    • 一个虚拟内存页面每次可以被分配到不同的物理页面
  • 共享代码和数据
    • 不同的虚拟内存页面被映射到相同的物理页面 (此例中的 PP 6)
      • 还记得 fork函数 吗,一个 fork 新开的子进程拥有和父进程完全一致的副本,他们虚拟地址空间是完全一模一样的,他们实际对应到磁盘中存放的物理页面是同一个,内容只存放了一份
  • 简化Linking 链接
    • 每个程序使用相似的虚拟地址空间
    • 代码、数据和堆都使用相同的起始地址
    • 也就是说,程序的地址空间的格式是一致的
  • 简化Loading 加载
    • execve函数 为代码段和数据段分配虚拟页,并标记为无效(即未被缓存)
    • 每个页面被初次引用时,虚拟内存系统会按照需要自动地调入数据页