全国计算机等级考试四级含金量,2017年全国计算机等级考试四级复习纲要:存储管理

副标题:2017年全国计算机等级考试四级复习纲要:存储管理

时间:2023-10-07 18:01:01 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。


四、存储管理

1.引言

现代计算机系统中的存储系统常是多级存储体系,至少有主存(内存)和辅存(外存)两级。有的系统有更多级。主存是由系统实际提供的存储单元(常指字节)组成的一个连续地址空间,处理器可直接存取。辅存是指软盘、硬盘、光盘和磁带等一些外部存储部件,常用来存放暂不执行的程序和数据,处理器不能直接访问,需**启动I/O设备,才能进行内存、外存交换。其访问速度慢,但价格便宜,常用作主存的后援设备。主存大小由系统硬件决定,是实实在在的存储,它的存储容量受到实际存储单元的限制。虚拟存储(简称虚存)不考虑实际主存的大小和数据存取的实际地址,只考虑相互有关的数据之间的相对位置,其容量由计算机的地址的位数决定。系统中主存的使用一般分成两部分,一部分为系统空间,存放操作系统本身及相关的系统数据,另一部分为用户空间,存放用户的程序和数据。

(1)地址重定位用户程序需调入主存运行,即从辅存把用户已经编译链接的目标程序(有时称为可执行程序)装入主存。由于用户作业的存储空间是运行时确定的,所以程序中的操作地址都采用相对地址(逻辑地址)的形式。把相对地址空间的程序转换成在绝对地址(物理地址)空间上能够执行的过程称为地址重定位,也称为地址映射或地址映像。地址重定位有两种:静态重定位和动态重定位。静态重定位是指在程序装入时完成,一般由软件实现;动态重定位是指在程序执行时实现地址转换,它通常由一个基本地址寄存器和一个加法器组成的动态重定位机制实现。

(2)存储管理的功能早期的单用户操作系统,一次只允许一个用户程序驻留,它拥有用户地址空间的全部访问权限,存储管理的任务是存储空间的分配与回收。在多道程序系统,多个程序同时驻留内存,如何有效地利用主存,如何让需要较大运行空间的作业运行,如何保护与共享主存等,都是存储管理应解决的问题。存储管理应提高存储资源的利用效率,又方便用户使用,存储管理的任务应具有如下功能:①分配与回收:主存分配方法有两种:静态分配与和动态分配。静态分配是指在目标模块装入主存时即取得所需空间,直至完成不再变动;动态分配则允许进程在运行过程中继续申请主存空间。采用动态分配方法的系统中,常配合使用合并自由区的方法,使一个连续的空区尽可能地大。②存储扩充:提供虚拟存储器,使计算机系统似乎有一个比实际主存储器容量大的主存空间。需考虑放置策略。③共享与保护:共享指共享在主存中的程序或数据,如多个用户共享编辑程序成编译程序等。由于多道程序共享主存,每个程序都应有它单独的主存区域,各自运行,互不干扰。

2.实存管理

(1)单一连续分配在单道程序系统中,主存区域的用户空间全部为一个作业或进程占用,单一连续分配方法主要用于早期单道批处理系统以及80年代个人计算机系统,单一连续分配方法主要采用静态分配方法,为降低成本和减少复杂度,常不对主存进行保护,会引起冲突而使系统瘫痪。

(2)固定分区分配固定分区分配法是把主存空间固定地划分为若干个大小不等的区域,划分的原则由系统决定。系统使用分区表描述分区情况。

