第4章操作系统.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第4章操作系统.ppt》由会员分享,可在线阅读,更多相关《第4章操作系统.ppt(195页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章存储管理4.1 存储管理的基本概念 4.2 早期的存储管理 4.3 分页存储管 4.4 请求分页存储管理 4.5 分段存储管理 4.6 段页式存储管理4.7 Windows NT虚拟内存管理 4.8 小结 习题 第4章存储管理4.1.1 存储管理研究的课题存储管理研究的课题众所周知,在单道程序阶段,人们就已经意识到存储资源的不足,并开始研究用覆盖技术来解决程序长度超过主存可用空间时程序的运行问题。在多道程序出现之后,这种要求就更为突出,而且又提出存储器的分配(即共享)问题。由于多道程序(或多作业,或多进程)共享一个主存,因此必须考虑各程序之间有意或无意地互相侵犯和破坏的问题,即考虑对它们
2、的保护问题。又因为用户程序或非常驻系统程序是随机、动态地纳入系统,所以不论是用户还是系统,均不能预先知道这些程序将要放在内存中什么位置。4.1 存储管理的基本概念存储管理的基本概念第4章存储管理这就要求人们必须改变以前那种按绝对地址编写程序的观念。因此,我们应该研究地址转换或地址再定位问题。综上所述,目前关于存储管理的主要研究课题可归纳为以下四个方面:(1)存储分配问题:重点是研究存储共享和各种分配算法。(2)地址再定位问题:研究各种地址变换机构,以及静态和动态再定位方法。(3)存储保护问题:研究保护各类程序、数据区的方法。(4)存储扩充问题:主要研究虚拟存储器问题及其各种调度算法。第4章存储
3、管理4.1.2 地址再定位地址再定位1.地址空间和存储空间地址空间和存储空间在我们用汇编语言或高级语言编写程序时,总是通过符号名来访问某一单元。我们把程序中由符号名组成的空间称为名空间。源程序经过汇编或编译后,再经过链接装配程序加工形成程序的装配模块形式,即转换为相对地址编址形式,它是以 0 为基址顺序进行编址的。相对地址也叫逻辑地址或虚地址,把程序中由相对地址组成的空间叫做逻辑地址空间。逻辑地址空间通过地址再定位机构转换到绝对地址空间。绝对地址空间也叫物理地址空间。第4章存储管理简单说来,逻辑地址空间(简称地址空间)是逻辑地址的集合,物理地址空间(简称存储空间)是物理地址的集合。程序的名空间
4、、地址空间和存储空间的关系如图 4.1 所示。第4章存储管理图 4.1 名空间、地址空间和存储空间 第4章存储管理2.地址的再定位地址的再定位上面已经指出,一个逻辑地址空间的程序装入到物理地址空间时,由于两个空间不一致,就需要进行地址变换,或称地址映射,即地址的再定位。地址再定位有两种方式:静态再定位和动态再定位。静态再定位是在程序执行之前进行地址再定位。这一工作通常是由装配程序完成的。例如在图 4.2 中的装配模块可以在执行前装入到内存始址为 50 KB的一段区域,也可以装到其它的内存连续区域中,其地址再定位过程如图 4.2 所示。第4章存储管理图 4.2 静态地址再定位 第4章存储管理静态
5、地址再定位的优点是容易实现,无需硬件支持,它只要求程序本身是可再定位的,即对那些要修改的地址部分具有某种标识。地址再定位由专门设计的程序来完成,在早期的操作系统中大多数都采用这种方法。其主要缺点是:(1)程序经地址再定位后就不能再移动了,因而不能重新分配内存,不利于内存的有效利用。(2)程序在存储空间中只能连续分配,不能分布在内存的不同区域。(3)若干用户很难共享内存中的同一程序,如若共享同一程序,则各用户必须使用自己的副本。第4章存储管理动态地址再定位是在程序执行期间,在每次存储访问之前进行的。在这种情况下,通常通过基地址寄存器、变址寄存器计算出指令的有效地址,再利用硬件机构实现地址变换。通
6、常采用的办法是利用一个再定位寄存器,对每一个有效地址都要加上再定位寄存器中的内容,以形成绝对地址,即存储空间的地址,而再定位寄存器中的内容就是程序装入内存区的起始地址。在图 4.3 中,把某一相对地址程序装入到地址 1000 开始的内存区域时,只要把 1000 装入再定位寄存器,程序即可运行。这一动态地址再定位的过程如图 4.3 所示。图中的BR是再定位寄存器,亦称基址寄存器。此外又增设了一个界限(或限长)寄存器LR,它用于防止该程序使用的地址超过程序的界限。第4章存储管理图 4.3 动态地址再定位第4章存储管理动态地址再定位的优点是:(1)在执行过程中,用户程序在内存中可以移动,这有利于内存
7、的充分利用。(2)程序不必连续存放在内存中,可以分散在内存的若干个不同区域,这只需增加几对基址-限长寄存器,每对寄存器对应一个区域。(3)若干用户可以共享同一程序。动态地址再定位的缺点是需要附加的硬件支持,实现存储管理的软件算法比较复杂。第4章存储管理4.1.3 虚拟存储器概念的引入虚拟存储器概念的引入为了给大作业(其地址空间超过主存可用空间)用户提供方便,使他们不再承担主存和辅存的具体分配管理工作,由操作系统把主存和辅存统一管理起来,实现自动覆盖。即一个大作业程序在执行时,有一部分地址空间在主存,另一部分在辅存,当访问的信息不在主存时,则由操作系统(而不是由程序员安排的I/O指令)把它从辅存
8、调入主存。从效果上看,这样的计算机系统,好像为用户提供了一个容量比主存大得多的存储器。这个存储器称为虚拟存储器。这样的存储器实际上并不存在,而只是在系统增加了自动覆盖功能后,使用户感到他有了一个很大的主存,在编写程序时再不受主存容量的限制了。第4章存储管理虚拟存储器的基本思想是把作业地址空间和实际主存的存储空间,视为两个不同的概念。一个计算机系统为程序员提供了一个足够大的地址空间,而完全不必考虑实际主存的大小。由此,可以引出虚拟存储器更一般的概念,即把系统提供的这个地址空间,想象成有一个存储器(虚存)与之对应,正像存储空间有一个主存与之对应一样。这就是说,虚拟存储器实际上是一个地址空间。第4章
9、存储管理根据地址空间结构不同,虚拟存储器有两种形式。一种是单段式虚存,它是一个连续的线性地址空间,其地址顺序为:0,1,2,n-1。其中n=2k,k为CPU给出的有效地址的长度。另一种是多段式虚存,它是把地址空间分成若干段,而每一段Si是一个连续的线性地址空间。每个地址可用Si,W来表示,Si为段名或段号,W为段内的相对地址。第4章存储管理一个虚存的最大容量由计算机的地址结构确定。若CPU给出的有效地址长度为18,则可以编址的范围是从 0 到 218-1,即容量为256 KB;若地址长度为24 位,则虚存容量为161024 KB(即 16 MB)。由此可见,虚存容量与主存(也称实存)大小没有直
10、接关系。虚存容量可以比实存大,也可以比实存小,而且在多道程序环境下,一个系统可以为每个用户建立一个虚存,每个用户可以在自己的地址空间(最大容量为虚存容量)内编程,这对用户来说是十分方便的。第4章存储管理在引入了虚拟存储器的系统中,一方面要在主存和辅存中交换信息,另一方面系统自动地将地址空间中给出的逻辑地址变换成主存的物理地址。这样,既消除了程序员的存储分配问题,又能实现根据主存的具体情况和用户作业实际需要完全动态地分配主存,从而使主存的利用率大大地提高了。第4章存储管理4.2.1 单一连续分配单一连续分配在早期的计算机或某些小型、微型机系统中,没有采用多道程序设计技术。每次只有一个用户作业使用
11、计算机。在用户使用计算机的整个过程中,占有了全部计算机资源,当然也包括主存资源。这时的存储管理方案是采用单一连续分配方案。4.2 早期的存储管理早期的存储管理第4章存储管理在单一连续分配方案中,存储器在概念上分成三个连续区域,其中之一固定给操作系统使用,其余部分由作业占用,但实际上作业只能占用一部分,最后总要剩下一块连续区域,这部分实际上是浪费了。例如,有一个容量为 256 KB的内存,一个简单的操作系统占用了 32 KB,剩下的224 KB全部分给用户作业。如果一个典型作业仅需 64 KB,那么就有 160 KB的存储区没有被利用,如图 4.4 所示。第4章存储管理图 4.4 单一连续分配第
12、4章存储管理对于上述单一连续分配方案,它不要求专用的硬件支持。但为实现存储保护,有时需要设置界限寄存器,以防用户作业侵犯操作系统。界限寄存器内置入被保护区(主要是操作系统)的地址。如果CPU处于算态工作方式,则对于存储器的每一次访问,硬件均要进行检验,以确保被保护区域不受侵犯。如果出现了用户程序对被保护区域的访问,便产生中断,控制转给操作系统。如果CPU在管态方式下工作,此时可以访问被保护的区域。第4章存储管理当操作系统的作业调度程序希望调度一个作业投入运行时,仅当内存中没有其它作业时才有可能。被调度的作业所需主存的大小仅当不超过可用的主存容量时,才能将其装入主存并投入运行,否则该作业无法运行
13、,而只能打印出错信息,通知操作员。单一连续分配方案的优点是方法简单,易于实现;缺点是:它仅适用于单道程序,因而不能使处理机和主存得到充分利用。第4章存储管理4.2.2 分区分配分区分配分区分配是能满足多道程序设计需要的一种最简单的存储管理技术,分区管理法也称界地址存储管理法。通常,按照分区的划分方式,它又可分为固定式分区、可变式分区、可再定位式分区和多重分区四种。第4章存储管理1.固定式分区法固定式分区法固定式分区法的基本思想是在系统生成时就将主存划分为若干个分区,每个分区的大小可以不等,但事先必须固定,以后也不能改变。譬如说,将主存的可用区域划分为五个分区,如图 4.5 所示。图 4.5(a
14、)为固定分区说明表,图 4.5(b)为主存空间的分区及分配图。当系统采用固定分区分配法时,首先由用户提出其作业所需的最大容量,然后由系统找出一个足够大的分区分配给它。例如有五个作业,其容量分别为 1 KB,9KB,9 KB,33 KB,121 KB,它们都将进入系统,此时系统可按表 4-1 分配给各分区。第4章存储管理图 4.5 固定式分区 第4章存储管理第4章存储管理在这种情况下,所有分区都是尽可能按最佳方式分配的,但在 712 KB的有效主存中实际上只用 173 KB,结果大约 75%以上的有效主存被浪费掉了。第4章存储管理2.可变式分区法可变式分区法可变式分区法也就是动态划分存储器的分区
15、方法,它是在作业装入和处理过程中建立的分区,并且要使分区的容量能正好适应作业的大小。在作业进入系统前,根据作业的大小来申请所需存储容量,然后由系统实施分配。系统为了管理主存分区分配情况,需建立两张表,分别登记已分配区和未分配区的分区容量、位置和状态信息。第4章存储管理图 4.6 给出了一个可变式分区管理的例子。在某一时刻,系统已分配了三个分区,留下两个空白区,如图 4.6(a)。两个表的形式如表 4-2 所示。现在假定又有三个作业要求进入系统,为此要在空白区内为它们开辟新的分区(图4.6WTBX(b)),最后当一些作业完成时,相应的分区被释放,变成空白区(图4.6WTBX(c))。显然,对于这
16、两种情况,相应的两个表均要作适当的修改。第4章存储管理图 4.6 可变式分区的例子第4章存储管理第4章存储管理现在我们来讨论在可变式分区管理中,请求和释放分区的算法。假定有一作业,它申请分配给它一个主存分区,于是它首先在未分配的分区状态表中查找一个空白区,该区的容量必须大于或等于该作业所要求的容量。如果它大于作业所需要的容量,则将其分成两份,一份分配给该作业,另一份变成较小的空白区。反之,当一个作业完成之后,将该作业所占用的分区释放,即将该分区变成空白区,并且将该空白区与邻接的空白区进行合并,使之成为一个较大的空白区。图 4.7、图 4.8 给出了可变式分区的请求和释放算法的流程。第4章存储管
17、理图 4.7 可变式分区中请求一个分区的流程第4章存储管理图 4.8 可变式分区中释放一个分区的流程第4章存储管理表 4-2(b)是未分配的分区状态表,即空白区表,各空白区的排列至少有如下几种方法,它们分别对应不同的算法。(1)最佳适应(Best Fit)算法。空白区表中的空白区按其容量以递增的次序排列。当要求分配一个空白区时,由小到大进行查找,即x1x2x3xn。如果要求分配一个分区其容量为S,则从x1开始顺序比较,直至Sxi;然后从xi中分配S,如有剩余部分,作为一个空白区将其插入适当的位置;如果比较到xn仍不能满足要求,则分配失败。第4章存储管理最佳适应算法的优点是:平均而言,只要查找一
18、半的表格便能找到最佳适应的空白区;如果有一个空白区的容量正好满足要求,则它必被选中;如果不存在恰好满足需要的空白区,则选中一个容量接近的空白区,而较大的空白区被保留下来。以后如果要求分配一个较大的空白区时,就容易得到满足。最佳适应算法的主要缺点是,空白区一般不可能恰好满足要求,在分配之后的剩余部分通常非常小,以致小到无法使用。换言之,发展下去最后剩下许多非常小的空白区(即碎片)。第4章存储管理(2)最差适应(Worst Fit)算法。与最佳适应算法相反,空白区按容量递减次序排列,即x1x2x3xn。如果要求的分区容量为S,并且x1S,则从x1中分配S;如有剩余部分,则将其插入适当位置;如果x1
19、S,则分配失败。第4章存储管理最差适应算法的优点是:只要比较S和x1就能判定能否满足要求,如满足要求便立即进行分配;x1分配后剩下的空白区可能比较大,仍能满足一般要求,可供以后使用。最差适应算法的缺点是各空白区比较均匀地减小,工作一段时间后就不能满足对于较大空白区的分配要求。(3)最先适应(First Fit)算法。空白区按地址大小递增顺序排列。对于要求分配的分区容量S,从头开始比较,直至找到满足xiS为止。如果满足,则从xi中分配S,剩余部分保留在空白区表中原来的位置。第4章存储管理最先适应算法的优点是:在释放内存分区时,如果有相邻的空白区就进行合并,使其成为一个较大的空白区;本算法的实质是
20、尽可能利用存储器的低地址部分,在高地址部分则保留较多的或较大的空白区,以后如果要求较大的空白区,就比较容易满足。最先适应算法的缺点是在低地址部分很快集中了许多非常小的空白区,因而在空白区分配时,搜索次数增加,影响了工作效率。第4章存储管理综上所述,固定式分区和可变式分区分配有如下三个优点:有助于多道程序设计;不受过多的硬件限制,只需要界地址寄存器,用于存储保护;所采用的算法大都比较简单,易于实现。第4章存储管理固定式分区和可变式分区分配有如下缺点:会产生一些碎片,这些碎片散布在存储器的各处,不能集中使用,因而降低了存储器的有效利用;分区的大小,受到主存容量的限制,这种方法无法扩充主存容量。解决
21、碎片问题的一种最简单办法是采用可再定位式分区分配。第4章存储管理3.可再定位式分区分配可再定位式分区分配可再定位式分区分配即浮动分区分配,是解决碎片问题的简单而有效的办法。其基本思想是移动所有被分配了的分区,使之成为一个连续区域,而留下一个较大的空白区,如图 4.9 所示。这好像在一个队列中有些人出列以后,指挥员命令队列向前(或向右)靠拢一样。这种过程我们称之为“靠拢”或“紧凑”。在一个队列中实现靠拢是简单的,然而各作业分区的移动却是复杂的。把一个作业移动位置后,通常无法保证程序在新位置上能够正确运行。这是因为一个程序总要涉及到基址寄存器、访问内存指令、访问参数表或数据结构的缘故。为此,应解决
22、程序的可再定位(浮动)问题。第4章存储管理图 4.9 可再定位式分区分配的靠拢过程第4章存储管理为解决程序浮动问题,使用模块装入程序,将程序的装配模块重新装入到指定位置,并从头开始启动执行。但这种办法有两个缺点,一是要花费较多的处理机时间,二是如果该程序已经执行了一段时间,则不能再从头开始,否则将引起混乱。较好的办法是采用动态再定位技术。本章第一节已经指出,当一个作业装入与其地址空间不一致的存储空间时,可在访问指令或数据时,通过再定位寄存器(或称浮动寄存器)来自动修改访问存储器的地址。因此,一个作业在主存中移动后,只需要改变再定位寄存器的内容即可。例如,将图 4.9(a)中的作业 4,从 35
23、2 KB开始的 24 KB内存区域移动到 320 KB开始的内存区域,其过程如图 4.10 所示。第4章存储管理图 4.10 利用浮动寄存器进行地址变换第4章存储管理由图 4.10 可以看出,在移动前,在 352 KB+50 处的指令“L1,352 KB+9800”被移动到 320 KB+50 处,数据 01557100 原在 352 KB+9800 处,现被移动到320 KB+9800 处了。为了使得程序能正确执行,这里设置了一个硬件寄存器,称为再定位寄存器或浮动寄存器,由它实现地址变换。当执行每条指令时,由处理机计算出有效地址。例如移动后处于320KB+50 处的指令“L1,352 KB+
24、9800”的有效地址为 352 KB+9800,为了能得到正确结果,操作系统应在浮动寄存器内置入一个常数-32 KB,即 320 KB-352 KB,在访问操作数之前,将浮动寄存器的内容与计算出的有效地址相加,得到实际的物理地址。第4章存储管理在这种情况下,指令L1,352 KB+9800 的执行,仍将位于 320KB+9800 处的数据 01557100 取至 1 号寄存器。应该指出,作业 4 的指令和数据在移到新的位置后都没有改变,每条指令在执行时是利用浮动寄存器自动完成地址变换的。这种浮动称为动态浮动。第4章存储管理可再定位分区分配算法和固定式(或可变式)分区分配算法基本相同。两者的差别
25、仅在于可再定位式分区分配需要将作业分区进行靠拢,以便减少碎片,使存储器的利用率提高。关于如何靠拢的问题已经给出了常用的方法,现在的问题是何时进行靠拢,也即是如何选择靠拢的时机问题。有两个时机可以选择,即:(1)当某个分区内的作业一完成,就立即靠拢。这样的靠拢操作是比较频繁的,由于实施程序的移动要花费较多的处理机时间,因此应尽可能减少靠拢操作的次数。第4章存储管理(2)在为某一作业请求一个分区时,当时内存没有足够大的空白区,但各空白区之和可以满足该作业存储要求,此时须进行靠拢操作。显然这样的靠拢比前述的靠拢次数要少得多,从而可以节省处理机时间。描述可再定位式分区分配算法的流程如图 4.11 所示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内