第5章存储器理 本章主要讲述内存的各种管理方式,其体包括分区式、页式、段式、段页式存储管理方式 以及虚拟存储器的基本概念和请求调页、请求调段存储管理方式等内容。 5.1基本内容 5.1.1存储器管理的基本概念 操作系统中的存储管理主要是指内存管理 1.存储管理研究的课题 (1)存储分配,研究存储共享和各种分配算法; (2)地址再定位,研究各种地址变换机构及动态和静态再定位 (3)存储保护,研究存储保护方法 (4)存储扩充,研究虚拟存储器问题及各种调度方法。 2.存储分配方式 1)直接分配方式:程序员在编写程序或编译程序对源程序编译时采用实际存储地址。采 用这种方式,必须事先划定作业的可用空间,因此这种直接指定方式的存储分配,存储空间的 利用率不高,对用户使用也不方便 (2)静态分配方式:在将作业装入内存时才确定它们在主存中的位置。采用这种分配方式, 在一个作业装入时必须分配其要求的全部存储量:如果没有足够的存储空间,就不能装入该作 业。此外,作业一旦进入内存后,在整个运行过程中不能在内存中移动,也不能再申请内存空 (3)动态分配方式:作业在存储空间中的位置也是在装入时确定的;但在其执行过程中可 根据需要申请附加的存储空间。当一个作业已占用的存储区不再需要时,可以归还给系统。同 时,在作业运行过程中允许它在存储空间中移动 目前,绝大多数计算机系统都采用静态或动态存储分配方式 3.地址再定位 (1)几种空间 ①名空间:源程序中由符号名组成的空间。 ②逻辑地址空间:由逻辑地址组成的空间。所谓逻辑地址是以0为基地址顺序进行编址的 相对地址 ③物理地址空间:是物理地址的集合。所谓物理地址,就是存储(内存)地址。 (2)地址的再定位 个逻辑地址空间的程序装入到物理地址空间时,由于两个空间不一致,需要进行地 址变换或地址映射,即地址的再定位。地址再定位有静态和动态两种方式: ①静态再定位:在程序运行之前,由再定位程序完成。其优点是易实现,不需要硬件支持 缺点是只能在连续区域分配程序的存储空间:再定位后不能移动,多个用户很难共享内存中 的同一程序 ②动态再定位:在程序执行期间,每次访问存储器之前进行:由硬件再定位寄存器存放程序 的起始地址。优点是程序占用的内存空间动态可变,充分利用主存,若干用户可共享同一程序。 但需要硬件支持且管理软件算法较复杂。 4.虚拟存储器的概念 (1)局部性原理 程序局部性原理是指程序在执行时将呈现出局部性规律,即在一较短的时间内,程序的 执行仅局限于某个部分,相应地,它所访问的存储空间也仅局限于某个区域 ①时间局部性:如果程序中的某条指令一旦执行,则不久以后该指令可能再次执行;如
第 5 章 存储器理 本章主要讲述内存的各种管理方式,其体包括分区式、页式、段式、段页式存储管理方式, 以及虚拟存储器的基本概念和请求调页、请求调段存储管理方式等内容。 5.1 基本内容 5.1.1 存储器管理的基本概念 操作系统中的存储管理主要是指内存管理 1.存储管理研究的课题 (1)存储分配,研究存储共享和各种分配算法; (2)地址再定位,研究各种地址变换机构及动态和静态再定位; (3)存储保护,研究存储保护方法; (4)存储扩充,研究虚拟存储器问题及各种调度方法。 2.存储分配方式 (1)直接分配方式:程序员在编写程序或编译程序对源程序编译时采用实际存储地址。采 用这种方式,必须事先划定作业的可用空间,因此这种直接指定方式的存储分配,存储空间的 利用率不高,对用户使用也不方便。 (2)静态分配方式:在将作业装入内存时才确定它们在主存中的位置。采用这种分配方式, 在一个作业装入时必须分配其要求的全部存储量;如果没有足够的存储空间,就不能装入该作 业。此外,作业一旦进入内存后,在整个运行过程中不能在内存中移动,也不能再申请内存空 间。 (3)动态分配方式:作业在存储空间中的位置也是在装入时确定的;但在其执行过程中可 根据需要申请附加的存储空间。当一个作业已占用的存储区不再需要时,可以归还给系统。同 时,在作业运行过程中允许它在存储空间中移动。 目前,绝大多数计算机系统都采用静态或动态存储分配方式。 3.地址再定位 (1)几种空间 ①名空间:源程序中由符号名组成的空间。 ②逻辑地址空间:由逻辑地址组成的空间。所谓逻辑地址是以 0 为基地址顺序进行编址的 相对地址。 ③物理地址空间:是物理地址的集合。所谓物理地址,就是存储(内存)地址。 (2)地址的再定位 一个逻辑地址空间的程序装入到物理地址空间时,由于两个空间不一致,需要进行地 址变换或地址映射,即地址的再定位。地址再定位有静态和动态两种方式: ①静态再定位:在程序运行之前,由再定位程序完成。其优点是易实现,不需要硬件支持; 缺点是只能在连续区域分配程序的存储空间;再定位后不能移动,多个用户很难共享内存中 的同一程序。 ②动态再定位:在程序执行期间,每次访问存储器之前进行;由硬件再定位寄存器存放程序 的起始地址。优点是程序占用的内存空间动态可变,充分利用主存,若干用户可共享同一程序。 但需要硬件支持且管理软件算法较复杂。 4.虚拟存储器的概念 (1)局部性原理 程序局部性原理是指程序在执行时将呈现出局部性规律,即在一较短的时间内,程序的 执行仅局限于某个部分,相应地,它所访问的存储空间也仅局限于某个区域。 ①时间局部性:如果程序中的某条指令一旦执行,则不久以后该指令可能再次执行;如
果某个数据被访问,则不久以后该数据可能被再次访问。产生时间局部性的典型原因是由于程 序中存在着大量的循环操作 ②空间局部性。一旦程序访问了某个存储单元,则不久以后,其附近的存储单元也将 被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围内,其典型情况便是 程序的顺序执行 (2)虚拟存储器:虚拟存储器是利用操作系统产生的一个其容量比主存大得多的存储器, 实际上是一个地址空间 基于局部性原理,应用程序在运行之前并不必全部装入内存,仅须将当前要运行到的那 部分程序和数据装入内存便可启动程序的运行,其余部分仍驻留在外存上;当要执行的指令或 访问的数据不在内存时,再由0S自动通过请求调入功能将它们调入内存,以使程序能继续执 行:如果此时内存己满,则还需通过置换功能,将内存中暂时不用的程序或数据调至盘上,腾出 足够的内存空间后,再将要访问的程序或数据调入内存,使程序继续执行 这样,便可使一个大的用户程序能在较小的内存空间中运行:也可在内存中同时装入更多 的进程使它们并发执行。从用户的角度看,该系统具有的内存容量比实际的内存容量大得多 我们将这种具有请求调入功能和置换功能、能从逻辑上对内存容量加以扩充的存储器系统称 为虚拟存储器 (3)实现虚拟存储器的物质基础: ①一定容量的主存 ②大容量的辅存 ③动态地址变换机构。 虚存的容量受字长、速度(传送〉、使用频率的限制,其最大容量由计算机系统的地址机构 确定。实现虚存的方案有:①分页式虚存(是请求分页):②分段式虚存;③〉段页式虚存。 (4)虚拟存储器的主要特征 ①多次性:与常规存储管理的”一次性"相反,虚拟存储器将一个作业分成多次调入内 存。多次性是虚拟存储器最重要的特征。 ②对换性。与常规存储管理的″驻留性"相反,在作业运行期间,虚拟存储器允许将那些暂 不使用的程序或数据从内存调至对换区,待以后需要时再调入内存,从而能有效地提高内存利 用率。 ③虚拟性。虚拟存储器对内存的扩充是逻辑上的,用户所看到的大容量只是一种感觉,并 不实际存在,因此是虚的。虚拟性是实现虚拟存储器的目标 5.1.2早期的存储管理 1.单一连续分配 (1)每次只有一个用户作业使用,它占用了全部资源(包括主存)。 (2)系统中的存储器被分成三个连续区域:①操作系统使用区域:②作业〈用户程序〉 区域;③未用区域。 早期的存储管理有以下特点 ①优点:简单,易于实现 ②缺点:仅适用于单道程序,处理机和主存不能充分利用。 2.分区分配 为满足多道程序设计和多用户系统的开发,把内存按不同的方法分区 (1)固定式分区 在系统生成时,将内存划分为若干个分区,大小可以不等,但事先固定,以后也不能改 特点:可以使多个作业共享内存,但内存利用不充分,浪费很大,有“内零头
果某个数据被访问,则不久以后该数据可能被再次访问。产生时间局部性的典型原因是由于程 序中存在着大量的循环操作。 ②空间局部性。一旦程序访问了某个存储单元,则不久以后,其附近的存储单元也将 被访问,即程序在一段时间内所访问的地址,可能集中在一定的范围内,其典型情况便是 程序的顺序执行。 (2)虚拟存储器:虚拟存储器是利用操作系统产生的一个其容量比主存大得多的存储器, 实际上是一个地址空间。 基于局部性原理,应用程序在运行之前并不必全部装入内存,仅须将当前要运行到的那 部分程序和数据装入内存便可启动程序的运行,其余部分仍驻留在外存上;当要执行的指令或 访问的数据不在内存时,再由 OS 自动通过请求调入功能将它们调入内存,以使程序能继续执 行:如果此时内存己满,则还需通过置换功能,将内存中暂时不用的程序或数据调至盘上,腾出 足够的内存空间后,再将要访问的程序或数据调入内存,使程序继续执行。 这样,便可使一个大的用户程序能在较小的内存空间中运行:也可在内存中同时装入更多 的进程使它们并发执行。从用户的角度看,该系统具有的内存容量比实际的内存容量大得多, 我们将这种具有请求调入功能和置换功能、能从逻辑上对内存容量加以扩充的存储器系统称 为虚拟存储器。 (3)实现虚拟存储器的物质基础: ①一定容量的主存; ②大容量的辅存 ③ 动态地址变换机构。 虚存的容量受字长、速度(传送〉、使用频率的限制,其最大容量由计算机系统的地址机构 确定。实现虚存的方案有:①分页式虚存(是请求分页);②分段式虚存;③〉段页式虚存。 (4)虚拟存储器的主要特征 ① 多次性:与常规存储管理的"一次性"相反,虚拟存储器将一个作业分成多次调入内 存。多次性是虚拟存储器最重要的特征。 ②对换性。与常规存储管理的"驻留性"相反,在作业运行期间,虚拟存储器允许将那些暂 不使用的程序或数据从内存调至对换区,待以后需要时再调入内存,从而能有效地提高内存利 用率。 ③虚拟性。虚拟存储器对内存的扩充是逻辑上的,用户所看到的大容量只是一种感觉,并 不实际存在,因此是虚的。虚拟性是实现虚拟存储器的目标。 5.1.2 早期的存储管理 1.单一连续分配 (1)每次只有一个用户作业使用,它占用了全部资源(包括主存)。 (2)系统中的存储器被分成三个连续区域:①操作系统使用区域;②作业〈用户程序〉 区域;③未用区域。 早期的存储管理有以下特点: ①优点:简单,易于实现。 ②缺点:仅适用于单道程序,处理机和主存不能充分利用。 2.分区分配 为满足多道程序设计和多用户系统的开发,把内存按不同的方法分区。 (1)固定式分区 在系统生成时,将内存划分为若干个分区,大小可以不等,但事先固定,以后也不能改 变。 特点:可以使多个作业共享内存,但内存利用不充分,浪费很大,有“内零头
(2)可变式分区即动态分区 可变式分区需了解的几个概念 ①空白区:一块连续的未使用的内存区。 ②空白区表:用于对空白区管理的目录表 ③碎片:一块小的不能使用的空白区。 ④可变式分区有两种不同选择:其一是分区数目固定,其各自的大小可变:其二是允许分 区的数目和大小都是可变的。 分配和释放分区的算法: ①最佳适应算法:空白区表是按空白区的容量,从小到大顺序排列。这种算法优点是查找 速度较快,准确合理 ②最差适应算法:空白区表是按空白区的容量,从大到小顺序排列。这种算法优点是一次 比较就可判定能否满足要求F分配后剩余区仍可使用。 ③最先适应算法:空白区表是按空白区的起始地址,由小到大顺序排列。这种算法优点是 在释放内存时,若有相邻空白区,可合并成一个较大区。在此算法中应尽量使用低地址部分, 高地址部分留有较多、较大空白区 (3)可再定位分区分配 可再定位分区分配即浮动分区分配,是解决碎片问题的简单而有效的方法。其基本思想是 移动所有被分配的分区,使之成为一个连续区域,而留下一个较大的空白区。移动(靠拢)时机 应选择在以下时间:①某作业完成时;②某作业请求分区时 可再定位分区分配的特点:优点是碎片可集中使用,内存利用率高;缺点是需要硬件支持, 移动会降低速度。 (4)分区的保护措施 ①界地址寄存器:下界寄存器存放作业分区的起始地址,上界寄存器存放下一分区的起始 地址。每次寻址和访问时,先与这两个寄存器的内容进行比较,以实现对分区的保护 ②基址寄存器和限长寄存器:基址寄存器存放作业分区的起始地址,限长寄存器存放作业 的最大偏移量〈长度)。在作业运行过程中,在访问存储器时所计算出的存储地址如果超过限 长,则发越界中断信号 5.1.3分页存储管理 1.有关分页存储管理的几个概念 (1)页面:把逻辑地址空间划分为一些相等的片,这些相等的片称为页面(或页〉。页的大 小通常在512B到4KB范围内,通常是2的幂 (2)块:把物理地址空间划分为同页面同样大小的片,称之为块,也称存储块或页框。 (3)页表(PMT):也称页面变换表。每个作业一张,该作业有多少页面就有多少表目,表目 内记录对应的存储块号。它包含两部分,前一部分为页号P,后一部分为页内位移W。上述地址 结构中,两部分构成的地址长度为16位。其中0-9位为页内地址,即每页大小为1K;10-15位 为页号,地址空间最多允许有64页 页号 页内位移量W 2.地址变换机构 (1)动态地址变换机构(DAT)用页面变换地址寄存器指出页表始址。 (2)高速页面变换寄存器用硬件的高速寄存器来实现作业地址空间到物理地址空间的变 换 (3)联想存储器,也称快表,利用一组高速寄存器,连同管理它们的硬件,构成一个容量较 小的存储器,称为联想存储器。联想存储器用于存放己在运行的作业的当前最常用的页号和相
(2)可变式分区即动态分区 可变式分区需了解的几个概念: ①空白区:一块连续的未使用的内存区。 ②空白区表:用于对空白区管理的目录表。 ③碎片:一块小的不能使用的空白区。 ④可变式分区有两种不同选择:其一是分区数目固定,其各自的大小可变;其二是允许分 区的数目和大小都是可变的。 分配和释放分区的算法: ①最佳适应算法:空白区表是按空白区的容量,从小到大顺序排列。这种算法优点是查找 速度较快,准确合理。 ②最差适应算法:空白区表是按空白区的容量,从大到小顺序排列。这种算法优点是一次 比较就可判定能否满足要求 F 分配后剩余区仍可使用。 ③最先适应算法:空白区表是按空白区的起始地址,由小到大顺序排列。这种算法优点是 在释放内存时,若有相邻空白区,可合并成一个较大区。在此算法中应尽量使用低地址部分, 高地址部分留有较多、较大空白区。 (3)可再定位分区分配 可再定位分区分配即浮动分区分配,是解决碎片问题的简单而有效的方法。其基本思想是: 移动所有被分配的分区,使之成为一个连续区域,而留下一个较大的空白区。移动(靠拢〉时机 应选择在以下时间:①某作业完成时;②某作业请求分区时; 可再定位分区分配的特点:优点是碎片可集中使用,内存利用率高;缺点是需要硬件支持, 移动会降低速度。 (4)分区的保护措施 ①界地址寄存器:下界寄存器存放作业分区的起始地址,上界寄存器存放下一分区的起始 地址。每次寻址和访问时,先与这两个寄存器的内容进行比较,以实现对分区的保护。 ②基址寄存器和限长寄存器:基址寄存器存放作业分区的起始地址,限长寄存器存放作业 的最大偏移量〈长度〉。在作业运行过程中,在访问存储器时所计算出的存储地址如果超过限 长,则发越界中断信号。 5.1.3 分页存储管理 1.有关分页存储管理的几个概念 (1)页面:把逻辑地址空间划分为一些相等的片,这些相等的片称为页面(或页〉。页的大 小通常在 512B 到 4KB 范围内,通常是 2 的幂。 (2)块:把物理地址空间划分为同页面同样大小的片,称之为块,也称存储块或页框。 (3)页表(PMT):也称页面变换表。每个作业一张,该作业有多少页面就有多少表目,表目 内记录对应的存储块号。它包含两部分,前一部分为页号 P,后一部分为页内位移 W。上述地址 结构中,两部分构成的地址长度为 16 位。其中 0-9 位为页内地址,即每页大小为 1K;10-15 位 为页号,地址空间最多允许有 64 页。 页号 P 页内位移量 W 15 10 9 0 2.地址变换机构 (1)动态地址变换机构(DAT)用页面变换地址寄存器指出页表始址。 (2)高速页面变换寄存器用硬件的高速寄存器来实现作业地址空间到物理地址空间的变 换。 (3)联想存储器,也称快表,利用一组高速寄存器,连同管理它们的硬件,构成一个容量较 小的存储器,称为联想存储器。联想存储器用于存放已在运行的作业的当前最常用的页号和相
应的块号,它具有并行查询能力 3.分页存储管理的实现 分页原理的主要内容是:将逻辑地址空间划分成大小相同的页面,将物理地址空间划分成 与页面同样大小的块,利用页面变换表(PMT),建立页与块的对应关系,通过PMT实现地址变 用户作业 页表 内存 页页页 4.地址变换机构 (1)动态地址变换机构(DAT)用页面变换地址寄存器指出页表始址 (2)高速页面变换寄存器用硬件的高速寄存器来实现作业地址空间到物理地址空间的变 (3)所需的表格:作业表(JT),全系统一张:存储分块表(MBT),全系统一张;页面变换 表(PMT),每个作业一张。由操作系统对以上表格进行管理 (3)地址变换过程 当进程要访问某个逻辑地址中的数据时,分页地址变换机构自动地将逻辑地址分为页号 和页内位移两部分,再以页号为索引去检索页表。在执行检索之前,先将页号与页表长度进行 比较,如果页号超过了页表长度,则表示本次所访问的地址已超越进程的地址空间,系统产生 地址越界中断。如果页访问合法,则由页表起始地址和页号计算出相应页表项的位置,从中得 到该页的物理块号。最后,将块号与逻辑地址中的页内位移拼接在一起,就形成了访问主存的 物理地址。图5.4给出了页式存储管理系统中的地址变换过程 越届中断 页表寄存器 逻辑地址 页表始址页表长度 452 页号块号 3 452
应的块号,它具有并行查询能力。 3.分页存储管理的实现 分页原理的主要内容是:将逻辑地址空间划分成大小相同的页面,将物理地址空间划分成 与页面同样大小的块,利用页面变换表(PMT),建立页与块的对应关系,通过 PMT 实现地址变 换。 用户作业 页 表 内 存 4.地址变换机构 (1)动态地址变换机构(DAT)用页面变换地址寄存器指出页表始址。 (2)高速页面变换寄存器用硬件的高速寄存器来实现作业地址空间到物理地址空间的变 换。 (3)所需的表格:作业表(JT),全系统一张;存储分块表(MBT),全系统一张;页面变换 表(PMT),每个作业一张。由操作系统对以上表格进行管理。 (3)地址变换过程 当进程要访问某个逻辑地址中的数据时,分页地址变换机构自动地将逻辑地址分为页号 和页内位移两部分,再以页号为索引去检索页表。在执行检索之前,先将页号与页表长度进行 比较,如果页号超过了页表长度,则表示本次所访问的地址已超越进程的地址空间,系统产生 地址越界中断。如果页访问合法,则由页表起始地址和页号计算出相应页表项的位置,从中得 到该页的物理块号。最后,将块号与逻辑地址中的页内位移拼接在一起,就形成了访问主存的 物理地址。图 5.4 给出了页式存储管理系统中的地址变换过程。 越届中断 页表寄存器 逻辑地址 页号 块号 0 页 1 页 2 页 ┇ N 页 0 2 1 4 2 7 ┇ ┇ 页表始址 页表长度 2 452 0 2 1 3 2 8 8 452 < +
在图5.4中,假定页面大小为lk字节,则逻辑地址2500(=2×1024+452)的页号为2,页内 地址为452。由页表可知第2页对应的物理块号为8。将块号8与页内地址452拼接(8× 1024+452=864)得到物理地址为8644 (4)联想存储器:从上面介绍的地址变换过程可知,若页表全部放在主存,则要存取一个数 据或一条指令至少要访问两次主存,一次是访问页表,确定所存取的数据或指令的物理地址 第二次才根据该地址存取数据或指令。显然,这种方法比通常执行指令的速度慢了一倍。为了 提高査表速度,可在地址变换机构中増设一个具有并行査找能力的高速缓冲存储器(又称联想 存储器或快表),将页表放在这个高速缓冲存储器中。高速缓冲存储器一般是由半导体存储器 实现的,其工作周期与CPU的周期大致相同,但其造价较高。为了降低成本,通常是在快表中存 放正在运行作业当前访问的那些页表项,页表的其余部分仍然存放在内存中 引入快表以后的地址变换过程为:当CP给出逻辑地址后,地址变换机构自动将此页号与 联想存储器中的所有页号进行并行比较,若其中有与此匹配的页号,则表示所要访问的页表项 在联想存储器中,于是取出该页对应的块号,与页内地址拼接形成物理地址。若联想存储器中 的所有页号与所查找页号不匹配,则还需再访问主存中的页表。实际上,这两者的查找是同时 进行的,一旦在联想存储器中发现了要查找的页号,则立即停止内存中页表的查找。如果地址 变换是通过査找内存中的页表完成的,则还应将这次所查到的页表项存入联想存储器中,若联 想存储器己满,则必须按某种原则淘汰一个表项以腾出位置。 采用这种方案,只要使用8—16个表项的联想存储器,就能使从联想存储器中找到所需页 号的概率达到90%左右 5.1.4请求分页存储管理 在分页的基础上増加请求调页功能和页面置换功能,便形成了能支持虚拟存储器功能的 请求分页系统。 1.请求分页的基本原理 请求分页系统对地址空间和内存空间的管理采用与基本分页系统相同的方式,但它只要 求将作业的部分页面装入内存,便可开始运行作业,作业的其余部分被存放在盘中。 由于这种管理方案在一个作业运行之前不要求将作业的整个地址空间调入主存,因此在 作业的运行过程中,必然会出现要访问的页不在主存的情况。那么如何发现和处理这种情况就 是请求页式存储管理必须解决的两个基本问题 为了解决发现所访问页面不在主存的问题,必须对页表表目进行扩充。扩充后的页表表目 结构如下所示 块号状态位访问字段修改位外存地址 在请求分页系统中,当进程需要访问某条指令或某个数据时,硬件地址变换机构将根据逻 辑地址中的页号去检索内存中的页表,并根据相应页表项的状态位,来判断该指令或数据所在 的页是否已装入内存。若己装入内存,则可立即从页表项中得到该页的内存块号,并与页内地 址拼接形成指令或数据的物理地址,同时还需修改页表项中的访问位对于写指令,则还需将修 改位置成"1”。若所要访问的页还未调入内存,便产生一缺页中断,此时,上述访问缺页的作业 将被中断,控制将转向缺页中断处理程序。 缺页中断处理程序用来完成页面的调入工作。若系统中仍有空闲的内存块,则只需根据页 表项中的外存地址将所缺的页装入内存,然后修改页表项中的存在位和内存块号即可;否则, 若系统中无空闲的内存块,则需要根据置换算法淘汰内存中的某一页,对已被修改过的页先写 盘,然后再将所缺的页调入内存 2.内存分配策略和置换策略 在请求分页系统中,可采取两种内存分配策略,即固定分配和可变分配。在进行置换时, 也可采取两种策略,即全局置换和局部置换。于是,可组合出以下三种适用的策略:
在图 5.4 中,假定页面大小为 lk 字节,则逻辑地址 2500(=2×1024+452〉的页号为 2,页内 地址为 452。由页表可知第 2 页对应的物理块号为 8。将块号 8 与页内地址 452 拼接(8× 1024+452=8644)得到物理地址为 8644。 (4)联想存储器:从上面介绍的地址变换过程可知,若页表全部放在主存,则要存取一个数 据或一条指令至少要访问两次主存,一次是访问页表,确定所存取的数据或指令的物理地址, 第二次才根据该地址存取数据或指令。显然,这种方法比通常执行指令的速度慢了一倍。为了 提高查表速度,可在地址变换机构中增设一个具有并行查找能力的高速缓冲存储器(又称联想 存储器或快表),将页表放在这个高速缓冲存储器中。高速缓冲存储器一般是由半导体存储器 实现的,其工作周期与 CPU 的周期大致相同,但其造价较高。为了降低成本,通常是在快表中存 放正在运行作业当前访问的那些页表项,页表的其余部分仍然存放在内存中。 引入快表以后的地址变换过程为:当 CPU 给出逻辑地址后,地址变换机构自动将此页号与 联想存储器中的所有页号进行并行比较,若其中有与此匹配的页号,则表示所要访问的页表项 在联想存储器中,于是取出该页对应的块号,与页内地址拼接形成物理地址。若联想存储器中 的所有页号与所查找页号不匹配,则还需再访问主存中的页表。实际上,这两者的查找是同时 进行的,一旦在联想存储器中发现了要查找的页号,则立即停止内存中页表的查找。如果地址 变换是通过查找内存中的页表完成的,则还应将这次所查到的页表项存入联想存储器中,若联 想存储器己满,则必须按某种原则淘汰一个表项以腾出位置。 采用这种方案,只要使用 8—16 个表项的联想存储器,就能使从联想存储器中找到所需页 号的概率达到 90%左右。 5.1.4 请求分页存储管理 在分页的基础上增加请求调页功能和页面置换功能,便形成了能支持虚拟存储器功能的 请求分页系统。 1.请求分页的基本原理 请求分页系统对地址空间和内存空间的管理采用与基本分页系统相同的方式,但它只要 求将作业的部分页面装入内存,便可开始运行作业,作业的其余部分被存放在盘中。 由于这种管理方案在一个作业运行之前不要求将作业的整个地址空间调入主存,因此在 作业的运行过程中,必然会出现要访问的页不在主存的情况。那么如何发现和处理这种情况就 是请求页式存储管理必须解决的两个基本问题。 为了解决发现所访问页面不在主存的问题,必须对页表表目进行扩充。扩充后的页表表目 结构如下所示: 页号 块号 状态位 访问字段 修改位 外存地址 在请求分页系统中,当进程需要访问某条指令或某个数据时,硬件地址变换机构将根据逻 辑地址中的页号去检索内存中的页表,并根据相应页表项的状态位,来判断该指令或数据所在 的页是否已装入内存。若己装入内存,则可立即从页表项中得到该页的内存块号,并与页内地 址拼接形成指令或数据的物理地址,同时还需修改页表项中的访问位对于写指令,则还需将修 改位置成"1"。若所要访问的页还未调入内存,便产生一缺页中断,此时,上述访问缺页的作业 将被中断,控制将转向缺页中断处理程序。 缺页中断处理程序用来完成页面的调入工作。若系统中仍有空闲的内存块,则只需根据页 表项中的外存地址将所缺的页装入内存,然后修改页表项中的存在位和内存块号即可;否则, 若系统中无空闲的内存块,则需要根据置换算法淘汰内存中的某一页,对已被修改过的页先写 盘,然后再将所缺的页调入内存。 2.内存分配策略和置换策略 在请求分页系统中,可采取两种内存分配策略,即固定分配和可变分配。在进行置换时, 也可采取两种策略,即全局置换和局部置换。于是,可组合出以下三种适用的策略: