第7章 存储管理 .ppt

上传人(卖家):hyngb9260 文档编号:6160399 上传时间:2023-06-04 格式:PPT 页数:100 大小:1.74MB
下载 相关 举报
第7章 存储管理 .ppt_第1页
第1页 / 共100页
第7章 存储管理 .ppt_第2页
第2页 / 共100页
第7章 存储管理 .ppt_第3页
第3页 / 共100页
第7章 存储管理 .ppt_第4页
第4页 / 共100页
第7章 存储管理 .ppt_第5页
第5页 / 共100页
点击查看更多>>
资源描述

1、1第七章 存储管理27.1 概念存储器storage,memmory能接收数据和保存数据、而且能根据命令提供这些数据的装置。37.1 概念 存储器分成两类:内存储器(简称内存、主存、物理存储器)处理机能直接访问的存储器。用来存放系统和用户的程序和数据,其特点是存取速度快,存储方式是以新换旧,断电信息丢失。外存储器(简称外存、辅助存储器)处理机不能直接访问的存储器。用来存放用户的各种信息,存取速度相对内存而言要慢得多,但它可用来长期保存用户信息。在文件系统中介绍。47.1 概念 1.内存的物理组织物理地址:把内存分成若干个大小相等的存储单元,每个单元给一个编号,这个编号称为内存地址(物理地址、绝

2、对地址、实地址),存储单元占8位,称作字节(byte)。物理地址空间:物理地址的集合称为物理地址空间(主存地址空间),它是一个一维的线性空间。57.1 概念 2.程序的逻辑结构程序地址:用户编程序时所用的地址(或称逻辑地址、虚地址),基本单位可与内存的基本单位相同,也可以不相同。程序地址空间(逻辑地址空间、虚地址空间):用户的程序地址的集合称为逻辑地址空间,它的编址总是从0开始的,可以是一维线性空间,也可以是多维空间。67.2存储管理的功能 存储管理功能(1)(1)地址映射地址映射 将程序地址空间中使用的逻辑地址变换成主存中的地址的过程(2)(2)主存分配主存分配 按照一定的算法把某一空闲的主

3、存区分配给作业或进程。(3)(3)存储保护存储保护 保证用户程序(或进程映象)在各自的存储区域内操作,互不干扰。(4)4)提供虚拟存储技术提供虚拟存储技术 使用户程序的大小和结构不受主存容量和结构的限制,即使在用户程序比实际主存容量还要大的情况下,程序也能正确运行77.2存储管理的功能 7.2.1 地址映射一、什么是地址映射 地址映射 将程序地址空间中使用的逻辑地址变换成主存中的地址的过程称为地址映射。有时也称为地址重定位。87.2存储管理的功能 7.2.1 地址映射二、地址映射方式 地址映射的功能就是要建立虚实地址的对应关系,实现地址映射有三种方式:编程或编译时确定地址映射关系 静态地址映射

4、 动态地址映射97.2存储管理的功能 7.2.1 地址映射1.编程或编译时确定地址映射关系 编程时确定虚实地址的关系是指在用机器指令编程时,程序员直接按物理内存地址编程,这种程序在系统中是不能做任何移动的,否则就会出错。107.2存储管理的功能 7.2.1 地址映射2.静态地址映射 静态地址映射是在程序装入内存时完成从逻辑地址到物理地址的转换的。在一些早期的系统中都有一个装入程序(加载程序),它负责将用户程序装入系统,并将用户程序中使用的访问内存的逻辑地址转换成物理地址。如左图所示。评价:优点是实现简单,不要硬件的支持。缺点是程序一旦装入内存,移动就比较困难。有时间上的浪费。在程序装入内存时要

5、将所有访问内存的地址转换成物理地址。117.2存储管理的功能 7.2.1 地址映射 2.静态地址映射127.2存储管理的功能 7.2.1 地址映射3.动态地址映射 动态地址映射是在程序执行时由系统硬件完成从逻辑地址到物理地址的转换的。系统中设置了重定位寄存器。137.2存储管理的功能 7.2.1 地址映射 3.动态地址映射动态地址映射是由硬件地执行时完成的,程序中不执行的程序就不做地址映射的工作,这样节省了CPU的时间。重定位寄存器的内容由操作系统用特权指令来设置,比较灵活。实现动态地址映射必须有硬件的支持,并有一定的执行时间延迟。现代计算机系统中都采用动态地址映射技术。147.2存储管理的功

