第四章存储管理

上传人:桔**** 文档编号:589202811 上传时间:2024-09-10 格式:PPT 页数:102 大小:1.83MB
返回 下载 相关 举报
第四章存储管理_第1页
第1页 / 共102页
第四章存储管理_第2页
第2页 / 共102页
第四章存储管理_第3页
第3页 / 共102页
第四章存储管理_第4页
第4页 / 共102页
第四章存储管理_第5页
第5页 / 共102页
点击查看更多>>
资源描述

《第四章存储管理》由会员分享,可在线阅读,更多相关《第四章存储管理(102页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章 存储管理存储管理4.1 存储器管理概述4.2 连续分配存储管理方式4.3 分页存储管理方式4.4 分段存储管理方式4.5 虚拟存储器的基本概念4.6 请求分页4.7 请求分段存储管理 存储器是计算机系统的重要资源之一。因为任何程序和数据以及各种控制用的数据结构都必须占用一定的存储空间,因此,存储管理直接影响系统性能。 存储器由内存(primary storage)和外存(secondary storage)组成。本章讨论的主要是内存管理问题,包括如下内容:n n 学习目标: 本章主要讲解了存储器管理的基本方式。通过对本章主要讲解了存储器管理的基本方式。通过对本章学习,同学应该达到

2、以下学习目标:本章学习,同学应该达到以下学习目标:n n重点掌握本章的基本概念,分页式存储管理技术和重点掌握本章的基本概念,分页式存储管理技术和分段式存储管理技术,分段式存储管理技术,虚拟存储器的概念虚拟存储器的概念。n n理解段页式存储管理技术,虚存中的理解段页式存储管理技术,虚存中的置换算法置换算法。n n 学习要点: 本章涉及到的概念和管理技术较多,通过比较,本章涉及到的概念和管理技术较多,通过比较,理解如下概念:理解如下概念:逻辑地址逻辑地址、物理地址物理地址、静态重定位静态重定位、动态重定位动态重定位、碎片碎片、虚拟存储器虚拟存储器;对于每一种存储管;对于每一种存储管理技术应理解它解

3、决什么问题,理技术应理解它解决什么问题,实现的思想实现的思想,以及它,以及它带来的好处和存在的问题。带来的好处和存在的问题。概概 述述返回n n内存储器(简称内存、主存、物理存储器)内存储器(简称内存、主存、物理存储器)n n处处理理机机能能直直接接访访问问的的存存储储器器。用用来来存存放放系系统统和和用用户户的的程序和数据,其特点是存取速度快,断电信息丢失。程序和数据,其特点是存取速度快,断电信息丢失。n n外存储器(简称外存、辅助存储器)外存储器(简称外存、辅助存储器)n n处处理理机机不不能能直直接接访访问问的的存存储储器器。用用来来存存放放用用户户的的各各种种信信息息,存存取取速速度度

4、相相对对内内存存而而言言要要慢慢得得多多,但但它它可可用来长期保存用户信息。在文件系统中介绍用来长期保存用户信息。在文件系统中介绍。存储器的层次存储器的层次n n快速缓存快速缓存n nData CacheData Cachen nTLB(Translation Lookaside BufferTLB(Translation Lookaside Buffer,变换变换索引索引缓缓冲区冲区 ) )n n内存:内存:DRAM, SDRAMDRAM, SDRAM等等n n外存:软盘、硬盘、光盘、磁带等外存:软盘、硬盘、光盘、磁带等存储层次结构存储层次结构存取速度成本增加容量减少 内存的物理组织内存的物

5、理组织n n物理地址:物理地址: 把把内内存存分分成成若若干干个个大大小小相相等等的的存存储储单单元元,每每个个单单元元给给一一个个编编号号,这这个个编编号号称称为为内内存存地地址址(物物理理地地址址、绝绝对对地地址址、实实地地址址),存存储储单单元元占占8 8位,称作字节(位,称作字节(bytebyte)。)。n n物理地址空间:物理地址空间: 物物理理地地址址的的集集合合称称为为物物理理地地址址空空间间(主主存存地地址址空空间间),它是一个一维的线性空间。,它是一个一维的线性空间。逻辑地址、物理地址和地址映射逻辑地址、物理地址和地址映射n n逻辑地址逻辑地址(相对地址,虚地址):用户的程序

6、经过(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相汇编或编译后形成目标代码,目标代码通常采用相对地址的形式。对地址的形式。n n其首地址为其首地址为0 0,其余指令中的地址都相对于首地址来编址。,其余指令中的地址都相对于首地址来编址。n n不能用逻辑地址在内存中读取信息。不能用逻辑地址在内存中读取信息。n n物理地址物理地址(绝对地址,实地址):内存中存储单元(绝对地址,实地址):内存中存储单元的地址。物理地址可直接寻址。的地址。物理地址可直接寻址。n n地址映射地址映射:将用户程序中的逻辑地址转换为运行时:将用户程序中的逻辑地址转换为运行时由机器直接寻址的物

7、理地址。由机器直接寻址的物理地址。n n当程序装入内存时当程序装入内存时, , 操作系统要为该程序分配一个合适的内操作系统要为该程序分配一个合适的内存空间,由于存空间,由于程序的逻辑地址与分配到内存物理地址不一程序的逻辑地址与分配到内存物理地址不一致致, , 而而CPUCPU执行指令时,是按物理地址进行的,所以要进行执行指令时,是按物理地址进行的,所以要进行地址转换。地址转换。用户程序的处理过程用户程序的处理过程用户程序处理分以下几个阶段:用户程序处理分以下几个阶段:用户程序处理分以下几个阶段:用户程序处理分以下几个阶段:(1 1)编译。由编译程序将用户源代码编译成若干个目标模)编译。由编译程

8、序将用户源代码编译成若干个目标模)编译。由编译程序将用户源代码编译成若干个目标模)编译。由编译程序将用户源代码编译成若干个目标模块。块。块。块。(2 2)链接。有链接程序将编译后形成的目标代码以及它)链接。有链接程序将编译后形成的目标代码以及它)链接。有链接程序将编译后形成的目标代码以及它)链接。有链接程序将编译后形成的目标代码以及它们所需的库函数,链接在一起,形成一个装入模块。们所需的库函数,链接在一起,形成一个装入模块。们所需的库函数,链接在一起,形成一个装入模块。们所需的库函数,链接在一起,形成一个装入模块。(3 3)装入。有装入程序将装入模块装入内存。)装入。有装入程序将装入模块装入内

9、存。)装入。有装入程序将装入模块装入内存。)装入。有装入程序将装入模块装入内存。处理过程示意图见处理过程示意图见处理过程示意图见处理过程示意图见4.24.27 7编编编编译译译译程程程程序序序序产产产产生生生生的的的的目目目目标标标标模块模块模块模块程序程序程序程序数据数据数据数据库函数库函数库函数库函数链接程序链接程序链接程序链接程序装入模块装入模块装入模块装入模块装入程序装入程序装入程序装入程序8 81 1目标程序装入内存的方式目标程序装入内存的方式目标程序装入内存的方式目标程序装入内存的方式 程序只有装入到内存后才能运行。装入方式分绝对装入程序只有装入到内存后才能运行。装入方式分绝对装入

