![操作系统中的多级存储体系_第1页](http://file4.renrendoc.com/view/c53b7b2071e0c21e08beaa079bac4ee7/c53b7b2071e0c21e08beaa079bac4ee71.gif)
![操作系统中的多级存储体系_第2页](http://file4.renrendoc.com/view/c53b7b2071e0c21e08beaa079bac4ee7/c53b7b2071e0c21e08beaa079bac4ee72.gif)
![操作系统中的多级存储体系_第3页](http://file4.renrendoc.com/view/c53b7b2071e0c21e08beaa079bac4ee7/c53b7b2071e0c21e08beaa079bac4ee73.gif)
![操作系统中的多级存储体系_第4页](http://file4.renrendoc.com/view/c53b7b2071e0c21e08beaa079bac4ee7/c53b7b2071e0c21e08beaa079bac4ee74.gif)
![操作系统中的多级存储体系_第5页](http://file4.renrendoc.com/view/c53b7b2071e0c21e08beaa079bac4ee7/c53b7b2071e0c21e08beaa079bac4ee75.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现代操作系统中的多级存储体系摘要:分析现代操作系统的多级存储体系与存储结构,同时对各个层次之间进行比较,探讨实现资源组合和效率提升以达到既定需求的最优方法。关键词:存储器分层虚拟内存高速缓存辅助存储器主存储器引言:目前在计算机系统中通常采用三级存储器结构,即使用高速缓冲存储器、主存储器和辅助存储器,由这三者构成一个统一的存储系统。从整体看,其速度接近高速缓存的速度,其容量接近辅存的容量,而其成本则接近廉价慢速的辅存平均价格。存储器系统的固有矛盾现代计算机存储器的设计目标可以归纳成三个问题:容量,速度和价格。这三个重要特性间存在着一定的折中,任何一种单一的存储装置,都无法同时从速度与容量两方面,满足用户的需求。在任何时候,实现存储器系统会用到各种各样的技术以达到满足性能的需求,同时也需使用昂贵且容量相对小而具有快速存取时间的存储器。现代计算机技术采用存储器的层次结构以解决这一难题,实际上它们组成了一个速度由快到慢,容量由小到大的存储装置层次。局部性原理容量较大,价格较便宜的慢速存储器是容量较小,价格较贵的快速存储器的后备。这种存储器的层次结构能够成功的关键在于处理器访问存储器的频率递减。在执行程序期间,处理器的指令存储访问和数据存储访问呈现簇状,典型的程序包括许多迭代循环和子程序,一旦程序进入一个循环或子程序执行,就会重复访问一个小范围的指令集合。同理,对表和数组的操作涉及到存取一簇数据,经过很长一段时间,程序访问的簇会改变,但在较短的时间内,处理器主要访问存储器中固定的簇。因此,可以通过层次组织数据,使得随着组织层次的递减,各层次的访问比例也依次递减。以二级存储器为例,让第二级存储器包含所有的指令和数据,程序当前的访问簇暂时存放在第一级存储器中。有时第一级存储器中的某个簇要放到第二级存储器中,以便为新的簇进入第一级存储器让出空间。总的来说,计算机系统进行信息处理的过程就是执行程序的过程,这时,CPU需要频繁地与内存进行数据交换,包括取指令代码及数据的读写操作。通过对大量典型程序的运行情况分析结果表明,在一个较短的时间内,取指令代码的操作往往集中在存储器逻辑地址空间的很小范围内(因为在多数情况下,指令是顺序执行的,因此指令代码地址的分布就是连续的,再加上循环程序段和子程序段都需要重复执行多次,因此对这些局部存储单元的访问就自然具有时间上集中分布的倾向);数据读写操作的这种集中性倾向虽不如取指令代码那么明显,但对数组的存储和访问以及工作单元的选择也可以使存储器单元相对集中。这种对局部范围的存储器单元的防问比较频繁,而对此范围以外的存储单元访问相对甚少的现象,称为程序访问的局部性。此原理应用于多级存储器组织结构中。最快,最小和最贵的存储器类型由位于处理器内部的寄存器组成。在典型情况下,一个处理器包含多个寄存器,向下跳过两级存储器层次就到了主存储器层次,主存储器是计算机中主要的内部存储器系统。主存储器中的每个单元位置都有一个唯一的地址对应,而且大多数机器指令会访问一个或多个主存储器地址。主存储器通常是高速的,容量较小的高速缓冲存储器的扩展。高速缓冲存储器用于在主存储器和处理器的寄存器之间分段移动数据,以提高数据访问的性能。主存一Cache层次在计算机系统中,中央处理器存取主存储器的地址划分为行号、列号和组内地址三个字段。于是,主存储器就在逻辑上划分为若干行;每行划分为若干的存储单元组;每组包含几个或几十个字。高速存储器也相应地划分为行和列的存储单元组。二者的列数相同,组的大小也相同,但高速存储器的行数却比主存储器的行数少得多。联想存储器用于地址联想,有与高速存储器相同行数和列数的存储单元。当主存储器某一列某一行存储单元组调入高速存储器同一列某一空着的存储单元组时,与联想存储器对应位置的存储单元就记录调入的存储单元组在主存储器中的行号。当中央处理器存取主存储器时,硬件首先自动对存取地址的列号字段进行译码,以便将联想存储器该列的全部行号与存取主存储器地址的行号字段进行比较:若有相同的,表明要存取的主存储器单元已在高速存储器中,称为命中,硬件就将存取主存储器的地址映射为高速存储器的地址并执行存取操作;若都不相同,表明该单元不在高速存储器中,称为脱靶,硬件将执行存取主存储器操作并自动将该单元所在的那一主存储器单元组调入高速存储器相同列中空着的存储单元组中,同时将该组在主存储器中的行号存入联想存储器对应位置的单元内。在计算机技术发展过程中,主存储器存取速度一直比中央处理器操作速度慢得多,使中央处理器的高速处理能力不能充分发挥,整个计算机系统的工作效率受到影响。有很多方法可用来缓和中央处理器和主存储器之间速度不匹配的矛盾,如采用多个通用寄存器、多存储体交叉存取等,在存储层次上采用高速缓冲存储器也是常用的方法之一。很多大、中型计算机以及新近的一些小型机、微型机也都采用高速缓冲存储器。高速缓冲存储器的容量一般只有主存储器的几百分之一,但它的存取速度能与中央处理器相匹配。根据程序局部性原理,正在使用的主存储器某一单元邻近的那些单元将被用到的可能性很大。因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动地将包括该单元在内的那一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器的那一组单元内。于是,中央处理器就可以直接对高速缓冲存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,计算机系统处理速度就能显著提高在速度方面,计算机的主存和CPU一直保持了大约一个数量级的差距,显然,这个差距限制了CPU能力的发挥,为了弥合这个差距,设置高速缓冲存储器是解决存取速度差距的重要方法。高速缓冲存储器(Cache)是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。在CPU和主存中间设置Cache,构成Cache-主存层次,要求Cache在速度上能跟得上CPU的要求。Cache是速度较低的主存与高速CPU之间的桥梁,它可以提供CPU所需的能快速访问的指令和数据,CPU访问Cache时,Cache的速度与CPU的速度差不多,这样,CPU可以实现零等待状态下的数据存取。Cache-主存间的地址映像和调度洗去了比它较早出现的主-赋存存储层次的技术,不同的是其速度要求更高,不是由软硬件结合而完全由硬件来实现。从CPU的角度看,Cache-主存层次的速度解决于Cache,容量与每位价格则接近于主存。CPU地址曲线替换控制部件主存地址容存器总不曲中主存-Cmohe
地里变换
机而中麟主存症地址咨存器CPU地址曲线替换控制部件主存地址容存器总不曲中主存-Cmohe
地里变换
机而中麟主存症地址咨存器Cache存储系统基本结构示意图在主存一Cache存储体系中,所有的程序代码和数据仍然都存放在主存中,Cache存储器只是在系统运行过程中,动态地存放了主存中的一部分程序块和数据块的副本,这是一种以块为单位的存储方式。块的大小称为“块长”,块长一般取一个主存周期所能调出的信息长度。假设主存的地址码为n位,则其共有2n个单元,将主存分块(block),每块有B个字节,则一共可以分成2n/B块。Cache也由同样大小的块组成,由于其容量小,所以块的数目小得多,也就是说,主存中只有一小部分块的内容可存放在Cache中。在Cache中,每一块外加有一个标记,指明它是主存中哪一块的副本,所以该标记的内容相当于主存中块的编号。Cache-主存存储结构的命中率命中率指CPU所要访问的信息在Cache中的比率,相应地将所要访问的信息不在Cache中的比率称为失效率。Cache的命中率除了与Cache的容量有关外,还与地址映象的方式有关。目前,Cache存储器容量主要有256KB和512KB等。这些大容量的Cache存储器,使CPU访问Cache的命中率高达90%至99%,大大提高了CPU访问数据的速度,提高了系统的性能。主存与辅存的关系但是,以上两层仅解决了速度匹配问题,存储器的容量仍受到内存容量的制约。因此,在多级存在储结构中又增设了辅助存储器(由磁盘构成)和大容量(又称海量)存储器(由磁带构成)。随着操作系统和硬件技术的完善,主存之间的信息传送均可由操作系统中的存储管理部件和相应的硬件自动完成,从而构成了主存一辅存的价格,从而弥补了主存容量不足的问题。辅存狭义上是我们平时讲的硬盘。科学地说是外部存储器(需要通过I/O系统与之交换数据,又称为辅助存储器)。存储容量大、成本低、存取速度慢,以及可以永久地脱机保存信息。主要包括磁表面存储器、软盘存储器、磁带存储设备、光盘存储设备。磁表面存储器的优点为存储容量大、单位价格低、记录介质可以重复使用、记录信息可以长期保存而不丢失,甚至可以脱机存档、非破坏性读出,读出时不需要再生信息。当然,磁表面存储器也有缺点,主要是存取速度较慢,机械结构复杂,对工作环境要求较高。磁表面存储器由于存储容量大,单位成本低,多在计算机系统中作为辅助大容量存储器使用,用以存放系统软件、大型文件、数据库等大量程序与数据。主存一辅存层次操作系统的形成和发展使得程序员尽可能摆脱了主,辅存之间的地址定位,同时形成了支持这些功能的“辅助硬件”。通过软件,硬件的结合,把主存和辅存统一成了一个整体,这时,由主存一辅存形成了一个存储层次,即虚拟存储系统。从整体看,其速度接近于主存的速度,其容量则接近于辅存的容量,而每位平均价格也接近于廉价,慢速的辅存的平均价格。在虚拟存储系统中,程序员可用机器指令地址码对整个程序统一编址,如同程序员具有对应这个地址码的宽度的全部虚拟空间一样,该空间可以比主存实际空间大得多,以致可以存得下整个程序,这种指令地址码称为虚拟地址或者逻辑地址,对应的存储容量称为虚拟容量,而把实际主存的地址称为实际地址或物理地址,其对应的存储容量称为主存容量。采用主存一辅存的层次可以有效解决存储器大容量和低成本之间的矛盾。虚拟内存虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。如果计算机缺少运行程序或操作所需的随机存取内存(RAM),则使用虚拟内存(VirtualMemory)进行补偿。虚拟内存将计算机的RAM和硬盘上的临时空间组合在一起。当RAM运行速度缓慢时,虚拟内存将数据从RAM移动到称为“分页文件”的空间中。将数据移入与移出分页文件可以释放RAM,以便完成工作。一般而言,计算机的RAM越多,程序运行得越快。如果计算机的速度由于缺少RAM而降低,则可以尝试增加虚拟内存来进行补偿。但是,计算机从RAM读取数据的速度要比从硬盘读取数据的速度快得多,因此增加RAM是更好的方法。虚拟内存的有点是很有吸引力的,在任何一个进程中只有一部分块位于主存中,可以在内存中保留更多的进程,此外,由于未用到的块不需要换入换出内存,因而节省了时间。在稳定状态,几乎所有的空间都被进程块占据,处理器和操作系统可以直接访问到尽可能多的进程。因此,当操作系统读取一块时,它必须把另一块扔出。如果一块正好在将要被用到之前扔出,操作系统又不得不很快把它取回来。大多的这类操作导致系统抖动:处理器的大部分时间都用于交换块,而不是执行指令,从本质上看,这些算法都是操作系统试图根据最近的历史猜测在将来不远最可能用到的块。这类推理来自于前文中已介绍过的局部性原理,其概括了一个进程中程序和数据引用的集簇倾向,因此,假设在很短的时间内仅需要访问进程的一部分块是合理的。同时还可以对在不远的将来可能会访问的块进行猜测,从而避免系统抖动。当CPU输出地址码的位数较多,而实际主存容量较小的情况下,计算机系统可以将一部分辅存当作主存来使用的机制,就是虚拟存储器系统。虚拟存储器是建立在主存-辅存物理结构基础之上,由附加硬件装置及操作系统存储管理软件组成的一种存储体系,它将主存和辅存的地址空间统一编址,形成一个庞大的存储空间。在这个大空间里,用户自由编程,完全不必考虑程序在主存是否装得下,或者放在辅存的程序将来在主存中的实际位置。编好的程序由计算机操作系统装入辅助存储器,程序运行时,附加的辅助硬件机构和存储管理软件会把辅存的程序一块块自动调入主存由CPU执行,或从主存调出。用户感觉到的不再是处处受主存容量限制的存储系统,而是好象具有一个容量充分大的存储器。虚地址和实地址的基本概念及其相互关系虚地址:虚拟存储器的辅存部分也能让用户象内存一样使用,用户编程时指令地址允许涉及辅存大小的空间范围,这种指令地址称为“虚地址”(即虚拟地址)或叫“逻辑地址”,虚地址对应的存储空间称为“虚存空间”或叫“逻辑空间”。实地址:实际的主存储器单元的地址则称为“实地址”(即主存地址)或叫“物理地址”,实地址对应的是“主存空间”,亦称物理空间。虚拟存储器的用户程序以虚地址编址并存放在辅存里,程序运行时,CPU以虚地址访问主存,由辅助硬件找出虚地址和物理地址的对应关系,判断由这个虚地址指示的存储单元的内容是否已装入主存,如果在主存,CPU就直接执行已在主存的程序;如果不在主存,就要进行辅存内容向主存的调度,这种调度同样以程序块为单位进行。计算机系统存储管理软件和相应的硬件把欲访问单元所在的程序块从辅存调入主存,且把程序虚地址变换成实地址,然后再由CPU访问主存。虚拟存储器和Cache的异同点虚拟存储器和主存Cache存储器是两个不同存储层次的存储体系。在概念.上两者有不少相同之处:但由主存-辅存组成的虚拟存储器和主存Cache存储器亦有很多不同之处:Cache存储器采用与CPU速度匹配的快速存储元件弥补了主存和CPU之间的速度差距,而虚拟存储器虽然最大限度地减少了慢速辅存对CPU的影响,但它的主要功能是用来弥补主存和辅存之间的容量差距,具有提供大容量和程序编址方便的优点。两个存储体系均以信息块作为存储层次之间基本信息的传送单位,Cache存储器每次传送的信息块是定长的,只有几十字节,而虚拟存储器信息块划分方案很多,有页、段等等,长度均在几百〜几百K字节左右。CPU访问快速Cache存储器的速度比访问慢速主存快5~10倍。虚拟存储器中主存的速度要比辅存缩短100〜1000倍以上。主存-Cache存储体系中CPU与Cache和主存都建立了直接访问的通道.一旦不命中时,CFU就直接访问主存并同时向Cache调度信息块,从而减少了CPU.等待的时间。而辅助存储器与CPU之间没有直接通路,一旦在主存不命中时,只能从辅存调块到主存。因为辅存的速度相对CPU的差距太大,调度需要毫秒级时间,因此,CPU一般改换执行另一个程序,等到调度完成后才返回原程序继续工作。Cache存储器存取信息的过程、地址变换和替换策略全部用硬件实现,对程序员均是透明的。而主存-辅存层次的虚拟存储器基本上是由操作系统的存储管理软件并辅助一些硬件来进行信息块的划分和主存-辅存之间的调度,所以对设计存储管理软件的系统程序员来说,它是不透明的,而对广大用户,因为虚拟存储路提供了庞大的逻辑空间可以任意使用,所以对应用程序员是透明的。Cache-主存层次,主存-辅存层次之间的比较这两种存储层次有许多相似之处,首先,出发点相同:二者都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。其次,二者原理相同:都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。虚拟存储系统所采取的映像方式同样有全相联映像,组相联映像和直接映像等,替换替换算法也多采用LRU算法。实际上,这些替换算法和地址映像方式最早应用于虚拟存储系统中,后来发展到Cache系统中。Cache-主存和主存-辅存这两个存储层次不同之处:首先主存一Cache存储器的访问时间比较小典型的为10:1;每次传送的基本信息单元也比
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新能源汽车动力电池及零部件检测合同
- 商品分销代理合同
- 承揽合同是何种类型合同
- 商业空间装修设计合同2025
- 中保人寿个人养老金保险合同范本
- 兼职人员聘用合同(试聘版)
- 正式合同样本:电子产品供货合同
- 矿产销售合同
- 5 草船借箭(教学设计)2023-2024学年统编版语文五年级下册
- 房屋买卖合同新条款解析
- 《群英会蒋干中计》课件38张 2023-2024学年高教版(2023)中职语文基础模块下册
- 大单元教学和集体备课研究
- 《学术不端行为》课件
- 《麦田怪圈探密》课件
- 《智能建造导论》 课件 刘占省 第1-5章 智能建造的兴起-智能建造与全生命周期的目标规划
- 经济数学《线性代数》期末试卷一(含答案解析)
- 个人民事起诉状模板
- 劳务人员管理制度(7篇)
- 事故隐患安全培训事故排查安全隐患
- 新人教版高中数学选择性必修第一册全套精品课件
- 领导干部的国学修养讲义
评论
0/150
提交评论