虚拟存储器可以作为存储器的管理工具
操作系统为每一个进程提供一个独立的页表,提供独立的虚拟空间。多个虚拟页面可以映射到同一个共享物理页面。
优点:
1.简化了链接:独立的地址空间允许每个进程的存储器映像使用相同的基本格式,不管代码和数据实际放在物理存储区的位置,如上节的进程图。极大的简化了链接器的设计和实
现,允许链接器生成全链接的可执行文件,这些可执行文件独立于物理存储器代码和数据的最终位置。
2.简化了加载:方便加载可执行文件和共享对象文件。在ELF可执行文件里面,.text和.data节是连续的。要把这些节加载到一个新创建的进程里,Linux加载器分配虚拟页一个连续的片,地址0x08048000(32) 位开始,把这些虚拟页标记为无效的,将页表条目指向目标文件的适当位置。加载器从不拷贝任何数据从磁盘到存储器。每个页初次被引用时,要么是CPU取指令时候引用的,要么是一条正在执行的指令引用一个存储器位置是引用的,虚拟存储器系统会按照需要自动的调入数据页。
3.简化共享:独立的地址空间为操作系统提供了一个管理用户进程和操作系统自身之间共享的一致机制,每个进程都有自己的私有代码数据,堆和栈区域,这种情况下操作系统创建页表,将相应的虚拟页映射到不同的物理界面。如果需要共享的时候,操作系统把不同进程里面适当的虚拟页面映射到相同的物理页面。安排多个进程共享这部分代码的一个拷贝。
4.简化了存储器的分配:可以简答的分配额外的存储器,当一个运行的用户在要求额外堆空间时,操作系统分配一适当的数字k个连续虚拟存储器界面,并将他们映射到物理存储区中任意的k个连续的物理页面。由于页表的工作方式,操作系统没有必要分配连续个,可以分散在物理存储器。