操作系统存储管理学习课程_第1页
操作系统存储管理学习课程_第2页
操作系统存储管理学习课程_第3页
操作系统存储管理学习课程_第4页
操作系统存储管理学习课程_第5页
已阅读5页,还剩159页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.1 5.2 分区存储管理5.3 简单页式存储管理5.4 请求页式虚拟存储管理5.5 windows系统的存储管理5.6 段式与段页式存储管理第1页/共164页第一页,编辑于星期日:十七点 二十二分。用户程序的地址空间、重定位概念存储管理的基本任务第2页/共164页第二页,编辑于星期日:十七点 二十二分。1、存储器的层次第3页/共164页第三页,编辑于星期日:十七点 二十二分。 按照速度、容量和成本划分,存储器系统构成一个层次结构,如图所示。 第4页/共164页第四页,编辑于星期日:十七点 二十二分。存储系统的层次组织存储管理的基本任务第5页/共164页第五页,编辑于星期日:十七点 二十二分

2、。1. 第6页/共164页第六页,编辑于星期日:十七点 二十二分。:完成重定位,装入内存; (可以确定物理地址):逻辑地址-物理地址装入方式: 绝对装入方式、可重定位装入方式、动态运行时装入方式: 建立进程并执行,得到运行结果。 (可以确定物理地址)第7页/共164页第七页,编辑于星期日:十七点 二十二分。第8页/共164页第八页,编辑于星期日:十七点 二十二分。第9页/共164页第九页,编辑于星期日:十七点 二十二分。 程序中符号名的集合(符号空间) 目标模块中的地址(逻辑空间) CPU直接执行的绝对地址程序。这一地址集合(物理空间)第10页/共164页第十页,编辑于星期日:十七点 二十二分

3、。 程序必须装入内存后才能运行,装入程序需要根据内存的使用情况和分配策略,将模块放入到内存中,需要执行重定位。:用户程序中经编译之后的每个目标模块都以0为基地址顺序编址。也称为相对地址。:内存中各物理存储单元的地址都是从统一的基地址开始顺序编址。也称为绝对地址。它是数据在内存中的实际存储地址。逻辑地址:逻辑地址:Load 1,Load 1,500500物理地址物理地址: :Load 1,Load 1,15001500第11页/共164页第十一页,编辑于星期日:十七点 二十二分。:由程序中逻辑地址组成的地址范围。:由内存中一系列存储单元所限定的地址范围。内存空间的编址从统一的基址0开始,为线性的

4、一维地址空间,简称物理空间或绝对空间。:程序和数据装入内存时,需对目标程序中的地址进行修改。将逻辑地址转换为内存物理地址的过程称作重定位。重定位的技术按重定位的时机可分为两种:(装入内存时重定位)和(程序执行时重定位)第12页/共164页第十二页,编辑于星期日:十七点 二十二分。第13页/共164页第十三页,编辑于星期日:十七点 二十二分。1. 静态重定位在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即将程序的逻辑地址都改成为实际的内存地址。装入操作要求完成。无需增加硬件地址转换机构,便于实现程序的静态连接。 存储空间为连续区域,且不可移动,不利于内存空间的有效利用;

5、 各进程很难共享内存中同一程序的副本。第14页/共164页第十四页,编辑于星期日:十七点 二十二分。第15页/共164页第十五页,编辑于星期日:十七点 二十二分。如:LOAD 1,2500 这条指令是把相对地址为2500的存储单元的内容365装入1号累加器而这时内容为365的存储单元的实际物理地址为12500(起始地址10000+相对地址2500)所以LOAD 1,2500 这条指令中的直接地址码要作相应的修改,第16页/共164页第十六页,编辑于星期日:十七点 二十二分。2. 动态重定位在程序执行期间,每次访问内存前进行重定位。地址变换依靠硬件地址转换机构实现。: 程序占用的内存空间动态可变

6、,不必连续存放在一处; 比较容易实现几个进程对同一程序副本的共享使用。:需附加的硬件地址变换机构,增加了机器成本,且软件实现算法复杂。第17页/共164页第十七页,编辑于星期日:十七点 二十二分。第18页/共164页第十八页,编辑于星期日:十七点 二十二分。存储系统的层次组织用户程序的地址空间、重定位概念第19页/共164页第十九页,编辑于星期日:十七点 二十二分。 存储分配 存储保护 存储共享 存储扩充第20页/共164页第二十页,编辑于星期日:十七点 二十二分。内存分配 内存分配是存储器管理的最基本任务,也就是按用户要求把适当的存储空间分配给相应的作业。(1)分配基本内存空间 (2)增加新

7、的内存空间 动态申请或释放内存空间 (3)回收内存空间第21页/共164页第二十一页,编辑于星期日:十七点 二十二分。第22页/共164页第二十二页,编辑于星期日:十七点 二十二分。第23页/共164页第二十三页,编辑于星期日:十七点 二十二分。第24页/共164页第二十四页,编辑于星期日:十七点 二十二分。 在一般情况下,一个作业装入时分配到的存储空间和它的地址空间是不一致的。因此,作业在装入的时候,或在其执行时,必须把程序地址空间中的逻辑地址转换为内存空间对应的物理地址。 第25页/共164页第二十五页,编辑于星期日:十七点 二十二分。进程执行时的寻址进程执行时的寻址当前栈顶当前栈顶进程控