10、方式、可重定位装入方式和动态运行时装入方式。方式、可重定位装入方式和动态运行时装入方式。(1 1)绝对装入方式)绝对装入方式 在编译时,如果知道程序将驻留在内存什么位置,那么在编译时,如果知道程序将驻留在内存什么位置,那么编译程序将产生绝对地址的目标代码。绝对装入程序按照装编译程序将产生绝对地址的目标代码。绝对装入程序按照装入模块中的地址,将程序和数据装入内存。装入模块被装入入模块中的地址,将程序和数据装入内存。装入模块被装入内存后,不须对程序和数据的地址进行修改,程序中所使用内存后,不须对程序和数据的地址进行修改,程序中所使用的绝对地址,即可以在编译或汇编中给出,也可以有程序员的绝对地址,即

11、可以在编译或汇编中给出,也可以有程序员直接给予。一般不让程序员给予地址,通常情况是在程序中直接给予。一般不让程序员给予地址,通常情况是在程序中采用符号地址,然后在编译或汇编时,将这些符号地址再转采用符号地址,然后在编译或汇编时,将这些符号地址再转化为绝对地址。化为绝对地址。9 9(2 2)可重定位装入方式)可重定位装入方式 又称又称静态重定位静态重定位。是在程序执行之前,有操作系统的重。是在程序执行之前,有操作系统的重定位装入程序完成。一般用于多道程序环境中,编译程序不定位装入程序完成。一般用于多道程序环境中,编译程序不能预知所编译的目标模块在内存什么地方。重定位程序根据能预知所编译的目标模块

12、在内存什么地方。重定位程序根据装入程序的内存起始地址,直接修改所涉及到的逻辑地址,装入程序的内存起始地址,直接修改所涉及到的逻辑地址,将内存的起始地址加上逻辑地址得到正确的内存地址。将内存的起始地址加上逻辑地址得到正确的内存地址。第第第第4 4章章章章 存储器管理存储器管理存储器管理存储器管理1010100001000012000120001350013500360360Load 1,3500Load 1,35001500015000内存空间内存空间内存空间内存空间0 02000200035003500360360Load 1,3500Load 1,350050005000作业地址空间作业地址

13、空间作业地址空间作业地址空间作业装入内存时的情况作业装入内存时的情况作业装入内存时的情况作业装入内存时的情况1111(3 3)动态运行时的装入方式)动态运行时的装入方式)动态运行时的装入方式)动态运行时的装入方式 又称又称动态重定位动态重定位。是在程序执行期间进行的。一般说来,。是在程序执行期间进行的。一般说来,这种转换有专门的硬件机构来完成,通常采用一个重定位寄这种转换有专门的硬件机构来完成,通常采用一个重定位寄存器存器 ,每次进行存储访问时,对取出的逻辑地址加上重定位,每次进行存储访问时,对取出的逻辑地址加上重定位寄存器的内容,形成正确的内存地址。如图寄存器的内容,形成正确的内存地址。如图

14、4.44.4所示所示. .1212100001000012000120001350013500360360Load 1,3500Load 1,35001500015000内存空间内存空间内存空间内存空间物理地址物理地址物理地址物理地址1000010000350035001350013500+ +采用动态重定位时内存空间及地址重定位示意图采用动态重定位时内存空间及地址重定位示意图采用动态重定位时内存空间及地址重定位示意图采用动态重定位时内存空间及地址重定位示意图1313连续分配存储管理方式连续分配存储管理方式 连续分配是指为一个用户程序分配一个连续的内存空间,连续分配是指为一个用户程序分配一个连

15、续的内存空间,连续分配有两种:单道程序的连续分配和多道程序的连续分连续分配有两种:单道程序的连续分配和多道程序的连续分配。多道程序的连续分配又称为分区分配方式,它包括固定配。多道程序的连续分配又称为分区分配方式,它包括固定分区、动态分区和动态重定位分区三种。下面就是对各种连分区、动态分区和动态重定位分区三种。下面就是对各种连续存储管理的研究。续存储管理的研究。第第第第4 4章章章章 存储器管理存储器管理存储器管理存储器管理1414单一连续分配单一连续分配n n内存分系统区和用户区,系统区供os使用n n在内存中仅驻留一道程序,整个用户区为一用户独占。n n这种分配方式仅能用于单用户、单任务os

16、中。n n如:MS-DOS CP/M固定分区分配固定分区分配n最简单的多道程序的存储管理方式。n将内存分为几个固定大小的区域,每个区域装入一道作业。划分分区的方法划分分区的方法n分区大小相等:缺乏灵活性。用于一台计算机控制多个相同对象。n分区大小不等:可根据程序大小为它分配适当分区。内存分配内存分配n n将分区按大小进行分配,建立分区使用表,表项包含分区的起始地址、大小、状态。动态分区分配动态分区分配动态分区分配需要解决的问题有三个:(1)分区分配中所用的数据结构。(2)分区的分配算法。(3)分区的分配与回收操作。分区分配中的数据结构分区分配中的数据结构n n要实现分区分配,系统必须配置相应的

17、数据结构,用来记录内存的使用情况。为分配提供依据。常用的数据结构有两种:n空闲分区表n空闲分区链(1 1)空闲分区)空闲分区表表每个分区占一个表目,包含分区序号、分区始址、每个分区占一个表目,包含分区序号、分区始址、分区大小。分区大小。序号分区大小(kb)分区始址(k)状态16444可用224132可用340210可用430270可用5第第4章章 存储器管理存储器管理23(2 2)空闲分区链)空闲分区链)空闲分区链)空闲分区链 为了实现对空闲分区的分配与链接,在每个分区的起始为了实现对空闲分区的分配与链接,在每个分区的起始部分,设置一些用于控制分区分配的信息,以及用于链接各部分,设置一些用于控

18、制分区分配的信息,以及用于链接各分区的前向指针:在分区尾部则设置一后向指针;然后形成分区的前向指针:在分区尾部则设置一后向指针;然后形成一个双向链一个双向链。24分区分配算法分区分配算法n n为把一个新作业装入内存,须按照一定的分配算法,从空闲区表或空闲分区链中,选一个分区分配给该作业,目前常用以下三种分配算法:n首次使用算法FFn循环首次适应算法n最佳适应算法首次适应算法首次适应算法FFn n空闲分区链以地址递增的次序链接。n n分配时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止;再按作业的大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲链中。若从链首

19、直至链尾都不能找到一个满足要求的分区,则失败返回。循环首次适应算法循环首次适应算法n n由首次适应算法演变而成,每一次从上次找到的下一个分区开始查找。直到找到一个能满足要求的分区。n n能使空闲分区变得均匀,但会缺乏大的空闲分区。最佳适应算法最佳适应算法n n将所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链,第一次找到的空闲区必然是最佳的。分区分配操作分区分配操作n在动态分区存储管理方式中,主要操作是分配和回收内存。n分配内存n回收内存分配内存分配内存n n首先,系统利用某种算法,从空闲区表中找到所需的分区。设请求的分区的大小为u.size,表中每个分区的大小可表为m.size。若m.

