您的位置:首页 > 其它

存储管理

2015-12-05 16:50 411 查看
地址映射:地址映射就是将进程的逻辑地址变换为内存中的物理地址,地址映射需要重定位技术和地址变换机构的支持。

逻辑地址:逻辑地址就是指令在程序中的地址,源程序经编译(或解释)后编排的地址。逻辑地址也叫虚拟地址

物理地址:物理地址就是进程中的指令和数据在内存中的地址,即指令和数据存放在内存中的内存单元地址。物理地址也叫实地址。

地址空间:逻辑地址空间就是某程序的逻辑地址的集合,逻辑地址空间可简称为地址空间。

存储空间:物理地址空间是指进程已经装入内存中的一系列存储信息的物理单元地址的集合。物理地址空间可简称为存储空间。

重定位:为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时内存中的物理地址的技术就叫重定位。重定位技术包括静态重定位和动态重定位。

动态重定位:进程在装入内存时不进行地址绑定,在指令执行期间CPU每次访问内存时进行地址重定位,这种重定位方法需要硬件的支持,系统中需设置一个地址变换机构。

碎片:碎片一般可分为内碎片和外碎片。前者是指分区内不可利用的内存空间,后者是指分区之间难以利用的小空闲分区。

伙伴系统:伙伴系统是一种限制外碎片的产生的一种存储管理技术。该技术克服了固定分区和动态分区存储管理技术的缺陷,对半分裂或合并内存空间,选择合适的两个伙伴中的任何一个伙伴分配给进程。在一个伙伴系统中,内存的用户可用空间为2U。进程申请存储空间时,系统总是为其分配大小为2I的一个空闲分区,其中2S≤2I≤2U,2S是系统允许的最小分区尺寸。

覆盖技术:覆盖(overlay)技术就是在较小的可用内存中运行较大的程序。将程序中的若干程序段或数据段按照时间先后使用内存的某个区域。

交换技术:交换(swapping)技术是在多个进程并发执行时,将暂时不能执行的进程换出到备用存储空间,从而获得内存空间来装入新的进程,或换入保存在备用存储空间中需要执行的进程,交换单位为整个进程。

页:在分页存储管理方式中,将一个进程的逻辑地址空间分成若干个大小相等的片,称之为页(page)或页面。

页帧:相应地,内存空间也分成与页相同大小的若干个存储块,称之为帧、页帧(page frame)或页框,有些教材称之为物理块。

段:每个进程的地址空间可按其逻辑意义分成一些逻辑段,段定义一个完整逻辑意义的信息,为每段编排的段号,且每段都是连续的地址空间。

页表:为了便于找到进程的每个页号对应的内存帧号,系统为每个进程建立一张页面映象表,简称页表。

段表:为了实现分段管理,系统为每个进程建立一个段表,用于描述组成进程地址空间的各个段在内存的物理位置,来实现进程的逻辑地址空间到内存存储空间的映射。

虚拟存储器:虚拟存储器就是将用户逻辑内存与物理内存分离,具有请求换入功能和置换功能,为用户提供了一个存储容量比实际内存大得多的存储器管理系统。

工作集:在某段时间间隔“Δ“里,进程实际要访问的页面集合。

活跃页面:进程在一段时间内总是集中访问一些页面,这些页面称为活跃页面。

1.存储管理的主要功能是什么?

内存分配和回收、、内存保护、扩充内存、地址映射

2.为什么要引入动态重定位?如何实现?

动态重定位技术不同于静态重定位,进程在装入内存时不进行地址绑定,在指令执行期间CPU每次访问内存时进行地址重定位,这种重定位方法需要硬件的支持,系统中需设置一个地址变换机构。进程的指令和数据在内存中的物理地址在执行时通过地址变换机构确定,该技术在进程运行时允许移动和附加存储空间。

3.在多任务操作系统中,为什么必须采用动态重定位?

在多任务操作系统中,多个进程在内存中并发执行,进程的创建与撤消,多个进程之间频繁的上下文切换,其内存分配呈现离散性,动态性和随机性。而静态重定位仅适应于连续分配,不能满足多任务操作系统对内存需求的离散性,动态性和随机性等要求,因此多任务操作系统存储管理必须采用动态重定位。

4.伙伴系统有什么技术特点?伙伴系统如何对内存进行管理的?

伙伴系统是一种限制外碎片的产生的一种存储管理技术。该技术克服了固定分区和动态分区存储管理技术的缺陷,对半分裂或合并内存空间,选择合适的两个伙伴中的任何一个伙伴分配给进程。

在一个伙伴系统中,内存的用户可用空间为2U。进程申请存储空间时,系统总是为其分配大小为2I的一个空闲分区,其中2S≤2I≤2U,2S是系统允许的最小分区尺寸。