8、制信息进程控制信息程序入口点程序入口点地址值增加地址值增加进程控制块进程控制块程序程序栈栈数据数据访问数据访问数据分支指令分支指令进程映像进程映像第26页/共164页第二十六页,编辑于星期日:十七点 二十二分。第27页/共164页第二十七页,编辑于星期日:十七点 二十二分。PCB3 数据数据代码代码PCB2 代码代码数据数据PCB1数据数据代码代码 进程进程1进程进程2进程进程3进程之间共享代码和数据进程之间共享代码和数据第28页/共164页第二十八页,编辑于星期日:十七点 二十二分。第29页/共164页第二十九页,编辑于星期日:十七点 二十二分。5.1 存储管理的基本概念5.3 简单页式存储

9、管理5.4 请求页式虚拟存储管理5.5 windows系统的存储管理5.6 段式与段页式存储管理第30页/共164页第三十页,编辑于星期日:十七点 二十二分。5.2 分区管理技术1. 固定分区法2. 动态分区法可重定位分区分配第31页/共164页第三十一页,编辑于星期日:十七点 二十二分。5.2 分区管理技术 内存分区的基本思想:由系统把实际内存的物理空间划分为若干个分区,每个分区都是一片在地址上连续的“小”空间。 某个进程建立时就获得一个内存分区,进程执行完后归还该分区。第32页/共164页第三十二页,编辑于星期日:十七点 二十二分。1. 固定分区法内存中分区的个数固定不变,各个分区的大小也

10、固定不变,但不同分区的大小可以不同。每个分区只可装入一个进程。 :内存的分配释放、存储保护以及地址变换都通过分区说明表进行。分配、回收方便,适用于用户不多的小型机;管理方式简单,内存空间利用率低;第33页/共164页第三十三页,编辑于星期日:十七点 二十二分。进程进程1 1)第34页/共164页第三十四页,编辑于星期日:十七点 二十二分。2. 动态分区法各个分区是在相应进程要进入内存时才建立的,使其大小恰好适应进程的大小。:改变了固定分区中小进程占据大分区的浪费现象,从而提高了系统的利用率。 操作系统内部设置一个,记载整个内存中所有空闲区和已用区的情况,每个分区占一个表项,每个表项包括相应分区

11、的大小、位置和状态等。 第35页/共164页第三十五页,编辑于星期日:十七点 二十二分。 第36页/共164页第三十六页,编辑于星期日:十七点 二十二分。内存中每一个空闲的分区占用该表的一项。第37页/共164页第三十七页,编辑于星期日:十七点 二十二分。第38页/共164页第三十八页,编辑于星期日:十七点 二十二分。分配算法从一组空闲区中选择一个可用区的常用策略有两种:最先适应算法(First-fit)和最佳适应算法(Best-fit)。 空闲表是按地址排列的,即:空闲分区起始地址小的分区在表中的序号也小。当要为进程分配内存空间时,就查该表,在各空闲分区中查找满足大小要求的可用分区。只要找到

12、第一个足以满足要求的空闲分区就停止查找,并把它分配出去 。同时修改空闲分区表。第39页/共164页第三十九页,编辑于星期日:十七点 二十二分。2.以空闲分区的大小为序、按增量形式排列的,即小分区在前,大分区在后。它在满足需要的前提下,尽量分配最小的空闲分区。 第40页/共164页第四十页,编辑于星期日:十七点 二十二分。是在所有空闲的分区中寻找最大的一个,把该区按照申请的尺寸进行分割,剩下的部分仍然是一个空闲区,而且可能仍然很大。第41页/共164页第四十一页,编辑于星期日:十七点 二十二分。5.2 分区管理技术分区法1. 固定分区法2. 动态分区法第42页/共164页第四十二页,编辑于星期日

13、:十七点 二十二分。问题描述 第43页/共164页第四十三页,编辑于星期日:十七点 二十二分。可重定位分区法:移动某些已分配区的内容,使所有进程的分区紧挨在一起,而把空闲区留在另一端。 采用紧缩技术的分区方法称为。 动态重定位技术。硬件支持包括一对寄存器:基址寄存器和限长寄存器。 一个存放用户程序在内存的起始地址,称作;另一个表示用户程序的逻辑地址的最大范围,称作。 第44页/共164页第四十四页,编辑于星期日:十七点 二十二分。可重定位分区的紧缩 第45页/共164页第四十五页,编辑于星期日:十七点 二十二分。动态重定位的实现过程 第46页/共164页第四十六页,编辑于星期日:十七点 二十二

14、分。可重定位分区法:为了减少进程移动的数量,可以。进程装入内存时,不是从上至下依次放置,而是采用“”的办法。当紧缩时,各个进程按地址大小分别向两端靠拢,从而使空闲区保留在内存的中间部位。 :可以消除碎片,能够分配更多的分区,有助于多道程序设计,提高内存的利用率。:紧缩花费了大量CPU时间;当进程大于整个空闲区时,仍要浪费一定的内存;进程的存储区内可能放有从未使用的信息;进程之间无法对信息共享。 第47页/共164页第四十七页,编辑于星期日:十七点 二十二分。1.把作业地址空间中使用的逻辑地址变成内存中物理地址称为( )。A、加载 B、重定位 C、物理化 D、逻辑化2在可变分区存储管理中的紧凑技