6、能 7.2.1 地址映射 3.动态地址映射动态地址映射技术能满足以下目标:(1)具有给一个用户程序任意分配内存区的能力;(2)可实现虚拟存储;(3)具有重新分配的能力(4)对于一个用户程序,可以分配到多个不同的存储区157.2.2 程序的逻辑组织见7.1 2.程序的逻辑结构167.2.3 内存分配 在多道程序设计的环境中,内存分配的功能包括:制定分配策略、构造分配用的数据结构、响应系统的内存分配的请求和回收系统释放的内存区。内存管理策略有三种:1、放置策略 决定内存中放置信息的区域(或位置),即如何在若干个空闲区中选择一个或几个空闲区的原则;2、调入策略 决定信息装入内存的时机,有两种:在用户

7、请求时调入,称为请调;根据某种算法,确定系统将要使用的信息,并在执行前预先调入内存,称为预调;3、淘汰策略 当内存不足时,决定将某些信息调出内存的策略。177.2.4 提供虚存1、问题的提出1、问题的提出物理存储器的结构是个一维的线性空间,容量是有限的。用户程序结构:一维空间 一个用户程序就是一个程序,并且程序和数据是不分离的;二维空间 程序由主程序和若干个子程序(或函数)组成,并且程序 与数据是分离的;n维空间 即一个大型程序,由一个主模块和多个子模块组成,其中 ,各子模块又由主程序和子程序(或函数)组成。用户程序的大小,可能比内存容量小,也可能比内存容量大,有时候要大得多。187.2.4

8、提供虚存1、问题的提出 如何将与物理内存结构不同,且大于物理内存容量的用户程序装入运行?这就是提出研究虚拟存储器的原因,或称为虚拟存储技术发展的原动力。197.2.4 提供虚存2.虚拟存储器概念虚拟存储器 为用户提供一种不受物理存储器结构和容量限制的存储器的技术称为虚拟存储器,或称虚拟存储技术。它是用户编程时所使用的一种用户思维中的存储器,它可以是任何结构(一维线性空间、二维空间、乃至n维空间),并没有容量的限制。现代计算机操作系统都采用了这种技术,使得用户编程序时不需要考虑物理内存的结构和容量,极大地方便了用户。虚拟存储器需要大容量的外存储器的支持,或称物资基础。207.2.5 存储保护 在

9、多道程序设计的环境下,系统中有系统程序和多个用户程序同时存在,如何保证用户程序不破坏系统程序,用户程序之间不相互干扰?这就是存储保护所要解决的问题。常用的存储保护有两种。上、下界保护;基址、限长寄存器保护;217.2.5 存储保护 1.上下界保护下界寄存器 存放程序装入内存后的开始地址(首址)上界寄存器 存放程序装入内存后的末地址判别式:下界寄存器 物理地址 上界寄存器227.2.5 存储保护 1.上下界保护例:有一程序装入内存的首地址是500,末地址是1500,访问内存的逻辑地址是500、345、1000。下界寄存器:500 上界寄存器:1500 逻辑地址装入内存的首地 物理地址 1、500

10、500 1000 500 1000 1500 2、345500 845 500 845 1500 3、1000500 1500 500 1500 1500237.2.5 存储保护 2.基址、限长寄存器保护例:有一程序装入内存的首地址是500,末地址是1500,访问内存的逻辑地址是500、345、1000。基址寄存器:500 限长寄存器:1000 1、500 1000 2、345 1000 3、1000 1000247.2.5 存储保护 3.两种存储保护技术的区别区别:1、寄存器的设置不同;2、判别式中用的判别条件不同 上下界寄存器保护法用的是物理地址;基址、限长寄存器保护法用的是程序的逻辑地址

