找回密码
 立即注册

微信扫码登录

使用验证码登录

搜索
查看: 71|回复: 0

15.第15节课第五章虚拟存储器

[复制链接]

6476

主题

3

回帖

1万

积分

管理员

积分
19556
发表于 2024-4-15 08:35:05 | 显示全部楼层 |阅读模式
那么接下来我们再看一下页面调度策略为了使进程能够正常的运行必须事先呢将执行的那部分程序和数据所在的页面呢调入内存,那么现在呢就有这样一些问题比如说系统应在何时调入所需页面以及呢系统应从何处调入这些页面以及呢系统呢应该如何调入页面,我们来看一下何时调入所需页面,这个时候呢有预调预测预调验策略以及呢请求调验策略那么为了确定系统将进程运行时所缺的页面调入页程的时机呢可以采用预调预策略或者请求调,预教育策略预教育策略呢如果进程的许多页是存放在外层的一个连续区域中一次调入若干个相邻的页呢会比一次教育一个页呢更加高效,但如果调入了一批页面中的大部分页呢都会被访问那么则又是低效的于是便采用一种以预测为基础的预调与测验预计那些在之后不久将会被访问的页呢预先调入内存,如果预测较准确那么这种策略那么比较适适当这样一个情况但是呢这样一个目前的这样一个使用的这样一个效果呢那么?什么是一种老板一种不太不太不太实现的这样一个好的这样一个运用的这样一个部分,那么我们看一下请求调研策略当系当进程在运行过程中需要访问某部分程序和数据时若发现其所在的页面呢不在内存,便立即停出请求由操作系统呢将其访所需的页面呢调入内存由请求调阅策略呢所确定调入的页呢一定是会被访问到的,再加上请求调阅策略呢比较容易实现所以在目前的虚拟存储器管理当中呢大多数采取的是请求调阅策略但这种策略呢每次只调入一页故所以呢花费了大量的系统开销,增加了磁盘io的这样一个启动频率,那么从何处调阅页面呢我们将请求分页系统的外存分为两部分用于存放文件的文件区和用于存放兑换页面的兑换区通常呢由于兑换区是采用连续分配方式,而文件区呢是采用离散分配方式那么这样呢所以兑奖兑换区的存储区呢,比文件区的,

io速度要高存储速度要高因此呢每当发生缺页请求时系统应该,从何处调入内存呢那么我们有,几种方式比如说可以分为几种情况进行第一种系统拥有足够的兑换区空间这是可以全部从兑换区调入所需页面以提高页面的速度以提高换页的速度,因此呢,在进程运行前便须将该进程有关的文件呢从文件去拷贝到兑换区第二个呢,第二种情况呢那么?是系统缺少足够的兑换空间但是这是凡是不会被修改的文件呢都直接从文件去调入当换出这些页面时呢由于它们未被修改则不必要呢将它们重新写到磁盘换出,以后再调入时呢则再从文件去直接调入但对于那些可能被修改的部分呢只让他们换出到换出时间必须调换到兑换区,以后呢需要时呢再从兑换区调入那么还有一种unix方式由于与进程有关的文件呢都被放在文件区那么?凡是未运行过的页面都应从文件去调入而对于曾经运行过但又被换出的页面由于是被换放在兑换区因此呢在下次调入时呢应从兑换区调入,由于操作系统呢允许页面共享因此呢某进程所请求的页面呢可能被其他进程调入内存因此呢无需再从兑换区调入那么这是我们的unix系统unix方式,好了我们看一下页面的调度过程每当程序要访问的页面未在内存时呢存在位为零并向cpu发出一个缺页中断,中断处理程序呢首先保留cpu环境分区中断后呢转入缺页中断处理程序该程序呢通过查找页表得到该页在外层中的物理块后,如果此时内存能够容纳新页便启动磁盘io将所缺页的调入内存然后修改页表如果内存已满则需按某种置换算法了从内存中选出一页准,被换出如果该页未被修改过则不必将该页写回磁盘如果该页呢已被修改那么则将它写回磁盘然后再把所缺的页的调入内存并修改页表中的相应表项,

