您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第7章 实存储管理技术
第7章实存储管理技术引言7.1存储管理的基本概念7.2连续分配存储管理方式7.3离散分配存储管理方式引言存储器管理技术可分为两大类:实存储器管理和虚拟存储器管理。本章研究常用的实存储管理技术,第八章研究虚拟存储管理技术。7.1存储管理的基本概念•存储器层次结构7.1存储管理的基本概念•存储管理目的1、充分利用内存,为多道程序并发执行提供存储基础2、尽可能方便用户使用自动装入用户程序用户程序中不必考虑硬件细节3、系统能够解决程序空间比实际内存空间大的问题4、对操作系统及用户信息提供存储保护与安全7.1.1存储管理要解决的问题存储分配:动态地为不断进进出出的作业分配内存空间研究各种内存分配算法,以及每种算法所要求的数据结构。地址映射:保证作业运行中能够正确的定位。研究各种地址变换机构,以及静态和动态重定位方法。存储保护:保证作业的进程之间既能互相通信而又不互相干扰研究如何确保每道程序都在自己的内存空间运行,互不干扰;研究如何保护各程序区中信息不被破坏和偷窃。内存扩充:使空间需求量大于用户区内存容量的作业也能够正常运行研究如何从逻辑上扩充内存,而不是从物理上扩充内存。7.1.1存储管理要解决的问题操作系统的存储管理如同一个大地主,管着一个大庄园,当有农户需要租用田地时,地主就给分配一块地让他种(用户区分配)。等到地里长出了果实,结果出来后,地主还得来收回这块地(去分配)。为了管好这片田地,地主还要管好庄园的门,凡是要进去种地的,都得由地主根据农户的需要让他到位置确定实际的田地上去干活。(把逻辑地址转换成物理地址)庄园里还有一些大家共同可以使用的地方,比如地主的花园,工具房等,大家可以进去,也可以使用,但是不许改变任何现有的资源,还有,每个农户只能在自己的地里刨食吃,如果有人胆敢到别人地里或地主的花园里摘花偷食,可要当心他们养的狼狗跳出来哦。(共享和保护)当然,再大的地也是不够多的,地主为了多赚些钱,当所有的地都租出去的时候,他想办法把有些种田人暂时不种的那块地里的东西连地皮一起挖出来放到仓库里先堆着。把地腾出来租给别人种(这一招可够绝的,不过地主说啦,这就是“虚拟存储”。)你们说这个地主是好是坏??7.1.2存储管理的分类连续分配方式:连续分配方式是指系统为一个用户程序分配一个连续的存储空间。这种分配方式曾被广泛应用于6070年代的操作系统中,今天仍有它的一席之地。连续分配主要有两种:单一连续分配方式:这种存储管理方式把内存划分成系统区和用户区两个分区,用户区仅被一个用户所独占。例如MS-DOS就是采用的单一连续分区管理方式。分区式分配方式:这种存储分配方式适用于多道程序的存储管理,可以分为固定分区式和可变分区式。7.1.2存储管理的分类•固定分区式:是将内存的用户区预先划分成若干个固定大小的区域,每个区域中驻留一道程序。•可变分区式:是根据用户程序的大小,动态地对内存进行划分,所以每个分区的大小不是固定的,分区数目也不是固定的。可变分区式显著地提高了存储器的利用率。7.1.2存储管理的分类离散分配方式:为了进一步提高内存的利用率,提高进程的并发粒度,引入了离散分配方式。它将一个用户进程离散地分配到内存中多个互不邻接的区域。离散分配方式有以下三种:分页存储管理方式:在这种存储管理方式中,用户地址被划分成若干大小相等的区域,称为页或页面;而内存空间也相应地划分成若干个物理块,页和块的大小相等。这样,就可以将用户程序离散地分配到内存中的任意一块中,从而实现内存的离散分配,这时内存中的碎片不会超过一页。7.1.2存储管理的分类分段存储管理方式:这种管理方式是从逻辑关系考虑,把用户地址空间分成若干个大小不等的段,每段可以定义一个相对完整的逻辑信息。在进行内存分配时,以段为单位,段与段之间在内存中可以不相邻接,实现离散分配。段页式存储管理方式:这是分页和分段存储管理方式的结合,即将用户程序分成若干个段,再把每一段分成若干个页,相应地将内存空间划分成若干物理块,页和块的大小相等,将页装入块中。这种存储管理方式不但提高了内存的利用率,而且又能满足用户的要求。7.1.2存储管理的分类虚拟存储管理系统:为了进一步提高内存的利用率,实现从逻辑上扩充内存的功能,引入了虚拟存储管理系统,虚拟存储管理系统有三种:请求分页系统:请求分页系统是在分页系统的基础上,增加了请求调页功能和页面置换功能所形成的分页式虚拟存储系统。它只把用户程序的部分页面(而非全部页)装入内存,就可以启动运行,以后再通过请求调页功能和页面置换功能,陆续把将要运行的页面调入内存,同时把暂不运行的页面置换到外存上,置换时以页面为单位。7.1.2存储管理的分类请求分段系统:请求分段系统是在分段系统的基础上,增加了请求调段功能和分段置换功能所形成的分段式虚拟存储系统。它只把用户程序的部分段(而非全部段)装入内存,就可以启动运行,以后再通过请求调段功能和置换功能将不运行的段调出,同时调入将要运行的段,置换时以段为单位。请求段页系统:请求段页系统是在段页式系统的基础上,增加了请求调页功能和页面置换功能所形成的段页式虚拟存储系统。7.1.3地址重定位地址空间和存储空间:名字空间:程序中由符号名组成的空间称为“名字空间”。相对地址:也称逻辑地址或虚地址。源程序经过汇编或编译后再经过链接装配,加工形成程序的装配模块形式,它是以“0”为基址顺序进行编址的。相对地址空间:相对地址的集合称为相对地址空间,或简称为地址空间。绝对地址:相对地址经地址重定位机构转换到内存中的地址,称为绝对地址,或称物理地址。绝对地址空间:相对地址空间通过地址重定位机构转换到绝对地址空间,绝对地址空间也叫物理地址空间,或称为存储空间。7.1.3地址重定位名字空间、地址空间和存储空间的关系如下图所示:I/O说明数据说明符号指令相对目标程序绝对目标程序汇编/编译链接地址重定位装入名字空间地址空间存储空间7.1.3地址重定位地址重定位:一个逻辑地址空间的程序装入到物理地址空间时,由于两个空间不一致,就需要进行地址变换,或称地址映射,即地址重定位。地址重定位有两种方式:静态重定位和动态重定位。静态重定位:静态重定位是在程序执行之前进行重定位。它根据装配模块将要装入的内存起始地址,直接修改装配模块中的有关地址的指令,这一工作通常是由装配程序完成的。7.1.3地址重定位静态重定位loadA,[2000+450]010002000+4503500256k-12000+6002000+100存贮空间地址空间3500loadA,[450]0450599100从第2000行开始重定位装入程序BA=20007.1.3地址重定位静态重定位的优点:静态重定位的优点是容易实现,无须硬件的支持,它只要求程序本身是可重定位的,即对那些要修改的地址部分具有某种标识。静态重定位的缺点:(1)程序在地址重定位后就不能在内存中移动了,因而不能重新分配内存,不利于内存的有效利用。(2)要求程序的存储空间必须是连续的,不能分布在内存的不同区域。(3)不利于内存的共享,若干用户如若共享同一程序,则各用户必须使用自己的副本。7.1.3地址重定位动态重定位:在程序执行过程中进行重定位,由系统硬件完成从逻辑地址到物理地址的转换。动态重定位需要硬件的支持,这个硬件就是重定位寄存器。重定位寄存器的内容是程序装入内存区的起始地址减去目标模块的相对基地址。重定位时,对每一个有效地址都要加上重定位寄存器中的内容,以形成存储空间的地址,即绝对地址。7.1.3地址重定位动态重定位示意图:动态重定位如下图所示:…LOADA,[450]…3500…LOADA,[450]…3500操作系统0:100:450:2000:2100:2450:地址空间存储空间2000重定位寄存器+7.1.3地址重定位动态重定位示例:程序的目标模块在装入内存时,与地址有关的指令都无需进行修改,如地址空间中的指令LOADA,450在装入后仍保持相对地址450。当该模块被操作系统调度到处理器上执行时,操作系统首先把该模块装入的起始地址减去目标模块的相对基地址,然后将其差值装入重定位寄存器。当处理器取一条访问内存的指令时,地址变换硬件机构自动将指令中的相对地址与重定位寄存器中的内容相加,把所得结果作为内存的绝对地址去访问该单元的数据。此外还应增设一个界限寄存器,用于防止程序使用的地址超过程序的界限。7.1.3地址重定位动态重定位的优点:(1)在程序的执行过程中,用户程序在内存中可以移动,因而可以重新分配内存,有利于内存的充分利用。(2)程序不必连续存放在内存中,可以分散在内存的若干个不同区域,这只需增加几对基址—限长寄存器,每对寄存器对应一个区域。(3)若干用户可以共享同一程序。动态重定位的缺点:动态重定位的缺点是需要附加硬件支持,实现存储管理的软件算法比较复杂。7.2连续分配存储管理方式连续分区存储管理方式广泛应用于60~70年代的操作系统中,至今仍占有一席之地。本节主要讲述单一连续分配、固定分区分配和可变分区分配等方案。用户区7.2.1单一连续分配方式在早期的计算机及某些小型、微型计算机系统中,没有采用多道程序设计技术,采用的是单用户、单任务的操作系统(如MS-DOS、CP/M等),使用计算机的用户占用了全部计算机资源。这时的存储管理方案采用的是单一连续分配方案。系统区分区方法:在这一存储管理方案中,内存分为两个区域,如右图所示:系统区:这一区域仅供操作系统使用,通常驻留在内存的低段。用户区:除系统区之外的全部内存空间,提供给用户使用。7.2.1单一连续分配方式存储保护:对于单一连续分配方式,为了实现存储保护,防止操作系统受到有意或无意的破坏,需要设置界限寄存器。如果CPU处于用户态工作方式,则对于每一次访问,需检查其逻辑地址是否大于界限寄存器的值,如果大于界限寄存器的值,则表示已经越界,出现了用户程序对操作系统区域的访问,便产生中断,并将控制转给操作系统。如果CPU处于核心态工作方式,此时可以访问操作系统区域。单一连续分配方式的优点:方法简单,易于实现。单一连续分配方式的缺点:仅适用于单道程序,不能使处理器和内存得到充分利用。7.2.1单一连续分配方式操作系统区作业i的程序、数据等界限地址界限寄存器作业2作业1界限地址+逻辑地址装入程序7.2.2固定分区存储管理方式固定分区分配方式是最早使用的一种能应用于多道程序设计的存储管理方式,其基本思想是在系统生成时就将内存按一定规则划分成若干个分区,每个分区的大小可以不等,但事先必须固定,在系统运行过程中不能改变。在每一个分区内装入一个进程,这样,把内存划分成几个分区,便允许几道作业并发执行。当有空闲分区时,可从外存的后备队列中,选择一个适当大小的作业装入该分区。7.2.2固定分区存储管理方式分区划分方法:分区大小相等:把内存等分成若干份,所有分区的大小都是相等的。这种分区方法不适宜于程序大小不等的情况。当程序太小时,会造成内存空间的浪费;而当程序太大时,可能由于分区太小而无法装入。尽管这种分区方法存在着很多缺点,但在一些地方仍被采用,主要用于利用一台计算机控制多个相同对象的场合。例如,炉温控制系统是利用一台计算机去控制多台相同的冶炼炉。分区大小不等:为了克服分区大小相等分配方法的缺点,可以根据一定的规则,在内存中划分成多个大小不等的分区,为小的程序分配小分区,中等程序分配中等分区,大程序分配大分区。7.2.2固定分区存储管理方式数据结构:在固定分区分配方式下,操作系统的存储分配模块和存储回收模块都要用到内存分区情况的说明信息,以及这些存储区的使用状况信息。为此,系统中设置了一张分区说明表,包含三项信息:大小:指该分区的大小;始址:指该分区在内存中的起始位置;状态:表明该分区是否已被使用。内存分配:当有一用户程序需要装入时,由内存分配程序检索分区说明表,按照一定的算法找出一个能够满足要求的、尚未使用的分区分配给该程序,同时修改分区说明表中该分区表项中的状态。如果找不到大小足够的分
本文标题:第7章 实存储管理技术
链接地址:https://www.777doc.com/doc-3213119 .html