11、;对于合法的访问地址这两者的效率是相同的,对不合法的访问地址来说,上下界存储保护浪费的CPU时间相对来说要多些。257.3 分区存储管理 7.3.1 概述 分区存储管理是满足多道程序设计的最简单的一种存储管理方法,它允许多个用户程序同时存在系统内存中,即共享内存空间。静态静态(固定固定)分区的方法。分区的方法。最早期的分区存储管理采用固定分区的方法,把内存空间分成若干个大小不等的区域,称为分区。每个用户程序(作业、进程)调入内存后,占用其中一个分区,程序运行完成后释放该分区。这种存储管理的方法的主要问题是内存使用效率极低,很快就被淘汰了。267.3 分区存储管理 7.3.1 概述动态分区存储管

12、理技术动态分区存储管理技术 系统生成后,操作系统占用内存的一部分,一般在物理内存的开始处,比如,一个操作系统占20KB,装入系统后占用020KB的内存空间,剩下的部分作为一个空闲区,当一个用户程序(作业、进程)调入内存时,把这个空闲区的低地址部分的区域分配给它,如图所示。277.3 分区存储管理 7.3.1 概述 当有作业完成后释放所占用的存储区。在系统运行的过程中,系统中形成多个空闲的不连续的存储区。287.3 分区存储管理 7.3.1 概述分区存储管理技术的实现:地址映射 动态存储管理的机构(数据结构)分区的分配和回收 三种基本的放置策略297.3 分区存储管理 7.3.2 用基地址寄存器

13、实现动态地址映射 在这种存储管理技术中,系现设置一个专用寄存器,称为基地址寄存器,当一个进程(或程序、作业)被调度运行时,系统首先从PCB中取出该进程的首地址装入基地址寄存器中,在该进程运行的过程中实现动态地址映射。307.3 分区存储管理 7.3.3 分区分配机构 分区存储管理使用的数据结构主要是空闲区表、空闲区队列两种。其形式如图所示。分区描述器317.3 分区存储管理 7.3.3 分区分配机构等待队列指针空闲区队列指针分配程序入口资源描述器pcb1pcb2pcbn.pd1pd2pdn.327.3 分区存储管理 7.3.4 分区的分配与回收 内存分配程序包括分配一个内存块(分区)和释放一个

14、内存块(分区)两个函数,当进程需要一个大小为size的内存时,可以通过系统调用向系统申请。调用形式:request(size)返回:成功为分区的首地址,失败为0。进程释放一个分区时,调用:release(释放区首地址)返回:无337.3 分区存储管理 7.3.4 分区的分配与回收一、分配算法 教材上的p167 的分配算法是以空闲内存队列的数据结构进行分配。介绍空闲区表数据结构的分配算法。注:1、分配算法中切割空闲区是从低地址开始的,例如,一个空闲区大小是100KB,首址是230KB,一申请者要求80KB,分配时将从230KB开始的80KB分配给申请者,剩下的部分仍作为一个空闲区,其首址是310

15、KB,大小是20KB。2、门限值是切割空闲区后剩下的区域若小于门限值,就不切割该空闲区,统统分给申请者。347.3 分区存储管理 7.3.4 分区的分配与回收357.3 分区存储管理 7.3.4 分区的分配与回收二、回收算法 当一个进程(或程序)释放某内存区时,要调用存储区释放算法release,它将首先检查释放区是否与空闲区表(队列)中的其它空闲区相邻,若相邻则合并成一个空闲区,否则,将释放为一个空闲区插入空闲区表(或队列)中的适当位置。空闲释放区与空闲区相邻有四种情况。试用C语言写出动态分区的回收算法。367.3 分区存储管理 7.3.4 分区的分配与回收A、将r合并到f1,f1.addr

16、;f1.size+r.size=f.sizeB、将r合并到f2,r.addr;r.size+r.size=f2.sizeC、f1、r、f2 合并到f1,f1.addr;f1.size+r.size+f2.size=f1.size 撤消f2空闲区D、r作为一个空闲区,并插入到空闲区表的适当位置。377.3 分区存储管理 7.3.5 几种放置策略 分区分配和回收是对空闲区表(或空闲区队列)数据结构进行操作,空闲区表的组织有两种方法:1、按空闲区大小的升序(降序)组织;2、按空闲区首址升序(降序)组织。根据空闲区表组织的方法的不同,有不同的放置策略,它们是:最佳适应算法;首次适应算法;最坏适应算法;

