请求分页管理方式
1 概述
请求分页系统建立在基本分页系统基础之上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能。请求分页是目前最常用的一种实现虚拟存储器的方法。
在请求分页系统中,只要求将当前需要的一部分页面装入内存,便可以启动作业运行。在作业执行过程中,当所要访问的页面不在内存时,再通过调页功能将其调入,同时还可以通过置换功能将暂时不用的页面换出到外存上,以便腾出内存空间。
为了实现请求分页,系统必须提供一定的硬件支持。除了需要一台具有一定容量的内存及外存的计算机系统,还需要有页表机制、缺页中断机构和地址变换机构。
2 页表机制
请求分页系统在一个作业运行之前不要求全部一次性调入内存,因此在作业的运行过程中,必然会出现要访问的页面不在内存的情况。为解决此类问题,在请求页表项中增加了四个字段:
说明如下:
- 状态位P:用于指示该页是否已调入内存,供程序访问时参考。
- 访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近己有多长时间未被访问,供置换算法换出页面时参考。
- 修改位M:标识该页在调入内存后是否被修改过。
- 外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。
3 缺页中断机构
在请求分页系统中,每当所要访问的页面不在内存时,便产生一个缺页中断,请求操作系统将所缺的页调入内存。此时应将缺页的进程阻塞(调页完成唤醒),如果内存中有空闲块,则分配一个块,将要调入的页装入该块,并修改页表中相应页表项,若此时内存中没有空闲块,则要淘汰某页(若被淘汰页在内存期间被修改过,则要将其写回外存)。
缺页中断作为中断同样要经历,诸如保护CPU环境、分析中断原因、转入缺页中断处理程序、恢复CPU环境等几个步骤。但与一般的中断相比,它有以下两个明显的区别:
- 在指令执行期间产生和处理中断信号,而非一条指令执行完后,属于内部中断(又称异常或陷入)。
- 一条指令在执行期间,可能产生多次缺页中断。
4 地址变换机构
请求分页系统中地址变换机构,是在分页系统地址变换机构的基础上,实现虚拟内存,又增加了某系而功能而形成的。
如图所示,在进行地址变换时,先检索快表:
- 若找到要访问的页,便修改页表项中的访问位(写指令则还须重置修改位),然后利用页表项中给出的物理块号和页内地址形成物理地址。
- 若未找到该页的页表项,应到内存中去查找页表,再对比页表项中的状态位P,看该页是否已调入内存,未调入则产生缺页中断,请求从外存把该页调入内存。
请求分段管理方式
1 概述
在请求分段存储管理系统中,作业运行之前,只要求将当前需要的若干个分段装入内存,便可启动作业运行。在作业运行过程中,如果要访问的分段不在内存中,则通过调段功能将其调入,同时还可以通过置换功能将暂时不用的分段换出到外存,以便腾出内存空间。
为实现请求分段系统,系统应该配置段表机制、缺段中断机构、机制变换机构硬件支持。
2 段表机制
- 存取方式:存取属性(执行、只读、允许读/写)
- 访问字段A:记录该段被访问的频繁程度
- 修改位M:表示该段在进入内存后,是否被修改过。
- 存在位P:表示该段是否在内存中。
- 增补位:表示在运行过程中,该段是否做过动态增长。
- 外存地址:表示该段在外存中的起始地址。
3 缺段中断机制
缺段中断机构与缺页中断机构类似,它同样需要在一条指令执行期间,产生和处理中断,以及一条指令执行期间可能产生多此缺段中断。由于分段是信息的逻辑单元,因而不可能出现一条指令被分割在两个分段中和一个信息被分割在两个分段中的情况。
缺段中断的处理过程如图:
4 地址变换机构
请求分段系统中地址变换机构是在分段系统地址变换机构的基础上形成的。如下图所示:
5 分段共享与保护
5.1 分段共享
为了实现分段共享,设置一个数据结构——共享段表,以及对共享段进行操作的过程。
所有的共享段都在共享段表中对应一个表项。其中:
- 共享进程计数器count:记录有多少个进程需要共享该分段,设置一个整型变量count。
- 存取控制字段:设定存取权限。
- 段号:对于一个共享段,不同的进程可以各用不同的段号去共享该段。
5.2 分段保护
在分段系统中,由于每个段在逻辑上是独立,因而比较容易实现信息保护。目前分段管理的保护主要有三种:
地址越界保护
先利用段表寄存器中的段表长度与逻辑地址中的段号比较,若段号超界则产生越界中断;再利用段表项中的段长与逻辑地址中的段内位移进行比较,若段内位移大于段长,也会产生越界中断。
注:在允许段动态增长的系统中,允许段内位移大于段长。访问控制保护(存取控制保护)
在段表中设置了一个存取控制字段,用于规定对该段的访问方式。环保护机构
环的构成:OS核心在内环;重要的实用程序和操作系统服务在中间环;一般应用程序在外环。
在环系统中,程序的访问和调用应遵循一定的规则:
(1)一个程序可以访问同环或较低特权环中的数据;
(2)一个程序可以调用同环或较高特权环中的服务;