1. 虚拟存储的需求背景
虚拟存储可以看出是非连续分区存储的延续,在非连续分区的基本上,把一部分内容放到外存里,从而增大应用程序的使用空间。
- 存储层次结构
通过下图的层次结构,使系统处于繁忙的状态,实现价格、容量、访问速度方面的均衡。
- 解决计算系统常出现的内存不够用问题的办法
覆盖
:应用程序手动把需要的指令和数据保存在内存中,这种方式加大了应用开发的难度交换
:操作系统自动把暂时不能执行的程序保存到外存中,这种方式开销大虚拟存储
:在有限容量的内存中,以页为单位自动装入更多更大的程序。
2. 覆盖和交换技术 (过时技术)
- 覆盖
- 交换
3. 局部性原理(虚拟存储的可实现前提)
虚拟存储是把原来放在内存中的一部分地址信息放到外存中。
- 虚拟存储的目标
- 只把部分程序放到内存中,从而运行比物理内存大的程序。不同于覆盖技术,这部分工作由操作系统自动完成。
- 实现进程在内存与外存之间的交换,从而获得更多的空闲内存空间
- 局部性原理
分支局部性就比如循环
4. 虚拟存储概念
- 原理
- 装载程序时:只讲当前指令执行需要的部分页面或段装入内存中,不同于之前的需要把整个进程放到内存中
- 当指令执行过程中需要的指令或者数据不在内存中时(称为
缺页
或者缺段),处理器通知操作系统将相应的内容调入内存- 操作系统将内存中暂时不用的页面或段保存到外面(引出
置换算法
来决定调出哪些)。
-
实现方式:虚拟页式存储+虚拟段式存储
-
虚拟存储的基本特征
-
支持技术
- 硬件:页式或短时存储中的地址转换机制
- 操作系统:管理内存和外存间页面或段的换入和换出
4. 虚拟页式存储
在页式存储管理的基础上,增加请求调页和页面置换。
-
实现思路
页式存储管理是将所有的页面都加入到内存中,只是可以实现存储的不连续,因此也不会出现所谓的缺页异常。 -
地址转换
地址转换过程和页式存储管理差不多,只不过增加了缺页异常的一些处理机制,这样就会导致很多东西需要修改 -
页表项结构(区别于页式存储管理的页表项)
在页表项中添加了4个标识位:驻留位,保护位,修改位,访问位
=
5. 缺页异常
- 缺页异常(中断)的处理流程(页面置换算法)
- 上图第4步详细流程
- 虚拟页式存储的外存管理
- 管理的性能