收藏 分享(赏)

5存储管理-2.ppt

上传人:fmgc7290 文档编号:8436217 上传时间:2019-06-27 格式:PPT 页数:53 大小:874.50KB
下载 相关 举报
5存储管理-2.ppt_第1页
第1页 / 共53页
5存储管理-2.ppt_第2页
第2页 / 共53页
5存储管理-2.ppt_第3页
第3页 / 共53页
5存储管理-2.ppt_第4页
第4页 / 共53页
5存储管理-2.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、5.6 虚拟存储器(VIRTUAL MEMORY),5.6.1 局部性原理 5.6.2 虚拟存储器的原理 5.6.3 虚拟存储技术的种类 5.6.4 存储保护和共享 5.6.5 虚拟存储的置换算法,5.6.1 局部性原理,程序在执行过程中的一个较短时期,所执行的指令 地址和指令的操作数地址,分别局限于一定区域。可以 表现为: 1、时间局部性:一条指令的一次执行和下次执行,一 个数据的一次访问和下次访问都集中在一个较短时期内 (一条指令被执行,则在不久的将来它可能再被执行) 2、空间局部性:当前指令和邻近的几条指令,当前访 问的数据和邻近的数据都集中在一个较小区域内。(若 某一存储单元被使用,则

2、在一定时间内,与该存储单元 相邻的单元可能被使用),返回,一、局部性原理(principle of locality),1、程序在执行时,大部分是顺序执行的指令,少 部分是转移和过程调用指令。 2、过程调用的嵌套深度一般不超过5,因此执行 的范围不超过这组嵌套的过程。 3、程序中存在相当多的循环结构,它们由少量指 令组成,而被多次执行。 4、程序中存在相当多对一定数据结构的操作,如 数组操作,往往局限在较小范围内。,二、局部性原理的具体体现,5.6.2 虚拟存储器的原理,1、在程序装入时,不必将其全部读入到内存,而只需将当前 需要执行的部分页或段读入到内存,就可让程序开始执行。 2、在程序执行

3、过程中,如果需执行的指令或访问的数据尚未 在内存(称为缺页或缺段),则由处理器通知操作系统将相 应的页或段调入到内存,然后继续执行程序。 3、另一方面,操作系统将内存中暂时不使用的页或段调出保 存在外存上,从而腾出空间存放将要装入的程序以及将要调 入的页或段。只需程序所需的一部分在内存就可执行。,返回,一、 虚拟存储的基本原理,二、 引入虚拟存储技术的好处,1、大程序:可在较小的可用内存中执行较大的用户 程序; 2、大的用户空间:提供给用户可用的虚拟内存空间 通常大于物理内存(real memory); 3、并发:可在内存中容纳更多程序并发执行; 4、易于开发:与覆盖技术比较,不必影响编程时的

4、 程序结构;,三、虚拟存储技术的特征,1、不连续性:物理内存分配的不连续,虚拟地址空 间使用的不连续(数据段和栈段之间的空闲空间,共 享段和动态链接库占用的空间) 2、部分交换:与交换技术相比较,虚拟存储的调入 和调出是对部分虚拟地址空间进行的; 3、大空间:通过物理内存和快速外存相结合,提供 大范围的虚拟地址空间 总容量不超过物理内存和外存交换区容量之和,5.6.3 虚拟存储技术的种类,5.6.3.1 虚拟页式 5.6.3.2 虚拟段式 5.6.3.3 段页式 5.6.3.4 段页式习题,返回,5.6.3.1 虚拟页式(virtual paging),返回,在简单页式存储管理的基础上,增加请

5、求调页和页面置换功能。,在进程开始运行之前,不是装入全部页面, 而是装入一个或零个页面,之后根据进程运行的 需要,动态装入其它页面;当内存空间已满,而 又需要装入新的页面时,则根据某种算法淘汰某 个页面,以便装入新的页面。,一、基本工作原理,二、对进程页表的修改,需要在进程页表中添加若干项 1、标志位:存在位(present bit,或驻留位,内存 页和外存页),修改位(modified bit) 2、访问统计:在近期内被访问的次数,或最近一次 访问到现在的时间间隔 3、外存地址,虚拟页式的进程页表,三、缺页中断,1、缺页中断的处理过程,(1)在地址映射过程中,在页表中发现所要访问的页不在内存