20、size-u.sizesize (size是事先规定的不再切割的剩余分区的大小),说明多余部分太小,可不再切割,将整个分区分给请求者;否则,从该分区中划分出与请求的大小相等的内存空间分配出去,余下的部分仍留在空闲分区链或空闲分区表中。最后,将分配的首地址返回给调用者。回收内存回收内存n n回收分区的主要工作是:首先检查是否有临接的回收分区的主要工作是:首先检查是否有临接的空闲区,如有则合并,使之成为一个连续的空闲空闲区,如有则合并,使之成为一个连续的空闲区,而不是许多零散的小的部分;之后,修改有区,而不是许多零散的小的部分;之后,修改有关的分区描述信息。一个回收分区邻接空闲区的关的分区描述信息

21、。一个回收分区邻接空闲区的情况有四种:第一种情况是回收分区情况有四种:第一种情况是回收分区r r上邻的一个上邻的一个空闲区,此时应合并成为一个连续的空闲区,其空闲区,此时应合并成为一个连续的空闲区,其始址为始址为r r上邻的空闲区始址,而大小为二者之和。上邻的空闲区始址,而大小为二者之和。第二种情况与第二种情况与r r下面的空闲区相邻。直接合并。第下面的空闲区相邻。直接合并。第三种情况是与上下空闲区相邻。将三个区域合并三种情况是与上下空闲区相邻。将三个区域合并成一个连续的空闲区。第四种情况不和任何空闲成一个连续的空闲区。第四种情况不和任何空闲区相邻,应建立一个新的空闲区,并加到自由主区相邻,应

22、建立一个新的空闲区,并加到自由主存队列中。存队列中。fr作作业业1作作业业2rf2f1rf2作作业业1r作作业业2回收分区回收分区r上上邻邻的空的空闲闲区区回收分区回收分区r下下邻邻的空的空闲闲区区回收分区回收分区r上、上、下下邻邻的空的空闲闲区区回收分区回收分区r单单独独为为空空闲闲区区图图4.13 内存回收内存回收时时的情况的情况33动态重定位的引入动态重定位的引入n n在连续分配方式中,必须把一个系统程序或用户程序,装在连续分配方式中,必须把一个系统程序或用户程序,装入到连续的内存空间中,如果在系统中若干个小的分区,入到连续的内存空间中,如果在系统中若干个小的分区,其总容量大于要装入的程

23、序,但由于它们不相连接,使该其总容量大于要装入的程序,但由于它们不相连接,使该程序不能装入内存。例如图程序不能装入内存。例如图 (a) (a)所示所示. .,紧凑后如图,紧凑后如图 (b) (b)所示。所示。动态重定位的实现动态重定位的实现动态重定位的实现动态重定位的实现 在该方式中,将程序中的相对地址转换为物理地址的工在该方式中,将程序中的相对地址转换为物理地址的工作被推迟到程序指令真正要执行时进行。因此,允许作业在作被推迟到程序指令真正要执行时进行。因此,允许作业在运行过程中移动的技术,必须获得硬件地址变换机构的支持。运行过程中移动的技术,必须获得硬件地址变换机构的支持。即在系统增加一个重

24、定位寄存器,用它来装入程序在内存中即在系统增加一个重定位寄存器,用它来装入程序在内存中的起始地址。程序在执行时,真正访问的内存地址是相对地的起始地址。程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中地址相加而形成的。址与重定位寄存器中地址相加而形成的。第第4章章 存储器管理存储器管理35动态重定位分区动态重定位分区分配算法分配算法n n动态重定位分区分配算法,与动态分区分配算法基本相同;差别仅在于:在这种分配算法中,增加了“紧凑”功能,通常是找不到足够大的空闲区来满足用户的需要,进行“紧凑”。然后寻找合适的内存空间。离散分配方式离散分配方式n n基本思想:将一个进程分散的装入不相邻的

25、分区中。n n离散分配的基本单位是页,则称为分页存储管理方式;如果离散分配的基本单位是段,则称为分段存储管理方式。页式页式系统应解决的问题系统应解决的问题 采用采用“ “紧凑紧凑” ”技术解决按区分配中存在的碎片问题,是技术解决按区分配中存在的碎片问题,是以花费以花费CPUCPU时间为代价换来的。为了寻找解决碎片问题的新时间为代价换来的。为了寻找解决碎片问题的新途径,人们很容易想到让程序不连续存放,例如,有一个作途径,人们很容易想到让程序不连续存放,例如,有一个作业要求投入运行,其程序的地址空间是业要求投入运行,其程序的地址空间是3KB,3KB,而主存当前只有而主存当前只有两个各为两个各为1K

26、B1KB和和2KB2KB的空闲区。显然各空闲区的大小比该程的空闲区。显然各空闲区的大小比该程序的地址空间小,而总和却相同。这样就考虑将程序分开存序的地址空间小,而总和却相同。这样就考虑将程序分开存放。放在不相邻的两个区域中。这正是分页的思想。在分页放。放在不相邻的两个区域中。这正是分页的思想。在分页存储管理中,主存被分成一系列的块,程序的地址空间被分存储管理中,主存被分成一系列的块,程序的地址空间被分成一系列的页面。然后将页面存放在主存块中。为了便于实成一系列的页面。然后将页面存放在主存块中。为了便于实现动态地址变,一般主存的块和页面大小相等并为现动态地址变,一般主存的块和页面大小相等并为2

27、2的幂次。的幂次。第第4章章 存储器管理存储器管理39分分页存储管理的基本方法页存储管理的基本方法一、页面和物理块一、页面和物理块 在分页存储管理中,将一个进程的逻辑地址空间分成若干个在分页存储管理中,将一个进程的逻辑地址空间分成若干个相等相等的片。的片。称为称为页面或页页面或页。相应的,内存空间也分成与页相同的大小的若干个存储。相应的,内存空间也分成与页相同的大小的若干个存储块,或称为块,或称为物理块或页框物理块或页框。为它们从。为它们从0 0开始依次编号。如图开始依次编号。如图4.164.16所示。为所示。为进程分配内存时,以进程分配内存时,以块块为单位将进程中若干页分别装入不相接的块中。

28、为单位将进程中若干页分别装入不相接的块中。由于进程的最后一页经常装不满一块,而形成不可利用的碎片称为由于进程的最后一页经常装不满一块,而形成不可利用的碎片称为“ “页页内碎片内碎片” ”。二、页表二、页表 在分页系统中,允许进程的每一页离散地存储在内存的任一物理块中,在分页系统中,允许进程的每一页离散地存储在内存的任一物理块中,但系统应能保证进程的正确运行。即能在内存中找到每个页面所对应的但系统应能保证进程的正确运行。即能在内存中找到每个页面所对应的物理块。为此系统又为每个进程建立一张页面映象表,简称物理块。为此系统又为每个进程建立一张页面映象表,简称页表页表。在进。在进程地址空间的所有页内(

29、程地址空间的所有页内(0n0n),依次在页表中有一页表项,其中记录了),依次在页表中有一页表项,其中记录了相应页在内存中对应的物理块。见图的中间部分。可见相应页在内存中对应的物理块。见图的中间部分。可见页表的作用实现页表的作用实现了从页号到物理块号的地址映象了从页号到物理块号的地址映象。即使在简单的分页系统中,也常在页。即使在简单的分页系统中,也常在页表的表项中设置一存取控制字。用于对存储块中内容进行保护。表的表项中设置一存取控制字。用于对存储块中内容进行保护。40用户程序用户程序0页页1页页2页页3页页4页页5页页n页页页号页号0页页1页页2页页3页页4页页5页页n页页2页页3页页6页页8页