17、387.3 分区存储管理 7.3.5 几种放置策略一、首次适应算法 首次适应算法的表是按空闲区首址升序的(即空闲区表是按空闲区首址从小到大)方法组织的。397.3 分区存储管理 7.3.5 几种放置策略一、首次适应算法 分配时从表首开始,以请求内存区的大小逐个与空闲区进行比较,找到第一个满足要求的空闲后,若空闲区大小与请求区的大小相等,则将该空闲区分配给请求者,并撤消该空闲区所在表目;若大于请求区,就将该空闲区的一部分分配给请求者,然后,修改空闲区的大小和首址。407.3 分区存储管理 7.3.5 几种放置策略 切割空闲区有两种方法:从空闲区头开始 从空闲区尾开始空闲区大小50KB,首址156

18、KB,申请34KB。一、首次适应算法417.3 分区存储管理 7.3.5 几种放置策略 这种算法的实质是尽可能地利用低地址部分的空闲区,而尽量地保证高地址部分的大空闲区,使其不被切削成小的区,其目的是保证在以后有大的作业到来时有足够大的空闲区来满足请求者。回收时,首先考察释放区是否与系统中的某个空闲区相邻,若相邻则合并成一个空闲区,否则,将释放区作为一个空闲区按首址升序的规则插入到空闲区表适当的位置。一、首次适应算法427.3 分区存储管理 7.3.5 几种放置策略二、最佳适应算法 最佳适应算法是将申请者放入与其大小最接近的空闲区中。切割后的空闲区最小,若系统中有与申请区大小相等的空闲区,这种

19、算法肯定能将这种空闲区分配给申请者。(首次适应法则不一定)。437.3 分区存储管理 7.3.5 几种放置策略最佳适应算法的空闲区表按空闲区大小升序方法组织。分配时,按申请的大小逐个与空闲区大小进行比较,找到一个满足要求的空闲区,就说明它是最适合的(即最佳的)。这种算法最大的缺点是分割后的空闲区将会很小,直至无法使用,而造成浪费。二、最佳适应算法447.3 分区存储管理 7.3.5 几种放置策略三、最坏适应算法 为了克服最佳适应算法把空闲区切割得太小的缺点,人们提出了一种最坏适应算法,即每次分配时,总是将最大的空闲区切去一部分分配给请求者,其依据是当一个很大的空闲区被切割了一部分后可能仍是一个

20、较大的空闲区。避免了空闲区越分越小的问题。457.3 分区存储管理 7.3.5 几种放置策略最坏适应算法的空闲区表是按空闲区大小降序的方法组织的(从大到小的顺序)。分配时总是取表中的第一个表目,若不能满足申请者的要求,则表示系统中无满足要求的空闲区,分配失败;否则,将从该空闲区中分配给申请者,然后修改空闲区的大小,并将它插入到空闲区表的适当位置。三、最坏适应算法467.3 分区存储管理 7.3.5 几种放置策略这三种放置算法的优劣很难区分,要具体情况具体分析。例如:某时刻系统中有三个空闲区其大小和首址为:(35KB,100KB)、(12KB,156KB)、(28KB,200KB)有一作业系列:

21、(JOB1,12KB)、(JOB2,30KB)、(JOB3,28KB)477.3 分区存储管理 7.3.5 几种放置策略48优点:简单,容易实现。缺点:(1)固定分区面临严重的“外零头”问题,主存浪费严重;(2)动态分区面临“外零头”的拼接问题,系统开销过大;7.3 分区存储管理 7.3.6 分区存储的优缺点497.4 页式存储管理 7.4.1 页式系统应解决的问题一、问题的提出 分区存储管理的主要问题是碎片问题。在采用分区存储管理的系统中,会形成一些非常小的分区,最终这些非常小的分区不能被系统中的任何用户(程序)利用而浪费。造成这样问题的主要原因是用户程序装入内存时是整体装入的,为解决这个问

