虚拟存储器(2)ppt课件_第1页
虚拟存储器(2)ppt课件_第2页
虚拟存储器(2)ppt课件_第3页
虚拟存储器(2)ppt课件_第4页
虚拟存储器(2)ppt课件_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

(1)过程图像被平均分成几页,存储器根据相同的大小被平均分成几页帧。页面大小4K。问:进程虚拟地址空间占用了多少页?内存中有多少帧?(2)页面占据页面框架。主存储器中同一进程占用的页框不需要是连续的页表:在主存储器中注册该进程的页所占用的页框号。每个进程都有一个页表。当进程运行时,所有的页表都驻留在主内存中。何时创建页表,系统将修改页表?例如,假设一台计算机的页面长度为4k,右图显示了正在运行的进程pa的页面表。问:1。内存2中逻辑地址为5K的代码的起始地址。页表中有多少条目,它占用了多少内存?硬件逻辑实现地址转换,假设该进程在执行时需要访问逻辑地址n,简单分页系统的地址转换过程如下,整个过程由硬件的地址转换机制自动完成。逻辑地址N被分成页号p和页内位移s。根据页号,查找页表(页表起始地址A存储在页表控制寄存器中),并确定存储器中包含N个单元的页的存储位置(页帧号T)。3、将逻辑地址中的页号部分P替换为页帧号T,实现如下计算:物理地址=页帧号*页长页内位移。然后将结果发送到MAR以访问主存储器。为了解决整数页表容量大的问题,解决二级页表的一般思路是对页表进行分页,用页目录中的条目记录页表在主存中的位置。页目录:页表的页表页目录占据一个页框。在辅助页表可用之后,页表不需要占用连续的存储空间或者甚至100%的内存。请画出最小程序的第二页表格。最重要的是页表的内容(容量)大大减少了。当辅助页表可用时,内存管理单元支持逻辑地址。当辅助页表可分为三部分时,MMU支持逻辑地址:页目录号页偏移量,例如,长度为128米的进程的页表长度为128千字节,该进程的次页表在32页上,31页表不需要连续存储在内存中。只有进程最近一段时间使用的页表需要存储在内存中,解决了页表内存消耗过大的问题。页表内存消耗大的问题的第二种解决方案是PowerPC解决方案,反向页表的反向页表中的每一项对应一个主内存页,而不是一个虚拟页。在该方法中,系统维护反向页表,其中每个条目对应于主存储器页而不是虚拟页。该系统使用一个简单的散列函数将虚拟地址的页码部分映射到散列表中的一个项目,在该散列表中注册一个指向反向页表中的一个项目的指针。因为散列表和反向页表中的每个条目对应于主存储器页帧,所以不管支持多少进程和多少虚拟页,页表(反向页表)的容量都是固定的。512M主存储器只需要128K反向页表条目。熟悉散列表的读者必须知道多个页号的散列函数操作结果可能是相同的,即多个虚拟地址页可能被映射到相同的主存储器页帧;系统可以使用链接管理技术来处理哈希冲突。只要散列函数被很好地选择,对应于相同散列结果的反向页表链将非常短,只有一个或两个项目。空闲内存区的管理:位图,由操作系统用来注册内存中物理页面的分配。内存的每个物理页面对应一个位0。相应的页面框架可以自由使用,-1。其他进程的逻辑页面已经存储在页面框架中。当一个进程需要内存空间时,操作系统扫描位图中值为0的位,并将对应于这些位的主内存页帧分配给该进程。当进程结束运行或由于某种原因释放内存空间时,操作系统会找到所有原则上,每个虚拟内存访问可能导致两个主内存访问:一个用于获取相应的页表条目,另一个用于获取所需的数据,因此简单的页存储方案将导致内存访问时间加倍。为了克服这个问题,系统可以在中央处理器和主存储器之间分配一组特殊的高速缓存来存储正在运行的进程的页表条目。该缓存是一个关联寄存器,可以按内容并行搜索。当输入终端具有页号p的输入值时,立即选择具有存储的页号p的项目,并输出其转换值页帧号t。缓存的访问速度远远高于主存,它的引入大大提高了地址转换的速度。然而,由于成本(非常昂贵),关联寄存器不能做得很大。一般来说,关联寄存器只能保存最近被中央处理器使用的几个页表条目。随着进程的运行,系统将经常运行置换算法来消除关联寄存器中不常用的部分。配备有关联寄存器的系统在每次翻译地址时,根据页地址中的页号同时查找主存储器页表和关联寄存器(翻译后备缓冲器TLB)。如果TLB有匹配的页码,系统可以直接从TLB读取页码,并将其发送到MAR以形成物理地址。否则,系统等待主内存页表的查询结果(页帧数);在形成物理地址的同时,页面帧号被发送到TLB(如果TLB已满,则必须首先运行替换算法来消除某个页面)。为了解决存储器访问时间加倍的问题,TLB是在中央处理器和主存储器之间的关联寄存器。作为高速缓存,它存储最近一段时间内CPU经常访问的页表条目。TLB缓存的硬件特性:通过内容查找表,并将每个表条目与要同时搜索的内容进行匹配。如果有命中,主存储器中逻辑页的地址可以在一个访问周期内获得。如果有遗漏,等待左页表的查询结果。在形成物理地址的同时,页面帧号被发送到TLB,以确保TLB总是存储最近由中央处理器使用的页面替换算法。注:TLB也被称为快速表,或关联寄存器组。虚拟内存,思想来源:事实上,大多数进程在运行时并不使用所有的程序,因此运行时进程的映像显然没有必要驻留在主内存中。1961年,曼彻斯特大学提出了虚拟内存的概念,它使用硬盘中的交换分区作为主存的辅助内存来存储所有进程的映像。主存储器只存储中央处理器最近需要使用的信息,虚拟存储是通过页管理来实现的,缺页,缺页事件:计算机使用中断来处理缺页事件时,CPU访问的信息内存中没有硬件:当前指令所访问的数据,或者CPU要执行的下一条指令不在内存中,导致缺页中断软件(操作系统):中断处理器在交换分区中找到包含CPU需要访问的数据(指令)的逻辑页,将其加载到内存页帧中,完整页表的结构,(1)状态位p:表示该页是否已被转移到内存中。(2)访问字段A:记录该页面在一段时间内被访问的次数或最近未被访问的次数。(3)修改位m:指示页面在被传送到存储器后是否已经被修改。如果它已经被修改,它需要被重写到外部存储器。(4)外部存储器地址:表示页面在外部存储器上的地址。当查找用于地址转换的页表时,发现表条目的状态位是0,地址转换机制,起始页码,页表长度?中央处理器检索快速表中的快速表条目?访问页表,内存中的页?修改访问位和修改位,修改页表,形成物理地址,结束地址转换,跨境中断,程序请求访问页,和,和,和,和,和,和,和,和,和,和,和,和(不可实现)2FIFO3最新和最长未使用算法-LRU从主存页面中选择最后访问时间最长的页面进行消除。(硬件实施成本太高)。4其他,最佳替换算法示例,假设系统将3个物理块分配给一个进程,该进程的页面趋势为1、2、3、4、1、2、5、1、2、3、4、5,并且3个物理块在开始时为空,那么使用最佳替换页面消除算法时计算页面丢失率?(7/12),注:实际上,该算法无法实现,因为页面访问的未来顺序难以准确预测,但该算法可用于评估其他算法的优缺点。先进先出替换算法示例,1。假设系统为一个进程分配3个物理块,运行时进程的页面趋势为1,2,3,4,1,2,5,1,2,3,4,5,3个物理块在开始时为空,使用先进先出页面消除算法时,计算页面默认率?(9/12)。先进先出替换算法示例。2.假设系统为一个流程分配4个物理块,流程在运行时的页面趋势为1、2、3、4、1、2、5、1、2、3、4、5,4个物理块在开始时为空,使用先进先出的页面消除算法计算页面空置率?(10/12)。先进先出置换算法_注意:1。这个算法的起点是第一次被转移到内存中的页面,因此它更有可能不再被访问。2.该算法实现相对简单,适用于线性顺序访问的程序,但在其他情况下效率较低。3.在先进先出算法中有一个异常现象,即在某些情况下,分配的进程物理块的数量增加,丢失页面的数量有时增加,有时减少。这种现象被称为贝拉蒂现象。如以上示例所示,LRU最近最长时间没有使用该算法,并且选择了到当前时间为止访问次数最少的页面来消除。该算法要求为每个页面设置一个访问计数器。每次访问一个页面时,该页面的访问计数器都会增加1。当缺页中断发生时,具有最小计数值的页面被消除,所有计数器被清除。最近和最长的未使用算法_注意:这个算法的起点是,如果一个页面被访问,它可能被立即访问。另一方面,如果它已经很长时间没有被访问,那么在不久的将来它将不会被访问。该算法的性能接近最佳算法,但难以实现。因为为了找到最近和最长时间没有使用的页面,需要为每个页面设置相关的记录项来记录页面的访问,并且每次访问页面时都必须更新信息。这将增加系统的成本,因此在实际系统中经常使用该算法的近似算法。该算法的近似算法实现如下:方法1:使用特殊堆栈保存当前使用的页码。每当进程访问一个页面时,它将被访问的页面移动到堆栈的顶部,因此堆栈底部的页面是最长时间没有使用的页面。方法2:为每个页面设置一个寄存器来记录页面访问。每当一个进程访问一个页面时,对应于该页面的寄存器的最高位置被设置为1,并且系统周期性地将该寄存器向右移位一位,并且用0补充最高位置,因此具有最低寄存器值的页面是最长时间没有被使用的页面。例如,假设系统为一个进程分配3个物理块,该进程的页面趋势为1、2、3、4、1、2、5、1、2、3、4、5,并且3个物理块在开始时为空,那么当使用最新和最长的未使用页面消除算法时,计算页面默认速率?(10/12)。简单时钟替换算法是LRU和先进先出的折衷算法。该算法要求为每个页面设置一个访问位,并将内存中的所有页面链接到一个循环队列中。当页面被访问时,系统将其访问位设置为1。在替换过程中,使用指针从当前指针位置开始按顺序检查每一页。如果访问位为0,则选择页面进行替换,如果访问位为1,则设置为0,最后指针停留在被替换页面的下一页。替换指针和(2)改进的时钟替换算法,该算法考虑了页面和重放的使用改进的时钟置换算法的细节,访问位A和修改位M可以形成以下四种类型的页帧:类1: A=0,M=0最近没有被访问或修改;类别2:最近未访问过A=0和M=1,但已被修改;类别3:最近访问过A=1和M=0,但未被修改;类别4: A=1,M=1最近访问和修改;改进的时钟替换算法的实现清楚地表明,第一类页面是最好的淘汰页面,第四类页面的淘汰应尽可能避免。该算法的执行步骤如下:1从当前指针扫描内存页面帧,找到要替换的类型1的页面。2如果步骤1中的操作失败,再次扫描以找到类型2的页面,并在扫描过程中清除所有页面帧的位A。如果步骤2也失败,指针将返回其原始位置,并且所有页面帧使用位都是0。如有必要,重复步骤1和步骤2。这一次,你肯定能找到过时的页面(最近访问过的页面)。(4)页面缓冲算法是先进先出算法的发展,它有机会通过创建替换页面的缓冲区来检索刚刚被替换的页面,从而减少系统输入输出的开销。页面缓冲算法使用先进先出算法来选择被替换的页面。所选页面不会立即被替换,而是放在两个链接列表之一中。如果页面未被修改,它将被放置在自由页面链接列表的末尾,否则它将被放置在已修改页面链接列表的末尾。这些自由页面和修改后的页面将在内存中保留一段时间。如果再次访问这些页面,只需将它们从相应的链表中删除,就可以将它们返回到进程中,从而减少一次性的输入/输出开销。当缺页时,系统需要调整页面,将新页面读入空闲页面列表的第一页,然后将其从列表中删除。当修改的页面达到一定数量时,将它们一起写入磁盘,然后将它们放入空闲页面列表。这可以大大减少输入/输出操作的数量。虚拟内存技术的理论基础,技术的可行性分析:这种技术的引入不会大大降低程序的执行速度,并且程序的执行会表现出局部性规则:指令局部性:1当程序被执行时,除了一些跳转语句外,其余的仍然是顺序操作,即在下一条指令之后,中央处理器将访问这些指令。2一般来说,子程序调用的深度不会超过5,即在一段时间内,当前在内存中执行的5个子程序可以满足一段时间内中央处理器对指令的访问要求。数据局部性:1进程在一段时间内访问数据结构,如数组,也就是说,在一段时间内,进程访问的数据被限制在一组与数组相关的变量中。程序在第一个增量时间单位t内访问的一组页面称为程序的工作集W(t,)。根据程序的局部性原则,程序将首先在某个工作集中相对稳定地工作,该工作集中包含所有要访问的指令和数据。当程序在新旧段落之间的过渡期间运行时,工作集将大大增加以容纳新页面。经过一段时间的调整后,工作集的大小会减小,直到只包含新段落中的页面。常驻集合是主内存中进程的映像。虚拟内存中的常驻进程集随时间而变化。1该进程只能在驻留集包含工作集时运行。2为了减少内存消耗,操作系统应该定期从驻留集中删除不在工作集中的页面。3因为常驻集不能包含所有进程映像,所以要访问的内容将出现在磁盘上,这称为缺页。通常,当页面经常丢失时,该过程必须在两个逻辑段落转换的时候工作。操作系统应该为进程分配多少页面?内存分配策略:固定分配变量分配替换范围:局部替换和全局替换,3.寻呼请求中的寻呼转入策略(1)。调入策略确定何时将页面从外部存储器转移到存储器,以及将页面从存储器转移到何处。何时调入页面页面预调优策略:将预期在不久的将来访问的页面提前调入内存。这种传入策略提高了页面传输的效率,减少了输入输出次数。然而,由于这是基于局部性原理的预测,如果预先传输的页面很少在以后被访问,就会造成浪费,所以这种方法通常用于程序的第一次传输。请求分页策略:当进程中访问的页面丢

温馨提示

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

评论

0/150

提交评论