虚拟内存技术——从起因到优化

随着应用程序的不断升级,其在电脑中所占的内存也急剧增大,但是计算机内存大小的增长速度难以跟上,为了能在有限的内存中运行尽可能多的程序,计算机科学家提出了各种内存管理技术来尽可能适应这种情况。

一。覆盖技术

覆盖技术目的是使得单个程序尽可能少的占用内存资源,要求程序员在代码中指定内存的使用与释放,对代码要求较高。其具体实现有点类似union结构体的功能,同一块内存实现分时复用,不过必须是没有相互调用关系的子程序段才能对同一块内存进行分时使用。
缺点:对程序员要求太高,需要对程序进行合理的划分;

二。交换技术

缺点:对整个程序的换入换出,操作粒度较大,资源消耗严重。
优点:由操作系统完成,对程序员透明。

三。虚拟内存

由于前两种方案都有着明显的缺点,迫切地需要提出一种能够继承二者优点但克服致命缺陷的新方案,由此,虚拟内存技术应运而生。
①虚拟内存技术的具体实现由操作系统完成
②像覆盖技术一样,不是把整个程序都放入内存中,而是把当前执行阶段所需的部分加载到内存,实现了对单个程序内存开销的压缩。

虚拟技术里用到了程序局部性原理
程序的局部性好才能更好的发挥虚拟内存的作用!!!这是由于局部性好的程序在执行时不容易出现缺页中断
程序的局部性原理指程序在执行过程的一个较短的时间内,所执行的指令地址和指令操作数地址,分别集中在一个小的区域内,具体表现为时间局部性和空间局部性。
时间局部性:指令的一次执行和下一次执行,数据的一次访问和下一次反访问都集中在一个较短的时间内
空间局部性:当前执行的指令和临近的几条指令,当前访问的数据和临近几次访问的数据,都集中在一个较小的区域内

最后,简单总结一下虚拟内存的优点:虚拟内存技术为每个进程提供了一个大的一致的私有的地址空间。
①它将主存看作是磁盘的高级缓存,在主存中只保留活跃部分,并根据需要在主存与磁盘间来回传送数据,高效地利用主存
①为每个进程提供一致的内存地址空间,从而简化了内存管理
②保护每个进程的地址空间不被其他进程所破坏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值