并将此表表象呢写入块表在缺页调入内存后呢利用修改后的页表形成要访问数据的物理地址再去访问内存数据,整个页面的调入过程呢那么对用户呢是透明的这样一个应用的部分那么接下来呢我们看一下缺页率假设一个进程的逻辑空间为n页,系统呢为其分配的内存物理快速了mm小于n小于等于n如果在进程的运行过程中访问页面成功,那么就说即访问的页面在内存中的次数为s访问页面失败就说所访问的页面不在内存需要从外存调入的次数为f则该,进该进程访总的访问页面次数呢为s加f等于a则该进程在运行过程中的缺页率呢f就等于大f来除以a那么这样一个计算的方式,那么?通常呢血液率呢那么受到了几个因素的影响比如说页面大小的影响,进程所分配物理块的数目的影响页面置换算法的影响以及呢程序固有特性的这样一个影响,事实上呢在区域中断处理时由于空间的不足需要置换部分页面到外存时选择被置换页面呢还需要考虑到置换的代价比如说页面是否被修改过,没有被修改过的页面呢可以直接放弃而修改过的页面呢必须进行保存所以处理这两种情况的时间也是不同的我们假设被置换的页面的修改概率是beta,其缺页中断处理时间为ta被置换页面没有被修改过的缺页中断时间为tb那么缺页中断处理时间呢那么就是t等于beta乘以t乘以a,加上一减贝塔乘以tb那么这是我们的区域中转处理时间的这样一个部分接下来我们看一下页面置换算法,在进程运行过程中若其索要访问的页面不在内存而需把它们调入内存但内存已无空闲空间时为了保证进程能够正常运行呢,系统必须从内存中调入一页程序或者数据呢送到磁盘的兑换区中但是应该从哪个页面调出需根据一定的算法来确定那么通常呢把选择换出的页面呢称为页面置换算法,页面置换算法的好坏呢将直接影响我们的页面的性能那么就是说就是我们采取什么样的算法呢来进行页面置换就是说将我们内存中的哪一页,

换到我们的磁盘当中然后呢再将我们的这样一个需要的页面呢调入内存就说我们应该采取什么样的方式将我们内存中的某一页呢进行调出那么这就是我们的调,页面置换算法不适当的算法呢可能会发生抖动也就是说刚被置换出的页呢又要被访问比如让它重新调入这时又要再选出一页调入,此时刚被调出的页呢又要很快被访问又要将它调入如此频繁的更换页面呢致使一个进程在运行过程中把大部分时间都花在页面置换上了,这种情况呢我们就称为发生了抖动比如说一个进程在运行过程中把大部分时间呢都花在了页面的置换工作换进换出上那么我们就称呢该进程呢发生了抖动,一个好的页面置换算法呢应该具有较低的页面置换频率,应该将那些以后不再会访问的页面换出或者把那些较长时间内不再访问的页面换出,那么我们来看一下这些页面置换算法首先我们来看一下最佳置换算法最佳置最佳置换算法呢是越是提出的这样一种理论上的算法,说淘汰的页面呢是以后永不再使用的或者在未来最长时间内不再被访问的页面采用最佳算法了可以保证获得最低的缺页率但是目前人们还无法预知,哪一个页面,一个进程在内存中的若干页面中哪一个页面是未来最长时间不再被访问的因此呢该算法呢是无法实现的那么但可以呢用该算法来去评价其他算法比如说我们现在呢,来看一下一个例子利用最佳页面置换算法的这样一个置换图首先呢我们为这样一个进程呢分配三个物理块,那么这个页面的这样一个访问次序呢分别是七零一二零三零四二三零三二一二零一七零一那么首先呢访问的时候呢要访问七号页面,序号页面呢不在内存中我们就把它放从外存呢调入内存那么这个时候呢要访问零号页面零号页面呢不在内存中我们并且呢这个时候内存有空隙,内存有空闲的这样一个部内存有空闲我们就从将零号页面呢从外存呢调入内存那么接下来又要访问一号页面一号页面呢这个时候呢又从外存调入内存,接下来要访问二号页面二号页面要访问的时候呢将会产生缺页中断因为呢它不在内存中那么并且并不在内存中那么这个时候呢需要从外存调入内存,