22、题,提出了分页存储管理技术。507.4 页式存储管理 7.4.1 页式系统应解决的问题二、分页的概念 程序地址空间分成大小相等的页面,同时把内存也分成与页面大小相等的块,当一个用户程序装入内存时,以页面为单位进行分配。页面的大小是为2n,通常为1KB,2KB,nKB等。517.4 页式存储管理 7.4.1 页式系统应解决的问题页式存储管理要解决如下问题:1、页式存储管理系统的地址映射;2、调入策略;3、淘汰策略;4、放置策略。527.4 页式存储管理 7.4.2 页式地址变换一、页表 页表是页式存储管理的数据结构,它包括用户程序空间的页面与内存块的对应关系、页面的存储保护和存取控制方面的信息。

23、页号 内存块号 存取控制 状态 其它在实际的系统中,为了节省存储空间,在页表中可以省去页号这个表目。537.4 页式存储管理 7.4.2 页式地址变换547.4 页式存储管理 7.4.2 页式地址变换二、虚地址结构 虚地址是用户程序中的逻辑地址,它包括页号和页内地址(页内位移)。区分页号和页内地址的依椐是页的大小,页内地址占虚地址的低位部分,页号占虚地址的高位部分。假定页面大小1024字节,虚地址共占用2个字节(16位)页号 页内地址(位移量)P W 15 10 9 0557.4 页式存储管理 7.4.2 页式地址变换二、虚地址结构567.4 页式存储管理 7.4.2 页式地址变换三、页式地址

24、映射577.4 页式存储管理 7.4.2 页式地址变换1.虚地址(逻辑地址、程序地址)以十六进制、八进制、二进制的形式给出 将虚地址转换成二进制的数;按页的大小分离出页号和位移量;根据题意产生页表;将位移量直接复制到内存地址寄存器的低位部分;以页号查页表,得到对应页装入内存的块号,并将块号转换成二进制数填入地址寄存器的高位部分,从而形成内存地址。三、页式地址映射587.4 页式存储管理 7.4.2 页式地址变换 2.虚地址以十进制数给出页号虚地址页大小;位移量虚地址 mod 页大小;根据题意产生页表;以页号查页表,得到对应页装入内存的块号;内存地址块号页大小位移量;三、页式地址映射597.4

25、页式存储管理 7.4.2 页式地址变换例1:有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、A、5块,试将虚地址0AFEH,1ADDH转换成内存地址。虚地址0AFEH0000 1010 1111 1110P1 W010 1111 1110MR0100 1010 1111 1110 4AFEH三、页式地址映射607.4 页式存储管理 7.4.2 页式地址变换虚地址1ADDH0001 1010 1101 1101P3W010 1101 1101MR0010 1010 1101 11012ADDH三、页式地址映射617.4 页式存储管理 7.4.2 页式地址变

26、换例2:有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、10、5块,试将虚地址7145,3412转换成内存地址。三、页式地址映射627.4 页式存储管理 7.4.2 页式地址变换虚地址 3412P3412 2048 1W 3412 mod 2048 1364MR=9*2048+1364=19796虚地址3412的内存地址是:19796三、页式地址映射637.4 页式存储管理 7.4.2 页式地址变换虚地址 7145P7145 2048 3W7145 mod 2048 1001MR=5*2048+1001=11241虚地址7145的内存地址是:11241三

27、、页式地址映射647.4 页式存储管理 7.4.2 页式地址变换 在页式存储技术中,我们可看到每访问一次内存,就要做两次访问内存的工作,即查页表时要作一次访问内存的工作,然后是访问程序要求访问的内存,这样,存取速度降低一倍,将会影响整个系统的使用效率。在早期的计算机系统中有的采用联想存储器的技术来加快查表的速度,有的采用寄存器做页表。四、采用相应技术加快页表的查询速度657.4 页式存储管理 7.4.2 页式地址变换 采用寄存器做页表的典型是早期的UNIX系统(PDP11系统计算机上)中,地址映射机构中就有两套页表机构,叫做页地址映射寄存器组,一套用于核心态,另一套用于用户态。每组有8对寄存器