30、页9页页页号页号块号块号内存内存图图4-16 页表页表第第4章章 存储器管理存储器管理41三、虚地址结构三、虚地址结构三、虚地址结构三、虚地址结构 如何利用页表进行地址变换,这和计算机所采用的地址如何利用页表进行地址变换,这和计算机所采用的地址结构有关。而地址结构又与所选择的页面尺寸有关。比如,结构有关。而地址结构又与所选择的页面尺寸有关。比如,当当CPUCPU给出的虚地址长度为给出的虚地址长度为3232位,页面的大小为位,页面的大小为4kb4kb时,在分时,在分区系统中的地址格式如图区系统中的地址格式如图4.174.17所示。页号页内偏移量所示。页号页内偏移量如图如图4-17 4-17 虚地

31、址结构虚地址结构页号页号页内偏移量页内偏移量第第4章章 存储器管理存储器管理42快表引入的原因快表引入的原因n nCPU存取一个数据时要两次访问内存n n第一次访问页表n n找到指定页的物理块号,再将块号与页内偏移量W拼接形成物理地址n n第二次访问内存是从所得地址中获得所需数据(或向此地址中写入数据)为提高地址变换速度:为提高地址变换速度:n增设一个具有并行查询能力的高速缓冲寄存器,称为“联想寄存器”或“快表”,用于存放当前访问的页表项。地址变换过程地址变换过程n nCPU给出有效地址,由地址变换机构自动地将页号p送入高速缓冲存储器,并将此页号与高速缓存中的所有页号进行比较,若有与此相匹配的

32、页号,则表示所要访问的页表项在快表中。于是,可直接读出该页所对应的物理块号,并送物理地址寄存器中。n n如在快表中没找到对应的页表项,还须再访问内存中的页表,找到后,把从页表项中读出物理块号送地址寄存器;同时,还将此页表项存入快表中的一个寄存器单元中,即置新修改快表,但如果联想寄存器已满,则os必须找到一个老的且已被认为不再需要的页表项将它换出。段段式存储管理式存储管理n n 问题的提出:问题的提出:前面介绍的几种存储管理技术中,提供给用前面介绍的几种存储管理技术中,提供给用户的逻辑地址空间是一维线形的,与内存的物理组织基本相同,户的逻辑地址空间是一维线形的,与内存的物理组织基本相同,但用户编

33、写的程序逻辑结构却不是这样。但用户编写的程序逻辑结构却不是这样。 通常,编写的程序由若干程序模块和数据模块组成。通常,编写的程序由若干程序模块和数据模块组成。n n 为了满足用户(程序员)在编程和使用等方面的需求,引入为了满足用户(程序员)在编程和使用等方面的需求,引入了分段存储管理技术了分段存储管理技术1. 基本概念 2. 分段存储管理的基本原理3. 段的共享和保护4. 段式存储管理的优缺点基本概念基本概念 段式管理的基本思想段式管理的基本思想n n段式管理是基于分区式管理和页式管理的缺陷和不足而提出的一种更复杂的内存管理方式:l l分区式和页式管理时的进程地址空间结构是线性分区式和页式管理

34、时的进程地址空间结构是线性的。的。l l不同作业或进程之间共享公用子程序和数据变得不同作业或进程之间共享公用子程序和数据变得非常困难:非常困难:n n不能按名共享程序和数据;不能按名共享程序和数据;n n一个页内不能保证是逻辑上完整的子程序或数据块一个页内不能保证是逻辑上完整的子程序或数据块l l只能采用静态链接。只能采用静态链接。 分段分段 一个用户程序往往由几个程序段(主程序、子程序和函数)一个用户程序往往由几个程序段(主程序、子程序和函数)所组成,把程序按内容或过程(函数)关系分段,每段有自己所组成,把程序按内容或过程(函数)关系分段,每段有自己的名字的名字(段号)(段号)(段号)(段号

35、)。每个段都从。每个段都从0 0开始编址,采用一段连续的地址开始编址,采用一段连续的地址空间。各段的长度可以不等,由相应的逻辑信息组的长度决定。空间。各段的长度可以不等,由相应的逻辑信息组的长度决定。每个段都定义一组逻辑信息。整个作业的地址空间分成多个段,每个段都定义一组逻辑信息。整个作业的地址空间分成多个段,是二维的。是二维的。 CALL X | LOAD 1, A | STORE 1, B | 01K Y: 0500分段分段X(子程序)(子程序) D: 0300分段分段A(数组)(数组) C: 0200分段分段B(工作区)(工作区)段式管理的程序地址结构段式管理的程序地址结构n n段式管理

36、把二维虚拟地址空间设计成段号S与段内偏移量W。n n段式虚拟地址空间包括:段名 :段内偏移量n n段号之间无顺序关系,段长也不固定,每个段定义一组逻辑上完整的程序或数据。n n根据需要,段长可动态增长。段表和段表寄存器段表和段表寄存器n n段式管理程序在进行初始内存分配之前,根据用户段式管理程序在进行初始内存分配之前,根据用户要求的内存大小为一个作业或进程建立一个段表,要求的内存大小为一个作业或进程建立一个段表,以实现动态地址变换和缺段中断处理及存储保护等。以实现动态地址变换和缺段中断处理及存储保护等。n n段表为段表为每个逻辑段找出所对应的物理内存中块的位每个逻辑段找出所对应的物理内存中块的

37、位每个逻辑段找出所对应的物理内存中块的位每个逻辑段找出所对应的物理内存中块的位置置置置n n段表通常放在内存,为了方便找到运行进程的段表,段表通常放在内存,为了方便找到运行进程的段表,系统还要建立一个系统还要建立一个段表地址寄存器:段表地址寄存器:段表地址寄存器:段表地址寄存器:段表在内存的段表在内存的起始地址起始地址起始地址起始地址和段表的和段表的长度长度长度长度三、基本原理三、基本原理三、基本原理三、基本原理 所谓分段管理,就是管理由若干段组成的作业,并且按分所谓分段管理,就是管理由若干段组成的作业,并且按分段来进行存储分配,由于分段的作业地址空间是二维的,所以段来进行存储分配,由于分段的