伙伴系统的内存分配:如果进程申请的存储空间大小为K,且2I-1<K≤2I,则将整个2I大小的分区分配给该进程;否则,该分区被分割成两个大小相等的伙伴分区,大小为2I-1;再判断K是否满足条件:2I-2<K≤2I-1,若满足条件,则将两个伙伴中的任何一个分配给该进程。否则,将其中一个伙伴又分成两个大小相等的伙伴分区;此过程一直继续进行,直到产生的分区满足条件I-J>S并2I-J-1<K≤2I-J,将2I-J大小的分区分配给该进程;当I-J≤S时,系统不再分割成两个大小相等的伙伴分区,将系统允许的最小分区2S分配给该进程。

伙伴系统的内存回收:当进程执行完毕,释放一个尺寸为2I的分区时,系统用下面的算法回收该分区。

⑴如果被回收空闲分区没有空闲伙伴分区,那么保留该分区为一个独立的空闲分区,否则执行⑵;

⑵合并回收分区及其伙伴分区,从而得到一个尺寸(2I+1)更大的回收空闲分区,转移到⑴;

5.在系统中引入对换后可带来哪些好处?为实现对换,系统应具备哪几方面的功能?

好处:可以增加并发运行进程的数目,并且给用户提供适当的响应时间。不要求程序员给出程序段之间的覆盖结构,不影响程序结构。交换技术主要在进程之间进行。系统中引入对换技术后可以腾出足够的空间,把已具备运行条件的进程或进程所需要的程序和数据换入内存,从而提高内存利用率乃至系统吞吐量。

为实现进程对换,系统应具备对换空间管理、进程的换出及进程的换入等三方面的功能。

6.为实现分页存储管理,需要哪些硬件支持?

为实现分页存储管理,需要页表、地址转换机构(包括逻辑地址寄存器、物理地址寄存器、页表寄存器、快表)等硬件支持。

7.较详细地说明引入分段存储管理是为了满足用户哪几方面的需要。

推动存储管理方式从固定分区到动态分区,进而又发展到分页存储管理方式的主要动力在于满足内存利用率提高的系统管理需求。而分段存储管理的引入则主要是为了满足用户在以下五方面的需要:

①方便编程。通常,一个作业由若干个自然段构成。为此,用户希望能把自己的作业按照逻辑关系划分为若干个段,每个段都由自己的名字和长度。因而,规定每个段都从0开始编址,则访问的逻辑地址可由段名(段号)和段内偏移量(段内地址)决定。这样,用户程序在执行中便可用段名和段内地址进行访问。

②分段共享。通常,在实现程序和数据的共享时,都是以信息的逻辑单位为基础的。为了实现段的共享,应使内存管理功能与用户程序分段的组织方式相适应。

③分段保护。在多道程序环境下,为了防止其它程序对某程序在内存中的数据有意无意的破坏,必须采取保护措施。对内存中信息的保护,同样时对信息的逻辑单位进行保护。因此,采用分段的组织和管理方式,对于实现保护功能,将是更有效和方便的。

④动态链接。动态链接也要求以信息的逻辑单位即分段作为管理的单位。

⑤动态增长。实际使用中,往往有些段特别是数据段会不断地增长,而事先又无法确切地知道数据段会增长到多大。这种动态增长的情况是其它存储管理方式都难于应付的,但分段存储管理方式却能较好地解决这一问题。

8.在具有快表的分页存储管理方式中,如何实现地址变换?

具有快表的地址变换过程如下:

⑴CPU给出有效地址后,由地址变换机构自动将页号送入快表,并将此页号与快表中的所有关键字(页号)进行比较,而且这种比较是同时进行的。若其中有与此页号相匹配的关键字,表示要访问页描述子在快表中。于是可直接读出该页所对应的帧号,则快速形成物理地址。这样就无需访问内存中的页表,由于快表的访问速度比内存的访问速度快得多,这样就可以大大减少访问内存的时间。

⑵如果快表中没有记录,即TLB脱靶,从页表中查找所需的页描述子中的帧号,形成物理地址,同时更新快表,把该页描述子及相邻的页描述子写入快表。页号在快表(TLB)中被查找到的百分比称为命中率(h)。

9.试说明分段系统和分页系统的区别与联系?

⑴页帧是信息的物理单位,分页是系统管理的需要,以解决内存的外碎片问题;段是信息的逻辑单位,分段的目的是为了更好地满足用户的需要,但分段存储管理存在外碎片问题。

⑵页的大小是固定的,由系统硬件决定;段的长度是不固定的,大小由用户决定。

⑶分页系统进程的地址空间是一维的,即该地址空间是单一的线性地址空间,程序员只需利用一个标识符,即可表示一个地址;分段系统进程的地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内偏移。