28、,每对寄存器中有一个地址寄存器和一个说明寄存器,地址寄存器中存放相应页在内存的首地址,说明寄存器中存放对应页的大小,访问方式,存储保护等方面的信息。四、采用相应技术加快页表的查询速度667.4 页式存储管理 7.4.3 请调策略 一、请求分页概念一、请求分页概念 请求分页技术当一个用户程序要调入内存时,不是将该程序全部装入内存,而是只装入部分页到内存,就可启动程序运行,在运行的过程中,如果发现要运行的程序或要访问数据不在内存,则向系统发出缺页中断请求,系统在处理这个中断时,将在外存相应的页调入内存,该程序继续运行。677.4 页式存储管理 7.4.3 请调策略二、请求分页要解决的问题二、请求分

29、页要解决的问题采用这种技术要解决以下问题:1、如何发现执行的程序或访问的数据不在内存;2、程序或数据什么时候调入内存,调入策略;3、当一些页调入内存时,内存没有空闲内存时,将淘汰哪些页,淘汰策略。687.4 页式存储管理 7.4.3 请调策略三、数据结构三、数据结构为了实现请求分页技术,页表应增加相应的内容,反映该页是否在内存,在外存的位置,在内存的时间的长短等。中断位:0 表示该页在内存,1示该页不在内存引用位:0 表示最近没有进程访问 1示最近有进程访问修改位:0 该页调入内存后没有修改 1页调入内存后修改过697.4 页式存储管理 7.4.3 请调策略三、数据结构三、数据结构707.4

30、页式存储管理 7.4.3调入策略1、预调 系统根据作业(进程)运行的情况,预测哪些页将要运行,在其运行之前先行调入内存,这样在程序运行的过程中就不会出现缺页中断。这样方法从表面上看起来很好,但系统无法预计系统中作业的运行情况,难以实现。2、请调 程在执行的过程中,发现要执行的程序或处理的数据不在内存,向系统提出调入相应程序的请求,系统响应用户的请求。717.4 页式存储管理 7.4.4 淘汰策略 置换算法 假定程序p共有n页,而系统分配给它的内存只有m块(1mn),当要索取一页面并送入到全满的内存中时,必须把已在内存中的某一页淘汰掉。用来选择淘汰哪一页的规则叫做置换算法。颠簸(不恰当的置换算法

31、造成的频繁的页面置换)72 最佳置换算法最佳置换算法 先进先出置换算法先进先出置换算法 最久未使用置换算法最久未使用置换算法LRULRU7.4 页式存储管理 7.4.5 几种置换算法737.4 页式存储管理 7.4.5 几种置换算法一、最佳算法OPT(optimal replacement algorithm)最佳算法:当要调入一新页而必须淘汰一旧页时,所淘汰的页是以后不再使用的,或者是以后相当长的时间内不会使用的。这种算法是不可能的。原因?74例:一个程序共有5个页面,分别为P1P5。程序执行过程中依此用到的页面为:P1,P2,P1,P5,P4,P1,P3,P4,P2,P4P1P2P1P5P

32、4P1P3P4P2P4111111*3*3*332222*222225*444444调入 调入 命中 调入替换 命中 替换 命中 命中 命中OPT算法实际命中次数为5次。7.4 页式存储管理 7.4.5 几种置换算法757.4 页式存储管理 7.4.5 几种置换算法二、先进先出算法FIFO(fist-in first-out algorithm)先进入内存的页,先退出内存。实质上是淘汰在内存驻留时间最长的页。其理由是:最早调入内存的页,不再被使用的可能性比近期调入内存的大。这种算法简单,实现容易。767.4 页式存储管理 7.4.5 几种置换算法P1P2P1P5P4P1P3P4P2P41111

33、*444*4*222222*1111*4555*3333*调入 调入 命中 调入替换 替换 替换 命中 替换 替换FIFO算法实际命中次数为2次。777.4 页式存储管理 7.4.5 几种置换算法三、最久未使用淘汰算法三、最久未使用淘汰算法LRU(Least RcentlyLRU(Least Rcently used algorithm)used algorithm)这种算法的实质:这种算法的实质:当需要淘汰一页时,选择当需要淘汰一页时,选择最长时间未使用的页。最长时间未使用的页。依据的理论是如果某页被访问,它可能马依据的理论是如果某页被访问,它可能马上还要被访问;相反,如果某页长时间未被访上