6、,则产生缺页中断。 (2)操作系统接到此中断信号后,就调出缺页中断处理程序,根据页表中给出的外存地址,将该页调入 内存,使作业继续运行下去。,(3)如果内存中有空闲块,则分配一页,将新调入 页装入内存,并修改页表中相应页表项目的驻留位 及相应的内存块号。 (4)若此时内存中没有空闲块,则要淘汰某页,若 该页在内存期间被修改过,则要将其写回外存。,2、缺页中断的特殊性,(1)缺页中断在指令执行期间 产生和进行处理,而不是在一 条指令执行完毕之后。所缺的 页面调入之后,重新执行被中 断的指令。 (2)一条指令的执行可能产生 多次缺页中断,如:swap A,B, 指令本身和两个操作数A, B都 跨越

7、相邻外存页的分界处,则 产生6次缺页中断。,四、虚拟页式管理分类,1、请求页式当需要执行某条指令而又发现它不在内存时, 或当执行某条指令需要访问其他的数据或指令时, 这些指令和数据不在内存中,从而发生缺页中断 (主要讨论)。 2、预调入系统对那些在外存中的页进行调入顺序计算, 估计出这些页中指令和数据的执行和被访问的顺 序,并按此顺序将它们顺次调入和调出内存。,五、虚拟页式管理的优缺点,1、优点 由于它不要求作业或进程的程序段和数据在内存中连续存放,消除了碎片问题 实现了虚存 2、缺点 要求有硬件支持 增加了系统开销,如缺页中断处理 请求调页的算法如选择不当,由可能产生抖动现象 每个作业和进程

8、的最后一个页内总有由一部分空间得不到利用,如果页面较大,则这已部分得损失仍然较大。,5.6.3.2 虚拟段式(virtual segmentation),需要在进程段表中添加若干项: 标志位:存在位(present bit),修改位(modified bit/dirty bit),增长位(该段是否增长过,在虚拟页式中没有该位) 访问统计:如使用位(use bit) 存取权限:如读R,写W,执行X 外存地址,返回,在简单段式存储管理的基础上,增加请求调段 和段置换功能。,一、段表,虚拟段式管理的段表,二、动态地址变换,三、段式管理的优缺点,1、优点 可以实现虚存 段长可以动态增加(可以吸收新数据

9、) 便于对具有完整逻辑功能的信息段进行共享 便于实现动态链接 2、缺点 每个段的长度受可用内存区大小的限制 需要更多的硬件支持,5.6.3.3 段页式(combined paging and segmentation),1、存储管理的分配单位:段,页 2、逻辑地址的组成:段号,页号,页内偏移地 址,程序员可见的仍是段号和段内相对地址。 3、地址变换:先查段表,再查该段的页表。缺段 中断和缺页中断。,返回,虚拟页式和虚拟段式存储管理的结合,由于 开销比较大,一般只用于大型机系统中。,一、基本原理,虚拟段页式管理中的段表和页表,段页式地址变换,二、段页式管理中的高速联想寄存器,1、段页式管理中,对

10、内存中的指令和数据进行一 次存取的话,至少需要访问三次以上的内存:段 表,页表,物理单元,因此,使CPU的执行指令 速度大大降低。 2、为了提高地址转换速度,设置高速联想寄存 器:其中存放最常用的段号s、页号p和对应的内 存页面与其他控制项。 3、当要访问内存空间某一单元时,可在通过段 表,页表进行内存地址查找的同时,在高速联想 寄存器中查找其段号和页号。,1、有一个请求分页存储管理系统,页面大小为 每页100字节。有一个5050的整型数组按行连 续存放,每个整数占2个字节,将数据初始化为0 的程序描述如下:int a5050; int i,j;for (i=0;i=49;i+)for (j=

11、0;j=49;j+)aij=0; 若在程序执行时内存只有一个存储块用来存放数 组信息,试问该程序执行时产生多少次缺页中断?,返回,5.6.3.4 段页式习题,解:数组中有2500个整数,每个整数占用2个字节,共 需存储空间5000个字节,而页面大小为每页100个字 节。数组占用空间50页。假设数据从该作业的第m页 开始存放,则数组分布在第m页到第m+49页中,它在 主存中的排列顺序为: a00, a01, a049 第m页 a10, a11, a149 第m+1页 a490, a491, a4949 第m+49页由于该初始化程序是按行进行的,因此,每次缺 页中断调进一页后,位于该页内的数组元素

