虚拟存储器作为存储管理工具

一.简化共享

虽然我们假设有一个单独的页表,将一个虚拟地址空间映射到物理地址空间,实际上,操作系统为每个进程都提供了一 个独立的页表,因而也就是一个独立的虚拟地址空间,下图展示了基本思想,在这个示例中,进程i的页表将VP 1映射到PP 2,VP 2映射到PP 7,相似的,进程j的页表将VP 1映射到PP 7,VP 2映射到PP 10,多个虚拟页面可以映射到同一个共享物理页面上.

二. 简化链接:

独立的地址空间允许每个进程的存储器映像使用相同的基本格式,而不用管代码和数据实际存放在物理存储器的何处,Linux系统上的每个进程都使用类似的存储器格式,文本节总是从0x08048000处开始(32位系统),或者从0x400000处开始(对于64位地址空间),数据和bss节紧跟在文本节之后,栈占据进程地址空间最高的部分,并向下生长.













 三.简化存储器的分配

虚拟存储器向用户进程提供一个简单的分配额外存储器的机制,当一个运行在用户进程中的程序要求额外的堆空间时,(如调用malloc的结果) ,操作系统分配一个适当的数字(例如k)个连续的虚拟存储器页面,并且将它们映射到物理存储空间个任意的位置,由于页表的工作方式,操作系统没有必要分配k个连续的物理存储空间,页面可以随机的分配.

四.简化加载

虚拟存储器还使得容易向存储器中加载可执行文件和共享文件.Linux 加载器分配虚拟页的一个连续的片,从地址0x08048000处开始( 对于32位地址空间)或者从0x400000处开始(对于64位地址空间),把这些虚拟页记为无效的(即未被缓存的),将页表条目指向目标文件中适当的位置,加载器从来不实际拷贝任何数据从磁盘到存储器,在每个页被引用时,要么是CPU取指令时引用,要么是一条正在执行的指令引用了存储器位置时引用的,虚拟存储器系统会按照需要自动的掉啊如数据页.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值