文章首发及后续更新:https://mwhls.top/1549.html
新的更新内容请到mwhls.top查看。
无图/无目录/格式错误/更多相关请到上方的文章首发页面查看。
存储器不足
- 各类存储器都要求作业在完全装入内存后才能运行,就可能出现两种情况:
- 作业大小超过内存总容量,无法运行。
- 大量作业要求运行,内存容量不足,仅少量作业能运行。
- 这些情况有两种处理方式:
常规存储管理方式的特征与局部性原理
- 常规存储器管理方式的特征:
- 前面提到的物理存储器统称为传统存储器管理方式。
- 一次性:作业需要一次性装入内存才允许运行。
- 驻留性:直到运行结束,整个作业将一直在内存中保留,即便它是被阻塞的。
- 注:
- 这部分有点奇怪,首先是内容和标题不对应,内容说是传统存储管理方式,小标题说是常规存储器管理方式,大标题说是常规存储管理方式。
- 以及驻留性,说是运行结束才会终止,但是前面提到的兑换、分页、分段明明就是为了解决这个问题而出现的...
- 操作系统原理学习笔记(二十一)-对换
- 操作系统原理学习笔记(二十二)-分页存储管理方式
- 操作系统原理学习笔记(二十三)-分段存储管理方式
- 局部性原理-由P.Denning于1968年提出:
- 论点:
- 程序执行时,除少部分转移、过程调用命令外,大部分情况下是顺序执行的。
- 过程调用虽然会使程序执行轨迹转移,但大多数情况下深度不超过5,换句话说,一定时间内,程序的执行轨迹是可预知的。
- 程序中的循环结构虽然不是顺序执行,但是他会被循环调用。
- 对数据结构的处理大多局限于小范围内。
- 局限性还表现在两个方面:
- 时间局限性。某语句或数据刚被访问过,则还会被访问的几率较大,因为程序中存在大量循环结构。
- 空间局限性:某个存储单元被访问,则附近的存储单元大概率将被访问,因为顺序结构。
- 虚拟存储器的基本工作情况:
- 由局部性原理可知,程序运行前,不需要全部装入内存,只需将需要用到的页/段装入内存即可。
虚拟存储器的定义与特征
- 定义:
- 具有请求调入功能、置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。
- 逻辑容量由内存与外存之和决定,运行速度接近内存,成本接近外存。
- 特征:
- 多次性:作业可以分成多次调入内存,仅将需要的部分调入内存即可运行。
- 对换性:作业的程序和数据不需要常驻内存,允许换进换出。
- 虚拟性:从逻辑上扩充内存,使得用户感受到的内存容量比实际的大。
- 虚拟性基于多次性与对换性,多次性与对换性又基于离散分配。
虚拟存储器的实现方式
- 虚拟存储器必然以离散分配方式存储,如果是连续分配方式,在调入作业时,就需要在内存中预留一段连续的空间,以便作业分次装入内存,但这样反而造成内存资源浪费,达不到有效的内存空间利用。
- 目前的虚拟存储器都是用下面方式之一实现的:
- 分页请求系统:
- 在分页系统中,增加请求调页功能和页面置换功能。
- 允许仅装入少数页面的程序运行。
- 通过调页功能与页面置换功能把即将运行的页面调入内存,将暂不使用的页面调入外存。
- 以页面为单位置换,OS需要提供硬件支持与实现请求分页的软件。
- 硬件支持:
- 实现请求分页的软件:
- 在硬件支持下,将所需页面调入内存,并将暂不需要的页面置换到磁盘。
- 请求分段系统:
- 请求分段系统是在分段系统中,加入请求调段及分段置换功能的段式虚拟存储系统。
- 允许仅装入少数段的程序运行。
- 通过调段功能与段置换功能把即将运行的段调入内存,将暂不使用的段调入外存。
- 以段为单位置换,OS需要提供硬件支持与实现请求分段、段置换的软件。
- 硬件支持:
- 软件支持:
- 在硬件支持下,将所需段调入内存,并将暂不需要的段置换到磁盘。
- 请求分页系统比请求分段系统更简单,因为作为其置换单位的页面,是固定大小的,而段是动态长度。