按需调页

按需调页

1. 原理

按需调页:只有程序执行需要时才载入页,那些从未访问的页不会调入到物理内存,也把这种页交换方式称为懒惰交换

下图为按需调页的过程:

按需调页

当进程要访问的页不在内存中时,会触发页错误陷阱中断,在中断处理函数中将要访问的也载入到物理内存中。

页错误陷阱的处理

  1. 检查进程的内部页表,确定引用是否合法;
  2. 若非法,终止进程;若合法,调入页面;
  3. 从空闲链表中找到一个空闲帧;
  4. 调度磁盘操作,将页调入刚分配的帧中;
  5. 修改内部表和页表,表示页已在内存中;
  6. 退出中断;

此时进程已经可以访问所需的页,就好像它的所有页都在内存中。

注意:在退出页错误陷阱后会重新执行上一条指令。

按需调页会出现两种极端情况

  1. 所有页都不在内存中,进程每执行完一页就产生页错误;
  2. 一条指令可能会访问多个页,从而产生多个页错误;

在实际中这两种情况出现的较少,由于程序具有局部引用,这使得按需调页性能较为合理。

2. 性能分析

现定义有效访问时间如下:

有效的访问时间=(1-p) * ma + p * pf

其中p为页错误概率,ma为内存访问时间,pf为也错误时间。

假定:ma=200us, pf=8ms

则有:有效访问时间=200+7999800 * p

可知:按需调页的性能与页错误概率相关

此外另一个提升性能的方法是引入交换空间,磁盘I/O到交换空间要比到文件系统要快,因此在进程开始时将文件复制到交换空间,从交换空间进行按需调页,通过降低内存访问时间来提高性能。

转载于:https://my.oschina.net/u/2990965/blog/880187

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值