【精品】【考研计算机专业课】武汉大学操作系统PPT课件 第6章 虚拟存储器精品ppt课件.ppt
《【精品】【考研计算机专业课】武汉大学操作系统PPT课件 第6章 虚拟存储器精品ppt课件.ppt》由会员分享,可在线阅读,更多相关《【精品】【考研计算机专业课】武汉大学操作系统PPT课件 第6章 虚拟存储器精品ppt课件.ppt(141页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【考研计算机专业课】武汉大学操作系统PPT课件 第6章 虚拟存储器6.1 虚拟存储器概念虚拟存储器概念n虚拟存储器(Virtual Memory)的理论基础是程序执行时的局部性原理。n局部性原理是指程序在执行过程中一个较短时间内,程序所执行的指令地址和操作数地址分别局限于一定区域内。n例如:n除转移和过程调用外,程序主要是顺序执行。n过程调用使程序从一部分区域转至另一部分区域n循环结构局部性的体现n局部性体现为:n时间局部性:一条指令的一次执行和下次执行,一个数据的一次访问和下次访问,都集中在一个较短时间内。n空间局部性:当前执行的指令和将要执行的指令,当前访问的数据和将要访问的数据,都集中在
2、一个较小范围内。虚拟存储器的基本原理n在程序运行之前,将程序的一部分放入内存后就启动程序执行。n在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然后继续执行程序。n另一方面,操作系统将内存中暂时不使用的内容换出到外存上,从而腾出空间存放将要调入内存的信息。n从效果上看,这样的计算机系统好像为用户提供了一个存储容量比实际内存大得多的存储器,将这个存储器称为虚拟存储器。虚拟存储器n虚拟存储器是指具有请求调入和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。n虚拟存储器是一种以时间换空间的技术。实现虚拟存储技术的物质基础n相当数量的外存:足以存放多个用户的程序。
3、n一定容量的内存:在处理机上运行的程序必须有一部分信息存放在内存中。n地址变换机构:动态实现逻辑地址到物理地址的变换。虚拟存储器的实现方法n常用的虚拟存储技术有:n请求分页存储管理n请求分段存储管理n具有请求调页功能的段页式存储管理系统6.2 请求分页存储管理-6.2.1n请求分页存储管理方法是在分页存储管理的基础上增加了请求调页和页面置换功能。n实现思想:在作业运行之前只装入当前需要的一部分页面便启动作业运行。在作业运行过程中,若发现所要访问的页面不在内存,便由硬件产生缺页中断,请求OS将缺页调入内存。若内存无空闲存储空间,则根据某种置换算法淘汰已在内存的某个页面,以腾出内存空间装入缺页。请
4、求分页系统中的支持机构请求分页系统中的支持机构n请求分页中的支持机构有:n页表n缺页中断机构n地址变换机构n请求调页和页面置换软件6.2.2 页表n请求分页系统中使用的主要数据结构仍然是页表。n但由于每次只将作业的一部分调入内存,还有一部分内容存放在磁盘上,故需要在页表中增加若干项。n扩充后的页表项如下所示:扩充后的页表项n页号和物理块号:其定义同分页存储管理。n状态位:用于表示该页是否在主存中。n访问字段:用于记录本页在一段时间内被访问的次数,或最近已有多长时间未被访问。n修改位:用于表示该页调入内存后是否被修改过。n外存地址:用于指出该页在外存上的地址。页号页号 物理块号物理块号 存在位存
5、在位 访问字段访问字段修改位修改位 外存地址外存地址6.2.3 缺页中断与地址变换缺页中断与地址变换n在请求分页系统中,当所访问的页不在内存时,便产生缺页中断,请求OS将缺页调入内存。n缺页中断处理程序根据该页在外存的地址把它调入内存。在调页过程中,若内存有空闲空间,则缺页中断处理程序只需把缺页装入并修改页表中的相应项;若内存中无空闲物理块,则需要先淘汰内存中的某些页,若淘汰页曾被修改过,则还要将其写回外存。缺页中断与一般中断的区别缺页中断与一般中断的区别n缺页中断与一般中断的区别主要有:n在指令的执行期间产生和处理缺页中断。n一条指令可以产生多个缺页中断。如:执行一条复制指令copy A t
6、o Bn缺页中断返回时执行产生中断的指令,一般中断返回时执行下条指令 B:A:Copy A To B页面654321地址变换n请求分页存储管理系统的地址变换过程类似于分页存储管理,但当被访问页不在内存时应进行缺页中断处理。地址变换流程程序请求访问一页页号页表长度?页在内存?YNCPU检索快表Y修改快表页表项在快表中?产生缺页中断N访问页表越界中断NY修改访问位和修改位形成物理地址 A缺页处理流程缺页中断处理保留CPU现场该页被修改否?从外存中找到缺页N将该页写回外存内存满否?Y选择一页换出NY从外存读缺页入内存修改页表 A6.2.4 页面分配和置换策略页面分配和置换策略 n在为进程分配物理块时
7、应确定在为进程分配物理块时应确定:n进程需要的最少物理块数进程需要的最少物理块数n进程的物理块数是固定还是可变进程的物理块数是固定还是可变n按什么原则为进程分配物理块数按什么原则为进程分配物理块数最小物理块数的确定最小物理块数的确定n最小物理块数是指能保证进程正常运行所需的最少物理块数,若小于此值进程无法运行。n一般情况下:n单地址指令且采用直接寻址,则所需最少物理块数为2。n若单地址指令且允许采用间接寻址,则所需最少物理块数为3。n某些功能较强的机器,指令及源地址和目标地址均跨两个页面,则最少需要6个物理块。页面分配和置换策略页面分配和置换策略 n页面分配常采用固定分配和可变分配两种策略。n
8、页面置换也有全局置换和局部置换两种策略。n将分配策略和置换范围组合可得如下三种策略:n固定分配局部置换n可变分配全局置换n可变分配局部置换固定分配局部置换n固定分配局部置换:基于某种原则为每个进程分配固定数量的物理块,当进程运行中出现缺页时,只能从自己的页面中选择一页换出,然后再调入缺页。n实现这种策略的困难在于:难以确定应为每个进程分配多少个物理块。可变分配全局置换n可变分配全局置换:先为系统中的每个进程分配一定数量的物理块,操作系统本身也保持一个空闲物理块队列。当某进程发生缺页时,由系统从空闲物理块队列中取出一个物理块分配给该进程;当空闲物理块队列中的物理块用完时,操作系统才从内存中选择一
9、页调出,该页可以是系统中任何一个进程的页面。n这是一种容易实现的页面分配和置换策略,目前已用于若干操作系统中。可变分配局部置换n可变分配局部置换:根据某种原则为每个进程分配一定数量的物理块,当进程发生缺页中断时,只允许从该进程的页面中选出一页换出。如果某进程的缺页率较高,则系统再为该进程分配若干物理块;反之若某进程的缺页率特别低,则系统可适当减少分配给该进程的物理块数。n该算法比较复杂,但性能较好。物理块分配算法物理块分配算法n物理块分配是指按什么原则给进程分配物理块数,通常有以下几种分配算法:n平均分配算法:将系统中所有可供分配物理块平均分配给每个进程。n按比例分配算法:根据进程大小按比例分
10、配物理块。n按优先级分配算法:有两种实现方案n将可供分配的物理块分为两部分,一部分按比例分配给每个进程,另一部分根据进程的优先级适当增加物理块。n先按比例为进程分配物理块,当高优先级进程发生缺页时,允许它从低优先级进程处获得物理块。6.2.5 页面置换算法页面置换算法n页面置换(Page Replacement)算法又称为页面淘汰算法,是用来选择换出页面的算法。n下面介绍几种比较常用的页面置换算法。1最佳置换算法(OPT)n最佳(Optimal)算法是从内存中选择将来最长时间不会使用的页面予以淘汰。n特点:因页面访问的未来顺序很难精确预测,该算法具有理论意义,可以用来评价其他算法的优劣。最佳置
11、换算法例n假定系统为某进程分配了3个物理块,页面访问序列为:1、2、3、4、1、2、5、1、2、3、4、5,开始时3个物理块均为空闲,采用最佳置换算法时的页面置换情况如下所示:采用最佳置换算法的页面置换情况n从上表中可以看出,共发生了7次缺页,其缺页率为7/1258.3%。5缺 5 4 3 4缺 5 2 3 3 2 1缺 5 2 1 5 2 1缺 4 2 1 4缺 3 2 1 3缺 2 1 2缺 1 1 块3 块2 块1走向2.先进先出算法(FIFO)n先进先出(First-In-First-Out)算法是选择调入主存时间最长的页面予以淘汰。n特点:该算法实现比较简单,对按线性顺序访问的程序比
12、较合适,但可能产生异常现象。很少使用纯粹的FIFO。nBelady现象:在某些情况下,分配给进程的页面数增多,缺页次数反而增加。先进先出置换算法例n假定系统为某进程分配了3个物理块,页面访问序列为:1、2、3、4、1、2、5、1、2、3、4、5,开始时3个物理块均为空闲,采用先进先出置换算法时的页面置换情况如下所示:采用先进先出算法的页面置换情况n从上表中可以看出,共发生了9次缺页中断。其缺页率为9/1275%。5缺 4 3 5 4缺 2 3 5 3 2 1缺 2 1 5 5缺 2 1 4 2缺 3 1 4 1缺 3 2 4 4缺 3 2 1 3缺 2 1 2缺 1 1 块3 块2 块1走向为
13、进程分配4个物理块n从上表中可以看出,共发生了10次缺页中断。其缺页率为10/1283.3%。3 3 3 4 4 4 4 块4缺 2 5 4 5缺 2 1 4 4缺 2 1 5 3缺 2 1 5 2缺 3 1 5 1缺 3 2 5 5 2 1缺 3 2 1 4缺 3 2 1 3缺 2 1 2缺 1 1 块3 块2 块1走向无异常现象的页面序列n假定系统为某进程分配了3个物理块,页面访问序列为:7、0、1、2、0、3、0、4、2、3、0、3,开始时3个物理块均为空闲,采用先进先出置换算法时的页面置换情况如下所示:页面置换情况n从上表中可以看出,共发生了10次缺页中断。其缺页率为10/1283.3
14、%。3缺 3 2 0 0缺 3 2 4 3缺 0 2 4 2缺 0 3 4 4缺 0 3 2 0缺 1 3 2 3 0缺 1 0 2 2缺 1 0 7 1缺 0 7 0缺 7 7 块3 块2 块1走向为进程分配4个物理块n从上表中可以看出,共发生了7次缺页中断。其缺页率为7/1258.3%。2 2 2 2 块4 3缺 0 4 3 0 3 2缺 1 4 3 4 0缺 1 0 3 3 0缺 1 0 7 2缺 1 0 7 1缺 0 7 0缺 7 7 块3 块2 块1走向3.最近最久未使用置换算法(LRU)n最近最久未使用算法选择最近一段时间内最长时间没有被访问过的页面予以淘汰。n为此,应赋予每个页面
15、一个访问字段,用于记录页面自上次访问以来所经历的时间。nLRU是Least Recently Used,也称为最近最少使用LRU算法例n假定系统为某进程分配了3个物理块,页面访问序列为:1、2、3、4、1、2、5、1、2、3、4、5,开始时3个物理块均为空闲,采用LRU置换算法时的页面置换情况如下所示:采用LRU算法的页面置换情况n从上表中可以看出,共发生了10次缺页,其缺页率为10/1283.3%。缺 5 4 3 5缺 2 4 3 4缺 2 1 3 3 2 1缺 2 1 5 5缺 2 1 4 2缺 3 1 4 1缺 3 2 4 4缺 3 2 1 3缺 2 1 2缺 1 1 块3 块2 块1走
16、向为进程分配4个物理块n从上表中可以看出,共发生了8次缺页中断。其缺页率为8/1266.7%。3 3 3 4 4 块4缺 4 2 5 5缺 4 2 1 4缺 5 2 1 3 2 1缺 5 2 1 5 2 1缺 3 2 1 4缺 3 2 1 3缺 2 1 2缺 1 1 块3 块2 块1走向LRU算法的实现nLRU算法实现时需要较多的硬件支持,以记录进程中各页面自上次访问以来有多长时间未被访问。下面介绍几种实现方法。n链表法n计数器法链表法n用一个单链表保存当前进程所访问的各页面号,刚使用过的页面放表尾,则表头一定是最近最久未使用的页面。n实现思想为:n当分配给进程的物理块未用完时,则将进程装入内
17、存的页面按先后顺序构成一个链表n当进程访问的页面在内存时,将页面从链表中移出放到表尾n当进程访问的页面不在内存时,则发生缺页中断,将表头页面置换链表法例n例如:设分配给某进程4个物理块,页面访问序列为:3、2、4、1、5、4、3、2,用单链表实现LRU算法的过程如下:3head 2 4 1 2head 4 1 5 2head 1 5 4 1head 5 4 3 5head 4 3 2 计数器法n为每个页面配置一个计数器(Counter),其初值为0。当进程访问某页时,将计数器的最高位置1,定时器每隔一定时间将计数器右移1位,则数值最小的页是最近最久未使用的页面。计数器法(续)R页面页面 R7
18、R6 R5 R4 R3 R2 R1 R0 1 2 3 4 5 6 7 8 0 1 1 0 1 0 0 0 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1最近最久未使用的页是?7 0 0 0 0 0 1 1 14.其他页面置换算法-二次机会算法n二次机会(Second-Chance)算法是FIFO算法的改进,以避免将经常使用的页面淘汰掉。为此设置了页面引用位。n算法思想:使用FIFO算法选择一页淘汰时,先检查该页的引用位,
19、如果是0就立即淘汰该页,如果是1就给它第二次机会,将其引用位清0,并将它放入页面链的末尾,将其装入时间置为当前时间,然后选择下一个页面。简单时钟(clock)算法n简单时钟置换算法既是对二次机会算法的改进,也是对LRU算法的近似。该算法也要求为每页设置一个访问位。n实现思想:将页面排成一个循环队列,类似于时钟表面,并使用一个置换指针。当发生缺页时,检查指针指向的页面,若其访问位为0则淘汰该页,否则将该页的访问位清0,指针前移并重复上述过程,直到找到访问位为0的淘汰页为止。最后指针停留在被置换页的下一页上;n该算法也称为最近未使用(Not Recently Used,NRU)算法。简单时钟置换算
20、法页面链简单时钟置换算法页面链 块号块号 页号页号 访问位访问位 指针指针 0 1 2 4 0 3 4 2 1 5 6 5 0 7 1 1替换指针替换指针简单时钟置换算法流程入口指针前进一步返回指针所指页面访问位=0?N选择该页面淘汰Y置页面访问位为0指针前进一步页面置换情况n从上表中可以看出,共发生了9次缺页中断。其缺页率为9/1275%。0*23*3缺0*2 4 0 3*2*4*3缺 3 2*4*2缺 3 0 4*4 3*0*2*0缺 3*0 2*3 0缺 1 0 2*2缺 1*0*7*1缺0*7*0缺7*7 块3 块2 块1走向 1 0*2*缺改进的时钟算法改进的时钟算法n将一个修改过的
21、页面换出需要写磁盘,其开销大于未修改页面。为此在改进型时钟算法中应考虑页面修改情况。设R为访问位,U为修改位,将页面分为以下4种类型:n1类(R=0,U=0):未被访问又未被修改n2类(R=0,U=1):未被访问但已被修改n3类(R=1,U=0):已被访问但未被修改n4类(R=1,U=1):已被访问且已被修改改进型时钟算法描述n从指针当前位置开始扫描循环队列,寻找R=0,U=0的页面,将满足条件的第一个页面作为淘汰页。n若第1步失败,则开始第2轮扫描,寻找R=0,U=1的页面,将满足条件的第一个页面作为淘汰页,并将所有经历过页面的访问位置0。n若第2步失败,则将指针返回到开始位置,然后重复第1
22、步,若仍失败则必须重复第2步。此时一定能找到淘汰页面。n特点:减少了磁盘I/O次数,但算法本身开销增加。最不常用算法(LFU)n最不常用算法选择到当前时间为止访问次数最少的页淘汰。n该算法要求为每页设置一个访问计数器,每当页被访问时,该页的访问计数器加1。发生缺页中断时,淘汰计数值最小的页面,并将所有计数器清零。页面缓冲算法n页面缓冲(Page-Buffering)算法是FIFO算法的发展。n页面缓冲置换算法采用FIFO选择被置换页面,选择出的页面不是立即换出,而是放入两个链表之一。页面缓冲算法描述n算法采用FIFO选择淘汰页,规定将淘汰页放入两个链表之一:n空闲链:页面未修改则放入空闲链末尾
23、n修改链:页面已修改则放入修改链末尾n当需要访问一个页面时,若该页在上述两个队列中,则只要将该页面从队列中移出,否则用空闲链的第一个物理块装入该页。当修改链中的页面数达到一定值时,再将它们一次写回磁盘,然后将它们加入空闲页面链表中。6.2.6页面大小选择与影响缺页率因素n页面大小的选择涉及诸多因素,需要在这些因素之间权衡利弊。n页内碎片问题:页面越大,碎片越大。依此应选择小页面。n内外存传输:大小页面传输时间基本相同,依此应选择大页面。n页表大小:页面越小,页表越长。依此应选择大页面。n页面大小与主存关系:主存大则页面大。页面大小选择的分析n设系统内每个进程的平均长度为s,页面大小为p,每个页
24、表项需e个字节。n每个进程页表长度:s/pn每进程碎片的平均大小:p/2n每进程浪费的空间为:se/p+p/2n页表占用空间:se/pn对p求导数:=1/2-se/p2n令导数为0求最小值:1/2s-e/p2=0n则页面大小为:p=2es时,f最小。页面大小选择的分析(续)n考虑其他因素,商用计算机的页面尺寸多在512B到8KB之间。影响缺页率的因素n主存块数:分配的主存块数越多,缺页率越低n页面大小:在页面数一定的情况下,页面大则缺页率低。n页面置换算法:页面置换算法的优劣影响缺页中断率n程序特性:好的程序结构可以降低缺页率。程序结构对缺页率影响例n设页面大小为128字节,二维数组为1281
25、28,初始时未装入数据,需将数组初始化为0。若数组按行存放,问下述两个程序段的缺页率各为多少?n程序1 程序2 short int a128128;for(j=0;j=127;j+)for(i=0;i=127;i+)for(i=0;i=127;i+)for(j=0;j=127;j+)aij=0;aij=0;程序1的缺页次数n因数组以行为主存放,页面大小为128字节,故每行占一个页面。n程序1的内层循环将每行中的指定列置为0,故产生128次中断。n外层循环128次,总缺页次数为128128。n程序1 short int a128128;for(j=0;j=127;j+)for(i=0;i=127
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 考研计算机专业课 【精品】【考研计算机专业课】武汉大学操作系统PPT课件 第6章 虚拟存储器精品ppt课件 考研 计算机 专业课 武汉大学 操作系统 PPT 课件 虚拟 存储器
限制150内