(3)可变分区分配可变分区分配方法是将主存空间按用户要求动态地划分若干个分区。这样就消除了固定分区分配方法中的小作业占据大分区造成的浪费(这种浪费称为内碎片)。可变分区分配系统中初始时只有一个分区。随后,分配程序将这个区依次分给作业或进程。继续考察连续分配方案:一个作业必须占据相邻接的存储单元。在可变分区分配系统中,并不作出作业有多长的的假定(除了它们不能大于计算机内可利用主存的尺寸之外。当作业到达时,如果调度机构决定它们开始运行,它们就能获得必要的存储区,一点浪费也没有———存储区的分区与作业的长度相符。)但是,每种存储组织方案都包含一定程度的浪费。在可变分区分配系统中,主存中的作业在开始装入和归还自由区之前,主存浪费并不明显,这些自由区可以被其分作业使用。即使如此,剩余的自由区域可能变得很小。因此在可变分区分配系统中,确实会出现存储器浪费,这种现象称为外部碎片。①合并自由区在可变分区分配系统中,当一个作业完成时,能够检测到被释放的存储区是否与其他自由存储区域(自由区)相邻接。如果与其他自由存储区邻接,可以在自由存储区表记录上新增加一个自由区,或新的自由区与相邻接的现存自由区合并的单一自由区。合并相邻接的自由区以形成单个更大的自由区的过程叫做合并。用合并自由区的方法,我们重新获得可能连续的存储块。②存储拼接即使合并了自由区,经常发现分布在主存各处的破碎的自由区在主存中占据了相当数量的空间。有时,当一个作业申请一定数量的主存,而此时却没有单个的自由区大到足够装下这个作业,虽然自由区的总和大于新作业所要的存储区。存储拼接或存储紧凑也称碎片收集,移动存储器中所有被占用的区域到主存的某一端。这样留下单独的大的存储自由区,取代在可变分区多道程序设计中常见的许多小自由区。当所有可利用的自由存储区连续时,一个正等待着的作业能够调入运行,因为它的存储需求能被拼接形成的单个自由满足。③存储分配算法存储分配算法用来决定输入的程序和数据放到主存中的什么地方。

常用3种算法是:

适应算法:选择最小的足够装入的可利用的自由区。对许多人来说,适应看起来是最直观的,吸引人的算法。

首次适应算法:从主存低地址开始选择第一个足够装入的可利用的自由区。首次适应也具有直观吸引力,此算法可以快速做出分配决定。

最差适应算法:最差适应说的是,总是将一个程序放入主存中的自由区。这种方法吸引人的原因很简单:在大自由区中放入程序后,剩下的自由区经常也很大,于是也能装下一个较大的新程序。

(4)交换上述3种方法都把用户作业完全地连续存放在一个存储区区域中,为了能在较小的主存空间中运行较大的作业,常采用交换技术。交换技术是指将作业不需要或暂时不需要的部分(进程)移到辅存,让出主存空间以调入需要的部分,交换到辅存的部分也可以再次被调入。实际上这是有辅存作缓冲,让用户程序在较小的存储空间中,**不断地换出作业或进程而运行较大的作业。

3.虚存组织

虚拟存储通常涉及存储空间大于计算机系统主存中可利用存储空间时的寻址能力问题。虚拟存储系统的特点是运行程序访问的地址不是主存中可以获得的,即运行进程访问的地址与主存可用的地址相脱离。运行进程访问的地址称为虚地址,主存中使用的地址称为实地址。一个运行进程可以访问的虚地址范围称为进程的虚地址空间,相应的,可使用的实地址范围称为实地址空间。来

(1)分段存储组织可变分区分配方案中,主存中放置的程序常采用首次适应、适应或最差适应算法实现,但运行的程序需连续存放在一个分区中。一个作业是由若干个具有逻辑意义的段(如主程序、子程序、数据段等)组成。分段系统中,允许程序(作业)占据主存中若干分离的分区。每个分区存储一个程序分段。这样,每个作业需要几对界限地址,判定访问地址是否越界也困难了。在分段存储系统中常常利用存储保护健实现存储保护。分段系统中虚拟地址是一个有序对(段号,段内位移)。系统为每一个作业建立一个段表,其内容包括段号与主存起始地址的对应关系、段长和状态等。状态指出这个段是否已调入主存,即主存起始地址指出这个段,状态也指出这个段的访问权限。分段系统的动态地址转换是这样进行的:进程运行时,其段表的首地址已在基本地址寄存器中,执行的指令访问虚存(s,d)(取指令或取操作数)时,首先根据段号s查段表,若段已经调入主存,则得到该段的主存起始地址,然后与段内相对地址(段内偏移量)相加,得到实地址。如果该段尚未调入主存,则产生缺段中断,以装入所需要的段。

