什么是虚拟内存?虚拟内存的原理

news/2024/10/23 8:38:33/

虚拟内存

最近看Binder原理的时候,讲到一个概念MMap,Memory Map,内存映射,一言蔽之就是物理内存和虚拟内存的映射(这个不是重点)。然而突然产生个疑问——什么是虚拟内存?我大概是傻了,横竖睡不着,坐起身来,看了很多帖子,字里行间写着两个大字“懵逼”。一方面我着急弄清楚Binder、mmap原理,一方面悬在我心里的疑问让我惶惶不可终日,左思右想,还是先弄清楚什么是虚拟内存,毕竟不积畦步无以至千里。

  • 坎坷之路

什么是虚拟内存?我百度半天,帖子不少,或许是我愚钝理解能力不行,没有一篇帖子能告诉我答案,我又百度“linux什么是虚拟内存”,然而不论怎么搜,搜出来的帖子大多都是“虚拟内存设计思想”、“虚拟内存原理”,唯一找到一篇帖子题目是我的问题,答案却说为什么用虚拟内存,没有一篇帖子能够一句话告诉我,究竟是什么是虚拟内存……

正当我问天问大地没有答案时,突然想起来,这个东西,我似乎,曾几何时学过……于是我翻出我垫桌子的《操作系统》,翻开目录一看,赫然写着“虚拟页式存储管理方案”几个大字,这几个大字啪啪打在我脸上生疼,我才想起,当时学页面置换算法多头疼,醒着是它梦里也是它,那时候给朋友打电话请教、看视频、百度找讲解找题算,最终熟练掌握时候我多么的激动欣喜像找到女朋友一样,然而现在,却忘得一干二净……我简直就简直了……😂。简单回顾完书上的介绍,再一看百度,突然发现几篇帖子下面就是百度百科的解释,我顿时想给自己一巴掌……

什么是虚拟内存?

百度百科:虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

《操作系统》:虚拟存储技术的基本思想时利用大容量外存来扩充内存,产生一个比有限的实际内存空间大得多的、逻辑的虚拟空间,简称虚存,以便能够有效地支持多道程序系统的实现和大型程序运行的需要,从而增强系统的处理能力。

一句话概括:虚拟内存是一种内存管理技术,是虚拟的、逻辑上存在的存储空间

为什么要使用虚拟内存?

我们先回顾一下程序执行的原理,首先程序是运行在内存中的,程序运行时会将保存在硬盘上的程复制到RAM内存(载入内存),然后CPU执行内存中的程序代码。

如果执行的程序占用内存很大或很多,或同时执行多个程序,就会导致内存消耗殆尽。从而导致程序执行异常或崩溃。

虚拟内存工作原理

当进程开始运行时,先将一部分程序装入内存,另一部分暂时留在外存;当要执行的指令不在内存时,由系统自动完成将它们调入内存的工作;当没有足够的内存时,系统自动选择部分内存(暂不执行的程序)空间,将其中原有的内容交换到磁盘上,并释放这些内存空间供其他进程使用。

这样做的结果使程序的运行丝毫不受影响,使程序在运行中感觉到拥有一个不受内存容量约束的、虚拟的、能够满足自己需求的存储器。

不同系统虚拟内存的组成

  • SWAP:Linux提出SWAP的概念,我们上面提到内存不足时会将内存中程序交换到外存上,我们安装linux系统时,会有一个swap分区,说的就是这个。
  • windows 上虚拟内存在硬盘上其实就是为一个硕大无比的文件,文件名是PageFile.Sys,通常状态下是看不到的。必须关闭资源管理器对系统文件的保护功能才能看到这个文件

以上是我花了一个晚上对虚拟内存的简单了解,如有不对,还望批评指出,非常感谢。


参考:
百度百科:虚拟内存
理解 Linux 的虚拟内存
全国到等教育自学考试 《操作系统》 02326


http://www.ppmy.cn/news/421309.html

相关文章

认识---虚拟内存

内存 物理内存 真正的内存 真实插在板子的内存多大 虚拟内存 为满足内存容量不足需求 -> 在外存(硬盘)开辟空间 一个程序想要运行,必须运行在真实的物理内存之上。 所以必须在虚拟内存地址和物理内存地址之间建立一种映射关系。 虚拟内存的意义&#xff1a…

虚拟内存?

虚拟内存? 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器…

你知道虚拟内存吗?

虚拟内存 一、虚拟内存概述二、内存分段分段虚拟地址结构分段映射过程分段的不足之处内存碎片内存交换效率低内存交换效率低 三、内存分页内存分页映射过程分页是如何解决分段产生的物理碎片、内存交换效率低?简单分页存在的问题多级页表 四、TLB五、段页式内存管理…

聊聊虚拟内存

目录 前提的内存知识分段和分页页表 理解虚拟内存简述一下如何实现后备存储缺页中断处理过程共享 前提的内存知识 内存是什么?说白了就是一长串字节数组。编程的时候难免申请一段内存空间,有了内存空间才能存放数据、存放指令代码。 早期不存在操作系统…

什么是虚拟内存?服务器虚拟内存怎么设置最好?

什么是虚拟内存?服务器虚拟内存怎么设置最好? 一、什么是虚拟内存?虚拟内存有什么用处?二、怎么设置服务器虚拟内存?虚拟内存设置多少合适? 一、什么是虚拟内存?虚拟内存有什么用处?…

什么是虚拟内存

原文地址 深入剖析虚拟内存工作原理 (qq.com) 原作者:allanpan "计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决" 我们电脑里的物理内存指的是RAM 主存(随机访问存储器),它是与 CPU 直接交换数据的内部…

如何合理使用虚拟内存

这些天电脑老是出现虚拟内存不足现象,就在网上找了相关的信息来琢磨。。这篇文章共赏下。。 网上有很多广泛流传的关于虚拟内存优化的技巧,其实很多都是经不起推敲的。大家一起来看看吧。 观点一: 对于拥有大容量物理内存的用户,…

计算机更改虚拟内存有用吗,电脑内存不足怎么办,虚拟内存能起到多大作用

电脑内存不足怎么办,虚拟内存能起到多大作用?我们可以看到下图网友反映"电脑内存有12GB内存,但是玩大型游戏的时候,经常弹出内存不足的窗口,导致游戏经常崩溃"。怎么回事呢?其实跟我们今天聊的话题很契合,物理内存和虚拟内存有什么区别?那么虚拟内存有什么作…