⑷分页对于用户是透明,它仅仅用于对内存的管理;分段则对用户是可见的。

⑸分段存储管理可以利用段的共享来实现内存共享;分页存储管理较难实现内存共享。

10.虚拟存储器有哪些特征?其中最本质的特征是什么?

虚拟存储器具有四方面的特征:

⑴离散性,即采用离散分配方式;

⑵多次性,指进程被分成多次调入内存运行;

⑶对换性,指允许进程的段或页,在进程运行过程中换进和换出;

⑷虚拟性,指能够从逻辑上扩充内存容量。

其中,最本质的特征是离散性。

11.实现虚拟存储器需要哪些硬件支持?需要哪几个关键技术?

实现虚拟存储器需要三方面的硬件支持:⑴请求分页/段的页表或段表机制;⑵缺页/段中断机构;⑶地址变换机构。

实现虚拟存储器的关键技术包括请求调页/段功能、页面/分段置换功能等。

12.一个计算机系统采用了虚拟存储器,它给系统带来了那些好处?同时系统又必须付出那些代价?

所谓虚拟存储器就是将用户逻辑内存与物理内存分离,具有请求换入功能和置换功能,为用户提供了一个存储容量比实际内存大得多的存储器管理系统。虚拟存储器既方便了用户,以提高了内存的利用率和系统的吞吐量。

虚拟存储器的访问内存的速度会降低,如果使用不当可能会降低系统性能。

13.在请求分页系统中,如何扩充页描述子?扩充项的作用是什么?

在请求分页系统中,页描述子扩充如下:

①页号和物理块号,用于实现用户作业虚拟地址空间页面到物理地址内存空间物理块的映射;

②状态位,用于表征相应分页是否调入内存以便于程序访问;

③访问字段,用于记录相应分页在最近一段时间内被访问的次数或未被访问的时间间隔,以作为页面置换算法被淘汰页面选择依据;

④修改位,表征对应页面本次调入内存以来是否被修改过,以作为页面是否重写回外存的系统决策依据及页面置换算法被淘汰页面选择的依据;

⑤外存地址,表征对应分页在外存空间的物理盘块号,以便页面置换时调入该页使用。

14.为什么说分段系统比分页系统更易于实现信息的共享和保护?

程序往往具有逻辑自然段构成的特点,而分页系统是基于计算机系统硬件机构决定的物理块及其大小对应的分页概念来进行内存管理的。为此,同一逻辑意义相对完整的程序段或数据段不仅可能占用多个内存分页而需在页表中设置多个页表项,而且它们也可能被不合理地错落分散开来,对应于地址转换过程势必复杂化和增大系统开销,信息共享过程中必要的代码或数据访问所耗费的时空开销必然急剧加大,信息保护实施同样非常困难。对于分段系统来说,由于其是基于程序构成的逻辑信息单位即分段来进行内存管理的,同一逻辑意义相对完整的程序段或数据段不会被分割,而是在内存空间对应一个连续分段,故仅需在段表中设置一个段表项,所以对应的地址转换过程和信息保护要相对简单得多,信息共享过程中必要的代码或数据访问所耗费的时空开销也要少些。因此,分段系统比分页系统更易实现信息共享和保护。

15.在请求分页系统中,常采用哪几种页面置换算法?

在请求分页系统中,常采用以下页面置换算法:最佳置换算法、先进先出置换算法、最近最久未使用置换算法、Clock置换算法(又可细分为分简单Clock置换算法和改进Clock置换算法两种)、最少使用置换算法及页面缓冲算法。

16.使用伙伴系统管理1MB的内存分区:

⑴画图说明下面顺序的结果:进程1请求70KB;进程2请求35KB;进程3请求80KB;进程1结束;进程4请求60KB;进程2结束;进程4结束;进程3结束。

⑵给出进程2结束之后的二叉树表示。(参考教材147-148)

17. 在段页式存储管理中,进程的逻辑地址由三部分组成,即段号、页号和偏移量,其逻辑地址变换为物理地址的过程如图5-44所示,请说明三个关键词段号、页号和偏移量在地址变换过程中的作用?请描述段页式存储管理的地址变换过程?

如图5-44 逻辑地址变换为物理地址的过程

段页式存储管理地址变换具体过程如下:

⑴从段表地址寄存器读取段表始址,找到该进程的段表。

⑵段号s+段表始址,得到段描述子地址。

⑶读取段描述子,得到页表始址。页号+页表始址,得到页描述子地址。

⑷读取页描述子,得到帧号。

⑸由帧号f和偏移量拼成物理地址。

18.为什么引入虚拟存储器概念?虚拟存储器的容量由什么决定的?受什么影响?根据什么说一个计算机有虚拟存储系统?