那么这个时候呢操作系系统呢根据最佳页最佳置换算法呢选择页面七予以淘汰进行进行进行换出因为这里的,页面零呢将作为第五个被访问的页面那么页面一呢是这样一个第十接下来的要被访问的页面而页面七呢则是在最后接下来后面呢才会被调入那么下次访问,页面临时因为它在内存呢而不必产生确页中断而访问页面三时呢又将引起页面一被淘汰因此呢,现在的有的一二零三个页面中呢,将是以后最晚才被访问的那么这就是我们的最佳置换算法比如说要访问三的时候访问零的时候呢,零在页面中那么不必置换那么不产生缺页中断那么访问三的时候呢就把一换出访问零的时候呢又在页又在内存中访问四的时候呢就把零换出,访问二的时候在内存中访问三的时候在内存中再访问零的时候呢就把四换出那么访问三二,的时候呢都在内存中那么在访问一的时候呢那么时候时候呢那么在不在内存中就把三换出那么访问二零一的时候呢都在内存中在访问七的时候呢把二换出,那么接下来的访问零一呢都在内存中那么这是我们利用最佳置换算法最佳页面置换算法呢来进行置换的这样一个方式,接下来我们看一下先进先出fifo页面置换算法fifo算法呢是最早出现的置换算法该算法呢总是淘汰最先进入内存的页面,比如说在选择选择在内存中驻留时间最久的页面予以淘汰该算法的实践简单只需要把一个进程呢调入内存的页面呢按先后次序来连成一个队列,并设置一个指针称为替换指针使它总指向最最之前的页面,但该算法呢与进程的实际运行的规律不相适应那么因为在进程中呢有些进程呢有些页面呢经常被访问比如说含有全局变量常用函数列成了的页面fifo算法呢并不能把并不能保证这些,页面不能被淘汰我们来看一下应用fifo置换算法时的置换图首先呢把七零一装入到我们的内存中那么当第,进程第一次访问页面二的时候呢由于那么由于呢七是最早进入内存的所以呢我们把第七页换出那么在访问,

要要访要访问页面三的时候呢又把,又把零换出,那么再访问零的时候呢,再把一换出那么依次呢后面进行这样一个置换的这样一个方式就是说fifo算法呢总是将最先进入内存的页面了也就说在内存中驻留时间最久的页面,呢那么予以置换那么进行置换那么这是我们ffo先进先出置换算法的这样一个方式接下来我们看一下最近最久未使用和最少使用置换算法,lu lru置换算法ffo算法的性能之所以较差是它所依据的条件呢是各个页面调入内存的时间,页面调入的先后呢并不能反映页面使用情况最近最久未使用rr u页面置换算法了是根据页面调入内存后的使用情况来做出这样一个决策的,那么我们来看一下lru置换算法lru算置换算法呢是选择最近最久未使用的页面呢进行置换该算法呢赋予每个页面一个访问字段用来记录一个页面呢置,上次以来访问的所经历的时间t每当需要置换一个页面时呢就选择当前现有页面中提其基值最大的也就是说最近最久未访问的页面呢进行,进行置换我们来看一下这样一个过程首先呢七零一装入我们的内存,那么我们再来看一下要访问二号页面的时候呢二号页面不在内存中这个时候产生缺页中断要从外层的调入一个页面二号页面的到内存中那么就要把内存中的一页呢换出去我们来看一下七零一,页面七零一这三个页面呢七呢是最近最久未被访问的那么所以将它置换出去,那么接下来呢我们要访问三号页面也产生一个区页中断那么三号页面呢,这个页面内存中的页面里页面一是最近最久未被使用的,页面第一页呢成为最近最久未使用的页那么把它置换出去,

