计算机操作系统.ppt
《计算机操作系统.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统.ppt(79页珍藏版)》请在课桌文档上搜索。
1、主要内容:4.5.1虚拟存储管理的概念4.5.2请求分页虚拟存储管理4.5.3请求分段虚拟存储管理4.5.4请求段页式虚拟存储管理,4.5 虚拟存储管理,4.5.1 虚拟存储管理的概念(1),前面介绍的连续的(分区)、离散的(分页和分段)存储管理方式均是将程序一次性全部装入内存后才能运行,在下面情况下:(1)一个特别大的作业,不能够一次装入内存(2)有大量作业在外存上等待运行,而又没有足够大的内存容纳这些作业,只能将少量作业装入内存运行,大量的作业在外存上等待,解决办法:(1)可以从物理上扩大内存(2)逻辑上扩充内存,即虚拟内存技术,4.5.1 虚拟存储管理的概念(2),分析:较小的一段时间内
2、,整个作业空间中只有某一局部模块的指令和数据会被执行和访问到.作业其它部分暂时不会访问到.这就允许这部分暂时不用的作业部分不必占据内存空间,可以先留在外存上,待以后需要访问时再装入内存.内存中一些暂时不用的部分还可以临时调出到外存上,这样就可将内存空间优先分配给当前急需使用的作业进程,能够提高内存利用率.,部分装入即可运行,运行过程中作业的部分可以在内外存之间对换(部分对换),从逻辑上扩充内存容量,使得程序员的编程空间大于内存容量,这就是虚拟存储管理的主要思想.,4.5.1 虚拟存储管理的概念(3),虚拟存储器的定义:在具有层次结构存储器的计算机系统中,采用自动实现部分装入和部分对换功能,为用
3、户提供一个比物理内存容量大得多的,可寻址的一种“内存储器”。虚拟存储器的容量取决于计算机的地址结构和可用的物理内存和外存的容量之和。虚拟存储器是为扩大主存而采用的一种设计技巧,它的容量与主存大小无直接关系,而受限于计算机的地址结构及可用的辅助存储器的容量。,虚拟存储器引入的基础是程序执行的局部性原理。程序执行的局部性是指在一段时间内,程序访问的存储空间仅限于某个区域(这称为空间局部性),或者最近访问过的程序代码和数据很快会再被访问(这称为时间局部性)。,4.5.1 虚拟存储管理的概念(4),第一,程序中只有少量分支和过程调用,大都是顺序执行的指令。第二,程序包含若干循环,是由相对较少的指令组成
4、,在循环过程中,计算被限制在程序中很小的相邻部分中。第三,很少出现连续的过程调用,相反,程序中过程调用的深度限制在小范围内,一段时间内,指令引用被局限在很少几个过程中。,第四,对于连续访问数组之类的数据结构,往往是对存储区域中相邻位置的数据的操作。第五,程序中有些部分是彼此互斥的,不是每次运行时都用到的,如出错处理程序。,4.5.1 虚拟存储管理的概念(5),4.5.1 虚拟存储管理的概念(6),实现虚拟存储器必须解决好以下有关问题:主存辅存统一管理问题逻辑地址到物理地址的转换问题部分装入和部分对换问题虚拟存储器的实现方法主要有:请求分页式、请求分段式和请求段页式虚拟存储管理。,4.5.2 请
5、求分页虚拟存储管理(1),主要内容一、分页式虚拟存储系统的硬件支撑二、请求分页虚拟存储系统的基本原理三、页面装入策略和清除策略四、页面分配策略五、页面替换策略六、请求分页虚拟存储管理的几个设计问题,4.5.2 请求分页虚拟存储管理(2),1.分页式虚拟存储系统的硬件支撑需要内存管理部件MMU(主存管理部件).MMU通常由一个或一组芯片组成,它接受虚拟地址(逻辑地址)作为输入,输出物理地址。它的主要功能主要有:管理硬件页表基址寄存器:负责装入将要占用处理器的进程的页表。分解逻辑地址为页号和页内地址,4.5.2 请求分页虚拟存储管理(3),管理快表:查找快表、装入表目和清除表目访问页表当要访问的页
6、面不在内存时发出缺页中断,页面访问越界时发出越界中断。设置和检查页表中的状态位、访问字段、修改位、保护权限等,4.5.2 请求分页虚拟存储管理(4),4.5.2 请求分页虚拟存储管理(5),2.请求分页系统的基本原理在进程开始运行之前,不是装入全部页面,而是装入一个或几个页面,进程运行过程中,访问的页面不在内存时,再装入所需页面;若内存空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便装入新的页面。,怎样才能发现页面不在内存中呢?怎样处理这种情况呢?采用的办法是:扩充页表的内容,增加驻留标志位和页面辅存的地址等信息。,页表机制,4.5.2 请求分页虚拟存储管理(6),请求分页的
7、地址变换过程:当进程被调度到CPU上运行时,操作系统自动把该进程PCB中的页表始址装入到硬件页表基址寄存器中,此后,进程开始执行并要访问某个虚拟地址,内存管理部件MMU开始工作:,MMU接受CPU传送过来的虚地址并分解为两部分:页号和页内地址;以页号为索引搜索快表;如果命中快表,则立即送出物理块号(页框号),并与页内地址拼接形成物理地址,然后访问相应内存单元;,4.5.2 请求分页虚拟存储管理(7),如果不命中快表,则以页号为索引搜索内存页表,页表的基址由硬件页表寄存器指出;在页表中查找相应表项,如果其状态位指示该页已在内存,则送出物理块号与页内地址拼接形成物理地址访问相应内存单元,同时要将该
8、表项装入快表;如果在页表中找到的相应表项,其状态位指示该页不在内存,则发出缺页中断,请求操作系统处理;存储管理软件将所缺页面调入内存,修改页表。,4.5.2 请求分页虚拟存储管理(8),缺页中断处理过程如下:查看内存是否有空闲物理块,如有则可以装入页面到空闲物理块,同时修改页表相应项以及内存分配表;如果内存中没有空闲物理块,则按替换算法选择一个页面淘汰,若该页面被写过或修改过,则写回外存,否则只简单淘汰该页面。淘汰页面之后要修改页表相应项,然后调入页面到淘汰页面释放的物理块中。,4.5.2 请求分页虚拟存储管理(9)P261图,4.5.2 请求分页虚拟存储管理(10),4.5.2 请求分页虚拟
9、存储管理(11),3.页面装入策略和清除策略页装入策略决定何时把一个页面装入内存,有两种策略:请页式调入和预调式调入.请页式调入在需要访问程序和数据时,才把所在页面装入主存。缺点是处理缺页中断和调页的系统开销较大,每次仅调一页,增加了磁盘I/O次数。预调式调入由系统预测进程将要使用的页面,使用前预先调入主存,每次调入若干页面,而不是仅调一页。一次调入多页能减少磁盘I/O启动次数,节省寻道和搜索时间。,4.5.2 请求分页虚拟存储管理(12),清除策略考虑何时把一个修改过的页面写回外存,常用的方法是:请页式清除和预约式清除.请页式清除是仅当一页选中被替换,且之前它又被修改过,才把这个页面写回辅存
10、。预约式清除对所有更改过的页面,在需要之前就把它们都写回外存.页缓冲技术是更好的方法:在页缓冲中,淘汰了的页面进入两个队列:修改页面和非修改页面队列。修改页面队列中的页不时地成批写出并加入到非修改页面队列;非修改页面队列中的页面,当它被再次引用时回收,或者淘汰掉以作替换。,4.5.2 请求分页虚拟存储管理(13),4.页面分配策略系统为进程分配主存,需考虑因素:分给进程的空间越小,同一时间处于内存的进程就越多,至少有一个进程处于就绪态的可能性就越大如果进程只有小部分在主存里,即使局部性很好,缺页中断率还会增加.分给进程的内存超过一定限度后,再增加内存空间,不会明显降低进程的缺页中断率。,4.5
11、.2 请求分页虚拟存储管理(14),页面分配策略主要有两种:固定分配和可变分配固定分配使进程在生命周期中保持固定数目的物理块.进程创建时,根据进程类型和程序员的要求决定页框数,只要有一个缺页中断产生,进程就会有一页被替换。固定分配时,每个进程物理块的分配方式主要有:平均分配、按比例分配、考虑优先权的分配,进程分得的页框数可变,称可变分配;进程执行的某阶段缺页率较高,说明目前局部性较差,系统可多分些页框以降低缺页率,反之说明进程目前的局部性较好,可减少分给进程的页框数.固定分配缺少灵活性,而可变分配的性能会更好些,被许多操作系统采用。采用可变分配策略的困难在于操作系统要经常监视活动进程的行为和进
12、程缺页中断率的情况,会增加系统的开销。,页面替换策略也有两种:局部替换和全局替换.局部替换在进程发生缺页时仅从该进程的物理块中淘汰页面,以调入所缺页面;全局替换则在进程发生缺页时可从系统中任一进程的物理块中淘汰页面.页面分配和替换常用的组合策略有三种:固定分配局部置换、可变分配全局置换和可变分配局部置换.,可变分配和全局替换策略配合使用,先给每个进程分配一定数目页框,os保留若干空闲页框,进程发生缺页中断时,从系统空闲页框中选一个给进程,这样产生缺页中断进程的内存空间会逐渐增大,有助于减少系统的缺页中断次数。系统拥有的空闲页框耗尽时,会从内存中选择一页淘汰,该页可以是内存中任一进程的页面,这样
13、又会使那个进程的页框数减少,缺页中断率上升。,可变分配和局部替换配合使用,其实现要点如下:(1)新进程装入主存时,根据应用类型、程序要求,分配给一定数目页框,可用请页式或预调式完成这个分配。(2)产生缺页中断时,从该进程驻留集中选一个页面替换。(3)不时重新评价进程的分配,增加或减少分配给进程的页框以改善系统性能。经验表明:对每个程序,要使其有效工作,它在主存中的页面数不应低于它的总页面数的一半,4.5.2 请求分页虚拟存储管理(15),5.页面替换算法 页面替换主存空间已经用完,而又要装入新页时,必须把主存的一些页面调出去,叫页面替换。页面淘汰算法 确定被淘汰页的算法“抖动”(Thrashi
14、ng)(“颠簸”)现象 是淘汰算法不好而产生的一种现象。刚淘汰的页面又立即要用,又将其调入,然后再淘汰、再调入。浪费大量CPU的时间。,4.5.2 请求分页虚拟存储管理(16),假定作业p共计n页,系统分配给它的主存块只有m块(mn)。如果作业p在运行中成功的访问次数为S,不成功的访问次数(缺页次数)为F,则总的访问次数为:A=S+F又定义:f=F/A称f为缺页中断率。影响缺页中断率f的因素有:(1)主存页框数。(2)页面大小。(3)页面替换算法。(4)程序特性。,4.5.2 请求分页虚拟存储管理(17),程序要将128128的数组置“0”。分给的主存只一块,页面尺寸为每页128个字,数组中的
15、元素每行存放在一页中。若程序如下:Var A:array1.128 of array 1.128 of integer;for j:=1 to 128 do for i:=1 to 128 do Aij:=0总共产生(128*1281)次缺页中断。如果重新编制程序如下:Var A:array1.128 of array1.128 of integer;for i:=1 to128 do for j:=1 to 128 do Aij:=0 总共产生(1281)次缺页中断。,4.5.2 请求分页虚拟存储管理(18),调入一页而必须淘汰一个旧页时,所淘汰的页应该是以后不再访问的页或距现在最长时间后再
16、访问的页。几种页面替换算法:最佳页面算法(OPT、Belady算法)、先进先出页面淘汰算法(FIFO)、最近最久未使用页面淘汰算法(LRU)、Clock置换算法。这些算法都是基于系统对物理块的分配策略采用固定分配局部置换。,4.5.2 请求分页虚拟存储管理(19),1、最佳页面算法(OPT):调入一页而必须淘汰一个旧页时,所淘汰的页应该是以后不再访问的页或距现在最长时间后再访问的页。例:某程序在内存中分配三个页面,初始为空,页面走向为4,3,2,1,4,3,5,4,3,2,1,5。用最佳页面算法分析页面置换过程。,4.5.2 请求分页虚拟存储管理(20),共缺页中断7次,4.5.2 请求分页虚
17、拟存储管理(21),2、先进先出页面淘汰算法(FIFO):算法总是淘汰最先调入主存的那一页,或者说在主存中驻留时间最长的那一页(常驻的除外)。例:某程序在内存中分配三个页面,初始为空,页面走向为4,3,2,1,4,3,5,4,3,2,1,5。用先进先出页面算法分析页面置换过程。,4.5.2 请求分页虚拟存储管理(22),共缺页中断9次,4.5.2 请求分页虚拟存储管理(23),3、最近最久未使用页面淘汰算法(LRU):算法淘汰的页面是在最近一段时间里较久未被访问的那页。例:某程序在内存中分配三个页面,初始为空,页面走向为4,3,2,1,4,3,5,4,3,2,1,5。用最近最久未使用页面算法分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统
链接地址:https://www.desk33.com/p-262592.html