15、术可以( )。A.集中空闲区 B.增加主存容量C.缩短访问时间 D.加速地址转换3把逻辑地址转换成物理地址称为( )。A.地址分配 B.地址映射 C.地址保护 D.地址越界第48页/共164页第四十八页,编辑于星期日:十七点 二十二分。4在内存分配的“最佳适应法”中,空闲块是按( )。A.始地址从小到大排序 B.始地址从大到小排序C.块的大小从小到大排序 D.块的大小从大到小排序5下面最有可能使得高地址空间成为大的空闲区的分配算法是( )。A.首次适应法 B.最佳适应法C.最坏适应法 D.循环首次适应法6静态重定位的时机是( )。A.程序编译时 B.程序链接时C.程序装入时 D.程序运行时 第

16、49页/共164页第四十九页,编辑于星期日:十七点 二十二分。7. 通常所说的“存储保护”的基本含义是( )A.防止存储器硬件受损 B.防止程序在内存丢失C.防止程序间相互越界访问 D.防止程序被人偷看8能够装入内存任何位置的代码程序必须是( )。A.可重入的 B.可重定位 C.可动态链接 D.可静态链接9在固定分区分配中,每个分区的大小是( )。A.相同B.随作业长度变化C.可以不同但预先固定D.可以不同但根据作业长度固定 第50页/共164页第五十页,编辑于星期日:十七点 二十二分。5.1 存储管理的基本概念5.2 分区存储管理5.4 请求页式虚拟存储管理5.5 windows系统的存储管

17、理5.6 段式与段页式存储管理第51页/共164页第五十一页,编辑于星期日:十七点 二十二分。5.3 分页技术分页系统中的地址映射页的共享和保护内存扩充第52页/共164页第五十二页,编辑于星期日:十七点 二十二分。分页的基本概念 将一个进程的逻辑地址空间划分为若干大小相等的部分, 每部分称作页面或页;每页都有一个编号,叫做页号,页号从0开始依次编排,如0,1,2。 将内存划分成与页面相同大小的若干存储块, 称作内存块;块号从0开始依次顺序排列:0#块,1#块,2#块,。 由硬件决定, 一般为2n,不同机器页面大小不同。0123Process A0123012Process B-0123401

18、23Process C789104561112Process DFree Frame List1314第53页/共164页第五十三页,编辑于星期日:十七点 二十二分。分页的基本概念 其中011位为页内地址,表示每页的大小为212,即4 KB;1231位为页号,表示地址空间中最多可容纳220个页面。0111231第54页/共164页第五十四页,编辑于星期日:十七点 二十二分。系统以块为单位把内存分给各个进程,进程的每个页面对应一个内存块,并且一个进程的若干页可以分别装入物理上不连续的内存块中。在分页系统中,允许将进程的各页面离散地装入内存的任何空闲块中。系统为每个进程设立一张页面映像表,简称页表

19、。 :实现某一进程的逻辑页号到物理块号的地址映射。分页的基本概念第55页/共164页第五十五页,编辑于星期日:十七点 二十二分。2、分页存储实现第56页/共164页第五十六页,编辑于星期日:十七点 二十二分。 整个系统有一个。每个内存块在内存块表中占一项,表明该块当前空闲还是已分出去了;如果已分出去,是分给哪个进程的哪个页面了。 第57页/共164页第五十七页,编辑于星期日:十七点 二十二分。5.3 分页技术分页的基本概念页的共享和保护内存扩充第58页/共164页第五十八页,编辑于星期日:十七点 二十二分。分页的基本概念页表地址结构 分页系统地址交换机构自动将逻辑地址转换为两部分: 高位部分为

20、页号,地位部分为页内地址; 则逻辑地址:用数对(p,d)表示。第59页/共164页第五十九页,编辑于星期日:十七点 二十二分。 通常页的大小为2的n次幂。 如取页大小为1024=(210)=1K或4096= (212)=4K,若页的大小为2n,则: 页内地址占位:n, 页号占位:有效地址长度-n;0?91015第60页/共164页第六十页,编辑于星期日:十七点 二十二分。分页的基本概念 其中011位为页内地址,表示每页的大小为212,即4 KB;1231位为页号,表示地址空间中最多可容纳220个页面。0111231 第61页/共164页第六十一页,编辑于星期日:十七点 二十二分。分页系统中的地

21、址映射 用去检索页表,从页表中得到该页的,把它装入物理地址寄存器中; 将直接送入物理地址寄存器的字段中; 物理地址寄存器中的内容就是由成的实际访问内存的地址,从而完成了从逻辑地址到物理地址的转换。第62页/共164页第六十二页,编辑于星期日:十七点 二十二分。3、分页系统中的地址映射第63页/共164页第六十三页,编辑于星期日:十七点 二十二分。 L=1024 L=1024,A=2052=2048+4=A=2052=2048+4=2 21111+2+22 2 页号页号p=2p=2,页内地址,页内地址d=4 d=4 10 000000010010 0000000100查页表得页号查页表得页号2

