视频地址:
http://player.bilibili.com/player.html?aid=31289365&bvid=BV1iW411d7hd&cid=83961987&page=18
课件地址:
本章对应于书中的9.7-9.8。
- 有一系列保存在磁盘中的数据,首先以页为单位将其划分成很多数据块(虚拟页),然后根据每个数据块的特点(比如读写权限)进行组合,得到若干个由若干个数据块组成的段,通过任务结构对这些段进行描述,包括:段的起始虚拟地址、段的终止虚拟地址、段的读写权限等等,由此就确定了段中每个数据块所能用的虚拟地址范围以及读写权写。接下来根据这个约束,对每个数据块分配一个虚拟地址,然后分配一个指向数据块磁盘位置的指针,确定该数据块的读写权限,然后将所有数据块的信息组合起来,就得到了页表。
页表是描述每个数据块的,任务结构是描述由数据块组成的段,确定了页表的信息。
- 虚拟内存在磁盘的内容称为交换空间
- 对于私有对象,页设置为只读的,页所在的段设置为私有的写时复制的。则当尝试对页进行写操作时,会触发保护故障,然后根据私有的写时复制进行操作。
- 为了能维护自己的状态,需要将状态所在的段标记为私有写时复制的。当没有对其进行修改时,所有都共享相同的物理页,如果对其修改了,就会新建一个物理页,这样就能保证自己的状态不会被别的进程修改。
- 内存映射仅仅是将虚拟内存和磁盘文件对应起来,并没有拷贝到内存中,只是指定虚拟页的初始值。会按需自动加载虚拟页到物理页中。
1 Intel Core i7/Linux内存系统
这里通过介绍运行Linux的Intel Core i7来总结虚拟内存的内容。
1.1 Intel Core i7
现在的Core i7支持48位虚拟地址空间和52位物理地址空间,还兼容32位虚拟和物理地址空间。