那么接下来访问四那么在内存当中这三个页面呢二号页面呢是最近最久未使用的将它置换出去那么接下来访问二号页面把三号页面置换出去访问三号页面的时候把零号页面置换出去,访问零号页面的时候把四号页面切换出去访问一号页面的时候呢把零号页面切换出去访问零号页面的时候呢把三号页面切换出去再访问七号页面的时候呢把二号页面切换出去,那么这样呢我们lru算法呢是选择最近最久未使用的页面呢进行置换那么这是我们,利用最近的过去作为最近的将来的这样一个近似的这样一个查实实现了这样例行的这样一个运用的,产生了这样一个,实现情况的这样一个部分那么这是lru的置换算法那么lru置换算法的硬件支持呢有寄存器为了记录某进程在内存中各月的使用情况可以在每个页程中的页面配置一个移位寄存器然后表示r等于rn减一,rn减二一直到rn减三一直到rn减零当进程呢访问某物理块时要将相应进程区的rn减一呢制成一,每当定时信号的每隔一段时间呢将寄存器又移一位那么我们把n位寄存区的数呢看作一个整数那么具有最小数值的寄存器呢所对应的页面呢就是最近最久未使用的页面,那么我们可以利用一个特殊的债保存当前使用的各个页面的页面号每当进程访问某页面时呢便将该页面的页面号呢从债中移出将它压入债顶,因此呢债抵始终是最新被访问的编号而债抵了则是最近最久未使用页面的页面号,那么这是我们这样一个过程,我们再看一下最少使用再采用l,fu算法时因为在内存中的每个页面呢设置一个移位寄存器用来记录该页面的被访问的频率,该置换算法呢选择在最近时期最少使用的页面呢作为淘汰页,另外呢还有一个clock置换算法那么比如说我们简单的clock置换算法将利用简单的clock置换算法只需为每一位每页每置换一位访问位再将内存中所有的页面呢通过链接纸上进行一个循环队列,

那么进行我们这样一个clock这样一个访问位的这样一个置换算法的这样一个方式,那么我们再看一下页面缓冲算法那么?页面缓冲算法呢影响页面,换进换出的若干效率,那么影响页面质页面影响页面换出换出的若干效率在请求分页中呢由于进程在运行时呢经常会发生页面换进换出的情况,所以一个比较一个情况呢就是页面换进换出所付出的开销对系统的性能的产生很大的影响,好吧我们来看一下影响,页面换进换出效率的这些因素有页面置换算法写回频磁盘的频率以及呢读入内存的频率影响页面换进换出的效率因素有很多那么我们这些呢都是影响,页面换进换出的因素页面置换算法呢影响页面换进换出的效率的最重要的因素呢就是页面置换算法因为一个好的页面置换算法呢可以使进程在运行过程中具有较低的确页率从而可以减少,页面换进换出的开销,而我们看一下,写回磁盘的频率对于已经修改过的页面呢在其将其换入时应当写回磁盘如果是每采取每当有一个页面被换出时呢就将它写成磁盘的策略,则意味着每换出一个页面呢便要启动一次磁盘但如果在系统中已建立了一个已修改换出页面的链表对于每一个要被换出的页面呢系统暂可暂时不把它写为磁盘而是将它挂起在已修改的页面上,那么紧当被换出页面数目呢到达一定值的时候呢再将它们一起写回到磁盘上这样呢就减少了磁盘io的操作数或者说减少了修改页面换出的这样一个开销,第三个嘞是读入内存的频度,