22、2对应的物理块号为对应的物理块号为1111,则,则20522052对应的物理地址为:对应的物理地址为:页长页长块号块号+ +页内地址页内地址=1024=102411+4=1126811+4=11268或或: : 1011 00000001001011 0000000100 物理地址为:物理地址为:2C04H=112682C04H=11268例如:例如: 某分页存储管理,页面大小某分页存储管理,页面大小L=1KL=1K,页表如下:,页表如下:则逻辑地址则逻辑地址A=2052A=2052所对应的物理地址是什么?要求写出主要计算过程。所对应的物理地址是什么?要求写出主要计算过程。解:解:第64页/共

23、164页第六十四页,编辑于星期日:十七点 二十二分。 假设系统的页面长度为1k。当前正在执行的进程对应的页面如图所示:当前进程中有一条指令load 1,2500,如何利用页表进行地址变换,正确的执行这条指令呢?第65页/共164页第六十五页,编辑于星期日:十七点 二十二分。页号页面号021328Load 1,2500 data21488644第66页/共164页第六十六页,编辑于星期日:十七点 二十二分。 为了提高地址变换的速度,在地址变换机构中增设了一个具有并行查询功能的特殊的高速缓冲存储器,称为“”或“”,用以存放当前访问的那些页表项。第67页/共164页第六十七页,编辑于星期日:十七点

24、二十二分。此时为:若在快表中对应的页表项,则需,找到后,把从页表中读出的页表项存入快表中的一个寄存器单元中,以取代一个旧的页表项。第68页/共164页第六十八页,编辑于星期日:十七点 二十二分。 页 号 f 页内地址d页表始址p 页表长度d块号 p 块内地址 d 联想寄存器越界中断页表寄存器逻辑地址页 号 块 号页 表快 表物理地址页号 块号245210245210第69页/共164页第六十九页,编辑于星期日:十七点 二十二分。1分区管理和分页管理的主要区别是( )。A.分区管理中的块比分页管理中的页要小B.分页管理有地址映射而分区管理没有C.分页管理有存储保护而分区管理没有D.分区管理要求一

25、道程序存放在连续的空间内而分页管理没有这种要求。第70页/共164页第七十页,编辑于星期日:十七点 二十二分。某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。试问:(1)逻辑地址的有效位是多少?(2)物理地址需要多少位?(3)假定某时刻系统用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚地址0A5C和093C变换为物理地址。第71页/共164页第七十一页,编辑于星期日:十七点 二十二分。5.3 分页技术分页的基本概念分页系统中的地址映射内存扩充第72页/共164页第七十二页,编辑于星期日:十七点 二十二分。页的共享与保护使多个相关进程的逻辑空间中的页指向相同

26、的内存块(该块中放有共享程序或数据)。如图所示: 实际上,那些只读的页面(如程序文件)可以被共享,而数据页面往往并不能共享。 第73页/共164页第七十三页,编辑于星期日:十七点 二十二分。9 9、页的共享与保护第74页/共164页第七十四页,编辑于星期日:十七点 二十二分。在页表的表项中设置存取控制字段,用于指明对应内存块中的内容允许执行何种操作,从而禁止非法访问。ead rite ecute分页系统中把进程的地址空间划分页面的方法对用户是屏蔽的,即用户不知道页面的划分情况。第75页/共164页第七十五页,编辑于星期日:十七点 二十二分。5.3 分页技术分页的基本概念分页系统中的地址映射页的

27、共享和保护第76页/共164页第七十六页,编辑于星期日:十七点 二十二分。内存扩充技术1.覆盖(overlay) 覆盖:一个/几个作业的某些部分共享某一段存储空间2.交换(swapping) 交换:在空间不够的时候把部分内容暂时放入外存。第77页/共164页第七十七页,编辑于星期日:十七点 二十二分。1.覆盖(overlay) 引入:其目标是在较小的可用内存中。常用于多道程序系统,与分区存储管理配合使用。第78页/共164页第七十八页,编辑于星期日:十七点 二十二分。 原理:一个程序的几个代码段或数据段,按照先后来。 将程序的(常用功能)的代码和数据常驻内存;(不常用功能)在其他程序模块中实现

28、,平时存放在外存中(覆盖文件),在需要用到时才装入到内存; 不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。(即)1. 覆盖(overlay)第79页/共164页第七十九页,编辑于星期日:十七点 二十二分。A20KB50KC30KF30KD20KE40KResident20KOverlay 050KOverlay 140KTotal: 190KTotal: 110KA 20KB 50KF 30KC 30KD 20KE 40KRAMA 20K覆盖区覆盖区0 50K覆盖区覆盖区1 40KBCFDE第80页/共164页第八十页,编辑于星期日:十七点 二十二分。 缺点: 编程时必须划分程序模

29、块和确定程序模块之间的覆盖关系,增加编程复杂度。 从外存装入覆盖文件,以时间延长来换取空间节省。1. 覆盖(overlay)第81页/共164页第八十一页,编辑于星期日:十七点 二十二分。2 .交换(swapping) 引入:多个程序并发执行,可以将送到外存中,从而来装入新程序,或读入保存在外存中而目前到达就绪状态的进程。常用于多道程序系统或小型分时系统中。又称作对换或滚进/滚出(roll-in/roll-out);:处于阻塞状态,低优先级(确保高优先级程序执行);第82页/共164页第八十二页,编辑于星期日:十七点 二十二分。2. 交换(swapping) 原理:执行内存中的进程,将整个进程