(2)页式存储组织页式存储组织与存储组织相似。但是,主存被分划成若干定长的页,页式系统中虚地址是一个有序对(页号,页内位移)。系统为每一个进程建立一个页表,其内容包括进程的逻辑页号与物理页号的对应关系、状态等。页式系统的动态地址转换是这样进行的,进程运行时,其页表的首地址已在系统的动态地址转换机构中的基本地址寄存器中,执行的指令访问虚存地址(p,d)时,首先根据页号p查页表,由状态可知,这个页是否已经调入主存。若已调入主存,则得到该页的主存位置,然后,与页内相对位移组合,得到实地址;如果该页尚未调入主存,则产生缺页中断,以装入所需的页。

(3)段页式存储组织段页式存储组织综合了段式组织与页式组织的特点,主存被分划成定长的页,段页式系统中虚地址形式是(段号、段内页号、页内位移)。系统为每个进程建立一个段表,为每个段建立一个页表。

4.虚存管理

实存管理中曾讨论过调入、放置(放入分区)和交换(swapping)等问题,虚拟存储系统同样存在这些问题。

(1)调入策略这涉及在什么时候一页或一段要从辅存调入主存,有两种算法:直到进程访问到某页或某段时,才把这个页或段调入主存,这称为请求调入方案;先行调入方案试图预测进程将要访问的是哪些页或段,则在访问以前先行调入这些页或段到主存。

(2)放置策略这涉及将调入的页或段放在主存的什么地方,页式系统可以放置在任一可利用的实页中,分段系统则类似于可变分区分配系统。

(3)置换策略这涉及到进程已用完了该进程的可用主存空间时,选择淘汰哪些页或段,腾出空间放置调入的页或段。在请求页式存储系统中,有若干淘汰算法(置换策略):①(OPT)算法:选择不再使用或最远的将来才被使用的页,这是理想的算法,但难以实现,常用于淘汰算法的比较。②随机(RAND)算法:随机地选择被淘汰的页,开销小,但可能选中立即就要访问的页。③先进先出(FIFO)算法:选择在主存驻留时间最长的页,似乎合理,但可能淘汰立即要使用的页。另外,使用FIFO算法时,在未给予进程分配足够的页面数时,有时会出现给予进程的页面数增多,缺页次数反而增加的异常现象。④最近最少使用(LRU)算法:选择离当前时间最近的一段时间内使用得最少的页,这个算法的主要出发点是,如果某个页被访问了,则它可能马上就要被访问;反之,如果某个页长时间未被访问,则它在最近一段时间也不会被访问。存储管理策略的基础是局部性原理———进程往往会不均匀地高度局部化地访问主存。局部性表现为时间局部性和空间局部性两类:时间局部性是指最近被访问的存储位置,很可能不久的将来还要访问,如循环、栈等;空间局部性是指存储访问有成组的倾向:当访问某个位置后,很可能也要访问其附近的位置,如访问数组,代码顺序执行等。存储访问局部性最有意义的结果是,只要进程所需要的页面子集驻留在主存中,进程就可以有效地运行,根据局部性访问特性,Denning阐述了程序性能的工作集理论。简言之,工作集是进程活跃地访问的页面的集合。工作集理论指出,为使进程有效地运行。它的页面工作集应驻留在主存中。否则,由于进程频繁地从辅存请求页面,而出现称为“颠簸”(又称抖动)的过度的页面调度活动。此时,处理页面调度上的时间超过了程序的执行时间。显然,此时CPU的有效利用率会急速下降。当一个进程陷入颠簸状态时,有的系统将采用全局页面调度方法以试图消除颠簸现象,即将其他进程拥有的主存页面调出主存供这个进程使用

2017年全国计算机等级考试四级复习纲要:存储管理.doc

本文来源:https://www.wddqw.com/4H1O.html