虚拟存储器技术允许进程部分装入内存,如图5-34所示,这种方案的一个很大的优点就是进程的逻辑地址空间可以比物理内存大。虚拟存储器将物理内存和备用外存抽象成一个巨大的、统一的存储空间,虚拟存储器将用户看到的逻辑内存与物理内存分开,这种技术允许程序员不受内存存储的限制,虚拟存储器也允许程序很容易地共享文件和地址空间。

虚拟存储器的容量并非无限大,一个虚拟存储器的容量由以下两个因素决定:

⑴虚拟存储器的容量受CPU的寻址能力的限制,CPU的寻址能力由计算机CPU地址总线结构确定的,它是影响虚拟存储器最大容量的重要参数。例如:某计算机CPU的地址总线长度为32位,则CPU可以寻址范围是0~232-1,即4G。

⑵一般来说,虚拟存储器的容量由内存和外存对换区容量之和所确定;有些虚拟存储器技术还要考虑加上进程文件区的容量。

如果程序员不受内存存储的限制,说明该计算机有虚拟存储系统。

19.什么是工作集,如何利用工作集模型控制抖动?

所谓工作集是指在某段时间间隔△里,进程实际要访问的页面集合。

为了防止抖动,就要控制缺页中断频率。当缺页中断频率太高时,进程需要更多页帧;类似地,如果缺页中断频率太低,那么进程可能占有过多的页帧。可以为所期望的缺页中断频率设置上限和下限,如果实际缺页中断频率超过上限,那么要为进程分配更多页帧;如果实际缺页中断频率低于下限,那么可从该进程中移走页帧。因此,可以直接控制缺页中断频率以防止颠簸。如图5-43所示,缺页中断频率与已分配页帧数关系图,M分配帧数的下限,N为进程的总页数,W为工作集的大小,W应该介于M和N之间。

图5-43 缺页中断频率与已分配帧数关系图

与工作集策略一样,如果缺页中断频率增加且没有可用的页帧,也可以挂起一个进程。接着,可将释放的页帧分配给那些具有高缺页中断频率的进程。为进程提供多于活跃页面数的帧数,预防抖动。

20.为什么只需将部分进程和数据装入内存,便能完成整个进程的运行。

根据局部性原理,在进程装入时,不必将其全部装入内存,而只要将当前需要执行的部分页或段装入内存,就可以让进程执行了。在进程执行过程中,如果需要执行的指令或访问的数据尚未在内存(称为缺页或缺段),则由操作系统将相应的页或段换入内存,然后继续执行进程。同时操作系统可以将内存中暂时不使用的页或段换出,保存在外存上,从而腾出空间存放将要装入的进程以及将要换入的页或段。

21.某虚拟存储器的用户编程空间共32个页,每页1KB,内存为16KB。假定某时刻某用户进程已换入内存的页表如表5-2所示。

页号

0

1

2

3

帧号

5

10

4

7

表5-2 页表

该用户进程长度为6页,将下面的虚拟地址0AEFH、10CDH、1AADH变换成物理地址,并写出地址变换过程。

[分析] 由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”。

页式存储管理的逻辑地址分为两部分:页号p(5位)|偏移量d(10位)。

物理地址结构为:帧号f(4位)|偏移量d(10位),

逻辑地址0AEFH所对应的二进制表示形式是:000 1010 1110 1111 ,根据上面的分析,下划线部分为偏移量d,页号=“000 10”=2(十进制),查页表,得到帧号f =4(十进制),即帧号f=0100 ,拼接帧号f和偏移量d,得01 0010 1110 1111,求得对应的物理地址为12EFH。

逻辑地址10CDH所对应的二进制表示形式是:001 0000 1100 1101 ,根据上面的分析,下划线部分为偏移量d,页号= 00100=4(十进制),查页表,该页不在内存,发生缺页中断。

逻辑地址1AADH所对应的二进制表示形式是:001 1010 1010 1100 ,根据上面的分析,下划线部分为偏移量d,页号=“00110”=6(十进制),由于用户进程长度为6页,发生越界中断。

22.在一个请求页式存储管理系统中,一个进程的页面走向为:6,5,4,3,2,1,5,4,3,6,5,4,3,2,1,6,5。请分别采用FIFO和LRU近似算法,对M=4和M=5的情况,用页面走向分析图求出访问中发生的缺页次数和缺页率,并比较其结果。

23.试讨论了下述几种存储管理技术。单一连续区分配,固定分区,动态分区,分页存储管理,分段存储管理,段页式存储管理,请求分页存储管理。请回答:

⑴给出每一种管理方法存在的主要问题。

⑵把每一种方法与它的前一种方法对比,指出哪些问题得到了解决?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: