9.4 虚拟内存作为内存管理工具
图9-9简化了一下,每个进程旁边画的“虚拟地址空间”就是页表,蓝色的表示缓存了的虚拟页,白色的表示未分配的或者未缓存的虚拟页
简化链接就是说所有程序的可执行目标文件的内存格式都是相同的(比如代码段的虚拟地址都是从0x400000开始的);结果是CPU在执行任何一个进程的时候,都可以认为进程的内存格式不变(比如代码段的开始都是0x400000),于是就可以发送相同的地址得到相同的位置,然后由页表映射到当前正在执行的进程的真实的物理内存;在这种情况下,链接器可以假设每个程序都被加载到相同的位置,于是就可以提前知道这些东西要加载到哪里,就可以重定位所有的引用
简化加载中,分配虚拟页指的是加载器首先决定好代码段和数据段应该放在进程虚拟地址空间的什么位置(例如,代码段从0x400000开始)。分配虚拟页+将页表条目指向目标文件中适当的位置就是内存映射

浙公网安备 33010602011771号