30、的地址空间的交换区中(换出swap out),而将外存中由阻塞变为就绪的进程的地址空间到内存中,并将该进程送到就绪队列(换入swap in)。第83页/共164页第八十三页,编辑于星期日:十七点 二十二分。2 .交换(swapping)1. 除操作系统所占用的内存空间外, 所有剩余全部内存中只供一个用户进程使用, 所有其它进程都放到外存上;2. 每次只调入一个进程进入内存运行。该进程用完分给它的时间片后,这个进程就放到外存上;3. 系统再把另一个进程调入内存并运行一个时间片。第84页/共164页第八十四页,编辑于星期日:十七点 二十二分。对换两个进程第85页/共164页第八十五页,编辑于星期日

31、:十七点 二十二分。 优点:增加并发运行的程序数目,并且给用户提供适当的响应时间;编写程序时不影响程序结构 缺点:对换入和换出的控制增加处理机开销;程序整个地址空间都进行传送,没有考虑执行过程中地址访问的统计特性。第86页/共164页第八十六页,编辑于星期日:十七点 二十二分。区分交换与覆盖(1)交换不需要程序员给出程序、数据段的交换方法、过程,而覆盖要求明确给出程序段之间的覆盖结构(2)交换主要是在进程之间或作业之间进行,而覆盖主要是在一个进程内或一个作业内进行,同时覆盖程序段与被覆盖程序段是无关的。第87页/共164页第八十七页,编辑于星期日:十七点 二十二分。第88页/共164页第八十八

32、页,编辑于星期日:十七点 二十二分。请求页式存储管理的基本思想硬件支持及缺页处理常见页面置换算法第89页/共164页第八十九页,编辑于星期日:十七点 二十二分。 回忆一下前面所介绍的各种存储管理方案。要求把作业一次全部装入到一个连续的存储分区中;也要求把作业一次全部装入,但是装入到的存储块可以不连续。但无论如何,这些存储管理方案都要求把作业“一次全部装入”。第90页/共164页第九十页,编辑于星期日:十七点 二十二分。 问题:如果有一个作业太大,以至于内存都容纳不下它,那么,这个作业就无法投入运行。多年来,人们总是受到小内存与大作业之间矛盾的困扰。 要求一次全部装入作业程序,主要就是认为只有作

33、业程序全部在内存里,才能够保证它的正确运行。其实,作业程序运行时,并不一定要全部在内存里。 例如:使用函数调用编程实现加减乘除四则混合运算。第91页/共164页第九十一页,编辑于星期日:十七点 二十二分。第92页/共164页第九十二页,编辑于星期日:十七点 二十二分。第93页/共164页第九十三页,编辑于星期日:十七点 二十二分。第94页/共164页第九十四页,编辑于星期日:十七点 二十二分。完成用小的内存实现在大的虚空间中程序的运行工作(1)程序中往往含有不会被执行的代码(2)为数组、队列、表格等数据结构分配的内存空间 要大于他们的实际需要(3)一个程序的某些任选和特殊性能很少被用到(4)局

34、部性原理第95页/共164页第九十五页,编辑于星期日:十七点 二十二分。虚拟存储器是由操作系统提供的一个假想的特大存储器。(1)虚拟扩充:不是物理上、而是逻辑上扩充了内存容量;(2)部分装入:每个作业不是全部一次性地装入内存,而是只装入一部分;(使用对换技术换进换出)(3)离散分配:不必占用连续的内存空间,而是“见缝插针”;(4)多次对换:所需的全部程序和数据要分成多次调入内存。第96页/共164页第九十六页,编辑于星期日:十七点 二十二分。虚拟存储器硬件支持及缺页处理常见页面置换算法第97页/共164页第九十七页,编辑于星期日:十七点 二十二分。回顾: 每个进程的地址空间是连续的,而映像到内

35、存空间后就不一定连续。有效解决了内存碎片问题,更好地支持多道程序设计,提高内存和CPU利用率; 但是,单纯分页存储管理要求运行的进程必须全部装入内存,即未提供虚拟存储器。第98页/共164页第九十八页,编辑于星期日:十七点 二十二分。 与单纯分页的根本区别是提供虚拟存储器。当一个进程的部分页面就可调度它运行;在运行过程中若用到的页面,则把它们动态换入内存。 这样,就减少了对换时间和所需内存容量,允许增加程序道数。CPU当前要访问的页面尚未装入内存,即页表中的标志位为0时,便产生一个缺页中断。 第99页/共164页第九十九页,编辑于星期日:十七点 二十二分。 请求式分页存储管理与纯分页存储管理在

36、内存块的分配与回收,存储保护某方面都十分相似,在请求式分页存储管理的地址重定位时,可能会(1)当程序要访问的某页不在内存时,如何发现这种缺页情况?发现后应如何处理?(访问有效or无效)(2)当需要把外存上的某个页面调入内存时,此时内存中没有空闲块应怎么办?(页面淘汰)第100页/共164页第一百页,编辑于星期日:十七点 二十二分。 操作系统必须:即装入所要求的页面并相应调整页表的记录,然后再重新启动该指令。 由于这种页面是根据请求而被装入的,所以这种存储管理方法叫做。 第101页/共164页第一百零一页,编辑于星期日:十七点 二十二分。虚拟存储器请求页式管理技术的基本思想常见页面置换算法 第1

