目录
4.8 抖动与工作集
1、缺页率对有效访问时间的影响
2、CPU 利用率急剧下降的原因
3、抖动
4、工作集模型
5、抖动的预防
4.9 请求分段存储管理方式
4.9.1 请求分段中的硬件支持
4.9.2 分段的共享与保护
4.8 抖动与工作集
1、缺页率对有效访问时间的影响
有效访问时间:是指访问存储器所需时间的平均值。
假设使用了快表,则 CPU 访问内存的时间组成为:
- 内存读写周期
- 查找快表时间
- 缺页中断处理时间
缺页中断处理时间的组成为:
- 缺页中断服务时间
- 页面传送时间:读缺页和写置换页
- 进程重新执行时间
由于缺页中断服务时间及进程重新执行时间较短,因此这里仅考虑页面传送时间。
2、CPU 利用率急剧下降的原因
系统内进程增多 => 每个进程的缺页率增大 => 缺页率增大到一定程度,进程总等待调页完成 => CPU 利用率降低 => 进程进一步增多,缺页率更大 =>……,称这一现象为抖动(thrashing)
显然,防止抖动的根本手段就是给进程分配足够多的帧,即物理块数。
问题是如何确定进程需要多少帧才能不抖动?
3、抖动
抖动:又称颠簸。如果运行进程的大部分时间都用于页面的换入/换出,而几乎不能完成任何有效的工作,则称此进程处于抖动状态。
抖动的类型有:
- 局部抖动(采用局部置换时)
- 全局抖动(采用全局置换时)
抖动产生的原因有:
- 进程分配的物理块太少
- 置换算法选择不当
- 全局置换使抖动传播
4、工作集模型
(1) 工作集的基本概念
由局部性原理可知,程序在运行期间,对页面的访问是不均匀的。在一段时间内仅局限于较少的页面,在另一段时间内,又可能仅局限于对另一些较少的页面进行访问。这些页面被称为活跃页面。如果能够预知程序在某段时间间隔内要访问哪些页面,并将它们调入内存,将会大大降低缺页率,从而显著地提高处理机的利用率。
(2) 工作集的定义
选择哪个进程换入、换出,属于中程调度。
5、抖动的预防
抖动发生前会出现一些征兆,可利用这些征兆发现抖动并加以防范。
这些技术有:
- 采取局部置换策略
- 引入工作集的算法
- L=S 准则:L 缺页之间的平均时间,S 平均缺页服务时间
- 选择暂停的进程
4.9 请求分段存储管理方式
4.9.1 请求分段中的硬件支持
工作原理:在请求分段系统中,程序运行之前,只需先调入若干个分段(不必调入所有的分段),便可启动运行。当所访问的段不在内存中时,可请求 OS 将所缺的段调入内存。
为了实现请求调段、分段置换两大功能,系统必须提供如下的硬件支持:
- 请求分段的段表机制
- 缺段中断机构
- 地址变换机构
一、段表机制
在虚拟存储系统中的所有段表,其段描述子增加五个信息标识位。
二、缺段中断机构
在地址映射过程中,在段表中发现所要访问的段不在内存,则产生缺段中断。OS 调用缺段中断处
理程序,根据段表中给出的外存地址,将该段调入内存,使作业继续运行下去。
缺段中断与缺页中断类似,主要表现为:
1、一个缺段中断要求在指令执行中间得到服务,即发现所要访问的指令或数据不在内存时产生缺段中断并处理。
2、一条指令可能引起多次不同的缺段中断。
4.9.2 分段的共享与保护
一、共享段表
为了实现分段共享,可在系统中配置一张共享段表,所有共享段都在共享段表中占有一个表项。
- 共享进程计数:记录有多少个进程共享该段。
- 存取控制字段:对同一共享段,不同进程有不同的操作权限。
- 段号:共享段在不同进程中有不同的段号。
- 省略号代表若干个第三行,记录有哪些进程在共享。
二、共享段的分配与回收
1. 共享段的分配
在为共享段分配内存时,对第一个请求使用该共享段的进程,由系统为该共享段分配一物理区,再把共享段调入该区,同时将该区的始址填入请求进程的段表的相应项中,还须在共享段表中增加一表项,填写有关数据,把 count 置为 1;
当又有其它进程需要调用该共享段时,无须再为该段分配内存,而只需在调用进程的段表中,增加一表项,填写该共享段的物理地址;在共享段表中,填上调用进程的进程名、存取控制等,再执行count := count + 1 操作,以表明有两个进程共享该段。
2. 共享段的回收
当共享此段的某进程不再需要该段时,应将该段释放, 包括撤消该进程段表中共享段所对应的表项,以及执行 count := count - 1 操作。
若 count 结果为 0,则须由系统回收该共享段的物理内存,以及取消在共享段表中该段所对应的表项,表明此时已没有进程使用该段;否则,则只是取消调用者进程在共享段表中的有关记录。
3. 分段保护
① 越界检查
寄存器中放有段表长度信息,将逻辑地址空间的段号与段表长度进行比较 ,如果段号等于或大于段表长度,将发出地址越界中断信号。
保证每个进程只能在自己的地址空间内运行。
② 存取控制检查:只读、只执行、读/写
③ 环保护机构:低编号的环具有高优先权。OS 核心处于 0 环内;某些重要的实用程序和操作系统服务,占居中间环;而一般的应用程序在外环上。
环保护的基本原则
- 一个程序可以访问驻留在相同环或较低特权环中的数据
- 一个程序可以调用驻留在相同环或较高特权环中的服务