操作系统-虚拟存储技术

虚拟存储器

当用户看到自己程序能在系统中正常运行,他会认为,该系统所具有的内存容量一定比自己程序大,但用户所看到的大容量只是一种错觉,是虚的,所以人们把这样的存储器称为虚拟存储器

传统存储管理方式

传统存储管理方式特征、缺点
在这里插入图片描述
特征
一次性:作业必须一次性全部装入内存后才能开始运行

1、作业很大,不能全部装入内存,导致大作业无法运行
2、只有少量作业能运行,导致多道程序并发度下降

驻留性:一旦作业被放入内存,就会一直驻留在内存中,直至作业结束。事实上一个时间段,只需访问作业一小部分数据即可正常运行(GTA场景)。

1、浪费资源

局部性原理

在这里插入图片描述
如何应用
高速缓冲思想:将近期会频繁访问到的数据放到更高速的存储器当中,暂时不用的数据放到更低速的存储器中。
基于局部性原理:

程序装入时可以将很快会用到的部分装入内存中,暂时不用的部分留在外存。
执行过程中,由操作系统负责将信息从外存调入内存中,然后继续执行程序。
内存空间不够,由操作系统负责将内存中暂时不用的信息换出到外存

在操作系统的管理下,用户看来似乎有一个比实际大的多的内存,叫做虚拟内存

虚拟内存只是在逻辑上进行了扩充

在这里插入图片描述
在这里插入图片描述
三个特征

在这里插入图片描述
下·

虚拟内存技术

建立在离散分配的内存管理分配基础上

请求分页

在基本分页的基础上增加了几个表项

1、状态位:表示页面是否已在内存中(只有调入内存才能根据表项块号得出最终物理地址,不在的话在外存)
2、访问字段:记录最近被访问过几次,或记录上次访问的时间,供置换算法换出页面做参考
3、修改位:表示页面调入内存后是否被修改过,
由于内存中每一页都在外存上有副本,若未被修改,不需要将该页写回到外存。若被修改,则需要写到外存上
4、外存地址:页面在外存中存放的位置

在这里插入图片描述

在这里插入图片描述

缺页中断

如果一个页面未调入内存则会产生缺页中断信号
属于内中断
一条指令可能产生多次缺页中断

1、找到页表项时需要检查页面是否在内存中
2、若页面不在内存中,需要请求调页
3、若内存空间不够,还需要换出页面
4、页面调入内存后,需要修改相应表项

在这里插入图片描述


页面置换算法

进程运行过程中,所访问的页面不在内存,需要把它们调入内存。但内存已无空闲空间。因此系统必须用算法决定将哪个页面调出。

最佳置换算法

淘汰永远不使用,在长时间内不再被访问的页面
在这里插入图片描述

先进先出(FIFO)

淘汰最早进入内存的页面
把调入内存的页面先后顺序排成一个队列。需要换出页面时选择队头页面即可
在这里插入图片描述

最近最久未使用置换算法(LRU)

淘汰最近最久未使用的页面
在这里插入图片描述

时钟置换算法(CLOCK,最近未使用)

简单CLOCK算法:为每个页面设置访问位,将内存的页面通过链接指针链接成一个循环队列
在这里插入图片描述

改进型CLOCK算法考虑到修改的页面替换成本更大(要写入外存)
除了考虑页面最近没有访问过之外,还应考虑有没有修改过,应先淘汰没有修改过的页面,避免I/O操作。用(访问位,修改位)表示各页面形态

后宫方式打开CLOCK算法
在这里插入图片描述

1、首先找(00)表示未访问,未修改
2、再退而求其次,找(01)表示未访问,已修改,*找的过程中把访问位都置为0
3、若前两个都找不到,先把每个访问位都置0,再去首先找(00),还找不到再去重复第二步

在这里插入图片描述

总结

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值