37、02页/共164页第一百零二页,编辑于星期日:十七点 二十二分。为了实现请求分页,系统须提供一定的硬件支持:除了一定容量的内存和外存及支持分页机制外,还需要有,和。第103页/共164页第一百零三页,编辑于星期日:十七点 二十二分。页表项除包含该页在内存的基址外,需包含如下信息:该页面是否在内存中;记载该页面在外存的地址(文件地址),以便在发生缺页情况下,操作系统能很快在外存上找到该页面,换入内存;若为1,表示该页已被修改过;记录该页的访问次数。第104页/共164页第一百零四页,编辑于星期日:十七点 二十二分。2. 缺页中断的处理过程,是由的。其相互关系如下图所示。 第105页/共164页第

38、一百零五页,编辑于星期日:十七点 二十二分。第106页/共164页第一百零六页,编辑于星期日:十七点 二十二分。6、缺页中断的处理过程第107页/共164页第一百零七页,编辑于星期日:十七点 二十二分。虚拟存储器请求页式管理技术的基本思想硬件支持及缺页处理 第108页/共164页第一百零八页,编辑于星期日:十七点 二十二分。1 2 先进先出法3 最佳置换法4 最近最少使用置换法5 最近未使用置换法第109页/共164页第一百零九页,编辑于星期日:十七点 二十二分。页面置换概念 找出所需页面在磁盘上的位置。 找出一个空闲内存块。如果有空闲块,就用它;如果没有空闲块,就用页面置换算法选择一个可置换

39、的内存块。把该页写到磁盘上,并相应地修改页表和存储块表。 把所需页面读入内存块(刚刚得到的空闲块),修改页表和存储块表。 重新启动该用户进程。第110页/共164页第一百一十页,编辑于星期日:十七点 二十二分。页面置换第111页/共164页第一百一十一页,编辑于星期日:十七点 二十二分。2.如采用的算法不合适,就会不断出现刚被换出的页,很快又被访问。即出现抖动现象。频繁更换页面, 以致系统的大部分时间花费在页面的调度与传输上。造成系统实际效率过低的现象。第112页/共164页第一百一十二页,编辑于星期日:十七点 二十二分。 即存储访问序列。追踪特定程序,记下下述地址序列(十进制表示): 010

40、0,0432,0101,0612,0102,0103,0104, 0101,0611,0102,0103,0104,0101,0610, 0102,0103,0104,0101,0609,0102,0105则页面走向为: 1,4,1,6,1,6,1,6,1,6,1(连续出现的同一页号就简化为一个页号) 一般来说,随着内存可用块数的增加, 缺页数将减少。第113页/共164页第一百一十三页,编辑于星期日:十七点 二十二分。1 页面置换概念3 最佳置换法4 最近最少使用置换法5 最近未使用置换法第114页/共164页第一百一十四页,编辑于星期日:十七点 二十二分。2 先进先出法(FIFO):先进入

41、内存的页,先被换出。 这种算法把一个进程所有在内存中的页。如果一个页面刚被放入内存,就把它插在队尾。 第115页/共164页第一百一十五页,编辑于星期日:十七点 二十二分。:第116页/共164页第一百一十六页,编辑于星期日:十七点 二十二分。先进先出法(FIFO):容易理解且方便程序设计。:性能并不很好。仅当按线性顺序访问地址空间时,这种算法才是理想的;否则,效率不高。 存在Belady异常现象,即缺页率随内存块增加而增加。 第117页/共164页第一百一十七页,编辑于星期日:十七点 二十二分。1 页面置换概念2 先进先出法4 最近最少使用置换法5 最近未使用置换法第118页/共164页第一

42、百一十八页,编辑于星期日:十七点 二十二分。3 最佳置换法(OPT):从内存中;如无这样的页面,则这就是最优算法的思想。:采用这种算法,能保证有最小缺页率。 :OPT算法在实现上有困难,因为它需要预先知道一个进程整个运行过程中页面走向的全部情况。不过,这个算法可用来衡量(如通过模拟实验分析或理论分析)其他算法的优劣。第119页/共164页第一百一十九页,编辑于星期日:十七点 二十二分。第120页/共164页第一百二十页,编辑于星期日:十七点 二十二分。1 页面置换概念2 先进先出法3 最佳置换法5 最近未使用置换法第121页/共164页第一百二十一页,编辑于星期日:十七点 二十二分。4 最近最

43、少使用置换法(LRU):当需要置换一页时,选择在最近一段时间里最久没有使用过的页面予以淘汰。 LRU算法与每个页面最后使用的时间有关。该算法赋予每个页面一个,用来记录一个页面自上次被访问以来所经历的时间t,当必须淘汰一个页面时,LRU算法选择现有页面中t值最大的那个页面。 第122页/共164页第一百二十二页,编辑于星期日:十七点 二十二分。第123页/共164页第一百二十三页,编辑于星期日:十七点 二十二分。第124页/共164页第一百二十四页,编辑于星期日:十七点 二十二分。最近最少使用置换法(LRU)确定最后访问以来所经历时间的顺序,有以下两种可行的办法: 。使每个页表项对应一个使用时间