38、作业地址空间是二维的,所以分段的关键在于如何把分段的地址空间变成一维的地址空间。分段的关键在于如何把分段的地址空间变成一维的地址空间。和分业管理一样,可以采用动态重定位技术进行地址转换。起和分业管理一样,可以采用动态重定位技术进行地址转换。起初系统作业建立一张段表,每个表目至少有初系统作业建立一张段表,每个表目至少有4 4个数据:段号,个数据:段号,段长,内存始址和存取控制。其中,段长指明段的大小,内存段长,内存始址和存取控制。其中,段长指明段的大小,内存始址指明该段在内存中的位置,存取控制说明对该段访问的限始址指明该段在内存中的位置,存取控制说明对该段访问的限制(制(RWXRWX)。)。 段

39、地址转换和分页地址转换得过程基本相同,其大致过程段地址转换和分页地址转换得过程基本相同,其大致过程如如图下图所图下图所示:示:第第4章章 存储器管理存储器管理54分页和分段的异同之处分页和分段的异同之处分页式分段式()地址空间()地址空间()是信息的物理单位()是信息的逻辑单位页的大小固定,由系统划分,对用户透明()()以段位单位分配主存空间,容易产生碎片便于动态连接、动态增长、存储保护和共享。信息信息共享共享 段是按逻辑意义来划分的,可以按名存取,所以,段式存段是按逻辑意义来划分的,可以按名存取,所以,段式存储管理可以方便的实现内存的信息共享,并进行有效的内存保储管理可以方便的实现内存的信息

40、共享,并进行有效的内存保护。护。1 1段的共享段的共享 段的共享是指量各以上的作业,使用同一个子程序,在内段的共享是指量各以上的作业,使用同一个子程序,在内存中只包含一个副本。具体的操作是在每个进程的段表中,用存中只包含一个副本。具体的操作是在每个进程的段表中,用相应的表项指向共享段在内存中的起始地址即可。如图相应的表项指向共享段在内存中的起始地址即可。如图4.244.24所所示。示。 当用户进程或作业需要共享内存中某段的程序或数据时,当用户进程或作业需要共享内存中某段的程序或数据时,则只要用户使用相同的名字,就可以在新的段表中填入已存在则只要用户使用相同的名字,就可以在新的段表中填入已存在段

41、的内存起始地址,并设置一定的访问权限,从而实现段的共段的内存起始地址,并设置一定的访问权限,从而实现段的共享。享。 当共享此段的某进程不再需要它时,应将该段释放,取消当共享此段的某进程不再需要它时,应将该段释放,取消在该进程中共享段所对应的表项。在该进程中共享段所对应的表项。第第4章章 存储器管理存储器管理58段段段段的保护的保护的保护的保护 在分段系统中,由于每个分段在逻辑上是独立的,因而在分段系统中,由于每个分段在逻辑上是独立的,因而比较容易实现信息保护。段的保护是为了实现段的共享和保比较容易实现信息保护。段的保护是为了实现段的共享和保证作业正常运行的一种措施。分段存储管理中的保护主要有证

42、作业正常运行的一种措施。分段存储管理中的保护主要有地址越界保护和存取方式控制保护。地址越界保护是利用段地址越界保护和存取方式控制保护。地址越界保护是利用段表中的段长和逻辑地址中的段内相对地址相比较,如段内地表中的段长和逻辑地址中的段内相对地址相比较,如段内地址大于段长,则发出地址越界中断,系统会对段进行保护。址大于段长,则发出地址越界中断,系统会对段进行保护。第第4章章 存储器管理存储器管理59段页式存储管理段页式存储管理n n 问题的提出:问题的提出:为了获取分段在逻辑上的优点和分为了获取分段在逻辑上的优点和分页在管理存储空间方面的优点,兼用分段和分页两页在管理存储空间方面的优点,兼用分段和

43、分页两种方法,即段页式存储管理种方法,即段页式存储管理。n既具有分段系统的便于实现、 分段可共享、易于保护、可动态链接等优点 n又能像分页系统那样解决内存的外部碎片问题,以及可为各个分段离散地分配内存等问题段页式存储管理基本原理段页式存储管理基本原理n n分段和分页原理结合n n先将用户程序分成若干个段n n再把每个段分成若干个页,并为每一个段赋予一个段名。逻辑地址的构成逻辑地址的构成n n逻辑地址由三分部构成:V=(S,P,d)段号段号S S段内页号段内页号P P页内位移页内位移d d段表、页表和段表寄存器 为了实现从逻辑地址到物理地址的转换:n n 为每个作业或进程建立一张段表段表 段表中

44、的段长页表长度页表长度 段表中的段内存始址页表地址页表地址n n 每个段拥有一张页表页表:段内的页号映射为内存中的物理块号。 。n n 段表寄存器:作业段的长度段表寄存器:作业段的长度和段表起始地址。段表起始地址。段页式管理中段表、页表与内存的关系段页式管理中段表、页表与内存的关系段表长度段表长度段表始址段表始址段表地址寄存器段表地址寄存器段表段表第第0段页表段页表第第2段页表段页表内存内存段页式存储管理的地址转换段页式存储管理的地址转换 段表控制寄存器段表控制寄存器段表始址段表始址 段表长度段表长度段号段号s s 页号页号p p 页内地址页内地址越界中断越界中断块号块号 块内地址块内地址段表

45、段表页表页表 段号段号段号段号 页表长度页表长度页表长度页表长度 页表始址页表始址页表始址页表始址 页号页号页号页号 块号块号块号块号地址变换过程地址变换过程n n在段页式管理系统系统中,要对内存中指令或数在段页式管理系统系统中,要对内存中指令或数据进行据进行1 1次访问的话,次访问的话,需要访问需要访问3 3次的内存次的内存:n n第第1次次,由段表地址寄存器得段表始址后访问段表;n n第第2次次,访问页表得到所要访问的物理地址;n n第第3次次,访问段表和页表之后,本次访问真正需要访问的物理单元。虚拟存储器虚拟存储器的基本概念的基本概念 虚拟存储器虚拟存储器的引入的引入一、局部性原理一、局

46、部性原理 早在早在19681968年年P.DenningP.Denning就指出过,程序在执行时,将呈现就指出过,程序在执行时,将呈现出局部性规律,即在很短的时间内,程序的执行仅限于某个出局部性规律,即在很短的时间内,程序的执行仅限于某个部分,相应的,它所访问的存储空间仅限于某个区域。他提部分,相应的,它所访问的存储空间仅限于某个区域。他提出以下几个论点:出以下几个论点:(1 1)程序在执行时,除少部分的转移和过程调用外。大多)程序在执行时,除少部分的转移和过程调用外。大多数顺序执行。数顺序执行。(2 2)过程调用将会使程序的执行轨迹从一部分区域转到另)过程调用将会使程序的执行轨迹从一部分区域

47、转到另一部分区域。程序将在一段时间内在这些过程内运行。一部分区域。程序将在一段时间内在这些过程内运行。第第4章章 存储器管理存储器管理67(3 3)程序中存在许多循环结构,它们有少数指令组成,但)程序中存在许多循环结构,它们有少数指令组成,但多次执行。多次执行。(4 4)还)还包括许多对对数据结构的处理。但对数组进行操作,包括许多对对数据结构的处理。但对数组进行操作,往往局限于很小的范围。往往局限于很小的范围。局限性又表现在:局限性又表现在:(1 1)时间的局限性。即程序中某条指令一旦执行,不久又)时间的局限性。即程序中某条指令一旦执行,不久又可能执行。某个数据结构被访问不久又可能被访问。可能

