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