44、字段,并给CPU增加一个逻辑时钟或计数器,每进行一次存储访问,该时钟都加1。 。用一个栈保留页号。每当访问一个页面时,就把它从栈中取出,放在栈顶上。这样,栈顶总放有目前使用最多的页,而栈底放着目前最少使用的页。 第125页/共164页第一百二十五页,编辑于星期日:十七点 二十二分。最近最少使用置换法(LRU):LRU算法是经常采用的页面置换算法。尽管比OPT算法效果差,但缺页情况还是比FIFO算法好得多。 :实现LRU算法必须有大量硬件支持,同时需要一定的软件开销。 第126页/共164页第一百二十六页,编辑于星期日:十七点 二十二分。1 页面置换概念2 先进先出法3 最佳置换法4 最近最少使

45、用置换法第127页/共164页第一百二十七页,编辑于星期日:十七点 二十二分。5 最近未使用置换法(NUR):它在存储块表的每一表项中增加一个“引用位”,标示该页最近的使用情况:1表示被访问过;0表示未被访问过。当某一页被访问时,由硬件将该位置1。 操作系统定期地检查这些位,如果是1,表示对应页最近被使用过,不被淘汰,但是要把它置为0;如果是0,表示对应页自上次检查之后还未使用过,我们就把这种在最近一段时间里未被访问过的页淘汰出去。 :比较易于实现,开销也比较少。 第128页/共164页第一百二十八页,编辑于星期日:十七点 二十二分。第129页/共164页第一百二十九页,编辑于星期日:十七点

46、二十二分。1. 虚存管理和实存管理的主要区别是( )。A.虚存区分逻辑地址和物理地址,实存不分;B.实存要求一程序在内存必须连续,虚存不需要连续的内存;C.实存要求一程序必须全部装入内存才开始运行,虚存允许程序在执行的过程中逐步装入;D.虚存以逻辑地址执行程序,实存以物理地址执行程序;2在下列有关请求分页管理的叙述中,正确的是( )。A.程序和数据是在开始执行前一次性装入的B.产生缺页中段一定要淘汰一个页面C.一个被淘汰的页面一定要写回外存D.在页表中要有“中段位”.“访问位”和“改变位”等信息第130页/共164页第一百三十页,编辑于星期日:十七点 二十二分。3LRU置换算法所基于的思想是(

47、 )。A.在最近的过去用得少的在最近的将来也用得少B.在最近的过去用得多的在最近的将来也用得多C.在最近的过去很久未使用的在最近的将来会使用D.在最近的过去很久未使用的在最近的将来也不会使用4在下面关于虚拟存储器的叙述中,正确的是( )。A.要求程序运行前必须全部装入内存且在运行过程中一直驻留在内存B.要求程序运行前不必全部装入内存且在运行过程中不必一直驻留在内存C.要求程序运行前不必全部装入内存但是在运行过程中必须一直驻留在内存D.要求程序运行前必须全部装入内存但在运行过程中不必一直驻留在内存 第131页/共164页第一百三十一页,编辑于星期日:十七点 二十二分。5、系统“抖动”现象的发生是

48、由( )引起的?A.置换算法选择不当 B.交换的信息量过大C.内存容量充足 D.请求页式管理方案6. 页式虚拟存储管理的主要特点是( )。A.不要求将作业装入到主存的连续区域B.不要求将作业同时全部装入到主存的连续区域C.不要求进行缺页中断处理D.不要求进行页面置换7在请求分页存储管理中,当所访问的页面不在内存时,便产生缺页中断,缺页中断是属于( )。A.I/O中断 B.程序中断C.访管中断 D.外中断第132页/共164页第一百三十二页,编辑于星期日:十七点 二十二分。8.在请求页式存储管理中,当进程访问页面有效时时,应当进行()操作A. 交换 B.调页 C. 地址转换 D.页面淘汰9.在请

49、求页式存储管理中,当进程对页面()时,进行调页操作A. 淘汰 B.调入 C. 访问无效 D.访问有效10.在请求页式存储管理中,当一个进程的内存工作集达到其上限时,再需要调页就必须进行页面()操作A. 交换 B.淘汰 C. 换出 D.换入第133页/共164页第一百三十三页,编辑于星期日:十七点 二十二分。第134页/共164页第一百三十四页,编辑于星期日:十七点 二十二分。第135页/共164页第一百三十五页,编辑于星期日:十七点 二十二分。 1分段 通常,一个作业是由若干相对独立的部分组成,各自完成不同的功能。为了编程和使用的方便,我们希望所以,通常为段的长度由该段所包含的逻辑信息的长度决

50、定,因而各段长度不等。 第136页/共164页第一百三十六页,编辑于星期日:十七点 二十二分。B0SA0NY0LX0PM0K逻辑段号逻辑段号01234作业作业1的地址空间的地址空间10003200500060008000PKSLN主存主存K 3200P 1500L 6000N 8000S 5000长度长度 段地址段地址01234操作系统操作系统第137页/共164页第一百三十七页,编辑于星期日:十七点 二十二分。2. 分段地址空间 一个用户作业或程序的地址空间被划分为若干个段,每个段定义了一组逻辑信息,每段的长度由相应的逻辑信息组成的大小确定,且可动态增长。例如: 一个程序可有主程序段、子程序

