蒲晓蓉_操作系统原理第3_3章_存储管理
操作系统原理_方敏_存储管理

OS 作业1(8K) 作业4(24K)
第25页
四、页式存储管理
提出原因
分区存储管理方案 要求作业存储时必须连续存放 Job5 OS Job1 Job2 页式存储管理方案 解决作业不连续存放的问题 Job4
Job3
第26页
四、页式存储管理
基本原理
逻辑地址空间 0 实页/ 主页 物理地址空间
OS
0
Q:如何记录和管 理这种映射关系?
第9页
Байду номын сангаас
二、地址重定位
动态再定位:程序在装入内存时,不修改程序的逻辑 地址值,程序在访问物理内存之前,再实时地将逻辑 地址转换成物理地址。
BR:基址寄存器,存放程序的起始地址
逻辑地址空间
0 BR
物理地址空间
0
1000 …… ……
VR
100
1100
LOAD A 200 ……
200
200
LOAD A 200 …… 3456 ……
一、概述
存储管理的任务
在现代操作系统中,存储管理的主要任务有以下几个方
面: 地址变换(地址再定位) 存储资源的分配和回收 存储共享和保护 存储器扩充 ① 覆盖技术 ② 交换技术
第6页
二、地址重定位
基本概念
定义:当程序被装入内存时,程序的逻辑地址 被转换成内存的物理地址,这一过程称为地址 重定位(由内存管理单元(MMU)完成)。
0 100K
1K
2K
0 1 2 3
虚页:大小相同, 常为2的整数幂。
2 1 2 0 3 4 3 5 1 6 7 8
101K
102K 103K 104K 105K 106K
蒲晓蓉操作系统原理课件

设备硬件无关层
设备硬件相关层
设备硬件
支持中断的设备管理模型
用户进程 I/O请求 IOCS 资源等待队列 I/O等待队列 设备中断 内核中断 管理模块
设备驱动程序 启动过程|继续过程
设备硬件
4.2
计算机I/O子系统的组成
总线型I/O系统的结构
处理机 系统总线 内存
I/O设备
I/O设备
I/O设备
本章要点
• • • • • • • • 设备管理的主要功能、模型 I/O子系统的组成、结构 设备的控制、I/O控制 设备的类型 设备分配 I/O缓冲技术 虚拟设备与SPOOLing系统 磁盘设备的管理
4.1
设备管理概述
设备管理的主要功能
设备分配 设备映射 设备驱动 I/O缓冲区的管理
设备分配
• 多道程序系统中的设备不允许用户直接 使用,而是由操作系统统一调度和控制。 • 设备分配功能是设备管理的基本任务。 • 设备分配程序 按照一定的策略,为申请 设备的用户进程分配设备,记录设备的 使用情况
I/O设备
I/O设备
通道型I/O系统的结构
处理机 系统总线 内存
I/O通道
I/O通道
I/O通道
I/O设备
I/O设备
I/O设备
I/O设备
I/O设备
I/O设备
具有控制器的I/O系统结构
• 传统的设备 = 机械部分 + 电子部分 • 电子部分在系统的控制下驱动机械部分运转, 完成I/O操作。 • 由于设备中电子部分比机械部分的速度快得多。 为了降低硬件成本,将电子部分从设备中分离 出来作为一个独立的部件,这就是控制器。 • 分离之后的设备仅由机械部分构成,一个控制 器可与多个设备相连,交替地或分时地控制与 其相连的设备。例如,磁盘控制器可以控制多 个磁盘驱动器。
蒲晓蓉第3章-03

