前言
CA这门课的报告交了也有好几个星期了,现在上传上来应该没问题。之后再看到这篇文章的大多是学弟学妹们吧,建华老师的这门课其实还是很不错的,只是很多同学容易被英文ppt吓唬到,然后就没认真学了。其实学习学习硬件知识还是很有意思的,我的这篇论文报告主要关于我个人比较感兴趣的虚拟存储技术,许多段落摘自英文中文的维基百科和自己浅显的理解,只有极少的内容来自知网上的论文,算是一种投机取巧吧。为了保命,去掉了报告的封面、感想和目录。更多的是给学弟学妹们提供一个思路、参考,切勿直接无脑copy,那样可能0分处理(建华老师原句)。
1.虚拟存储技术的基本原理
虚拟存储器是计算机系统中管理存储器的一种技术,如图1,它的应用使得应用程序认为它拥有了连续可用的内存(一个连续完整的地址空间),但是实际上并不是这样,虚拟存储器通常是被分割成了多个物理内存碎片,甚至还有部分暂时储存在外部磁盘存储器当中,并且只有在需要的时候才会进行数据交换。与没有使用虚拟储存技术的系统相比,使用这种技术的系统使得了大型程序的编程变得更加容易,对于真正的物理内存(通常是指RAM)的使用更有效率。
需要注意的是虚拟存储器不只是“用磁盘空间来扩展物理内存”的意思,这只是扩充内存级别使其包含了硬盘驱动器而已,把内存扩展到硬盘驱动器这个层次是虚拟内存技术的一个结果,它的作用也可以通过覆盖或者把处于不同活动状态的程序以及他们的数据交换到磁盘上等方式来实现。
这样我们可以得出虚拟内存的定义:基于对地址空间的重定义,把分散的地址空间定义为“连续的虚拟内存地址”,借此方式来使得应用程序“以为”它们正在使用一大块连续的地址。
图1
2.虚拟存储所涉及的技术
2.1存储层次[1]
存储层次是在计算机体系结构下存储系统层次结构的排列顺序,每一层储存相较于下一层储存都拥有较高的读写速度和较低的延迟性,并且有较小的容量(这里有少量的例外)。大部分现在的CPU的处理速度都非常快,大部分程序的工作都需要访问存储器。但是Cache的效率和存储器传输位于存储层次中的不同等级,所有实际上会限制处理的结果,导致CPU花费大量的时间等待存储器I/O完成工作。
绝大多数电脑中的存储层次有以下4层:
2.1.1寄存器
寄存器(Register)是CPU中用来暂存指令,数据和地址的电脑存储器。寄存器的存贮容量有限,读写速度非常快。