51、段、数据段与栈段等,由于一个程序被分成多个段,因此整个程序地址空间是二维的。第138页/共164页第一百三十八页,编辑于星期日:十七点 二十二分。第139页/共164页第一百三十九页,编辑于星期日:十七点 二十二分。 3程序的地址结构 分段存储关系系统的逻辑地址结构由段号S和段内位移W(也称作段内地址)组成.第140页/共164页第一百四十页,编辑于星期日:十七点 二十二分。 4内存分配 在分段存储管理中,各分区的大小由对应段的大小决定。在分段存储管理系统中,一个作业或进程可以有多个段,这些段可以离散地放入内存的不同的分区中。就是说,一个作业或进程的各段不一定放在彼此相邻的分区中。 第141页

52、/共164页第一百四十一页,编辑于星期日:十七点 二十二分。 5段表和段表地址寄存器 同分页一样,为了能找出每个逻辑段所对应的物理内存中分区的位置,系统为每个进程建立了一个段映射表,简称段表。每个段在段表中占有一项。段表按段号从小到大顺序排列。一个进程的全部段都应在该进程的段表中有所登记。当作业调度程序调入该作业时,就为相应进程建立段表;在撤销进程时,清除此进程的段表。 第142页/共164页第一百四十二页,编辑于星期日:十七点 二十二分。作业空间(MAIN)0030K(X)1020K(D)2015K(S)3010K30K20K15K10K40K80K120K150K段长基址段号(MAIN)0

53、30K(X)120K(D)215K(S)310K040K80K120K150K段表内存空间0123段、段表、及段在内存空间占用情况第143页/共164页第一百四十三页,编辑于星期日:十七点 二十二分。6. 地址变换机构 控制寄存器段表始址段表长度2100段号S越界1 K段长600段号01236 K4 K5002008 K9200基址位移量W82928K82928692主存物理地址有效地址第144页/共164页第一百四十四页,编辑于星期日:十七点 二十二分。某段式存储管理系统中,有一作业的段表(SMT)如下表所示,求逻辑地址0,65,1,55,2,90,3,20对应的主存地址(按十进制)。(其中

54、方括号中的第一个元素为段号,第二个元素为段内地址)解解 逻辑地址0,65:对应的主存地址为60065665。逻辑地址1,55:因段内地址超过段长,所以产生段地址越界中断。逻辑地址2,90:对应的主存地址为1000901090。逻辑地址3,20:因为状态位为0,即该段在辅存中,所以产生缺段中断。段号段长(容量)主存起始地址状态01232005010015060085010001110第145页/共164页第一百四十五页,编辑于星期日:十七点 二十二分。7分页和分段的主要区别 分页和分段存储管理系统有很多相似之处,如:二者在内存中都不是整体连续的,都要通过地址映射机构将逻辑地址映射到物理内存中。但

55、二者在概念上完全不同,主要有以下几点: (1)每一段在逻辑上是相对完整的一组信息,如一个函数、过程、数组等。第146页/共164页第一百四十六页,编辑于星期日:十七点 二十二分。(2)在一个系统中所有页的大小都一样,并且只能有一种大小。取决于用户所编写的程序。(3)地址编号从0开始顺次递增,一直排到末尾。要标识一个地址,除给出段内地址外,还必须给出段名。 第147页/共164页第一百四十七页,编辑于星期日:十七点 二十二分。 1段表机制 在分段存储管理中用到的主要数据结构是段表。段表项中除了段名、段长和该段在内存的起始地址外,应对段表进行扩充,扩充后的段表如图所示:第148页/共164页第一百

56、四十八页,编辑于星期日:十七点 二十二分。 2地址转换 段地址转换与分页地址转换的过程基本相同。 3缺段中断 在段式虚存系统中,一个作业的所有分段的副本都保存在外存上。当它运行时,首先把当前需要的一段或几段装入内存,其他段在用到时才装入。当所访问的段不在内存时,便产生缺段中断。操作系统接到中断信号后,进行相应处理,按类似于申请分区的方式在内存中找到一块足够大的分区,以便放入所需分段。如找不到这样的分区,则检查未分配分区的总和,确定是否需要对分区进行紧缩或者移出(即淘汰)一个或几个分段后再把该分段装入内存。 第149页/共164页第一百四十九页,编辑于星期日:十七点 二十二分。 分段管理的一个优

57、点是提供了对代码或数据进行有效地共享。为了共享某个段,只需在各个作业的段表中登记一项,使它们的基地址都指向同一个物理单元。 共享是在段一级出现的。这样,任何共享的信息就可单独成为一段。 分段管理的另一个突出优点是便于各段保护。段的保护措施有以下几种: (1)存取控制; (2)段表本身可起保护作用; (3)保护环。 第150页/共164页第一百五十页,编辑于星期日:十七点 二十二分。分段系统中共享editor的示意图 editor进程1data 1进程2editordata 2段表段长基址16080402401608040380editordata 1data 280240280380420第151页/共164页第一百五十一页,编辑于星期日:十七点 二十二分。1. 基本原理基本原理 作业地址空间和地址结构 04K8K12K15K16K子程序段04K8K数据段04K8K10K12K(a)段号(S)段内页号(P)段内地址(W)(b)主程序段段页式存储管理技术 第152页/共164页第一百五十二页,编辑于星期日:十七点 二十二分。 1基本原理 段页式存储管理技术的基本要点是: (1)等分内存。把整个内存分成大小相等的内存块,内存块从0开始依次编号。 (2)作业或进程的地址空间采用分段的方式。即把用户程序分为若干个段,每一段

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论