第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.内存分配策略和置换策略 在请求分页系统中,可采取两种内存分配策略,即固定分配和可变分配。在进行置换时, 也可采取两种策略,即全局置换和局部置换。于是,可组合出以下三种适用的策略:
(1)固定分配局部置换策略。采用该策略时,为进程分配的物理块数目,在进程的整个运行 期间都固定不变,若进程因调入页面而需要换出某个页面,则只能换出它自己的内存页面。由 于进程是动态的,即使在运行之前为它分配了适当数目的内存块,在采用固定分配局部置换 策略时,进程在运行过程中仍然可能会因内存块太少而频繁缺页,或者因内存块太多而浪费空 (2)可变分配全局置换策略。采用该策略时,系统先为每个进程分配一定数目的物理块当进 程发生缺页时,若系统中有雪闲的物理块,则为其分配一个物理块并装入缺页:若系统中己没 有雪闲的物理块,则从内存中选择一页换出,再装入缺页,被换出的页可以是系统中任一进程 的页,这样,自然又会使那个进程的物理块减少,进而使其缺页率增加。 (3)可变分配局部置换策略。在采用该策略时,为每个进程分配一定数目的物理块后:若 某个进程发生缺页,则只能将自己的某个内存页换出。如果进程在运行中频繁发生缺页中断, 则系统须为该进程分配若干附加的物理块,直至其缺页率减少到适当程度为止:反之,若一个 进程的缺页率特别低,则可适当减少分配给它的物理块,但不应引起其缺页率的明显增加。因 此,可变分配局部置换策略可获得较高的内存空间利用率,同时又能保证每个进程有较低的缺 页率 3.调页策略 (1)请求调页策略:请求调页策略是指当进程在运行中需要访问某部分程序和数据时, 若发现其所在的页面不在内存,便立刻发出缺页中断,请求0S将所需页面调入内存。单纯采用 请求调页策略的系统,在进程刚启动时,缺页中断会发生得比较频繁,由于程序访问的局部性, 段时间后,缺页率会降至较低。对一个被整体换出的进程重新开始执行时;也具有上述情况。 (2)预调页策略:预调页策略是指将那些预计在不久之后便会访问到的几个页面,预先调 内存。如果这些页被存放在外存的一个连续区域中,则通过预调页将它们一次调入内存将比 次调入一页要高效得多。但预测哪些页面在不久之后便会被访问到是十分困难的,其成功率 只有50%。故预调页策略主要用于进程首次调入和整体换入时,由程序员或系统指出应该先调 入哪些页面,这样,可使刚开始执行的进程的缺页率明显降低 (3)抖动:从主存中刚刚移走某页面后,根据请求马上又调入该页。这种反复进行入页和 出页的现象称为"抖动",也叫系统颠簸。它会浪费大量的处理机时间,应尽可能避免。产生抖 动的直接原因是页面置换算法选取不当。 4.页面置换算法 (1)最佳置换算法:置换策略是从主存中移出永远不再需要的页面,若无这样的页面存在, 则应选择最长时间不需要访问的页面。最佳置换算法本身不是一种实际的方法,因为页面访问 的未来顺序是不知道的。但是可将其他实用方法与之比较来评价这些方法的优劣,所以最佳置 换算法具有理论上的意义 (2)先进先出算法(FIFO):总是先淘汰那些驻留在主存时间最长的页面 (3)最近最久未用置换算法(LRU):当需要置换一页时,选择在最近一段时间最久未用的 页予以淘汰 (4)LRU近似算法:在存储分块表MBT(或页表PMT)中设一”引用位",当页被访问时,该位 由硬件自动置为"1",而由页面管理软件周期地把所有引用位置为"0"。在时间周期T内,根据 用位的状态来判断各页面最近的使用情况 5.性能分析 (1)本方案消除了对主存容量的限制,能使更多的作业按多道程序同时执行,提高了系统效 率。但应尽量减少缺页中断次数 (2)为了减少缺页中断次数,应从程序设计的质量、页面的大小、主存的容量以及页面置换 算法等几方面来考虑
(1)固定分配局部置换策略。采用该策略时,为进程分配的物理块数目,在进程的整个运行 期间都固定不变,若进程因调入页面而需要换出某个页面,则只能换出它自己的内存页面。由 于进程是动态的,即使在运行之前为它分配了适当数目的内存块,.在采用固定分配局部置换 策略时,进程在运行过程中仍然可能会因内存块太少而频繁缺页,或者因内存块太多而浪费空 间。 (2)可变分配全局置换策略。采用该策略时,系统先为每个进程分配一定数目的物理块当进 程发生缺页时,若系统中有雪闲的物理块,则为其分配一个物理块并装入缺页;若系统中己没 有雪闲的物理块,则从内存中选择一页换出,再装入缺页,被换出的页可以是系统中任一进程 的页,这样,自然又会使那个进程的物理块减少,进而使其缺页率增加。 (3)可变分配局部置换策略。在采用该策略时,为每个进程分配一定数目的物理块后;若 某个进程发生缺页,则只能将自己的某个内存页换出。如果进程在运行中频繁发生缺页中断, 则系统须为该进程分配若干附加的物理块,直至其缺页率减少到适当程度为止;反之,若一个 进程的缺页率特别低,则可适当减少分配给它的物理块,但不应引起其缺页率的明显增加。因 此,可变分配局部置换策略可获得较高的内存空间利用率,同时又能保证每个进程有较低的缺 页率。 3.调页策略 (1)请求调页策略:请求调页策略是指当进程在运行中需要访问某部分程序和数据时, 若发现其所在的页面不在内存,便立刻发出缺页中断,请求 OS 将所需页面调入内存。单纯采用 请求调页策略的系统,在进程刚启动时,缺页中断会发生得比较频繁,由于程序访问的局部性, 一段时间后,缺页率会降至较低。对一个被整体换出的进程重新开始执行时;也具有上述情况。 (2)预调页策略:预调页策略是指将那些预计在不久之后便会访问到的几个页面,预先调 入内存。如果这些页被存放在外存的一个连续区域中,则通过预调页将它们一次调入内存将比 一次调入一页要高效得多。但预测哪些页面在不久之后便会被访问到是十分困难的,其成功率 只有 50%。故预调页策略主要用于进程首次调入和整体换入时,由程序员或系统指出应该先调 入哪些页面,这样,可使刚开始执行的进程的缺页率明显降低。 (3)抖动:从主存中刚刚移走某页面后,根据请求马上又调入该页。这种反复进行入页和 出页的现象称为"抖动",也叫系统颠簸。它会浪费大量的处理机时间,应尽可能避免。产生抖 动的直接原因是页面置换算法选取不当。 4.页面置换算法 (1)最佳置换算法:置换策略是从主存中移出永远不再需要的页面,若无这样的页面存在, 则应选择最长时间不需要访问的页面。最佳置换算法本身不是一种实际的方法,因为页面访问 的未来顺序是不知道的。但是可将其他实用方法与之比较来评价这些方法的优劣,所以最佳置 换算法具有理论上的意义。 (2)先进先出算法(FIFO):总是先淘汰那些驻留在主存时间最长的页面。 (3)最近最久未用置换算法(LRU):当需要置换一页时,选择在最近一段时间最久未用的 页予以淘汰。 (4)LRU 近似算法:在存储分块表 MBT(或页表 PMT)中设一"引用位",当页被访问时,该位 由硬件自动置为"1",而由页面管理软件周期地把所有引用位置为"0"。在时间周期 T 内,根据 引用位的状态来判断各页面最近的使用情况。 5.性能分析 (1)本方案消除了对主存容量的限制,能使更多的作业按多道程序同时执行,提高了系统效 率。但应尽量减少缺页中断次数。 (2)为了减少缺页中断次数,应从程序设计的质量、页面的大小、主存的容量以及页面置换 算法等几方面来考虑
5.评价 (1)请求分页存储管理保留了分页存储管理的全部优点,特别是它解决了消除碎片的问题。 另外,它还有如下优点:提供了大容量的多个虚拟存储器;作业地址空间不再受实存容量的限 制;更有效地利用主存;有利于运行多道程序:提高了系统效率,方便了用户,特别是大作业 用户。 (2)请求分页存储管理的缺点是:要求有相应的硬件支持,从而增加了成本。如动态地址 变换机构、快表、缺页中断的产生等都要求有相应的硬件支持。缺页中断增加了处理机时间 的开销,如页表的建立与管理、缺页中断处理等:页面淘汰算法如选择不当,有可能产生抖动 现象,为防止抖动,会增加系统的复杂性;虽然消除了碎片,但每个进程的最后一页内总有 部分空间得不到利用。另外,页式存储管理系统中作业的地址空间仍受主存实际容量的限制。 5.1.5分段存储管理 分段原理 个用户作业的程序按其逻辑结构,可由用户划分为若干段。这些段中的每一段在逻辑上 都是完整的,每一段都是一组逻辑信息,都有自己的名字,且都有一段连续的地址空间。可以用 类似于分页管理用过的地址变换机构,实现分段管理的地址变换,只是采用的是段变换表 SMT。地址变换是在作业执行过程中由硬件自动完成的。 2.段变换表SMT 分段存储管理系统中,作业地址空间的每一单元采用二维地址(S,W),其中S为段号,W 为段内地址或位移量。 段式存储管理系统也可和请求页式存储管理系统一样,为用户提供一个比主存可用空间 大得多的虚拟存储器。同样,虚拟存储器的实际容量由计算机的地址结构确定 在段式虚拟存储系统中,一个作业各分段的副本都保存在辅存中,当其运行时,首先把当 前需要的一段或几段调入主存,其他段在需要时再调入。为此,应对段表表目进行扩充,扩充后 的内容如下 段号「段长主存始址访问位『改变位_增补位状态位外存地址 段号、段长和内存始址三个信息是进行地址变换所必须的,当段在内存时,地址变换过程 与段式存储管理相同:当段不在内存时,先将该段调入内存再进行地址变换。新增加的状态位 用于标识此段是否在主存中,访问字段记录本段在一段时间内被访问的次数或最近已有多长 时间未被访问,修改位表示该段在调入内存后是否被修改过,外存地址指出该段在外存上的地 址。为了进行存储保护,还可以增加一个存取控制字段 当被访问的段不在主存中时,产生一个缺段中断信号。操作系统处理该中断后,在主存中 查找是否有足够大的分区存放该段。如没有这样的分区,则检查未分配分区的总和,确定是否 需要对分区进行拼接,或者调出一个或几个分段后再装入所需要的分段。 3.段的共享与保护 在段式系统中,分段的共享是通过两个作业的段表中相应表目都指向被共享过程的同 个物理副本来实现的 与页式管理类似,段式管理的保护主要有两种。一种是地址越界保护法,另一种是存取控 制保护法 4段式管理的特点 (1)分段存储管理的优点是:消除了碎片;提供了大容量的虚存;可动态增加段长;便于 动态装入和连接;可共享一个程序;便于实现存储保护 (2)分段存储管理的缺点是:地址变换和靠拢需CPU时间;表格需占存储空间:在辅存上管理 可变长度的段较困难,段的最大长度受实存限制;也会出现系统抖动现象 5、分页和分段存储管理的比较
5.评价 (1)请求分页存储管理保留了分页存储管理的全部优点,特别是它解决了消除碎片的问题。 另外,它还有如下优点:提供了大容量的多个虚拟存储器;作业地址空间不再受实存容量的限 制;更有效地利用主存;有利于运行多道程序;提高了系统效率,方便了用户,特别是大作业 用户。 (2)请求分页存储管理的缺点是:要求有相应的硬件支持,从而增加了成本。如动态地址 变换机构、快表、缺页中断的产生等都要求有相应的硬件支持。缺页中断增加了处理机时间 的开销, 如页表的建立与管理、缺页中断处理等;页面淘汰算法如选择不当,有可能产生抖动 现象,为防止抖动,会增加系统的复杂性;虽然消除了碎片,但每个进程的最后一页内总有一 部分空间得不到利用。另外,页式存储管理系统中作业的地址空间仍受主存实际容量的限制。 5.1.5 分段存储管理 1.分段原理 一个用户作业的程序按其逻辑结构,可由用户划分为若干段。这些段中的每一段在逻辑上 都是完整的,每一段都是一组逻辑信息,都有自己的名字,且都有一段连续的地址空间。可以用 类似于分页管理用过的地址变换机构,实现分段管理的地址变换,只是采用的是段变换表 SMT。地址变换是在作业执行过程中由硬件自动完成的。 2.段变换表 SMT 分段存储管理系统中,作业地址空间的每一单元采用二维地址(S,W),其中 S 为段号,W 为段内地址或位移量。 段式存储管理系统也可和请求页式存储管理系统一样,为用户提供一个比主存可用空间 大得多的虚拟存储器。同样,虚拟存储器的实际容量由计算机的地址结构确定。 在段式虚拟存储系统中,一个作业各分段的副本都保存在辅存中,当其运行时,首先把当 前需要的一段或几段调入主存,其他段在需要时再调入。为此,应对段表表目进行扩充,扩充后 的内容如下: 段号 段长 主存始址 访问位 改变位 增补位 状态位 外存地址 段号、段长和内存始址三个信息是进行地址变换所必须的,当段在内存时,地址变换过程 与段式存储管理相同:当段不在内存时,先将该段调入内存再进行地址变换。新增加的状态位 用于标识此段是否在主存中,访问字段记录本段在一段时间内被访问的次数或最近已有多长 时间未被访问,修改位表示该段在调入内存后是否被修改过,外存地址指出该段在外存上的地 址。为了进行存储保护,还可以增加一个存取控制字段。 当被访问的段不在主存中时,产生一个缺段中断信号。操作系统处理该中断后,在主存中 查找是否有足够大的分区存放该段。如没有这样的分区,则检查未分配分区的总和,确定是否 需要对分区进行拼接,或者调出一个或几个分段后再装入所需要的分段。 3.段的共享与保护 在段式系统中,分段的共享是通过两个作业的段表中相应表目都指向被共享过程的同一 个物理副本来实现的。 与页式管理类似,段式管理的保护主要有两种。一种是地址越界保护法,另一种是存取控 制保护法。 4.段式管理的特点 (1)分段存储管理的优点是:消除了碎片;提供了大容量的虚存;可动态增加段长;便于 动态装入和连接;可共享一个程序;便于实现存储保护。 (2)分段存储管理的缺点是:地址变换和靠拢需 CPU 时间;表格需占存储空间;在辅存上管理 可变长度的段较困难,段的最大长度受实存限制;也会出现系统抖动现象。 5、分页和分段存储管理的比较
分页系统、分段系统有许多相似之处,比如:都采用离散分配方式来提高内存利用率, 都要通过地址变换机构来实现地址变换:但在概念上两者是完全不同的,它们的主要区别表现 在以下三个方面 ①分页是一个单一的线性地址空间,分段作业地址空间是二维的 ②"页"是信息的物理单位,大小固定,分页活动用户看不见,分页的目的是为了提高内存 的利用率。而"段”是信息的逻辑单位,其长度不定,分段是用户可见的活动,分段的目的是为 了能更好地满足用户的需要。 ③分页管理实现单段式虚拟存储系统,而分段存储管理实现多段式虚拟存储系统 4.1.6段页式存储管理 为了既能像分页系统那样有效地利用内存:又能像分段系统那样满足用户多方面的需要, 操作系统中又引入了段页式存储管理方式 1.基本思想 (1)用分段方法来分配和管理虚拟存储器 (2)用分页方法来分配和管理实存储器 段页式存储管理方式是分页和分段管理的结合,它先将地址空间中的用户程序分成若干 个段,再将每个段分成若干个页。而内存空间则仍采用页式管理主式,即将内存分成与页同样 大小的块,并以块为单位来进行内存的分配 2.实现原理 (1)在段页存储管理中,地址空间还是二维的,每个逻辑地址包括段号和段内地址两部分, 段内地址又将被地址变换机构根据页面大小自动分成段内页号和页内地址。因此,处理机给 出的有效地址被划分为三部分:段号、页号和页内地址,即(S,P,W) (2)程序的分段可由程序员或编译程序按信息的逻辑结构来划分,而分页与程序员无关, 它是由操作系统自动完成的。为了实现地址变换,系统必须为每个进程建立一张段表,并为每 个分段建立一张页表,段表项给出了每个分段所对应的页表的内存始址和长度,页表项则给出 了页所对应的内存块号二在进行地址变换时,首先根据段表寄存器中的段表始址和逻辑地址 中的段号找到对应的段表项,从中获得该段的页表始址:然后再利用页表始址和逻辑地址中的 段内页号来获得对应的页表项,从中获得该页的内存块号:由内存块号与页内地址拼接形成 物理地址 (3)由于段表和页表都存放在内存中,每存取一条指令或一个数据都需访问三次内存,故可 在地址变换机构中增设快表,用来存放当前被频繁访问的页面所对应的段号、段内页号和物理 块号等信息,以减少访问内存的次数,提高指令执行的速度。 从逻辑地址到物理地址的变换过程需要三次访问主存,一次是访问段表,一次是访问页表, 再一次是访问主存物理地址 3.评价 (1)段页式存储管理的优点是:保留了分段和请求分页存储管理的全部优点。其主要优 点是提供了大量的虚存空间,能有效地利用主存,为组织多道程序运行提供了方便。 (2)段页式存储管理的缺点是:增加了硬件成本、系统的复杂性和管理上的开销,页面使 用不充分:各种表格占用主存空间;有系统抖动的危险 4.2重点难点学习提示 本章的目的是了解各种存储器管理的方式和它们的实现方法,为此应对以下几个重点、难 点问题作认真的学习,并切实掌握其中的内容 1.重定位的基本概念 重定位的实质是地址变换,它将作业地址空间中的逻辑地址转换为主存空间中的物理地
分页系统、分段系统有许多相似之处,比如:都采用离散分配方式来提高内存利用率, 都要通过地址变换机构来实现地址变换;但在概念上两者是完全不同的,它们的主要区别表现 在以下三个方面: ①分页是一个单一的线性地址空间,分段作业地址空间是二维的。 ②"页"是信息的物理单位,大小固定,分页活动用户看不见,分页的目的是为了提高内存 的利用率。而"段"是信息的逻辑单位,其长度不定,分段是用户可见的活动,分段的目的是为 了能更好地满足用户的需要。。 ③分页管理实现单段式虚拟存储系统,而分段存储管理实现多段式虚拟存储系统。 4.1.6 段页式存储管理 为了既能像分页系统那样有效地利用内存;又能像分段系统那样满足用户多方面的需要, 操作系统中又引入了段页式存储管理方式。 1.基本思想 (1)用分段方法来分配和管理虚拟存储器。 (2)用分页方法来分配和管理实存储器。 段页式存储管理方式是分页和分段管理的结合,它先将地址空间中的用户程序分成若干 个段,再将每个段分成若干个页。而内存空间则仍采用页式管理主式,即将内存分成与页同样 大小的块,并以块为单位来进行内存的分配。 2.实现原理 (1)在段页存储管理中, 地址空间还是二维的,每个逻辑地址包括段号和段内地址两部分, 段内地址又将被地址变换机构根据页面大小自动分成段内页号和页内地址。因此,处理机给 出的有效地址被划分为三部分:段号、页号和页内地址,即(S,P,W)。 (2)程序的分段可由程序员或编译程序按信息的逻辑结构来划分,而分页与程序员无关, 它是由操作系统自动完成的。为了实现地址变换,系统必须为每个进程建立一张段表,并为每 个分段建立一张页表,段表项给出了每个分段所对应的页表的内存始址和长度,页表项则给出 了页所对应的内存块号二在进行地址变换时,首先根据段表寄存器中的段表始址和逻辑地址 中的段号找到对应的段表项,从中获得该段的页表始址:然后再利用页表始址和逻辑地址中的 段内页号来获得对应的页表项,从中获得该页的内存块号::由内存块号与页内地址拼接形成 物理地址。 (3)由于段表和页表都存放在内存中,每存取一条指令或一个数据都需访问三次内存,故可 在地址变换机构中增设快表,用来存放当前被频繁访问的页面所对应的段号、段内页号和物理 块号等信息,以减少访问内存的次数,提高指令执行的速度。 从逻辑地址到物理地址的变换过程需要三次访问主存,一次是访问段表,一次是访问页表, 再一次是访问主存物理地址。 3.评价 (1)段页式存储管理的优点是:保留了分段和请求分页存储管理的全部优点。其主要优 点是提供了大量的虚存空间,能有效地利用主存,为组织多道程序运行提供了方便。 (2)段页式存储管理的缺点是:增加了硬件成本、系统的复杂性和管理上的开销,页面使 用不充分;各种表格占用主存空间;有系统抖动的危险。 4.2 重点难点学习提示 本章的目的是了解各种存储器管理的方式和它们的实现方法,为此应对以下几个重点、难 点问题作认真的学习,并切实掌握其中的内容。 1.重定位的基本概念 重定位的实质是地址变换,它将作业地址空间中的逻辑地址转换为主存空间中的物理地
址,从而保证作业能够正常执行。对下述两个方面的内容要有较好的理解 (1)为什么要引入重定位,由重定位装入程序在装入作业时一次性完成的静态重定位适用 于何种场合,它有何优缺点。 (2)动态重定位是为了解决什么问题而引入的,在连续分配方式、分页系统和分段系统中, 分别是如何实现动态重定位的。 2.动态分区分配方式 动态分区分配方式是一种曾经广为流行的内存分配方式,至今仍在内存分配中占有一席之 地。应了解下述几个问题 (1)如何提高内存利用率。动态分区分配方式是根据进程的实际需要,动态地为进程分配 内存,造成动态分区分配方式内存空间浪费的主要原因是什么,可通过什么办法加以解决 (2)分配算法。动态分区分配方式可采用空闲分区表或空闲分区链来描述分区的情况,并 可采用首次适应、最佳适应等算法来进行内存的分配和回收,读者应了解在采用不同的分配算 法时,系统是如何组织空闲分区表或空闲分区链的,它们又是如何进行分区的分配和回收的。 (3)如何进行分区的保护。该方式可利用界限寄存器或保护键来进行分区的保护,应了解它 们分别是如何进行越界检查的:在检查到越界情况时,将由谁负责进行具体的处理 3.分页和分段存储管理方式 分页和分段存储管理方式不仅能有效地提高内存雪间的使用效率,而且是实现虚拟存储 器的基础。应对下面几个方面的内容有较深刻的理解和掌握: (1)分页存储管理方式。应了解是在什么推动力的作用下,使内存管理由动态分区分配方 式发展为分页存储管理方式;分页系统是如何将地址空间中的作业划分为若干个页,它又是如 何进行内存分配的 (2)分页系统的地址转换。应掌握分页系统逻辑地址的结构,为了进行逻辑地址到物理地址 的转换,分页系统必须为每个作业配置什么样的数据结构并提供哪些硬件支持,为什么引入快 表可加快分页系统存取指令和数据的速度 (3)分段存储管理方式。应了解由分页发展为分段,并进一步发展为段页式存储管理方式的 主要推动力是什么,分段和段页式系统是如何管理作业的地址空间和内存空间的,它们的地址 变换是如何完成的,并应注意对分段系统和分页系统加以比较。 (4)信息的共享和保护。分页系统和分段系统都可以实现信息的共享,并可通过越界检查和 存取权限对信息进行保护。应了解为什么分段系统比分页系统更容易实现信息的共享和保护 对代码页(段)的共享有什么特别的要求,原因是什么 4虚拟存储器的基本概念 虚拟存储管理技术己被广泛地应用于现代操作系统中,它的主要功能是从逻辑上扩充内 存的容量。由于它是存储器管理中的重点部分,应对下述几个问题有较清楚和深入的理解 (1)为什么要引入虚拟存储器。引入虚拟存储器主要是为了解决内存空间不足的问题,应了 解虚拟存储器是如何扩充内存容量的,为什么一次性和驻留性并非是程序运行所必需的条件, 或者说,为什么只需将部分程序和数据装入内存,便能完成整个程序的 (2)虚拟存储器具有哪些特征。虚拟存储器具有多次性、对换性和虚拟性的特征,必须了解 每种特征的具体含义,以及它们相互之间存在着什么样的关系,它们与离散分配之间又存在着 什么样的关系 (3)实现虚拟存储器的关键技术是什么。实现虚拟存储器的的关键是请求调页(段)技术和 页(段)置换技术,应清楚地了解这些技术的实现需要得到哪些硬件支持和软件支持。 5请求分页系统的基本原理 请求分页系统是目前最常用的一种实现虚拟存储器的方式,它只需将作业当前要用到的 部分页面装入内存,便可启动作业的运行。应对下述内容有较深刻的理解和掌握
址,从而保证作业能够正常执行。对下述两个方面的内容要有较好的理解: (1)为什么要引入重定位,由重定位装入程序在装入作业时一次性完成的静态重定位适用 于何种场合,它有何优缺点。 (2)动态重定位是为了解决什么问题而引入的,在连续分配方式、分页系统和分段系统中, 分别是如何实现动态重定位的。 2.动态分区分配方式 动态分区分配方式是一种曾经广为流行的内存分配方式,至今仍在内存分配中占有一席之 地。应了解下述几个问题: (1)如何提高内存利用率。动态分区分配方式是根据进程的实际需要,动态地为进程分配 内存,造成动态分区分配方式内存空间浪费的主要原因是什么,可通过什么办法加以解决。 (2)分配算法。动态分区分配方式可采用空闲分区表或空闲分区链来描述分区的情况,并 可采用首次适应、最佳适应等算法来进行内存的分配和回收,读者应了解在采用不同的分配算 法时,系统是如何组织空闲分区表或空闲分区链的,它们又是如何进行分区的分配和回收的。 (3)如何进行分区的保护。该方式可利用界限寄存器或保护键来进行分区的保护,应了解它 们分别是如何进行越界检查的;在检查到越界情况时,将由谁负责进行具体的处理。 3.分页和分段存储管理方式 分页和分段存储管理方式不仅能有效地提高内存雪间的使用效率,而且是实现虚拟存储 器的基础。应对下面几个方面的内容有较深刻的理解和掌握: (1)分页存储管理方式。应了解是在什么推动力的作用下,使内存管理由动态分区分配方 式发展为分页存储管理方式;分页系统是如何将地址空间中的作业划分为若干个页,它又是如 何进行内存分配的。 (2)分页系统的地址转换。应掌握分页系统逻辑地址的结构,为了进行逻辑地址到物理地址 的转换,分页系统必须为每个作业配置什么样的数据结构并提供哪些硬件支持,为什么引入快 表可加快分页系统存取指令和数据的速度。 (3)分段存储管理方式。应了解由分页发展为分段,并进一步发展为段页式存储管理方式的 主要推动力是什么,分段和段页式系统是如何管理作业的地址空间和内存空间的,它们的地址 变换是如何完成的,并应注意对分段系统和分页系统加以比较。 (4)信息的共享和保护。分页系统和分段系统都可以实现信息的共享,并可通过越界检查和 存取权限对信息进行保护。应了解为什么分段系统比分页系统更容易实现信息的共享和保护: 对代码页(段)的共享有什么特别的要求,原因是什么。 4.虚拟存储器的基本概念 虚拟存储管理技术己被广泛地应用于现代操作系统中,它的主要功能是从逻辑上扩充内 存的容量。由于它是存储器管理中的重点部分,应对下述几个问题有较清楚和深入的理解: (1)为什么要引入虚拟存储器。引入虚拟存储器主要是为了解决内存空间不足的问题,应了 解虚拟存储器是如何扩充内存容量的,为什么一次性和驻留性并非是程序运行所必需的条件, 或者说,为什么只需将部分程序和数据装入内存,便能完成整个程序的。 (2)虚拟存储器具有哪些特征。虚拟存储器具有多次性、对换性和虚拟性的特征,必须了解 每种特征的具体含义,以及它们相互之间存在着什么样的关系,它们与离散分配之间又存在着 什么样的关系。 (3)实现虚拟存储器的关键技术是什么。实现虚拟存储器的的关键是请求调页(段)技术和 页(段)置换技术,应清楚地了解这些技术的实现需要得到哪些硬件支持和软件支持。 5.请求分页系统的基本原理 请求分页系统是目前最常用的一种实现虚拟存储器的方式,它只需将作业当前要用到的 部分页面装入内存,便可启动作业的运行。应对下述内容有较深刻的理解和掌握:
(1)页表机制。为实现虚拟存储器,必须扩充页表工页的内容,应了解除了内存块号和存取 权限字段以外,页表中还必须增加哪些字段,为什么要增加这些字段 2地址变换过程。请求分页系统的地址变换也必须通过地址变换机构进行,应了解请求分 页系统的地址变换机构,是在基本分页系统的地址变换机构的基础上增加了哪些功能而形成 (3)页面置换算法。页面置换算法即选择换出页面的算法,它直接影响到系统的性能。应 了解一些常用的页面置换算法,并进一步了解为什么LRU算法具有比较好的性能,它的主要缺 点是什么,可用什么方法实现LRU近似算法。 5.3典型问题分析和解答 1.存储器管理的基本任务是为多道程序的并发执行提供良好的存储器环境。"良好的存 储器环境″应包含哪几个方面? 答:存储器管理的基本任务是为多道程序的并发运行提供良好的存储器环境。它包括以下 内容 (1)能让每道程序″各得其所",并在不受干扰的环境中运行号还可以使用户从存储空间的 分配、保护等繁琐事务中解脱出来。 (2)向用户提供更大的存储空间,使更多的作业能同时投入运行z或使更大的作业能在与 较小的内存空间中运行 (3)为用户对信息的访问、保护、共享以及动态链接等方面提供方便。 (4)能使存储器有较高的利用率 2.何谓虚拟存储器?举一例说明操作系统是如何实现虚拟内存的 答:在操作系统中,通过一些硬件和软件的措施为用户提供了一个其容量比实际主存大得 多的存储器,称为虚拟存储器 操作系统要实现虚拟内存,必须把主存和辅存统一管理起来,即大作业程序在执行时,有 一部分地址空间在主存,另一部分在辅存,当访问的信息不在主存时,由操作系统将其调入主 存并实现自动覆盖功能,使用户在编写程序时不再受主存容量的限制 例如在请求分页存储管理系统中,用户作业的所有页面并不一定都在实存,在作业运行过 程中再请求调入所用的虚页。为了实现从逻辑地址空间到物理地址空间的变换,在硬件上必须 提供一套地址变换机构,动态地址变换机构自动地将所有的逻辑地址划分为页号和页内地址 两部分,并利用页表将页号代之以块号,把块号和页内地址拼接就得到了内存的物理地址,从 而实现了虚拟存储器 3.什么叫重定位?采用内存分区管理时,如何实现程序运行时的动态重定位? 答:所谓地址重定位,就是当一个程序装入到与其地址空间不一致的存储空间而进行的地 址变换过程,即将地址空间给出的逻辑地址映射到内存的物理地址上。地址重定位有静态 重定位和动态重定位两种方式 采用内存分区管理时,在硬件上设置一个”重定位寄存器"可以实现程序运行时的动态重定位。 这种情况下地址重定位是在程序执行期间由地址变换机构动态实现的,主要的计算依据是 物理地址=逻辑地址+重定位寄存器的内容 4.某系统采用动态分区分配方式管理内存,内存空间为640K,高端40K用来存放操作系 统。在内存分配时,系统优先使用空闲区低端的空间。对下列的请求序列:作业1申请130K 作业2申请60K、作业3申请100K、作业2释放60K、作业4申请200K、作业3释放100k、 作业1释放130K、作业5申请140K、作业6申请60K、作业7申请50K、作业6释放6OK,请 分别画图表示出使用首次适应算法和最佳适应算法进行内存分配和回收后内存的实际使用情
(1)页表机制。为实现虚拟存储器,必须扩充页表工页的内容,应了解除了内存块号和存取 权限字段以外,页表中还必须增加哪些字段,为什么要增加这些字段。 (2)地址变换过程。请求分页系统的地址变换也必须通过地址变换机构进行,应了解请求分 页系统的地址变换机构,是在基本分页系统的地址变换机构的基础上增加了哪些功能而形成 的。 (3)页面置换算法。页面置换算法即选择换出页面的算法,它直接影响到系统的性能。应 了解一些常用的页面置换算法,并进一步了解为什么 LRU 算法具有比较好的性能,它的主要缺 点是什么,可用什么方法实现 LRU 近似算法。 5.3 典型问题分析和解答 1.存储器管理的基本任务是为多道程序的并发执行提供良好的存储器环境。"良好的存 储器环境"应包含哪几个方面? 答:存储器管理的基本任务是为多道程序的并发运行提供良好的存储器环境。它包括以下 内容: (1)能让每道程序"各得其所",并在不受干扰的环境中运行号还可以使用户从存储空间的 分配、保护等繁琐事务中解脱出来。 (2)向用户提供更大的存储空间,使更多的作业能同时投入运行 z 或使更大的作业能在与 较小的内存空间中运行。 (3)为用户对信息的访问、保护、共享以及动态链接等方面提供方便。 (4)能使存储器有较高的利用率。 2.何谓虚拟存储器?举一例说明操作系统是如何实现虚拟内存的。 答:在操作系统中,通过一些硬件和软件的措施为用户提供了一个其容量比实际主存大得 多的存储器,称为虚拟存储器。 操作系统要实现虚拟内存,必须把主存和辅存统一管理起来,即大作业程序在执行时,有 一部分地址空间在主存,另一部分在辅存,当访问的信息不在主存时,由操作系统将其调入主 存并实现自动覆盖功能,使用户在编写程序时不再受主存容量的限制。 例如在请求分页存储管理系统中,用户作业的所有页面并不一定都在实存,在作业运行过 程中再请求调入所用的虚页。为了实现从逻辑地址空间到物理地址空间的变换,在硬件上必须 提供一套地址变换机构,动态地址变换机构自动地将所有的逻辑地址划分为页号和页内地址 两部分,并利用页表将页号代之以块号,把块号和页内地址拼接就得到了内存的物理地址,从 而实现了虚拟存储器。 3.什么叫重定位? 采用内存分区管理时,如何实现程序运行时的动态重定位? 答:所谓地址重定位,就是当一个程序装入到与其地址空间不一致的存储空间而进行的地 址变换过程,即将地址空间给出的逻辑地址映射到内存的物理地址上。地址重定位有静态 重定位和动态重定位两种方式。 采用内存分区管理时,在硬件上设置一个"重定位寄存器"可以实现程序运行时的动态重定位。 这种情况下地址重定位是在程序执行期间由地址变换机构动态实现的,主要的计算依据是: 物理地址=逻辑地址+重定位寄存器的内容 4.某系统采用动态分区分配方式管理内存,内存空间为 640K,高端 40K 用来存放操作系 统。在内存分配时,系统优先使用空闲区低端的空间。对下列的请求序列:作业 1 申请 130K、 作业 2 申请 6OK、作业 3 申请 100K、作业 2 释放 6OK、作业 4 申请 200K、作业 3 释放 l00k、 作业 1 释放 130K、作业 5 申请 140K、作业 6 申请 6OK、作业 7 申请 5OK、作业 6 释放 6OK,请 分别画图表示出使用首次适应算法和最佳适应算法进行内存分配和回收后内存的实际使用情 况