目录
一、虚拟内存定义和特征
二、请求分页管理
页表机制
缺页中断机构
地址变换机构
三、页面置换算法
3.1最佳置换算法(OPT)
3.2先进先出置换算法(FIFO)
3.3最近最久未使用置换算法(LRU)
3.4时钟置换算法(CLOCK)
3.4.1简单时钟置换算法
3.4.2改进型时钟置换算法
四、页面分配策略
4.1 内存分配策略
4.1.1 固定分配全局置换
4.1.2可变分配全局置换
4.1.3可变分配局部置换
4.2何时调入页面
4.3何处调入页面
4.4抖动现象
五、内存映射文件
5.1传统文件访问方式
5.2内存映射文件方式
虚拟内存技术实现需要建立在离散分配的内存管理方式基础上
定义:程序不需要全部装入即可运行,运行时根据需要动态调入数据,内存不够,换出一些数据
特征:
多次性:无需在作业运行时一次性全部装入内存,而是允许分成多次调入内存
对换性:在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入换出
虚拟性:从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量
请求分页存储管理与基本分页存储管理区别
在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需要信息从外存调入内存,然在后续执行过程中。若内存空间不够,由操作系统负责将内存中暂时用不到的换到外存
缺页中断是因为当前执行的指令想要访问的目标页面未调入内存而产生的,因此属于内中断
一条指令在执行期间,可能产生多次缺页中断
内存不够,由操作系统将内存中暂时用不到的信息换出到外存
性能最好,但无法实现
每次选择淘汰的页面将是以后永不使用,或者在最长时间内不在调用的 ,保证最低缺页率
缺页次数9次,置换6次
缺页率 9/20=45%
实现最简单,但算法性能差
每次淘汰最早进入内存的页面
3个内存块缺页次数9次,,4个内存块缺页还10次,Belady异常--分配内存块增加,缺页有不减反增现象
只有FIFO算法会产生Belady异常
性能好,接近OPT算法,专门硬件实现,开销大
每次淘汰的页面是最近最久未使用的页面
比较均衡的算法,又称最近未使用算法(NRU)
只考虑是是否被访问,没有考虑是否被修改过
内存5个块循环连接起来,开始5个不需要置换都进入,访问位1,需要替换时,下一个访问位为1,就置为0找下一个,找到为0的为止,置换,重复操作
访问已在内存的变1,遇1置0下一个.遇0置换下
(访问位,修改位)
驻留集:指请求分页存储管理中给进程分配的物理块的集合。在采用了虚拟存储技术的系统中,驻留集大小一般小于进程的总大小
驻留集太大会导致程序并发度下降,资源利用率低。驻留集太小,会导致缺页频繁
固定分配:为每个进程分配一组固定数目的物理块,在运行期间不再改变,即驻留集大小不变
可变分配:先为每个进程分配一定数目的物理块,在进程运行期间,可根据情况做适当的增加和减少,即改变大小可变
局部置换:发生缺页时只能选进程自己的物理块进行置换
全局置换:可将系统保留的空闲物理块分配给缺页进程,也可以将别的进程持有的物理块置换到外存,在分配给缺页进程
预调页策略:根据局部性原理,一次调入若干个相邻的页面。预测不久后可能访问到页面,将它们预先调入内存,(运行前调入)
请求调页策略:进程在运行期间发现缺页时才将所缺页面调入内存,一次调入一页(运行时调入)
刚刚换出的页面马上又要换入内存,换入的马上又换出内存,这种频繁的页面调度行为称抖动,或者颠簸。
产生抖动的主要原因是进程频繁访问的页面数目高于可用的物理块数(分配物流快不够)
驻留集:请求页面管理分配的内存块集合
工作集:指某段时间间隔里, 实际访问页面的集合
操作系统向上层程序员提供的功能(系统调用)
共享