第五章 虚拟存储器 *(续)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37868325/article/details/84348275

※抖动

  1. 系统抖动:
    • 为了提高处理机利用率,可增加多道程序并发度;
    • 但进程数目增加过多,每个进程分配得到的物理块太少,在某个临界点上,会出现刚被淘汰的页很快又需重新调入;而调入不久又被淘汰出去;出现频繁缺页
    • 大部分处理器时间都用在来回的页面调度上,这种局面称为系统抖动或颠簸(thrashing)
  2. 抖动的后果:
    • 缺页率急剧增加
    • 内存有效存取时间加长,
    • 系统吞吐量骤减;系统已基本不能完成什么任务,而是忙于页面对换操作,cpu虽然忙,但效率急剧下降。
  3. 根本原因:
    • 页面淘汰算法不合理;分配给进程的物理页面数(驻留集)太少。

 

  1. 常用防抖动方法:
    • 局部置换策略;
    • 页面调入内存前检查各进程工作集,为缺页率高的增加有限物理块;
    • L缺页间的平均时间=S置换一个页面所需时间,可使磁盘和cpu达到最大利用率;
    • 抖动发生时选择暂停一些进程,调节多道程序度。

  1. 缺页率与物理块数有关联,基于程序局部性原理,若能预知程序在某段时间要访问的页面并全部调入他们,将大大降低缺页率。
  2. Denning提出工作集概念:
    • 某段时间间隔中,进程实际要访问的页面的集合。可以用一个二元函数W(t, D)来表示, t是当前的执行时刻,D 称为工作集窗口(working-set window )。

 

 

  1. 工作集模型的原理:
    • 操作系统跟踪每个进程的工作集,并为进程分配大于其工作集的物理块。
    • 如果还有空闲物理块,则可以再调一个进程到内存以增加多道程序数。
    • 如果所有工作集之和增加以至于超过了可用物理块的总数,那么操作系统会暂停一个进程,将其页面调出并且将其物理块分配给其他进程,防止出现抖动现象。
  2. 正确选择工作集的大小,对存储器的利用率和系统吞吐量的提嵩,都将产生重要影响。

 

驻留集

  1. 驻留(常驻)集是指在当前时刻,进程实际驻留在内存当中的页面集合。
  2. 工作集是进程在运行过程中固有的性质,而驻留集取决于系统分配给进程的物理页面数目,以及所采用的页面置换算法;
  3. 如果一个进程的整个工作集都在内存当中,即驻留集 Ê 工作集,那么进程将很顺利地运行,而不会造成太多的缺页中断(直到工作集发生剧烈变动,从而过渡到另一个状态);
  4. 当驻留集达到某个数目之后,再给它分配更多的物理页面,缺页率也不会明显下降。

 

  1. 操作系统中的“抖动”是指   C   的现象。

A. 根据一定的页面置换算法,将页面调出

B. 由于选择了长期未被访问的页进行置换,导致系统更换页面

C. 页面调入不久就被导出,导出不久又被调入,导致系统频繁更换页面

D. 根据系统运行情况决定将哪个页面调出,而不是由页面置换算法决定更换哪个页面

  1. 系统资源利用率与系统效率是否一定成正比? 如不是,举例说明之

          答:系统效率高则资源利用率高,而反之却不尽然。例如,在虚拟页式存储管理系统中,当页面置换算法不合理或分给进程的页框数过少时,可能发生抖动(thrashing),此时I/O设备很忙碌,但系统效率可能很低。

  1. 请求分段存储管理方式

            在请求分段系统中,程序运行之前,只需先调入若干个分段(不必调入所有的分段),便可启动运行。当所访问的段不在内存中时,可请求OS将所缺的段调入内存。

1)请求分段中的硬件支持

  • 段表机制
  • 缺段中断机构
  • 地址变换机构

 