交换页/段
从外存装入页/段
更新页/段表
图3.28 实现虚拟存储的典型过程
?什么是虚拟存储
• 通过系统提供的缺页/段中断功能和交换技术, 动态装入进程的程序代码和数据,使得一个大 的用户程序能在一个相对较小的内存空间中运 行,也使得有限的内存能同时容纳更多的进程。
• 习惯上,人们把这种用户感觉上的、由实际内 存和部分外存共同构成的存储空间称为虚拟存
虚拟存储的好处
• 第一,可以运行大程序,包括超过内存 实际容量的大程序。 • 第二,可以在有限的物理内存中运行更 多的程序。多道程序系统的度不再受到 物理内存空间的限制。
虚拟存储的典型问题 抖动(thrashing)
• 当进程要求装入新的页面或程序段时,如果当 前没有足够的空闲空间,需要交换一些页面或 段到外存。如果被交换出去的页面或段很快将 被进程使用,则又需要将其换入内存。 • 如果系统花费大量的时间把程序和数据频繁地 装入和移出内存而不是执行用户指令,那么, 称系统出现了抖动。出现抖动现象时,系统显 得非常繁忙,但是吞吐量很低,甚至产出为零。 • 根本原因:选择的页面或段不恰当。
• 如果能将一部分价格较低的外存空间当作内存 使用,从逻辑上扩充内存容量。那么,将获得 更高的性价比。
虚拟存储技术的理论依据
• 程序执行的局部性原理:程序的执行总是呈现 局部性。即,在一个较短的时间段内,程序的 执行仅限于某个部分;相应的,它所访问的存 储空间也局限于某个区域。
• 因此,只要保证进程执行所需的部分程序和数 据驻留在内存,一段时间内进程都能顺利执行。
逻辑地址 段号 偏移量
检索快表
?命中 是 否 访问段表 ?段在内存 是 ?地址越界 否 ?合法访问 是 更新快表 段基址 偏移量 物理地址 否 是 越界中断处理 更新段表 否
蒲晓蓉_操作系统原理第_章_存储管理

存储分配步骤
? 首先,根据系统的内存分配算法,在空 闲的内存分区中寻找到一块满足进程需 要的内存空间,将其分配给进程。
? 然后,更新进程的资源分配清单应的数据结构,将回收的内存空 间标识为“空闲可用”就行了。
? 该内存空间是否可以被回收 ? 被其他进程共享 ? 属于相应的进程 ? 与相临的空闲空间进行合并
存储共享
? 为了进程通信和节约内存空间,两个或多个进 程共用内存中相同的分区,即他们的物理空间 有相交的部分。
? 可以共享进程的代码,也可以共享进程数据。
? 一般地,进程之间共享代码的目的主要是为了 节约存储空间,共享数据的目的主要是为了实 现进程间相互通信。
PCB1
PCB2
PCB3
数据
代码 代码
? 操作越权:进程对共享存储区的操作违反了系 统规定的权限。
存储保护的实现
? 存储保护只能进程执行过程中动态地进行,不 可能在运行前一次性静态完成。
? 若采用动态映射动态计算物理地址,可能计算 出错误地址;若采用静态映射,进程执行过程 中也可能出错,从而导致地址越界或操作越权。
? 为了提高系统效率,存储保护的主要工作必须 由高速的专用硬件来完成:在地址管理部件中。
共享代码
? 可以将进程的代码视为处理数据的一组规则或 公式,这一组规则或公式存储在内存中的某个 分区。
? 进程的执行:利用这一组规则或公式来完成数 据的运算。
? 多个进程共享代码:多个进程需要使用同一组 规则或公式处理不同的数据。
? PCB :告诉进程其所需的规则或公式以及需要 处理的数据存储在哪里,进程的进度等
用于内存管理的数据结构
? 如位示图、空闲页框表等。 ? 记载哪些内存被分配给了哪个进程,哪些内存
计算机操作系统原理与实例分析课件完整版全

“虚拟机”:一个裸机在每加 上一层软件后,就变成了一个功能 更强的机器,把这“新的更强功能 的机器”称作虚拟机。
OS的地位:紧挨硬件层的第一 层软件,对硬件进行首次扩充,同 时又是其他软件运行的基础。
*资源管理的观点
资源管理的观点是目前对操作系统 描述的主要观点,操作系统资源管理的主 要功能如下:
2. 独占性:各终端用户感觉到 自己独占了计算机;
3. 交互性:用户与计算机之间 可进行“会话”。
实时操作系统
到了60年代初,计算机开 始应用到生产过程控制、工业 控制、防空系统、信息处理等, 在这些应用中不但要解决计算 间题,还要求在规定的时间内 完成计算,即实时处理。在实 时处理中的一个核心的问题就 是响应时间问题。
计算机硬件升级和新硬件的出现 提供新的服务、方便用户使用 提高计算机资源利用率 更正软件错误 计算机体系结构的发展
*操作系统发展历程
• 手工操作阶段 • 早期批处理 • 多道程序系统 • 分时系统 • 实时操作系统 • 操作系统的进一步发展
*手工操作阶段
没有操作系统
程序员编程
准备程序带 程序员预约机时
操作系统提供的界面的 友好性和易用性成为操作系 统中的重要部分,用户在相 当的程度上以这两个标准来 判断一个系统的优劣。
*处理机管理
处理机管理主要包括进程 控制、进程同步、进程通信 和进程调度。
1、进程控制
进程控制的基本功能是创 建和撤消进程以及控制进程 的状态转换。
2、进程同步
进程同步是指系统对并 发执行的进程进行协调
综上所述,我们可以得出操作系
统的概念:
操作系统是计算机系统中的一 个系统软件,管理和控制计算机系 统中的硬件和软件资源,合理地组 织计算机的工作流程,以便有效利 用这些资源为用户提供一个功能强 大、使用方便的工作环境,从而在 计算机与用户之间起接口的作用
操作系统第3章