48、执行。某个数据结构被访问不久又可能被访问。(2 2)空间的局限性。一旦某个存储单元被访问,在不久后)空间的局限性。一旦某个存储单元被访问,在不久后很快又会被访问。很快又会被访问。虚拟存储器概念虚拟存储器概念n n 出出发发点点:程程序序中中往往往往含含有有不不常常被被执执行行的的代代码码,或或者者定定义义的的数数据结构大于实际需要。据结构大于实际需要。n n虚虚拟拟存存储储器器:是是是是指指指指具具具具有有有有请请请请求求求求调调调调入入入入功功功功能能能能和和和和置置置置换换换换功功功功能能能能,能能能能从从从从逻逻逻逻辑辑辑辑上上上上对对对对内内内内存存存存容容容容量量量量加加加加以以以以

49、扩扩扩扩充充充充的的的的一一一一种种种种存存存存储储储储器器器器系系系系统统统统。其其其其逻逻逻逻辑辑辑辑容容容容量量量量由由由由内内内内存存存存和和和和外外外外存存存存之之之之和和和和所所所所决决决决定定定定,其其其其运运运运行行行行速速速速度度度度接接接接近近近近于于于于内内内内存存存存速速速速度度度度,而而而而每每每每位位位位的成本却又接近于的成本却又接近于的成本却又接近于的成本却又接近于外存外存外存外存。 它它是是用用户户编编程程时时所所使使用用的的一一种种用用户户思思维维中中的的存存储储器器,它它可可以以是是任任何何结结构构(一一维维线线性性空空间间、二二维维空空间间、乃乃至至n n

50、维维空空间间),不受物理内存容量的限制。不受物理内存容量的限制。n n 现现代代计计算算机机操操作作系系统统都都采采用用了了这这种种技技术术,使使得得用用户户编编程程序序时不需要考虑物理内存的结构和容量,极大地方便了用户。时不需要考虑物理内存的结构和容量,极大地方便了用户。虚拟存储器的原理虚拟存储器的原理n n在程序装入时,不必将其全部读入到内存,而在程序装入时,不必将其全部读入到内存,而只需只需将当前需要执行的部分页或段读入到内存将当前需要执行的部分页或段读入到内存,就可让,就可让程序开始执行。程序开始执行。n n在程序执行过程中,如果需执行的指令或访问的数在程序执行过程中,如果需执行的指令

51、或访问的数据尚未在内存,则由处理器通知操作系统将相应的据尚未在内存,则由处理器通知操作系统将相应的数据数据调入调入到内存,然后继续执行程序。到内存,然后继续执行程序。n n另一方面,操作系统将内存中另一方面,操作系统将内存中暂时不使用的数据调暂时不使用的数据调出保存在外存出保存在外存上,从而腾出空间存放将要装入的程上,从而腾出空间存放将要装入的程序以及将要调入的数据。只需程序的一部分在内存序以及将要调入的数据。只需程序的一部分在内存就可执行。就可执行。虚拟存储器虚拟存储器的实现方法及其特征的实现方法及其特征 虚拟存储器的实现方法有两种,请求分页系统和请求分虚拟存储器的实现方法有两种,请求分页系

52、统和请求分段系统两大类。段系统两大类。一、请求分页系统一、请求分页系统 它是在分页系统的基础上,增加了请求调页的功能、页它是在分页系统的基础上,增加了请求调页的功能、页面置换功能所形成的页式虚拟存储系统。开始只是装入若干面置换功能所形成的页式虚拟存储系统。开始只是装入若干页的用户程序和数据,便可以启动运行,以后的运行中需要页的用户程序和数据,便可以启动运行,以后的运行中需要页时,再陆续将所需要的页调入。在请求调页和置换时,需页时,再陆续将所需要的页调入。在请求调页和置换时,需要硬件的支持。要硬件的支持。1 1请求分页的页表支持。请求分页的页表支持。2 2缺页中断机构。缺页中断机构。3 3地址变

53、换机构。地址变换机构。第第4章章 存储器管理存储器管理71请求请求请求请求分段系统分段系统分段系统分段系统 这是分段系统的基础。增加了请求调段及分段置换功能。这是分段系统的基础。增加了请求调段及分段置换功能。形成段式虚拟存储系统。它允许只装入部分程序和数据。然形成段式虚拟存储系统。它允许只装入部分程序和数据。然后开始启动。实现请求分段,同样需要硬件的支持。后开始启动。实现请求分段,同样需要硬件的支持。1 1请求分段的段表机制。请求分段的段表机制。2 2缺段中断机构。缺段中断机构。3 3地址变换机构。地址变换机构。第第4章章 存储器管理存储器管理72虚拟存储器虚拟存储器虚拟存储器虚拟存储器的特征

54、的特征的特征的特征 虚拟存储器的特征是离散性、多次性及对换性的特征。虚拟存储器的特征是离散性、多次性及对换性的特征。其所表现出来的最重要的特征是虚拟性。其所表现出来的最重要的特征是虚拟性。1 1离散性离散性离散性离散性 离散性是指内存分配时采用离散分配的形式。没有离散离散性是指内存分配时采用离散分配的形式。没有离散性也就不可能实现虚拟存储器。因为如果采用连续分配的方性也就不可能实现虚拟存储器。因为如果采用连续分配的方式,需将作业装入到连续的内存区域,这样需要连续的一次式,需将作业装入到连续的内存区域,这样需要连续的一次性的申请一部分内存空间,以便将整个作业先后多次装入内性的申请一部分内存空间,

55、以便将整个作业先后多次装入内存,一方面使一部分内存空间闲置,另一部分,也不可能使存,一方面使一部分内存空间闲置,另一部分,也不可能使大作业运行在一个小的内存空间中。换言之,无法实现虚拟大作业运行在一个小的内存空间中。换言之,无法实现虚拟存储功能。只有采用离散分配方式,才能为它申请内存空间,存储功能。只有采用离散分配方式,才能为它申请内存空间,以避免浪费内存空间。以避免浪费内存空间。第第4章章 存储器管理存储器管理732 2多次性多次性多次性多次性 多次性是指一个作业被分成多次调入内存运行。作业在多次性是指一个作业被分成多次调入内存运行。作业在运行时没有必要一次装入。只须将当前运行的那部分程序和

56、运行时没有必要一次装入。只须将当前运行的那部分程序和数据装入内存既可。以后需要哪部分调入即可。多次性是虚数据装入内存既可。以后需要哪部分调入即可。多次性是虚拟存储器最重要的特征。任何其它管理方式都不属于这一特拟存储器最重要的特征。任何其它管理方式都不属于这一特征。征。3 3对换性对换性对换性对换性 对换性是指允许在作业运行过程中换进换出。允许将暂对换性是指允许在作业运行过程中换进换出。允许将暂时不用的程序和数据,从内存调至外存的对换区。以后需要时不用的程序和数据,从内存调至外存的对换区。以后需要时再从外存调到内存。时再从外存调到内存。4 4虚拟性虚拟性虚拟性虚拟性 虚拟性是指能够从逻辑上扩充内