读入内存的频率在设置了已修改或者已换出页面的链表之后在该链表上呢就暂时有一批装入数据的页面,如果有进程在这批数据上还未写为磁盘时的需要再次访问这些页面时就不需要从外层上调入而直接从已修改页面中列表中获取这样呢也可以减少,页面从磁盘读入内存的频率减少页面换进的开销或者说只需花费很小的开销了便使这些页面呢又回到进内该内存的注用局当中,好我们看一下页面缓冲算法pba pba算法呢是它的特点呢是显著的减少了页面,换季换出的频率使磁盘i的操作数呢减少因而呢减少了页面换季换出的开销那么正是由于换入换出的开销大幅度减少,才能使其采用一种较短暂的置换策略比如说先进先出它不需要特殊的硬件支持那么实践起来比较简单,那么就是说那么为了能够显著的降低页面换进换出的概率呢在列表中呢内存中呢设置了两个列表一个呢是空闲页面列表一个呢是,是我们修改页面列表接下来我们看一下访问内存的有效时间与基本分页,存储管理方式相同不同在请求分页管理方式中内存访问的有效时间呢不仅要考虑到访问页表和访问实际物理地址数据的时间还必须要考虑到缺页中断的处理时间,那么比如说我们,这样呢在具有块表机制的请求分页管理方式中呢那么具有,多种的具有几种方式的内存访问操作那么其有效访问时间呢计算公式呢也不相同比如说分为了被访问页在内存中,那么其对应的页表上也在快表中或者说被访问页在内存中其对应的页表上不在快表中以及呢被访问页不在内存中那么这样一些,情况的这样一些,用的时间的这样一个使用部分那么这是访问内存的有效时间这样一个运用的这样一个实实施的这样一个部分,

那么我们接下来看一下抖动与工作题那么由于请求分页虚拟存储系统的性能优越了在正常,运行的情况下它能有效的减少内存碎片提高处理器的利用率和吞吐量是目前最常用的一种系统但如果在系统运行过程中的进程太多进程在运行过程中呢会频繁的发生缺页情况,那么这个会对系统的性能呢产生很大的影响那么?所以呢还需要对请求分页系统呢做简单的这样一个做一下分析这样一个部分接下来我们看一下多道程序度与抖动,那么由于多到由于虚拟存储系统呢能从逻辑上扩大内存那么这个时候呢只需要装入一个进程的部分程序和数据便可以开始运行,所以人们希望在系统中呢能运用更多的进程去增加多道程序度以提高了处理器的利用率那么但是我们看一下处理器的实际利用率的这样一个部分,那么这个横这个横轴呢表示多道程序的数量那么多纵轴呢表示相应的处理器的利用率,那么随着进程数目的增加呢处理器的利用率开始增加但到到达某一个点的时候呢,那么增加速度呢就减慢那么当到达这个某某一个进程数的时候呢处理器的利用率到达最后最大以后呢开始进进行下降,那么当到达某一进程这样一个数量的这样一个数数值之后呢那么?利用率呢若再增加进程数利用率呢将加速下降趋近于零那么这是因为呢在系统中呢发生了抖动,发生抖动的根本原因呢是同时在系统中运行的进程太多由此分配给某一个进程的物理块太少,不能满足进程正常运行的基本要求那么使得在进程运行时呢频繁的出现这样一个,缺页,必须请求系统呢将所缺的页呢调入内存使得在系统中呢排队等待的页面呢调进调出的进程数的增加,