3.1.1 程序的并发执行
1. 程序的顺序执行 程序是一个在时间上按严格次序前后相继的操 作序列,是一个静态的概念。程序体现了编程人员要 求计算机完成所要求功能时所应该采取的顺序步骤。 显然,一个程序只有经过执行才能得到最终结果,且 一般用户在编写程序时不考虑在自己的程序执行过程 中还有其他用户程序存在这一事实。另外,计算机 CPU是通过时序脉冲来控制顺序执行指令的。其执行 过程可以描述为: Repeat IR ← M [pc] pc ← pc+1 〈 Execute (instruction in IR)〉 Until CPU halt
从上述讨论可以看出,由于程序的顺序 性、静态性以及孤立性,用程序段作为描述其 执行过程和共享资源的基本单位既增加操作系 统设计和实现的复杂性,也无法反映操作系统 所应该具有的程序段执行的并发性、用户随机 性,以及资源共享等特征。也就是说,用程序 作为描述其执行过程以及共享资源的基本单位 是不合适的。需要有一个能描述程序的执行过 程且能用来共享资源的基本单位。这个基本单 位被称为进程(或任务)。
read (a) ; read (b) ; 它们既可以同时执行,也可颠倒次序执行。对于 这样的语句,同时执行不会改变顺序程序所具有的逻 辑性质。因此,可以采用并发执行来充分利用系统资 源以提高计算机的处理能力。 程序的并发执行可总结为:一组在逻辑上互相独 立的程序或程序段在执行过程中,其执行时间在客观 上互相重叠,即一个程序段的执行尚未结束,另一个 程序段的执行已经开始的这种执行方式。 程序的并发执行不同于程序的并行执行。程序的 并行执行是指一组程序按独立的、异步的速度执行。 并行执行不等于时间上的重叠。可以将并发执行过程 描述为:
其中 R(Si)={a1 a2 … am},ai(j=1,…,m) 是语句Si在执行期间必须对其进行读的变量; W(Si)={b1 b2 … bn},bj(j=1,…,n) 是语句Si在执行期间必须对其进行修改的变量; 如果对于语句S1和S2,有 ① R(S1)∩ W(S2)={∮}, ② W(S1)∩ R(S2)={∮}, ③ W(S1)∩ W(S2)={∮} 同时成立,则语句S1和 S2是可以并发执行的。
C3-03
储器
虚拟存储技术的技术支持
• 首先,必须有相应的硬件支持,用以实 现虚拟分页或虚拟分段存储管理。 • 其次,操作系统必须提供相应的软件支 持,管理页或段在内存和外存之间的移 动。
虚拟存储的基本数据结构
• 由于虚拟存储系统中,进程的程序代码和数据 只有一部分在内存,另一部分保存在外存。
• 在页/段表项中增加一个“存在”字段,其值 为0或1。 • 增加一个“修改”字段,表明对应页/段自进 入内存以来是否被修改过。只有被修改过的页 /段才需要保存到外存,若需要将未修改过的 页/段换出内存,只需要将新装入的页/段直接 覆盖其存储区域,而不必将其内容保存到外存。
页面获取策略
• 解决的问题:系统应当在 何时 把一个页 面装入内存? • 请求调页 (Demand Paging) • 预调页 (Prepaging)
请求调页
• 仅当进程执行过程中,通过检查页表发现相应 页面不在内存时,才装入该页面。 • 当进程刚开始执行时,由于预先未装入进程的 页面,故需要频繁地申请装入页面。执行一段 时间以后,进程的缺页率将下降。 • 采用请求调页方式,一次装入请求的一个页面, 磁盘I/O的启动频率较高,系统的开销较大。
基本的驻留集管理策略
• 固定分配策略(Fixed-Allocation Policy) • 可变分配策略(Variable-Allocation Policy)
固定分配策略
• 为每个进程分配 固定数量 的页框。即, 每个活跃进程的驻留集尺寸在运行期间 固定不变。 • 为进程分配多少个页框是合理的呢?
段号
逻辑地址 段内页号 页内偏移量
检索快表 是 否 缺页中断处理 访问段表 访问页表
?命中
更新页表 否
?页在内存 是 更新快表 页框号 图3.32 偏移量
操作系统原理课件 (3)[123页]
3.2 进程互斥方法
3.2.1 实现进程互斥的硬件方法
通过计算机提供的一些机器指令来实现进程的互斥。 机器指令是指在一个指令周期内执行完成的指令,而专用机器指令的执行则不 会被中断。专用机器指令有3个: 1.开关中断指令: 进程在进入临界区之前先执行“关中断”指令来屏蔽掉所有中断;进程完成临 界区的任务后,再执行“开中断”指令将中断打开。程序结构如下:
coend
3.2 进程互斥方法
2. 测试与设置指令TS(Test and Set): 要为每个临界资源设置一个整型变量s,可以将它看成一把锁。若
s的值为0(开锁状态),则表示没有进程访问该锁对应的临界资源。 若s的值为1(关锁状态),则表示该锁对应的临界资源已被某个进程 占用。
TS指令的函数描述:
int TS(int s) {
if(s) return 1;
else {
s=1; return 0; } }
应用:
int s=0;
cobegin
process Pi() {
//i=1,2,3,…,n
…
//与临界资源无关的代码
while(TS(s));
//进入区
临界区;
s=0;
//退出区
…
//与临界资源无关的剩余代码
//进入区
Swap(&s,&key);
}while(key);
临界区;
s=0;
//退出区
…
//与临界资源无关的剩余代码
}
coend
3.2 进程互斥方法
3.2.2实现进程互斥的软件方法
1. 两标志进程互斥算法 基本思想:为希望访问临界资源的两个并发进程设置的两个标 志T1和T2来表示某个进程是否在临界区;若Ti(i=1, 2)等于 0则表示进程Pi(i=1, 2)没有在临界区,若Ti(i=1, 2)等 于1则表示进程Pi(i=1, 2)在临界区。每个进程在进入临界区 之前,先判断临界区是否已被另一进程访问,若是则本进程等 待,否则本进程进入临界区。
操作系统课件第3章
操作系统课件第3章第三章处理调机与度锁死第三章理处调机与死锁度3.1处理机调度层的次3.2调度列队型模调和准则度.33调算度法3.实时调度34.5产生死锁的因和必原条要件36预.防死的方法3锁7.死锁检测与的解除第三处理机调度与死锁章3.处1理调度机层的次不同作业系的统,常通需要经不历的处同机理度调,作才能获业处理机得而执。
批量型行作:业需后经先历业作调度高(调级)度进程、调(低级度度)调才能,得处理机获。
终端作型业只:经过进程调需。
在度完较的操善系统作,往中还设置往了级调度中。
第章三处机调度与死理锁.1处理3机度的层次3调..1高1调级度.1作业作业和步(1)业作Job)(。
业是一作个比序程为广泛更概念,的它不仅包了含通的常程和数序,而据还且应配一有份作说业书,明统系据根说明该书来程对序运行的进控制行在。
处批理统系,是中以业为作基本位从外单存入调存的内。
第三章理处机调与度锁死第章三理处机调度与锁2死.作业控块制JB(JobCoCnrotlBlok)c为管了理调和作度,在业多道批理系处统为中每作个业设了一置个作业控块,制同进程如控制是进块在系统中程存在的志一标样,是作业它系在中存在的标统,其中保志了存系对作统进业管理和行调度需的所全信部息在。
JCB所中含包的内因系容统而异,通应常包的内容含有作业标:、识用名称户、用户帐户作、业类(型CPU繁忙型I/O、繁忙、批量型型终、端)型、作状态、调度业信息优先(级、作已运业时行间)、资源需求预(计行时间、要求运内存小、要大求/OI备设的型类和量等)、进数入系统时间、开处始理时间作、完成业时、间业作出时退、资源间使情况用等。
三章第理处调机度与死锁每当作进业系统入,系时统便为个每业建立一作J个C,B根据作业型类将插入相它应的后队备列。
作中调业度程依据一序定的度算法来调度它们,被调度到调的作业将装入会内。
在存业运作行期间系统,按照JC就B的中信对息业作进行制控当一。
蒲晓蓉操作系统原理第1章存储管理.ppt
存储管理
外存
OS 内存
本章要点
• 存储管理的任务 • 内存划分与分配技术 • 程序装入技术 • 简单存储管理技术 • 虚拟存储管理技术
3.1 存储管理的任务
存储分配
• 基本任务:管理内存空间的分配与回收 (1)分配基本内存空间 (2)增加新的内存空间
— 动态申请或释放内存空间 (3)回收内存空间
CPU 程序指令 逻辑地址
地址管理部件
物理地址 地址总线
图3.2 CPU中的地址管理部件工作示意图
存储保护
• 防止地址越界,防止操作越权。
• 地址越界:进程访问不属于自己的地址空间, 或者说进程在运行时所产生的物理地址超越其 自身的地址空间范围。 — 可能侵犯其他用户进程空间,也可能侵犯操 作系统的存储空间
地址映射
• 逻辑地址,或相对地址:一般从0开始编址
• 物理地址,或绝对地址:标识内存中的每个存储单元。
进程控制信息 程序入口点
进程控制块
地址值增加
程序
分支指令
访问数据
当前栈顶
数据 栈
进程映像 图3.1 进程执行时的寻址
?逻辑地址
• 高级语言或汇编语言使用符号地址:变 量名或标号
• 源程序经过编译、链接以后,其中的符 号地址就会变成数字式的逻辑地址。
• 操作系统负责完成内存与外存之间的透 明切换:进程运行时将需要的数据或代 码从外存装入内存,并将内存中暂时不 用的部分交换到外存。
3.2 内存划分与分配技术
内存划分
• 静态划分:划分预先进行,创建新进程 时,在内存中找到一个合适的分区分配 给它。
• 动态划分:系统初始化时,可以将整个 内存的用户区看作一个分区。创建新进 程时,根据进程申请的空间大小,在这 个分区中动态地为之划分一部分空间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虚拟存储分段技术
• 建立在简单存储分段系统基础上,利用动态分 区技术分配存储空间,并以段作为交换的单位。
• 进程执行之前,系统为之分配几个必要的内存 分区,每一个分区中装入一段。 • 当进程执行过程中,出现缺段中断时,操作系 统将为进程装入需要的程序段。
虚拟存储分段:数据结构
• 因此,需要修改段表,增加“存在”字 段和“修改”字段,分别标明对应段是 否存在于内存,以及内存中的段自装入 以来是否被修改过。
虚拟存储分页技术
• 建立在简单分页存储管理系统之上,是 目前常用的一种虚拟存储管理技术。
地址变换
• 基于简单存储分页系统增加了某些功能,如产 生和处理缺页中断,以及从内存中换出页面等。 • 进程执行时,首先通过根据逻辑地址中的页号, 查找快表中是否存在对应的页表项。若快表中 不存在该页表项,则再查找页表。检查对应的 页面是否在内存中存在。若该页面不在内存, 启动缺页中断处理例程,装入需要的页面,并 更新页表和快表。若该页面已经在内存中,将 对应的页表项插入快表中,更新快表。若快表 中存在该表项,则直接取出其中的页框号,加 上页内偏移量,计算出物理地址。
逻辑地址 段号 偏移量
检索快表
?命中 是 否 访问段表 ?段在内存 是 ?地址越界 否 ?合法访问 是 更新快表 段基址 偏移量 物理地址 否 是 越界中断处理 更新段表 否
缺段中断处理
非法访问中断
图3.31 虚拟存储分段系统地址变换过程
段s不在内存
阻塞执行进程 否 内存中有合 适的空闲区 吗? 是 从外存读入段s 空闲区容量 总和能否满 足? 是 修改段表、空闲分区表 拼接外零头,形成 一个合适的空闲区 换出一个或几个段 形成一个合适空闲区
• 如果能将一部分价格较低的外存空间当作内存 使用,从逻辑上扩充内存容量。那么,将获得 更高的性价比。
虚拟存储技术的理论依据
• 程序执行的局部性原理:程序的执行总是呈现 局部性。即,在一个较短的时间段内,程序的 执行仅限于某个部分;相应的,它所访问的存 储空间也局限于某个区域。
• 因此,只要保证进程执行所需的部分程序和数 据驻留在内存,一段时间内进程都能顺利执行。
储器
虚拟存储技术的技术支持
• 首先,必须有相应的硬件支持,用以实 现虚拟分页或虚拟分段存储管理。 • 其次,操作系统必须提供相应的软件支 持,管理页或段在内存和外存之间的移 动。
虚拟存储的基本数据结构
• 由于虚拟存储系统中,进程的程序代码和数据 只有一部分在内存,另一部分保存在外存。
• 在页/段表项中增加一个“存在”字段,其值 为0或1。 • 增加一个“修改”字段,表明对应页/段自进 入内存以来是否被修改过。只有被修改过的页 /段才需要保存到外存,若需要将未修改过的 页/段换出内存,只需要将新装入的页/段直接 覆盖其存储区域,而不必将其内容保存到外存。
— 可以由系统根据进程的类型确定,也可以 由编程人员或系统管理员指定。
可变分配策略
• 为每个活跃进程分配的页框数在进程的生命周 期内是可变的。即,系统可以首先给进程分配 一定数量的页框。进程运行期间,可以增加或 减少页框。 • 系统可以根据进程的缺页率调整进程的驻留集。
—当进程的缺页率很高时,驻留集太小,需要增加页 框; —当缺页率一段时间内都保持很低时,可以在不会明 显增加进程缺页率的前提下, 回收 其一部分页框,减 小进程的驻留集。
否
唤醒进程
返回
图3.31 虚拟存储分段系统中的缺段中断的处理过程
虚拟存储段页式技术
• 虚拟存储段页式系统中,程序和数据通常以页 面为单位被系统装入和移出内存。
• 因此,一般不需要在段表项中增加“存在”字 段和“修改”字段,而将它们放在页表中。 • 段表中需要保留基于段的保护与存储共享等目 的的存取控制信息,页表中设臵基于页的控制 信息。
交换页/段
从外存装入页/段
更新页/段表
图3.28 实现虚拟存储的典型过程
?什么是虚拟存储
• 通过系统提供的缺页/段中断功能和交换技术, 动态装入进程的程序代码和数据,使得一个大 的用户程序能在一个相对较小的内存空间中运 行,也使得有限的内存能同时容纳更多的进程。
• 习惯上,人们把这种用户感觉上的、由实际内 存和部分外存共同构成的存储空间称为虚拟存
地址变换与存储保护
• 在简单分段系统的地址变换机构基础上形成的。 • 越界检查:可能产生一个地址越界中断,进入 相应的中断处理例程执行。一般地,当地址越 界中断处理完毕,该进程将异常结束。 • 操作合法性检查:如果属于非法操作,产生非 法访问中断,这时也会让进程异常终止。 • 缺段处理:执行进程被阻塞。并产生一个中断 信号,处理机执行缺段中断处理例程。
基本的驻留集管理策略
• 固定分配策略(Fixed-Allocation Policy) • 可变分配策略(Variable-Allocation Policy)
固定分配策略
• 为每个进程分配 固定数量 的页框。即, 每个活跃进程的驻留集尺寸在运行期间 固定不变。 • 为进程分配多少个页框是合理的呢?
虚拟存储的好处
• 第一,可以运行大程序,包括超过内存 实际容量的大程序。 • 第二,可以在有限的物理内存中运行更 多的程序。多道程序系统的度不再受到 物理内存空间的限制。
虚拟存储的典型问题 抖动(thrashing)
• 当进程要求装入新的页面或程序段时,如果当 前没有足够的空闲空间,需要交换一些页面或 段到外存。如果被交换出去的页面或段很快将 被进程使用,则又需要将其换入内存。 • 如果系统花费大量的时间把程序和数据频繁地 装入和移出内存而不是执行用户指令,那么, 称系统出现了抖动。出现抖动现象时,系统显 得非常繁忙,但是吞吐量很低,甚至产出为零。 • 根本原因:选择的页面或段不恰当。
逻辑地址 页号 偏移量 检索快表 ?内存满 ?命中 是 否 访问页表 处理机从外存取该页 ?页在内存 是 更新快表 页框号 偏移量 物理地址 否 将该页装入内存 更新页表 缺页中断处理 否 处理机处理中断 是
换出页面
图3.30 虚拟存储分页系统地址变换过程
缺页中断处理过程
(1)操作系统接收到进程产生的缺页中断信号,启动中 断处理例程,保留处理机现场; (2)操作系统通知处理机从外存读取指定的页面; (3)处理机激活I/O设备; (4) 检查内存有无足够的空闲空间装入该页面?若有, 转(6),否则,执行(5); (5) 利用页面臵换算法,选择内存中的某个页面,换 出内存; (6) 将指定页面从外存装入内存; (7) 更新该进程的页表; (8) 更新快表; (9)计算物理地址。
页号
页框号
存在
修改
其他控制
(a) 虚拟存储页表项 段号 段长 段基址长 存在 修改 其他控制
(b) 虚拟存储段表项 段号 页号 页表长度 页框号 页表基址 存在 修改 其他控制 其他控制 段表项 页表项
(c) 虚拟存储段页式系统的段表项和页表项 图3.29 虚拟分页、分段及段页式存储系统的数据结构
虚拟存储系统的软件策略
• • • • • • 驻留集管理(Resident Set Management) 放臵策略(Placement Policy) 获取策略(Fetch Policy) 臵换策略(Replacement Policy) 清除策略(Cleaning Policy) 负载控制(Load Control)
局部臵换策略
段号
逻辑地址 段内页号 页内偏移量
检索快表 是 否 缺页中断处理 访问段表 访问页表
?命中
更新页表 否
?页在内存 是 更新快表 页框号 图3.32 偏移量
物理地址
虚拟存储分页系统地址变换过程
虚拟存储系统的软件策略
• 现代操作系统几乎都采用虚拟存储管理系统 • 一些特殊的操作系统和一些较老的操作系统没 有采用虚拟存储技术。例如,MS DOS和早期的 UNIX操作系统等。 • 大多采用分段与分页相结合的段页式管理系统。 • 下面以分页存储管理为例,介绍虚拟存储系统 采用的软件策略。
实现虚拟存储的一般过程
• 进程运行之前,仅需要将一部分页面或段装入 内存,便可启动运行,其余部分暂时保留在磁 盘上。
• 进程运行时,如果它所需要访问的页面(段) 已经装入内存,则可以继续执行下去; • 如果其所需要访问的页面(段)尚未装入内存, 则发生缺页(段)中断,进程阻塞。 • 此时,系统将启动请求调页(段)功能,将进 程所需的页(段)装入内存。
地址变换
• 首先,通过根据段号和页号,查找快表中是否 存在对应的页表项。 • 若快表中不存在该页表项,则再查找段表。然 后,检索段号对应的段表项,找到对应段的页 表起始地址。 • 再根据页号检索该页表,检查对应页面是否在 内存。若该页面不在内存,启动缺页中断处理 例程,装入需要的页面,并更新页表和快表。 若该页面已经在内存中,将对应的页表项插入 快表中,更新快表。 • 若快表中存在该表项,则直接取出其中的页框 号,加上页内偏移量,计算出物理地址。
3.5 虚拟存储管理技术
• 简单存储:要求将一个进程所需的程序和数据 全部装入内存方可执行。
• 这样的系统存在两个很严重的问题。
— 其一,对于大进程,如果其所需内存空间超过了内存 的最大容量,则无法运行。 — 其二,对于多道程序系统,由于每一个进程需要全部 装入内存,使同时驻留内存的进程数量受到限制。虽 然也可以通过提高内存容量来解决,但是代价太高。
页面获取策略
• 解决的问题:系统应当在 何时 把一个页 面装入内存? • 请求调页 (Demand Paging) • 预调页 (Prepaging)
请求调页
• 仅当进程执行过程中,通过检查页表发现相应 页面不在内存时,才装入该页面。 • 当进程刚开始执行时,由于预先未装入进程的 页面,故需要频繁地申请装入页面。执行一段 时间以后,进程的缺页率将下降。 • 采用请求调页方式,一次装入请求的一个页面, 磁盘I/O的启动频率较高,系统的开销较大。