操作系统第三章之虚拟内存管理

1. 虚拟内存的基本概念

        1.1 传统存储管理方式的特征,缺点

                1> 一次性: 作业数据必须一次性全部调入内存

                2> 驻留性: 作业数据在整个运行期间都会常驻内存

        1.2 局部性原理

                1> 时间局部性

                        现在访问的指令,数据在不久后可能会被再次访问

                2> 空间局部性

                        现在访问的内存单元周围的内存空间,可能在不久后会被访问

                3> 高速缓存技术

                        使用频繁的数据放到更高速的存储器中

        1.3 虚拟内存的定义和特征

                1> 程序不需全部装入即可运行,运行时根据需要动态调入数据,若内存不够,还需换出一些数据.

                2> 特征:

                        多次性: 无需再作业运行时一次性全部装入内存,而是运行被分成多次调入内存

                        对称性: 无需在作业运行时一直常驻内存,而是允许在作业运行过程中,将作业换入,换出.

                        虚拟性: 从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际容量

        1.4 如何实现虚拟内存技术

                1> 访问信息不在内存时,由操作系统负责把所需信息从外存调入内存(请求调页功能)

                2> 内存空间不够时,将内存中暂时用不到的信息换出到外存(页面置换功能)

                3> 虚拟内存的实现

                        请求分页存储管理

                        请求分段存储管理

                        请求段页式存储管理

总:

2. 请求分页管理方式

        2.1 页表机制

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

                状态位: 表示页面是否在内存中

                访问字段: 记录最近被访问过几次,或者记录上次访问的时间,供置换算法选择换出页面时参考

                修改位: 表示页面调入内存之后是否修改过,修改了在置换时写回外存

                外存地址: 页面在外存中存放的位置

        2.2 缺页中断机制

                1> 找到页表项后检查页面是否已在内存,如果不在产生缺页中断

                2> 缺页中断处理中,需要将目标页面调入内存,有必要时还要换出页面

                3> 缺页中断属于内中断

                4> 一条指令在执行过程中可能产生多次缺页中断

        2.3 地址变换机构

                1> 找到页表项时需要检查页面是否在内存中

                2> 若页面不在,需要请求调页

                3> 若内存空间不够,还需换出页面

                4> 页面调入内存后,需要修改相应页表项

总:

3. 页面置换算法

        3.1 最佳置换算法(OPT)

最佳置换算法(OPT,Optimal):每次选择淘汰的页面将是以后永不使用,或者在最长时间内不再被访问的页面,这样可以保证最低的缺页率。

最佳置换算法可以保证最低的缺页率,但实际上,只有在进程执行的过程中才能知道接下来会访问到的是哪个页面。操作系统无法提前预判页面访问序列。因此,最佳置换算法是无法实现的



        3.2 先进先出置换算法(FIFO)


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

        3.4 时钟置换算法(CLOCK)

        3.5 改进版时钟置换算法

总:

4. 页面分配策略

        4.1 驻留集

                指请求分页存储管理中给进程分配的内存块的集合

        4.2 页面分配,置换策略

                1> 固定分配VS可变分配: 区别在于进程运行期间驻留集大小是否可变

                2> 局部置换VS全局置换: 区别在于发生缺页时是否只能从进程自己的页面选择一个换出

                3> 固定分配局部置换: 进程运行前久分配一定数量物理块,缺页时只换出进程自己的某一页

                4> 可变分配全局置换: 只要缺页就会分配新的物理块,可能来自空闲物理块,也可能需要换出别的进程的页面

                5> 可变分配局部置换: 频繁缺页的进程,多分配一些物理块;缺页率很低的进程,回收一些物理块.直到缺页率合适

        4.3 何时调入页面

                1> 预调页策略: 一般用于进程运行前

                2> 请求调页策略: 进程运行时,发现缺页再调页

        4.4 从何处调页

                1> 对换区: 采用连续存储方式,速度更快. 文件区: 采用离散存储方式,速度更慢

                2> 对换区足够大: 运行将数据从文件区复制到对换区,之后所有的页面调入,调出都是再内存与对换区之间进行

                3> 对换区不够大: 不会修改的数据每次都从文件区调入,会修改的数据调出到对换区,再次使用时从对换区调入

                4> UNIX方式: 第一次使用的页面都从文件区调入;调出的页面都写回对换区,再次使用时从对换区调入

        4.5 抖动现象

                页面频繁换入换出的现象.主要原因时分配给进程的物理块不够

        4.6 工作集

                在某段时间间隔里,进程实际访问页面的集合.驻留集大小一般不能小于工作集大小

总:

5. 内存映射文件

传统:

内存映射文件:

        5.1 特性

                1> 进程可使用系统调用,请求操作系统将文件映射到进程的虚拟地址空间

                2> 以访问内存的方式读写文件

                3> 进程关闭文件时,操作系统负责将文件数据写磁盘,并解除内存映射

                4> 多个进程可以映射同一个文件,方便共享

        5.2 优点

                1> 程序员编程更简单,已建立映射的文件,只需按访问内存的方式读写即可

                2> 文件数据的读入/写出完全由操作系统负责,I/O效率可以由操作系统负责优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值