《虚拟内存和高速缓存.ppt》由会员分享,可在线阅读,更多相关《虚拟内存和高速缓存.ppt(20页珍藏版)》请在三一办公上搜索。
1、虚拟内存和高速缓存,为什么要采用虚拟内存,如今大多数计算机都有512或1024兆字节(MB)的内存供中央处理器(CPU)使用。然而,大多数用户希望能同时运行所有需要的程序,而仅有这点内存是不够的。,为什么要采用虚拟内存,举例来说,如果您将操作系统、电子邮件程序、Web浏览器和游戏客户端同时加载到内存中,那么仅有512MB的RAM是无法运行所有这些程序的。若没有虚拟内存,那么当您把可用的内存都装满后,您的计算机就会告诉您:“对不起,您无法加载其他应用程序了。若要继续加载,请先关闭某个应用程序。”而有了虚拟内存技术,计算机就可以检查内存,找出最近未使用的内存区,并将它们的内容复制到硬盘上。这将释放
2、内存中的空间,以加载新的应用程序。,由于这一复制过程是自动完成的,所以在进行过程中您甚至不会察觉。有了虚拟内存,计算机即使只安装了不多的内存,也会让人觉得它是无穷无尽的。因为硬盘空间比内存芯片便宜得多,所以这种方法还会带来不错的经济效益。,硬盘驱动器的读写速度大大低于内存,而且它采用的技术无法同时访问多个较小的数据块。如果您的系统过于依赖虚拟内存,您将会发现系统性能明显下降。关键在于,您应当有足够的内存来处理所有要同时使用的程序只有当您切换任务时才会出现轻微的停顿现象,让您觉得虚拟内存有点慢。在这种情况下,虚拟内存的表现堪称完美。如果不是这样,那么操作系统必须不断地在内存和硬盘之间来回地交换数
3、据。这称为抖动,它会使计算机的速度慢得让人难以置信。,虚拟内存的大小,您为虚拟内存分配的硬盘空间大小是十分重要的。如果分配的空间过小,将会出现“内存不足”的错误。在您觉得自己需要继续增大虚拟内存的同时,可能会发现系统变得很慢,而且需要频繁地访问硬盘。在这种情况下,您应该考虑购买更多的内存,将虚拟内存和RAM的大小比例保持在2:1左右。某些应用程序在拥有大量虚拟内存时会有好的表现,但它们并不经常访问虚拟内存。在这种情况下,大页面文件会更适用。,高速缓存,如果您买过计算机,那么您肯定听说过“缓存”这个词。现代计算机都有L1和L2缓存,许多计算机现在还有L3缓存。可能还有热心朋友在缓存方面给您出过主
4、意,像“别买赛扬的芯片,它里面没有任何缓存!”。,为了了解缓存系统的基本概念,让我们先通过一个超级简单的图书管理员的例子来说明高速缓存的概念。想像一下,有一位图书管理员坐在桌子的后面。他的工作就是为您找出您要借阅的书。为简单起见,我们假定您自己不能取书,而必须让图书管理员帮您取来所要借阅的书。于是他会从库房的藏书架上为您取出这本书(华盛顿特区的国会图书馆就采用这种方式)。我们首先从不带缓存的图书管理员开始。,第一位顾客来了。他要借阅白鲸。图书管理员到库房找到这本书,然后回到柜台将这本书交给顾客。一段时间后,客户回来了并将这本书还给图书管理员。图书管理员收下这本书然后将它放回库房。接着,他返回柜
5、台等待下一位顾客。我们假定下一位顾客也要借阅白鲸(您看到这本书已经送还回来了)。图书管理员不得不返回库房去找他刚放回去的这本书,然后将其交给客户。如果以这种方式工作,图书管理员取每本书都得返回库房一次,即使那些极受欢迎、借阅率很高的书也要如此。有没有办法来提高图书管理员的工作效率?,我们给图书管理员一个背包,他可以用这个背包装十本书(用计算机术语表达,就是图书管理员现在有一个能装十本书的缓存)。他可以用这个背包来装客户还给他的书,最多可装十本。下面我们使用前面的示例,不过现在的图书管理员可以采用改进的高速缓存新方法。,新的一天开始。图书管理员的背包是空的。我们的第一位客户来了并要借阅白鲸。没有
6、取巧的办法,图书管理员必须到库房去拿这本书。他把这本书交给客户。一段时间后,客户回来了并将这本书还给了图书管理员。图书管理员不是把这本书放回库房,而是把它放到背包中,继续接待阅览者(他会先看看背包满没满,随后将更频繁地进行查看)。另一名客户到来借阅白鲸。在去库房之前,图书管理员要查看背包中是否有这本书。于是他找到了这本书!他所要做的一切就是从背包中拿出来并把它交给客户。因为无需去库房取书,所以能够更快地为客户提供服务。,如果客户要借阅的书不在缓存(背包)中又会怎样?在这种情况下,图书管理员在有缓存时的效率比在没有缓存时的效率要低,因为图书管理员要先花时间看看背包中是否有这本书。缓存设计面临的一
7、项重大挑战就是需要将搜索缓存造成的影响降至最低,而现代的硬件几乎已将这种时间延迟缩短为零。即使在我们这个图书管理员的简单示例中,与走回库房的时间相比起来,搜索缓存的延迟时间(等待时间)是如此之小,以至于显得无关紧要。由于缓存比较小(十本书),因此发现包中没有要借的书所花费的时间只是往返库房所需时间中极其微小的一部分。,缓存技术就是采用速度较快但容量较小的存储器来提高速度较慢但容量较大的存储器的速度。使用缓存时,必须先查看缓存中是否有需要的项目。如果有,则称之为缓存命中。如果没有,则称之为缓存失误,这时计算机就必须等待往返一次读取庞大而又缓慢的存储器。最大的缓存也远远小于庞大的存储区。可以存在多
8、级缓存。在我们这个图书管理员示例中,背包是容量较小但速度较快的存储器,库房则代表容量较大且速度较慢的存储器。这是一级缓存。也可以在它们之间再加一级缓存,就是在柜台后面放一个能容纳一百本书的书架。图书管理员可以先查看背包,然后查看书架,最后查看库房。这就构成了一个两级缓存。,计算机是一种以非常小的增量来度量时间的机器。微处理器对主存储器(RAM)的访问在大约60纳秒(一秒的六百亿分之一)内完成。这已经相当快了,但与典型的微处理器相比还是慢得多。微处理器的周期可以只有2纳秒那么短,因此对它而言,60纳秒就显得无比漫长。,如果我们在主板上增设容量小但速度非常快(大约30纳秒)的特殊存储器组,结果会怎
9、样?这已比访问主存储器的速度快了两倍。这就被称为2级缓存或L2缓存。如果我们直接在微处理器芯片上构造容量更小但速度更快的存储器系统,结果会怎样?如果这样,系统将以微处理器的速度而非内存总线的速度访问该存储器。这就是L1缓存,在233兆赫兹(MHz)奔腾处理器上,其速度比L2缓存快3.5倍,而L2缓存的速度比主存储器访问速度要快两倍。,某些微处理器芯片上带有两级缓存。在这种情况下,主板缓存(微处理器和系统主存储器之间的缓存)就成为3级缓存或L3缓存。,讲到这里,人们通常会问:“为什么不让计算机的所有存储器都以L1缓存的速度运行,这样不就无需使用高速缓存了吗?”那样当然可以,但成本会相当昂贵。采用高速缓存的目的就是用较昂贵的小容量存储器来提高价格较便宜但速度较慢的大容量存储器的速度。,在计算机科学中,有一个被称作访问局部性的理论概念。它的意思是:在一个较大的程序中,在任何时候,都只有一小部分被使用。尽管这似乎有点奇怪,但访问局部性适用于绝大多数程序。即使是10M大小的可执行程序,在任何时候,该程序中都只有极少数部分得以使用,而且这部分的重复率非常高。,