请求分页存储管理方式

556 阅读5分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第16天,点击查看活动详情

前面我们已经学习过基本分页存储管理方式,本次我们将学习请求分页存储管理方式,它是在基本分页系统的基础上,增加了部分页装入、请求调页、页面置换功能。

一、请求分页存储管理中的硬件支持

实现请求页式存储管理系统,需要一定的硬件支持。除了需要一定容量的内存和外存对换区之外,还需要页表机制、缺页中断机构和地址变换机构。

1 页表机制 (Page Table Mechanism)

1.PNG

2 缺页中断机构 (Page fault interrupt mechanism)

当要访问的页不在内存时,产生一缺页中断。OS接到此中断信号后,调用缺页中断处理程序,将该页调入内存,更新页表,完成重定位。期间可能调用置换程序。

缺页中断和一般中断的区别:

相同点:

保护现场 中断处理 恢复现场

不同点:

1)一般中断是指令完成后中断,缺页中断在指令执行时中断。 (指令复执)。

2)一条指令执行期间可能会有多次缺页中断。

image.png

3 地址变换机构

物理地址仍由页表项中的物理块号和逻辑地址中的页内地址决定。 设置页表寄存器,存放页表始址和长度。 同样可设置快表。

image.png

二、内存分配策略和分配算法

1 最小物理块数的确定

  1. 分配给一个进程的物理块数越少,内存中的进程数越多;

  2. 若一个进程分配的物理块数较少,缺页率(Page Fault Rate)相对较高; 必须有足够的物理块把一条指令所访问的的各个页存放起来。

2 页面分配和置换策略

分配策略根据进程分配物理块数是否固定分为: 固定和可变

置换策略根据换出页面是否属于自身进程分为: 全局和局部

1)固定分配、局部置换

2)可变分配、全局置换

3)可变分配、局部置换

三、页面调入策略

1 何时调入页面

即确定何时将进程所需页调入内存。常用的方式有预调和请调两种。

1)请求调页策略 缺页中断时,由系统将所缺的页调入内存。但每次请求只调入一页。 优点:容易实现。 缺点:对外存I/O次数多,开销较大,容易产生抖动现象。

2)预调页策略

将预计不久之后会被访问的程序或数据所在的页面,提先调入内存。 优点:提高调页的I/O效率。 缺点:基于预测,若调入的页在以后很少被访问,则效率低。常用于首次调入时,由程序员指出应该先调入的页面。 为了减少系统开销,一次调入多页比调入一页更高效。

2 何处调入页面

外存要分为文件区和对换区。对换区为取得较快的速度,采用连续分配方式,且对换区所规定盘块较大。

1)从对换区调入。若系统有足够的对换区空间。则可全部从对换区调入所需页面。要求运行前,将其所有页面复制到对换区。

2)只将修改过的页放在对换区。若对换空间不足。开始都从文件区调入。对未被修改的页面,每次都从文件区调入(换出时不需回写);被修改的页面换出到对换区,以后从对换区调入。

3)首次从文件区调入,以后再次调入时从对换区调入。UNIX方式。未运行过的,从文件区调入;运行后换出时,放到对换区。因此对于曾运行过而又被换出的页面,从对换区调入。

3 页面调入过程

1)缺页中断;

2)中断处理程序保留CPU现场、分析原因、转入缺页中断处理程序;

3)查页表,得到该页在外存的物理块号;

4)查内存,未满 GOTO 5);已满,按置换算法选择一页换出(未改,则不必换出;已改,则换出) GOTO 5);

5)调入,修改页表(状态位、物理块号);修改快表;

6)利用页表得到物理地址,访问数据。

4 缺页率

假定进程P的逻辑地址空间共有n页,而系统分配给它的主存块只有m块(m和n均为正整数,且1≤m≤n),即主存中最多只能容纳该进程的m页。如果进程P在运行中成功访问的次数为S(即所访问的页在主存中),不成功的访问次数为F(即缺页中断次数),则总的访问次数A为:

              A= S + F                         

又定义:

                   f = F/A                           

以上内容就是关于请求分页存储管理方式的介绍,这种方式是不同于基本分页存储管理方式的,既有相同点又有不同点,但总体上是要优于基本分页存储管理方式的。