(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,请 分别画图表示出使用首次适应算法和最佳适应算法进行内存分配和回收后内存的实际使用情 况