显然呢对磁盘的有效访问时间呢也也增那么对磁盘的有效访问时间呢也增加造成每个进程的大部分时间呢,用于页面的换进换出那么几乎不能再做有效的工作从而导致处理器的利用率呢急剧下降比趋于零我们称此次的进程呢是处于抖动状态那么是这样一个这样一个状态的这样一个部分那么这样一个状态的情况,那么是这样一个情绪的这样一直的这样一个情绪运行的情绪的这样一个,全员的这样一个运用的情况接下来我们看一下工作题工作题的基本概念呢就进程发生的缺页率和时间间隔与进程获得的物理快速有关,那么我们看一下进程获得的确定与物理快速的这样一个除了这样一个这样一个部分的这样一个运动观部分的这样一个,内容的这样一个部分,所谓的工作集呢是指在某段时间间隔内进程实际所要访问页面的集合虽然程序只有少量的几页了在内存中便可运行但为了较少的减少缺页,应将程序的全部工作集料装入内存中然而无法预先,事先预知程序呢在不同时刻访问哪些页面那么所以呢只能像置换算法那样用程序的过去某段时间的行为呢作为程序在某段时间的行为的这样一个,类似的这样一个情况,那么抖动的预防策略呢采用局部置换策略在页面发生分配和置换策略当中如果采用的是可变分配方式啊为了发生抖动可以采用局部策,局部置换策略那么把工作级的算法融入到处理器调度中当调度程序呢发现处理器利用率低下时它将视同从外层调入一个新作业调入内存来改善处理器的利用率,那么最后呢我们来看一下请求分段的管理方式为了实现请求分段的存管理存储管理方式呢应在系统中呢配置多种硬件机构以支持快速的完成请求分段的功能,与请求分页系统类似在请求分段系统中所需的硬件支持呢有断表机制断缺段中断机构以及呢地址变换机构,我把请求分段请求段表进去了在请求分段式管理中所需要的主要数据结构呢是请求段表,

在该段表中呢除了有请求分页机制外的访问字段a修改为m存在为p和,外存实质四个字段外还增加了存取字存取方式字段和增补位那么这些字段呢供程序在调进调出时参考那么这是我们的,请求段表机制的这样一个段表项的部分那么缺段中断机构呢在请求分段系统中呢采用的是请求调断策略,每当发现运行时呢,所所要访问的段呢尚未调入内存便由缺段中断机构呢产生一段缺段,产生一缺段中断信号进入操作系统后由缺段中断处理程序呢将所需的电呢调入内存那么与缺页中断机构类似缺段中断机构呢,同样需要一条指令在执行期间产生和处理中断以及在一条指令执行期间可能产生多次确定缺段中断但由于分段是信息的逻辑单位不可能出现一条指令被分别在两个分段中,那么和一组信息呢分分段在两个分段中的情况那么这是我们缺段中断机构的那么处理的这样一个方式,那么地址变换机构呢请求分段系统当中的地址变换机构呢是在请求分段请求分段地址,分段系统地址变换机构的基础上形成的因为被访问的段呢并非完全在内存所以在地址变换时啊若发现所要访问的段呢不在内存,则必须呢先将所缺的段的调入内存并修改段表然后才能利用段表来进行地址变换因此呢在地址变换中呢又增加了某些功能比如说缺段中断的请求处理的这样一些部分,那么我们再看一下分段的共享与保护那么共享段表有共享进进程技术count存取控制字段以及段号,那么分共享段的分配与回收呢有有共享段的分配共享段的回收那么这些运用的部分那么分段保护呢在分段系统中由于每个分段在逻辑上是相对独立的因此呢比较容易实现信息保护,那么通常呢采用越界检查存取控制检查和环保部机构呢来进行这样一个确保信息的安全,好同学们今天呢我们为大家讲解了这样一个虚拟存储器这样一个过程虚拟存储器呢就是将内存和外存结合起来那么构造一个比内存呢实际大得多的这样一个,

存储空间那么这是我们的虚拟存储器那么采用虚拟存储器呢就是将内存和外存呢结合起来构,形成一个比内存比实际内存大得多的这样一个存储空间那么我们还另外呢我们还讲了这样一个我们的请求,分段以及请求分页的这样一个形式以及呢我们的时间局限性和空间局限性和我们的抖动以及工作题的内容那么大家下来的时候呢再看一下这些部分进行一个了解和熟悉,好我们今天的课呢就讲到这里好谢谢大家,


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5432考试网 ( 蜀ICP备2022024372号|川公网安备51152402000101号 )|网站地图

GMT+8, 2024-5-20 02:12 , Processed in 0.072374 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表