计算机原理虚拟存储器「计算机原理虚拟存储器」
硬件直接实现对操作系统透明,透明,就是看不见像不存在一样。观察下,我们平时使用的电脑不仅有cache和主存,还有辅助存储器。固态硬盘,机械硬盘是256G。按自己编织的话,2 MB的地址是21位。4GB地址是32位 ,256 GB地址是38位。但是访问辅助存储器的时候,不会以字节为单位。以字
之前解决的存储器C P U协同工作的问题。CPU与存储器的速度差别比较大。一方面提高存储器的工作速度使用更好的存储器。使用高速缓冲存储器搭配使用提高存储系统的工作速度。重点掌握地址转换,虚拟存储器的访问过程。
硬件直接实现对操作系统透明,透明,就是看不见像不存在一样。观察下,我们平时使用的电脑不仅有cache和主存,还有辅助存储器。固态硬盘,机械硬盘是256G。按自己编织的话,2 MB的地址是21位。4GB地址是32位 ,256 GB地址是38位。但是访问辅助存储器的时候,不会以字节为单位。以字节单位的话就更慢了。比如磁盘的地址是这样的,他有磁盘号 盘面号 磁道号 扇区号.也就是说,传输的时候是以扇区为单位传输的。C P U和主存在一起叫做主机。外设和主机是通过I/O总线进行交流的。他这个交流的过程是不会直接有C P U来管的。因为外设的速度和C P U相比,差距太大了。C P U去管的话会严重拖慢工作速度。并且他要直接跟C P有交换数据的话是以字节为单位的。他跟主存交换的话是以更大的数据量为单位的。外设跟主存挂着一起是更科学的。这样可以感受到不同的辅助存储器提供的地址形式是不一样的访问的数据块的大小也是不一样的和缓存这边可以采用不同的层次。这样对用户来说,需要掌握一些硬件上的细节是非常的难受。需要根据自己买的不同的辅助存储器的不一样,掌握不同的知识。所以使用这些大的存储器进行扩容的时候,我们引入了虚拟存储器这个概念。他是一个逻辑上的模型,并不是自己买来的存储器。而是硬件搭配软件提供给用户的一个模型。逻辑上的设计更关注这个东西的功能是什么?并不关注这个功能,有哪些细节来实现。
功能:用户给出一个地址叫做虚拟地址或者逻辑地址,虚拟存储器要给出地址对应的数据。由于这个地址跟硬件上的地址是有软件来实时控制的。并没有什么一一对应的关系。所以这个地址一般叫做虚拟地址或者逻辑地址。而这样一个逻辑上的概念是由软硬件配合实现的。我们主要掌握逻辑地址到物理地址的映射以及基本的访问流程就可以了。
实现:由辅助硬件将虚拟地址映射到主存中的某个单元,主存单元地址称为实际地址或者物理地址。每次访问这个虚地址的时候。机器实际上是在他映射到的物理地址上进行操作的。在缓存和主存之间进行映射,我们是以块为单位的。这里虚拟地址和物理地址之间的映射也需要一个单位。根据单位不同,我们把虚拟存储器分为三类。
第一种单位叫作页,虚拟空间和主存空间都被划分为同样大小的页,主存的页叫做实页虚存的页叫做虚页。
虚存的地址分成两块,一个是虚页号,一个是页哪地址。页内地址,类似于之前缓存的块地址。虚页号类似于之前主存字块标记。
对应的主存地址也分为页内地址和实页号。
电子计算机中的虚拟内存器的作用是什么?
一般来说,任何一个程序都要调入内存才能执行。为了能够运行更大的程序,为了同时运行多道程序,就需要配置较大的内存,或对已有的机器扩大内存。随着存储器芯片集成度的不断提高和价格的下降,今天PC机的内存容量不但超过了前些年大型机的内存容量,而且还超过了一些小型机的外存容量。例如,当前PC机的内存配置已在百兆数量级上。当然,内存的扩充总归有限,有没有可能让较小的内存运行更大的程序呢?目前广泛采用的“虚拟存储技术”可以通过软件方法,将主存和一部分外存空间构成一个整体,为用户提供一个比实际物理存储器大得多的存储器,这称之为“虚拟存储器”。虚拟存储器的原理同样是基于这样一个现实:即程序的运行在一段时间内不会涉及它的全部指令,而仅仅是局限在一段程序代码之内。当一个程序需要执行时,只要将其调入虚拟存储器就可以了,而不必全部调入内存。程序进人虚拟存储器后,就完全由操作系统进行管理和调度。系统会根据一定的算法,将实际执行到的那段程序代码调入物理内存(称为页进)。若内存已满,系统会将目前暂不执行的代码送回到作为虚拟存储器的外存区域(称为页出),
再将当前要执行的代码调入内存。这样,操作系统会通过页进、页出,保证要执行的程序段都在内存。而一次页进就可以解决若干条指令的执行。
虚拟存储器技术有效地解决了物理存储器不足的问题。但是,程序执行过程中的页进、页出实际上是内外存的交换,而访问外存的时间比访问内存要慢得多。也就是说,从用户的使用角度讲,虚拟存储器如同物理存储器的作用,但比物理存储器要慢一些。虚拟存储器技术实际上是用时间换取了空间。
虚拟内存技术的工作原理
虚拟内存技术的工作原理是什么?虚拟内存有什么技术?下面由我来和大家一起了解吧!虚拟内存技术介绍
虚拟内存别称虚拟存储器(Virtual Memory)。电脑中所运行的
程序均需经由内存执行,若执行的程序占用内存很大或很多,则会导致内存消耗殆尽。为解决该问题,Windows中运用了虚拟内存[2] 技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。若计算机运行程序或操作所需的随机存储器(RAM)不足时,则 Windows 会用虚拟存储器进行补偿。它将计算机的RAM和硬盘上的临时空间组合。当RAM运行速率缓慢时,它便将数据从RAM移动到称为“分页文件”的空间中。将数据移入分页文件可释放RAM,以便完成工作。 一般而言,计算机的RAM容量越大,程序运行得越快。若计算机的速率由于RAM可用空间匮乏而减缓,则可尝试通过增加虚拟内存来进行补偿。但是,计算机从RAM读取数据的速率要比从硬盘读取数据的速率快,因而扩增RAM容量(可加内存条)是最佳选择。虚拟内存是Windows 为作为内存使用的一部分硬盘空间。虚拟内存在硬盘上其实就是为一个硕大无比的文件,文件名是PageFile.Sys,通常状态下是看不到的。必须关闭资源管理器对系统文件的保护功能才能看到这个文件。虚拟内存有时候也被称为是“页面文件”就是从这个文件的文件名中来的。[2] 内存在计算机中的作用很大,电脑中所有运行的程序都需要经过内存来执行,如果执行的程序很大或很多,就会导致内存消耗殆尽。为了解决这个问题,WINDOWS运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,这部分空间即称为虚拟内存,虚拟内存在硬盘上的存在形式就是 PAGEFILE.SYS这个页面文件。
工作原理
虚拟存储器是由硬件和 操作系统 自动实现存储信息调度和管理的。它的工作过程包括6个步骤:
①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
②如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。
③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。
④从地址变换表读出与逻辑组号a对应的物理组号a。
⑤从物理组号a和组内字节地址b得到物理地址。
⑥根据物理地址从主存中存取必要的信息。
文章评论