菜鸡的计算机操作系统学习之路(十)虚拟存储器

一、虚拟存储器的概念
前文所讲的段页式存储方式,存在一个共性,即需要把程序全部装入内存中,然后分为许多页和段。当内存有限时,那么较大的程序便很难装入内存中去。很自然的能够想到通过扩充物理内存来装入更大的程序的方法。但是内存容量小价格贵,所以这种方法不太合适。
在提出虚拟存储器之前,先了解什么是局部性原理。所谓局部性原理,指一个程序被访问后,从时间上来讲,一段时间内它再次被访问的概率较高,从空间上来讲,它和它地址附近的程序被访问的概率较高。基于此原理,我们知道,一个程序中并不是所有的程序段都会被频繁访问,真正需要频繁访问的只是某些程序段。那么将完整的程序装入内存中就存在内存的浪费。虚拟存储器便是不将完整的程序装入内存,只将需要运行的程序段(页或段)放入内存中,等到CPU运行到内存中没有的页或段时,再从外存中调入所需的页或段。虚拟存储器便是这样一种技术。从用户的角度来看,内存好像是比自己要运行的程序大,但实际可能并非如此。这种技术从逻辑上扩充了内存,但是实际内存并没有增加,所以称为虚拟存储器。
二、缺页中断
当CPU运行到内存中没有的页段时,便产生缺页中断,由请求调页程序将所需页调入内存。应当注意的是,一般中断请求发生在CPU执行完一条指令之后,而缺页中断发生在指令执行期间。即发现了就立即去中断而不必等到指令执行完毕。
三、页面置换算法
当有页需要调入内存而内存已满时,便要考虑将内存中的某些页调出内存,至于选择什么页调出,由算法决定。如果一个页刚被调出,又因为需要再调入内存,而因为此页的调入,又调出另一个页,而另一个页又因为需要又被调入内存,如此重复下去,便发生页面抖动。这就是页面抖动的概念。所以一个好的算法需要能够避免产生页面抖动。
1.LRU算法,least recently used.即当需要把页调出时,找到从上次使用到如今为止间隔时间T最大的页面换出。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值