②缺段中断机构

  1. 发现运行进程所访问段尚未调入内存
    • 由缺段中断机构产生一缺段中断信号
    • 进入OS,由缺段中断处理程序将所需的段调入内存。
    • 缺段中断同样在一条指令的执行期间产生和处理中断,一条指令执行可能产生多次缺段中断。但不会出现一条指令被分割在两个分段中或一组信息被分割在两个分段中的情况。

 地址变换机构。

基于分段系统地址变换机构的基础

  1. 段调入内存
  2. 修改段表
  3. 再利用段表进行地址变换。

总之:就是增加了缺段中断的请求及处理等功能

 

2)分段的共享和保护

 

分段在逻辑意义上划分,实现共享和保护都较方便。以下讨论具体实现:

①实现共享:共享段表

       在内存中配置一张共享段表,每个共享段都占有一表项,记录如下内容:

  1. 共享计数count:
    • 共享段为多个进程所需要,当某进程不再需要它而释放它时,系统并不回收该段所占内存区,仅当所有共享该段的进程全都不再需要它时,才由系统回收该段所占内存区。设置count用于记录有多少个进程需要共享该分段。

 

  1. 存取控制字段:一个共享段给不同的进程以不同的存取权限。
  2. 段号:对一个共享段,不同的进程可用不同的段号。

 

② 共享段如何分享与回收

 

  1. 共享段的分配
    • 第一个请求使用该共享段的进程A:系统为该共享段分配一物理区,再把共享段装入该区;
    • 将该区的始址填入A的段表相应项;
    • 共享段表中增加一表项,填写有关数据,count置1;
    • 其他进程B也调用该共享段时,无需再为该段分配内存,只需在B的段表中增加一表项,填写该共享段的物理地址;在共享段的段表中,填上调用进程的进程名、存取控制等,再执行count:=count+1操作。
  2. 共享段的回收
    • 包括撤消在进程段表中共享段所对应的表项,执行count:=count-1。
    • 如果count为0,则由系统回收该共享段的物理内存,并取消共享段表中该段所对应的表项。

 

③ 分段保护

  1. 越界检查
    • 段表寄存器存放了段表长度;段表中存放了每个段的段长。
    • 在进行存储访问时,将段号与段表长度比较,段内地址与段长比较。
  2. 存取控制检查
    • 尤其表现在不同进程对共享段的不同使用上。段表每个表项都设置“存取控制”字段,规定该段的访问方式:只读,只执行,读/写
  3. 环保护机构
    • 规定:低编号的环具有高优先权
    • 遵循的原则:一个程序可以访问驻留在相同环或较低特权环中的数据。一个程序可以调用驻留在相同环或较高特权环中的服务

 

要点练习题

 

  1. 实现虚拟存储器的目的是:

从逻辑上扩充主存容量

 

  1. 虚拟的基础是局部性原理,其基本含义是指令的局部性(时间局部性与空间局部性)。
  2. 在虚存管理中,虚拟地址空间是指逻辑地址空间,实地址空间是指物理地址空间;前者的大小受   的限制,而后者的大小受      的限制。

答:机器的指令地址长度;物理内存大小。

 

4.在请求页式系统中,OPT是       ;LRU是       ;NRU是       ;LFU是     

最佳置换算法;最近最久未使用置换算法;最近未使用置换算法;最不经常使用置换算法。

  1. 页式虚拟存储管理的主要特点是:

不要求将作业同时全部装入到主存的连续区域。

 

  1. 在请求分页存储管理中,若采用FIFO页面淘汰算法,则当分配的页面数增加时,缺页中断的次数      可能增加也可能减少     
  2. 在请求分页系统中,地址变换过程可能会因为                       错误等原因而产生中断 缺页、地址越界、访问权限错误
  3.  

 

  1. 在请求分段存储管理中,系统必须至少具有三种支持机构,分别为     段表、缺段中断机构、地址变换机构。

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_37868325/article/details/84348275
今日推荐