12、全部赋予0 值,然后再调入下一页,所以涉及的页面走向为 m,m+1,m+49,故缺页次数为50次。,2、在一个段式存储管理系统中,其段表如下,求下述逻辑地址 对应的物理地址是什么?段号 内存起始地址 段长0 210 5001 2350 202 100 903 1350 5904 1938 95,段号 段内位移 0 430 1 10 2 500 3 400 4 112 5 32,(210+430=640) (2350+10=2360) 非法 (1350+400=1750) 非法 非法,解:,3、在一个页式管理系统中,其页表存放在主存中。 (1)如果对主存的一次存取需要1.5微秒,问实现一次 页面

13、访问的存取时间是多少? (2)如果系统有快表,平均命中率为85,且当页表 项在快表中时,其查找时间忽略为0,问此时实现一次 页面的存取时间是多少?,解:实现一次页面访问需2次访问主存,一次是访问页 表,确定所存取页面的物理地址,第2次才根据该地址 存取页面数据。 (1)由于页表放在主存,CPU要2次访问主存才能获得 所需数据。1.523微秒(2)在系统增加了快表后,在快表中找到页表项的概 率为85,所以实现一次页面访问的存取时间为:0.85 1.5+(1-0.85) 2 1.5=1.725微秒,5.6.4 存储保护和共享,1、保护系统程序区不被用户侵犯(有意或无意的) 2、不允许用户程序读写不

14、属于自己地址空间的数据 (系统区地址空间,其他用户程序的地址空间),返回,一、存储保护的目的,由于存储保护检查是针对每个存储访问操作进行的,必须有相应的处理器硬件机构支持。,1、界限保护 (上界/下界寄存器或基址/限长寄存器)所有访问地址必须在上下界之间;每个进程都有 自己独立的进程空间,如果一个进程在运行时所产 生的地址在其地址空间之外,则发生地址越界。当 程序要访问某个内存单元时,由硬件检查是否允 许,如果允许则执行,否则产生地址越界中断,由 操作系统进行相应处理。,二、存储保护类型,界限保护,2、访问方式保护(保护键)通过保护键匹配来判断存储访问方式是否 合法。对于允许多个进程共享的存储

15、区域,每 个进程都有自己的访问权限。如果一个进程对 共享区域的访问违反了权限规定,则发生操作 越权(即读写保护)。对每个内存区域指定一个 键值和若干禁止的访问方式,进程中也指定键 值,如果访问时键值不匹配而且是被禁止的访 问方式,则出错;,保护键,1、每个存储块有一个由二进制位组成的存储保护键。 2、一用户作业被允许进入主存,OS分给它一个唯一的 存储键号,并将分配给该作业各存储块存储键也置成同 样键号。 3、当OS挑选该作业运行时,OS将它的存储键号放入程 序状态字PSW存储键(“钥匙”)域中。 4、每当CPU访问主存时,都将该主存块的存储键与 PSW中的“钥匙”进行比较。 5、如果相匹配或

16、存储块未受到保护,则允许访问,否 则,拒绝并报警。,保护键,正确访问 LOAD 1,5000;非读保护 STORE 2,5200;开关字键匹配,非正确访问 LOAD 1,2500;出错,开关字键不匹配,5.6.5 虚拟存储的置换算法,把未来不再使用的或短期内较少使用的页面调出, 通常只能在局部性原理指导下依据过去的统计数据进 行预测; 页面锁定(frame locking):用于描述必须常驻内存的 操作系统的关键部分或时间关键(time-critical)的应用 进程。实现方法为在页表中加上锁定标志位(lock bit)。,返回,一、目标,最佳算法(OPT, optimal) 最近最久未使用算

17、法(LRU, Least Recently Used) 先进先出算法(FIFO) 轮转算法(clock) 最不常用算法(LFU, Least Frequently Used),二、常用算法,1、最佳算法(OPT) (理想型淘汰算法),选择“未来不再使用的”或“在离当前最远位置上出现的”页面被置换。这是一种理想情况,是实际执行中无法预知的,因而不能实现。可用作性能评价的依据。,2、最近最久未使用算法 (LRU, Least Recently Used),一个特殊的栈:把被访问的页面移到栈顶,于是栈底的是最久未使用页面。 每个页面设立移位寄存器:被访问时左边最高位置1,定期右移并且最高位补0,于是