34、还要被访问;相反,如果某页长时间未被访问,它可能最近也不可能被访问。问,它可能最近也不可能被访问。787.4 页式存储管理 7.4.5 几种置换算法P1P2P1P5P4P1P3P4P2P411111*111*22222*444*444555*333*3*调入 调入 命中 调入替换 命中 替换 命中 替换 命中LRU算法实际命中次数为4次。79其他置换算法:其他置换算法:随机算法随机算法RAND(random algorithm)RAND(random algorithm)最不经常使用算法最不经常使用算法LFULFU(least frequently least frequently used

35、algorithm)used algorithm)7.4 页式存储管理 7.4.5 几种置换算法807.4 页式存储管理 7.4.5 几种置换算法OPT算法(最佳置换算法)和其它算法之间的关系:1、OPT 算法无疑是效率最高的,但由于其要求知道程序将来的执行情况,所以几乎是不能实现的。2、其它算法都是根据历史去推测将来。算法的效率取决于推测的准确性。比如,在前面的例子中,OPT算法实际命中次数为5次 FIFO算法实际命中次数为2次 LRU算法实际命中次数为4次LRU算法的效率高于FIFO算法,普遍情况也是如此。817.4 页式存储管理 7.4.6 页式系统的存储保护 页式系统的存储保护的方法类

36、似于基址限长存储保护,当地址映射机构分离出页号和页内位移后。若0页号用户程序的总页数,则访问合法,否则访问越界。页式系统的存储保护还包括存取控制。在页表中增加存取控制位,表示该页的存取控制权限,如r表示可读,w表示可读可写,e表示可执行。当有一程序访问该页时,系统就按存取控制位设置的权限实施存取控制。827.4 页式存储管理7.4.7 页式系统的优缺点优点:(1)可提供大容量的多个虚存;(2)更有效地利用了物理主存;(3)多道程序运行的程度更高了;(4)更加方便了用户,特别大作业用户;缺点:(1)采用动态地址变换机构,增加了计算机的成本,降低了处理机的速度;(2)必须采用以部分存储空间来存放各

37、种表格,且需要花费一部分处理机时间来建立和管理这些表;(3)虽然分区间的零头问题消除了,但是出现了块内的零头问题。(4)纯分页系统仍然需要全部装入主存。(5)在请求页式系统中,为处理页面中断增加了系统开销。837.5 段式系统 一个用户程序往往由几个程序段(主程序、子程序和函数)所组成,当一个程序装入内存时,按段进行分配,每个段的大小是不相等的。程序地址的组成:S:W例:S1:XXXXS2:XXXXS3:XXXX847.5 段式系统保护位段号S段长L中断I引用位改变位RWEA段首址b扩充段表857.5 段式系统优点:(1)便于程序模块化处理;(2)便于处理变化的数据结构;(3)便于动态链接;(

38、4)便于共享分段;(5)便于实现多段式虚拟存储,“扩充”主存容量;缺点:(1)和页式系统一样,处理机要为地址变换花费时间,给中表格需要附加存储,使操作系统复杂化;(2)为了满足分段的动态增长和减少外零头,需要采用拼接手段;(3)在辅存中管理不定长度的分段困难较多;(4)分段的最大尺寸受到主存可用空间的限制。段式系统的优缺点867.5 段式系统段页式系统:在段式系统中,若段内分页,称为段页式系统。877.6 UNIX系统存储管理7.6.1 概述 UNIX系统的早期版本采用分页存储管理,进程的存储映象可以在内存和交换区之间传递,称为对换;UNIX 第6、7版采用对换。在目前的一些UNIX系统中,采

39、用请求分页存储管理,也就是采用虚拟存储技术,称为请求调页。UNIX SYSTEM 采用请求调页(请求分页)。以后的UNIX系统的各种版本均采用了请求调页技术。887.6.2 对换空间的管理系统盘的结构:7.6 UNIX系统存储管理897.6.2 对换空间的管理对换存储管理的数据结构系统设置了两个相同的结构:coremap 内存空闲区表 swapmap 对换区空闲区表空闲区的分配采用最佳适应法。程序是:malloc(map,size)空闲区回收程序:mfree(map,size,aa)map:内存(或对换区);size:大小;aa:释放区首址空闲区首址空闲区大小123 50300 1500 0