57、存容量,使用户所看到虚拟性是指能够从逻辑上扩充内存容量,使用户所看到的内存容量远大于实际的内存容量,这是虚拟存储器所表现的内存容量远大于实际的内存容量,这是虚拟存储器所表现出的最重要的特征,也是虚拟存储器最重要目标出的最重要的特征,也是虚拟存储器最重要目标 第第4章章 存储器管理存储器管理74请求页式存储管理请求页式存储管理n 问题的提出 在纯页式存储管理提高了内存的利用效率,但并不为用户提供虚存,换句话说,当一个用户程序的页数大于当前总空闲内存块数时,系统就不能将该程序装入运行。即用户程序将受到物理内存大小的限制。为了解决这个问题,人们提出请求分页存储管理技术。请求分页概念请求分页概念n n

58、 请求分页的实现思想请求分页的实现思想n n和纯分页的和纯分页的和纯分页的和纯分页的相同点相同点相同点相同点:逻辑空间分页,内存空间分块。逻辑空间分页,内存空间分块。n n和纯分页的和纯分页的和纯分页的和纯分页的不同点不同点不同点不同点:请求分页技术当一个用户程序要调请求分页技术当一个用户程序要调入内存时,入内存时,不是将该程序全部装入内存不是将该程序全部装入内存,而是,而是只装入部分页只装入部分页到内存,就可启动程序运行,在运行的过程中,如果发现要到内存,就可启动程序运行,在运行的过程中,如果发现要运行的程序或要访问数据运行的程序或要访问数据不在内存不在内存,则向系统发出缺页中断,则向系统发

59、出缺页中断请求,系统在处理这个中断时,请求,系统在处理这个中断时,将在外存相应的页调入内存将在外存相应的页调入内存,该程序继续运行。该程序继续运行。n n某虚拟存取器的用户编程空间共32个页面,每页1KB,内存16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:n n 页号 物理块号 0 3 1 7 2 11 3 8 则逻辑地址0A5C(H)所对应的物理地址是什么?0A5C(H): 0000 1010 0101 1100 2查表得 11 0010 11拼接得: 0010 1110 0101 1100请求分页存储管理方式请求分页存储管理方式n n请求分页中的硬件支持n

60、n内存分配策略和分配算法n n调页策略页表机制页表机制n基本作用是将逻辑地址变换为物理地址,在页表中再增加若干项,供换进换出时参考。nP123 页表项包括的信息缺页中断机构缺页中断机构n n请求分页系统中每当所要访问的页面不在内存时,便要产生缺页中断,请求将所缺之页调入内存。n n与一般中断的区别 1.在指令执行期间产生和处理中断信号。 2.一条指令在执行期间,可能产生多次缺页中断。请求页式管理中的置换算法请求页式管理中的置换算法n进程访问的页面不在内存而内存已无空闲空进程访问的页面不在内存而内存已无空闲空间时,系统必须从内存中调出一页送磁盘的间时,系统必须从内存中调出一页送磁盘的对换区中。对

61、换区中。n把选择换出页面的算法称为页面置换算法把选择换出页面的算法称为页面置换算法n应将那些以后不再会访问的页面或在较长时应将那些以后不再会访问的页面或在较长时间内不会再访问的页面调出。间内不会再访问的页面调出。n n 抖动(颠簸) 刚被换出的页很快又被访问,需重新调入,又需再选一页调出,页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃,这种现象称为颠簸或抖动。n n 抖动的原因:n n 页面淘汰算法不合理页面淘汰算法不合理n n 分配给进程的物理页面数太少分配给进程的物理页面数太少n n常见的置换算法有常见的置换算法有3种:

62、种:先进先出页面置换算法先进先出页面置换算法(FIFO(FIFO) )最近最久未使用页面置换算法最近最久未使用页面置换算法(Least recent Least recent UsedUsed)最佳置换最佳置换算法算法OPTOPT(Optimal Replacement Optimal Replacement AlgorithmAlgorithm)OPT,最佳置换算法,最佳置换算法n n基本思想基本思想:当要调入一新页而必须淘汰一旧页时,所淘汰的页是以后不再使用的,或者是以后相当长的时间内不会使用的。n n采用这种算法可保证获得最低的缺页率。但由于无法预知哪一个页面是未来最长时间内不再被访问的

63、,因而该算法是无法实现的。n n可利用该算法去评价其它算法。先进先出先进先出页面置换算法页面置换算法n nFIFO法:淘汰最先进入内存的页面,即总是选择在内存驻留时间最长的一页将其淘汰。n n思想:先进入内存的页,先退出内存。思想:先进入内存的页,先退出内存。n n实质:淘汰在内存驻留时间最长的页。实质:淘汰在内存驻留时间最长的页。n n理理由由:最最早早调调入入内内存存的的页页,不不再再被被使使用用的的可可能能性性比比近近期期调入内存的大。调入内存的大。n nFIFOFIFO算法简单,实现容易。算法简单,实现容易。n n由实验和测试发现由实验和测试发现FIFOFIFO算法的内存利用率不高。算

64、法的内存利用率不高。最近最久未使用页面最近最久未使用页面(LRU)置换算法置换算法n n基本思想基本思想基本思想基本思想:n n当需要淘汰某一页时,选择离当前时间最近的当需要淘汰某一页时,选择离当前时间最近的一段时间内最久没有使用过的页先淘汰。即当一段时间内最久没有使用过的页先淘汰。即当需要淘汰一页时,选择需要淘汰一页时,选择最长时间未使用最长时间未使用最长时间未使用最长时间未使用的页。的页。n n基于假设:基于假设:基于假设:基于假设:n n如果如果某页被访问某页被访问某页被访问某页被访问,它可能马上,它可能马上还要被访问还要被访问还要被访问还要被访问;相;相反,如果某页反,如果某页长时间未

65、被访问长时间未被访问长时间未被访问长时间未被访问,它可能,它可能最近也最近也最近也最近也不可能被访问不可能被访问不可能被访问不可能被访问。n n算法的实现(软件):算法的实现(软件):算法的实现(软件):算法的实现(软件):n n为每页设置一个特定的单元,用于记录自上次为每页设置一个特定的单元,用于记录自上次访问以来所经历的时间访问以来所经历的时间t t,当需要置换一页时,当需要置换一页时,选择选择t t最大的淘汰。最大的淘汰。举例思考题思考题n n某采用页式存储管理的系统,接收了一个作业,作业执行时一次访问的页为:1,2,3,4,2,1,5,6,2,1,2,3,7.若开始四页先装入主存。试计