18、寄存器数值最小的是最久未使用页面。,选择内存中最久未使用的页面被置换。这是局部性原理的合理近似,性能接近最佳算法。但由于需要记录页面使用时间的先后关系,硬件开销太大。硬件机构如:,3、先进先出算法(FIFO),选择建立最早的页面被置换。可以通过链表来 表示各页的建立时间先后。性能较差。较早调入的页往往是经常被访问的页,这些页在FIFO算法下被反复调入和调出。有Belady现象。,(1)Belady现象:采用FIFO算法时,如果对一个进程 未分配它所要求的全部页面,有时就会出现分配的页面 数增多,缺页率反而提高的异常现象。 (2)Belady现象的原因:FIFO算法的置换特征与进程 访问内存的动

19、态特征是矛盾的,即被置换的页面并不是 进程不会访问的。,(3)Belady现象的例子,进程P有5页程序,访问页的顺序为:1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5;如果在内存中分配3个页面,则缺页情况如下:12次访问中有缺页9次;,如果在内存中分配4个页面,则缺页情况如下:12次访问中有缺页10次;,4、轮转算法(clock),每页有一个使用标志位(use bit),若该页被访问则置user bit=1。 将用于替换的页面集合被看作是一个循环缓冲区,并且有一个指针与之相连,置换时从当前指针位置开始按地址先后检查各页,寻找use bit=0的页面作为被置换页。 指针经过

20、的user bit=1的页都修改user bit=0,最后指针停留在被置换页的下一个页。,也称最近未使用算法(NRU, Not Recently Used),它是LRU(最近最久未使用算法)和FIFO的折衷。,当页727要进入时,在从缓冲区中替换一页之前,下一帧指针指向含有页45的帧。,替换前:,替换后:,5、最不常用算法(LFU, Least Frequently Used),选择到当前时间为止被访问次数最少的页面被置换; 每页设置访问计数器,每当页面被访问时,该页面的访问计数器加1; 发生缺页中断时,淘汰计数值最小的页面,并将所有计数清零;,OPT 4 3 2 1 4 3 5 4 3 2

21、1 5 页1 4 4 4 4 4 2 2 页2 3 3 3 3 3 1 页3 2 1 5 5 5X X X X X X X,共缺页中断7次,6、置换算法举例,某程序在内存中分配三个页面,初始为空,页面走向为4,3,2,1,4,3,5,4,3,2,1,5。,LRU 4 3 2 1 4 3 5 4 3 2 1 5 页1 4 4 4 1 1 1 5 2 2 2 页2 3 3 3 4 4 4 4 1 1 页3 2 2 2 3 3 3 3 5X X X X X X X X X X,共缺页中断10次,FIFO 4 3 2 1 4 3 5 4 3 2 1 5 页1 4 4 4 1 1 1 5 5 5 页2

22、3 3 3 4 4 4 2 2 页3 2 2 2 3 3 3 1 X X X X X X X X X,共缺页中断9次,1、某系统采用页式存储管理策略,拥有逻辑空间32页,每页2K,拥有物理空间1M。 (1)写出逻辑地址的格式。 (2)若不考虑访问权限等,进程页表有多少项?每项有多少位? (3)如果物理空间减少一半,页表结构应相应作怎样的改变?,本 章 习 题,(1)写出逻辑地址的格式。 该系统拥有逻辑空间32页,故逻辑地址中页号必须用5位来描述;而每页为2K,页内地址必须用11位来描述。15 11 10 0,(2)若不考虑访问权限等,进程页表有多少项?每项有多少位? 每个进程最多有32个页,因

23、此,进程的页表最多为32项;若不考虑访问权限等,则页表项中只需给出页所对应的物理块块号,1M的物理空间可分成29个内存块,故每个页表项至少有9位。 (3)如果物理空间减少一半,页表结构应相应作怎样的改变? 页表中页表项数仍不变,但每项的长度可减少1位。,2、已知某分页系统,主存容量为64K,页面大小为1K,对一个4页大的作业,其0、1、2、3页分别被分配到主存的2、4、6、7块中。 (1)将十进制的逻辑地址1023、2500、3500、4500转换成物理地址。 (2)以十进制逻辑地址1023为例画出地址变换过程。,答:(1)逻辑地址1023,页号为0,页内地址为1023,查页表,物理地址为21K+1023=3071 逻辑地址2500,页号为2,页内地址为452,查页表,物理地址为61K+452=6596 逻辑地址3500,页号为3,页内地址为428,查页表,物理地址为71K+428=7596 逻辑地址4500,页号为4,页内地址为404,因页号不小于页表长度,故产生地址越界中断。,(2)以十进制逻辑地址1023为例画出地址变换过程。,页表寄存器,逻辑地址1023,地址越界,物理地址3071,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报