40、7.6 UNIX系统存储管理907.6 UNIX系统存储管理 7.6.3 对换进程 对换进程就是0号进程,它一个永远处于核心态的进程。其任务是将进程的映象在内存和对换区之间传递。917.6 UNIX系统存储管理 7.6.3 对换进程(一)进程换入 当内存空闲时,0号进程将对换区中处于就绪状态的进程的映象调入内存,直到内存满,或者是对换区中已经没有处于就绪状态的进程。调入就绪进程的依据是进程在对换区中驻留的时间,每次调入一个在对换区中驻留时间最长的进程映象进入内存。927.6 UNIX系统存储管理 7.6.3 对换进程(二)进程换出 当内存空间不足时,0号进程将内存中的某些进程换到对换区。不能换

41、出的进程是核心态的进程(UNIX核心)、处于创建状态的进程、上锁的进程,在内存中驻留时间不足两分钞钟的就绪进程。换出的顺序是:处于睡眠状态的进程、暂停状态的进程。若无以上这两类进程,就是处于就绪状态的进程。按就绪状态的进程在内存中驻留时间从长到短的顺序依次调入内存,直到内存中无进程可调出为止。937.6 UNIX系统存储管理 7.6.4 请求调页数据结构进程映象的结构:在请求调页的系统中,进程映象的结构是U区、正文区、数据区、用户栈区。其中U区的大小是固定的,其它的各区的大小不是固定的。947.6 UNIX系统存储管理 7.6.4 请求调页数据结构957.6 UNIX系统存储管理 7.6.4

42、请求调页数据结构(一)进程区表 在UNIX system 中,一个进程可以有正文区、数据区、用户栈区和U区。其中U区只有处于运行状态的进程才有,其它状态的进程没有U区。每个区又分成若干个页。所以,每个区有一个页表。967.6 UNIX系统存储管理 7.6.4 请求调页数据结构(二)页和页表 将用户的程序空间分成大小相等的单位,称为页。并把内存空间也分成与之相等的块。页的大小为512字节。刚好与磁盘的物理块大小相等。页表的格式如下:977.6 UNIX系统存储管理 7.6.4 请求调页数据结构块号:内存块号 年龄:该块在工作集中驻留的时间修改:表示该页调入内存后修改过,置1,否则为0;访问:该页

43、调入内存后,被访问过;有效:为1表示该页在内存,否则不在内存;保护:该页的存储保护信息;对换设备:指明对换设备;磁盘块号:该页在对换设备上的磁盘物理块号。987.6 UNIX系统存储管理 7.6.5 页地址映射pw31 10 9 06843210=000000000000000100001011010100002UNIX虚地址结构:997.6 UNIX系统存储管理 7.6.6 页面错(缺页中断)在UNIX系统中产生页面错有两种情况:1.进程企图访问虚存空间范围之外的页面,即段违例,在这种情况下,核心向违例的进程发送一个“段违例”的软中断。(这是一般操作系统中页面错的处理方法)。2.进程企图访问一个有效位为0的页(该页不在内存),这时将产生一个有效位错的中断(类似于一般OS中的缺页中断)。核心处理该中断时,将所而的页面调入内存。1007.6 UNIX系统存储管理 7.6.6 页面错(缺页中断)偷页(页面淘汰)进程 当有进程需要调入一些页面时,又没有内存空间时,核心将按某种策略将系统中的一些页面调出内存,在一般的OS中称为页面淘汰,在UNIX中称为偷页。1.选择淘汰的页;2.选中了淘汰页后,执行淘汰,若修改位为1,表示该页调入内存后,已经修改,淘汰时,要将要淘汰的页面写到相应的磁盘块。若修改位为0,表示该页面调入内存后没有修改过,只是把该页置为空。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第7章 存储管理 .ppt)为本站会员(hyngb9260)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|