什么是虚拟内存?虚拟内存是计算机系统内存管理的技术。可能仍有许多人不了解什么是虚拟内存。没关系。为了让大家更好地了解什么是虚拟内存,今天我们将探讨什么是虚拟内存。
它使应用程序认为它具有连续的可用内存(一个连续且完整的地址空间),但实际上,它通常分为多个物理内存片段,其中一些片段临时存储在外部磁盘存储中。当时的数据交换。与不使用虚拟内存技术的系统相比,使用此技术的系统使编写大型程序和更有效地使用实际物理内存(例如RAM)变得更加容易。
应当注意,虚拟内存不仅仅是“用磁盘空间扩展物理内存”,它还只是扩展内存级别以包括硬盘驱动器。将内存扩展到磁盘仅仅是使用虚拟内存技术的结果。还可以通过将不活动的程序及其数据覆盖或交换到磁盘来实现其作用。虚拟内存的定义基于地址空间的重新定义,即,地址空间被定义为“连续虚拟内存地址”,以便“欺骗”程序以使其认为它们使用的是大块的“连续”地址地址。
1.地方性原则
要真正理解虚拟内存技术的思想,必须首先了解计算机中著名的局部性原理。著名的Bill Joy(Sun首席执行官)说:“当我在研究所时,我经常开玩笑说缓存是计算机科学中唯一重要的想法。实际上,高速缓存技术确实极大地影响了计算机的性能。系统设计“快速表,页面缓存和虚拟内存技术都是广义上的缓存技术。该技术所依赖的原理是局部性原理。本地性原则适用于程序结构和数据结构(另外,Dijkstra着名的“ goto声明是有害的”论文也是基于对程序本地性原理的深刻理解和理解)。
本地性原则体现在以下两个方面:
1)时间局部性:一旦程序中的一条指令执行完毕,该指令可能很快就会再次执行;如果已访问某些数据,则可能很快会再次访问该数据。时间局部性的典型原因是程序中存在大量循环操作。
2)空间局部性:一旦程序访问了某个存储单元,在不久的将来,附近的存储单元也将被访问,即程序在一段时间内访问的地址可能会集中在某个范围内。这是因为指令通常按顺序存储和执行,并且数据通常以向量,数组和表的形式存储在群集中。
通过将最近使用的指令和数据存储在高速缓存存储器中并使用高速缓存的分层结构来实现时间局部性。通常通过使用更大的缓存并将预取机制集成到缓存控制逻辑中来实现空间局部性。虚拟内存技术实际上建立了“内存和外部内存”两级存储结构,并利用局部性原理实现了高速缓存。
二,虚拟存储的定义和特点
根据局部性原理,在加载程序时,可以将程序的一部分加载到内存中,其余部分可以留在外部存储器中以开始执行程序。在程序执行过程中,当访问的信息不在内存中时,操作系统将所需的部分传送到内存中,然后继续执行程序。另一方面,操作系统将存储器中暂时未使用的内容交换到外部存储器,从而释放了将要传输到存储器的信息的空间。这样,系统似乎为用户提供了比实际内存大得多的内存,称为虚拟内存。
之所以称其为虚拟内存,是因为这种内存实际上并不存在,但是由于系统提供了部分加载,请求传输和替换功能(对用户完全透明),因此用户感觉它存在。而不是实际的物理内存。虚拟内存的大小由计算机的地址结构决定,而不是由简单的内存和外部内存相加来决定。
虚拟存储具有以下三个主要特征:
1)多次意味着作业运行时不必一次全部加载内存,但可以将其划分为多个内存操作。
2)可交换性意味着在作业运行时不必总是驻留在内存中,而是可以在作业操作期间进行切入和切出。
3)虚拟性是指存储容量的逻辑扩展,因此用户看到的存储容量远大于实际存储容量。
以上是什么是虚拟内存的说明。听起来可能有点复杂,但是这些并不重要。毕竟,我们只是普通用户。对于大多数专业词汇,我们不需要理解得太深。
Copyright ©2018-2023 www.958358.com 粤ICP备19111771号-7