虚拟存储器与虚拟内存

news/2024/10/23 14:32:30/

1.为什么需要虚拟存储器?

程序在os中能够执行,需要经过,编译-链接-装入

在没有虚拟存储器之前,源程序在gcc –o 后生成的文件是可执行目标程序a.out,每条指令都有一个逻辑地址 32位。它存在硬盘上。

要执行时,只需找到该文件,将其装入内存。装入的方式可以有多种,比如分页,分段等等。但是,必须将该程序完全装入内存

分页:将一个进程的逻辑地址空间(32位)分成若干大小相等的页。分页并不是随着虚拟存储器发展起来的。

使用分页方式时有一个问题,必须清楚:

os是根据文件系统找到的a.out,跟a.out的逻辑地址没有一点关系,假如a.out是3个页大小,就将这3个页分别装入内存,

装入内存的过程中将逻辑地址转换为物理地址。

  • 例子:内存为1G 每个程序的大小是100M,那么该os最多只能装10个程序。(K、M、G)

2. 虚拟存储器

定义:具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储系统。

即,程序在运行之前,没必要全部装入内存,仅把当前要运行的页装入即可,当程序运行时,如果需要其它页面,再进行页面调入或者置换。

  • 例子:内存为1G,硬盘为200G,每个程序的大小为2G。那么该os可以同时装100个程序进内存(甚至可以更多,此处是100,是因为硬盘大小的限制)。而此前的os一个程序也装不下。也就是说,在用户看来,内存的容量变为了200G,因为有100个2G的程序被装入内存了。但实际的内存只有1G,因此将这种存储系统称为虚拟存储器。

在没有虚拟存储器之前,os根据文件名通过文件系统将程序的全部内容载入内存,现在仅装入了一部分,剩下的部分在需要时os该怎么找到?

每个进程都有一张页表。页表的作用是实现程序页号到实地址块号的映射。页表是放在内存中的。

请求分页系统的页表项:

页号实地址块号状态位修改位外存地址

这样os就可以根据外存地址将所需的页面从硬盘中找到装入对应的内存中了。

综上,逻辑地址跟硬盘一点关系都没有。

逻辑地址使每个进程可以独立对程序的指令进行了编号,这样使每个进程都感觉自己在独占内存。到执行的时候容易将其映射为物理地址。

虚拟存储器的引入 使程序可以不必完全装入内存就能运行。虚拟存储器一般会用到分页、分段,但是,分页、分段并不是因为虚拟存储器才被发明的。

3. 虚拟内存

虚拟内存是用硬盘的一部分当内存,虽然把它当做内存用,但这块空间是在硬盘,速度比真实内存慢,所以说它是虚的。

虚拟内存的主要用途是当真实的内存被用完以后,又发生页面置换时,可以先把该页面换到这个地方。即虽然页面被换出内存了,但认为其还在内存。这个地方可以被称为假的实地址。

这块硬盘采用的调度算法和其他地方不一样。它是专门为换入换出设计的。

在32位系统中,假如物理内存大于4G,虚拟内存将完全无用武之地。因为cpu只能访问4G的内存空间,没必要再用硬盘当内存了。

 


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

相关文章

虚拟内存管理加拓展(全网最细)

写在前面:我是【程序员宝藏】的宝藏派发员,致力于创作原创干货。我热爱技术、热爱开源与分享,创作的【计算机基础面试问题】系列文章和【计算机基础主干知识】系列文章广受好评!后期会创作更多优质原创系列文章!如果您…

虚拟内存空间

每一个进程都会对应一个虚拟地址空间,32位操作系统会为每个进程分配4G(2的32次方)的虚拟地址空间,而MMU(Memory Management Unit,内存管理单元)负责把这4G虚拟内存映射到实际的物理内存中。这4G…

Virtualbox 扩展虚拟磁盘空间大小

有时我们在使用Virtualbox虚拟机时,分配给虚拟机的磁盘空间太小,导致后期需要扩容,通过以下方法可以扩展磁盘空间。 增强虚拟磁盘空间容量 扩展前最好把所有快照删除掉! 方法一:扩展磁盘空间 打开Virtualbox所在的…

【Linux】Linux权限的概念、Linux权限管理、文件类型和访问权限的设置、粘滞位介绍

文章目录 1.Linux权限的概念2.Linux权限管理2.1文件访问者的分类2.2文件类型的访问权限2.3文件权限值的表示方法2.4文件访问权限的相关设置方法 3.目录的权限4.粘滞位 1.Linux权限的概念 在生活中,一件事情是否允许被一个人做,就是叫做权限,权…

深入虚拟内存(Virtual Memory,VM)

深入虚拟内存(Virtual Memory,VM) 我们应该知道物理内存(Physical Memory)指的是硬件上的内存,即 RAM。它通常指的是插在主板上的内存条,给进程提供临时数据存储的设备。因为 CPU 可以直接从物…

虚拟内存概念3

1 物理内存 1.1 物理内存概述 1.2 直接使用物理内存的问题 1.2.1 多进程地址布局困难 1.2.2 进程地址空间小 1.2.3 程序链接不统一 2 虚拟内存 2.1 引入虚拟内存的目的 2.2 局部性原理与虚拟内存 2.3 虚拟内存到物理内存的映射 2.3.1 概述 2.3.2 页面分配与映射 2.…

Virtual Memory(虚拟内存)

转载请注明出处:http://blog.csdn.net/c602273091/article/details/53529384 Why VMVM TranslationSome tips 18-600快要考试了,在博客中把学过的东西整理一下思路,写到博客里也好以后自己有空看看,希望对以后的人也有所帮助。…

matlab 扩大虚拟内存

今天服务器挂了。。用了自己电脑结果爆内存,分享一个扩大虚拟内存的方法,经测试有效。。 使用Matlab生成很大的图片时,碰到了"out of memory"的错误,导致图片无法生成,于是不得不扩展虚拟内存。具体过程记录…