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