66、算分别采用先进先出调度算法(FIFO),最近最少用调度算法(LRU)和OPT算法时,作业执行过程中会产生多少次缺页中断,计算缺页率并写出依次产生缺页中断后应淘汰的页。(要求写出详细计算过程)请求分段存储管理请求分段存储管理n n请求分段中的硬件支持n n分段的共享与保护请求分段中的硬件支持请求分段中的硬件支持n n请求分段的段表机制n n缺段中断机制n n地址变换机制在段表项中,除了段名,段长,段在内存的起始地在段表项中,除了段名,段长,段在内存的起始地址外,还增加了以下几项:址外,还增加了以下几项:(1 1)存取方式。用于标识本分段的存取属性是执行、)存取方式。用于标识本分段的存取属性是执行

67、、只读还是可读可写。只读还是可读可写。(2 2)访问字段)访问字段A A。其含义与请求分段的相应字段相。其含义与请求分段的相应字段相同。用于记录被访问段的频率。同。用于记录被访问段的频率。(3 3)修改位)修改位MM。表示该页进入内存后是否被修改过。表示该页进入内存后是否被修改过。(4 4)存在位)存在位P P。指示本段是否已调入内存。指示本段是否已调入内存。(5 5)增补位。表示该段在运行过程中是否动态增长。)增补位。表示该段在运行过程中是否动态增长。(6 6)外存始址。指示本段在外存中的起始地址,即)外存始址。指示本段在外存中的起始地址,即起始盘块号。起始盘块号。形成合适的空区虚段s不在内

68、存阻塞请求进程 从内存读入段S容量满足吗?内存有空闲区吗?修改段表及内存空区链唤醒请求进程返回YNYN淘汰合适的段形成空区4-35 缺段中断流程图Yw小于等于段长?NY访问s|w符合存取方式?分段越界中断处理N分段保护中断处理段S在主存?YN缺段中段处理修改访问字位,如写访问,置1形成访问主存地址返回图4-35请求分段系统的地址变换过程共享段表项共享段表项段名段名段段长长内存始址内存始址状状态态外存始址外存始址共享共享进进程程计计数数COUNTCOUNT状状态态进进程名程名进进程号程号段号段号存存储储控制控制(1)(1)共享进程计熟共享进程计熟countcount 共享段仅为一个进程所需要。当

69、进程不再需要共享段仅为一个进程所需要。当进程不再需要该段时,可释放该段。并收回该段所占居的内存该段时,可释放该段。并收回该段所占居的内存空间。为了记录有多少个进程需要共享该分段,空间。为了记录有多少个进程需要共享该分段,特设置了一个整型变量特设置了一个整型变量countcount。(2)(2)存取控制字段存取控制字段 对于一个共享段,应给不同的进程以不同的存对于一个共享段,应给不同的进程以不同的存取权限。例如,对于文件主,通常允许它读和写;取权限。例如,对于文件主,通常允许它读和写;而对其它进程,只允许读或执行。而对其它进程,只允许读或执行。(3)(3)段号段号 对于同一个共享段,不同的进程可

70、以使用不同对于同一个共享段,不同的进程可以使用不同的段号去共享该段。的段号去共享该段。(1 1)共享段的分配)共享段的分配 由于共享段是供多个进程共享,因此,对共享段由于共享段是供多个进程共享,因此,对共享段的内存分配方式和非共享段的内存分配方式是一的内存分配方式和非共享段的内存分配方式是一样的。在分配共享段时,对第一个使用该段的进样的。在分配共享段时,对第一个使用该段的进程,系统将该共享段调入内存,为共享段加一表程,系统将该共享段调入内存,为共享段加一表项,填写有关表项,把项,填写有关表项,把 countcount加加1. 1.当其它的段想共当其它的段想共享该段时,不再需要调入内存,只须加一

71、表项,享该段时,不再需要调入内存,只须加一表项,填入该共享段的物理地址;在共享段的段表中,填入该共享段的物理地址;在共享段的段表中,填上进程名,存取控制,再执行填上进程名,存取控制,再执行count=count+1 count=count+1 操操作,表明正有两个进程共享该段。作,表明正有两个进程共享该段。(2 2)共享段的回收)共享段的回收 当共享此段的某进程不再需要它时,该将该段当共享此段的某进程不再需要它时,该将该段释放。包括取消在该进程段表中共享该段所对应释放。包括取消在该进程段表中共享该段所对应的表项。以及执行的表项。以及执行count:=count-1count:=count-1操

72、作。若减操作。若减1 1结果结果为为0, 0,则有该系统收回该共享段的物理地址。则有该系统收回该共享段的物理地址。在分段系统中,由于每个分段是独立的,因此比较在分段系统中,由于每个分段是独立的,因此比较容易实现信息保护。目前,采用以下几种方式保容易实现信息保护。目前,采用以下几种方式保护信息。护信息。(1 1)越界检查)越界检查 在段表寄存器中,存放段表长度信息;同样,在段表寄存器中,存放段表长度信息;同样,在段表中也为每个段表设置段长字段,将逻辑地在段表中也为每个段表设置段长字段,将逻辑地址空间的段号和段表长度进行比较,若等于或大址空间的段号和段表长度进行比较,若等于或大于段表长度,则发出越

73、界中断信号,其次还要检于段表长度,则发出越界中断信号,其次还要检查段内地址是否等于或大于段长。若大于段长,查段内地址是否等于或大于段长。若大于段长,将产生越界中断信号,从而保证进程有自己的地将产生越界中断信号,从而保证进程有自己的地址空间。址空间。(3)环保护机构 它是一种较完善的保护机构。在该机制中规定:低编号的环具有较高的优先权。OS居于0环内;某些重要的系统软件占据中间环。而一般的应用程序位于外环。程序访问和调用的规则遵循:(a)一个程序可以访问驻留在相同环或较低环中的数据。(b)一个程序可以调用驻留在相同环或高特权环中的服务。本章小结本章小结本章介绍各种常用的内存管理办法,它们是本章介

74、绍各种常用的内存管理办法,它们是分区分区式管理、页式管理、段式管理和段页式管理式管理、页式管理、段式管理和段页式管理。内存。内存管理的核心问题是如何解决内存和外存的统一,以管理的核心问题是如何解决内存和外存的统一,以及它们之间的数据交换问题。内存和外存的统一管及它们之间的数据交换问题。内存和外存的统一管理使得内存的利用率得到提高,用户程序不再受内理使得内存的利用率得到提高,用户程序不再受内存可用区大小的限制。与此相关联,内存管理要解存可用区大小的限制。与此相关联,内存管理要解决决内存扩充内存扩充、内存的分配与释放内存的分配与释放、虚拟地址到内存虚拟地址到内存物理地址的变换物理地址的变换、内存保护与共享内存保护与共享、内外存之间数内外存之间数据交换的控制据交换的控制等问题。等问题。 n n 本章熟练掌握本章熟练掌握本章熟练掌握本章熟练掌握 1、动态分区管理原理。 2、页式管理原理,特点,地址映射机构及越界保护,缺页中断及其处理过程。 3、段式管理原理,特点,地址映射机构及越界保护,缺段中断及其处理过程。 4、段页式管理原理,特点,地址映射机构及越界保护。 5、页面置换算法。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号