美文网首页
虚拟内存

虚拟内存

作者: 狗尾巴草败了 | 来源:发表于2017-09-03 17:28 被阅读0次

虚拟内存的基本思想:

因为物理内存的空间是有限的,进程所需的RAM数量总和远远超出了存储器所能支持的范围。为此引入了虚拟内存的思想。

每个程序拥有自己的地址空间,这个空间被分割成多个块,每一块称为一个页面。每一页有连续的地址范围。这些页被映射到物理内存,但并不是所有的页都必须在内存中才能运行程序。
当程序引用到一部分在物理内存中的地址空间时,由硬件立刻执行执行必要的映射。当程序引用到一部分不在物理内存的地址空间时,由操作系统负责将缺失的部分装入物理内存,并重新执行失败的指令。

在使用虚拟内存的情况下,虚拟地址不是被直接送到内存总线上,
而是送到内存管理单元 --MMUMMU把虚拟地址映射到物理内存地址。

虚拟地址空间按照固定大小划分成的单元称为页面, 在物理内存中对应的单元称为页框,32位Linux页面大小为4KB。RAM和磁盘之间的交换是以整个页面为单位进行的。

映射原理:

虚拟地址的单位是:页面
物理地址的单位是: 页框
页表存在MMU中,页表的作用就是把虚拟页面映射为物理页框。
虚拟地址被分成虚拟页号(高位部分)和偏移量(低位部门)两部分。
虚拟页号可以用作页表的索引,以找到该虚拟页面对应的页表项。由页表项可以找到页框号,然后替换掉页框号。形成送往内存的物理地址。
从数学角度来说,页表是一个函数,它的参数是虚拟页号,结果是物理页框号

页表中还有一个“在/不在”位:
当该标志位是1,表示该虚拟页面在内存中,当该标志位为0,表示该虚拟页面不在内存中,会导致缺页中断

虚拟内存的优点

  1. 进程与进程,进程与内核相互隔离

  2. 适当情况下,两个或更多的进程能共享内存

  3. 便于实现内存保护机制

  4. 驻留在内存中的仅是程序的一部分,所以程序的加载和运行都很快,而且一个进程所占用的内存能够超过RAM容量

  5. 由于每个进程使用的RAM减少了,RAM同时可以容纳的进程的数量就增多了,提高CPU的利用率

相关文章

  • 操作系统——内存映射

    定义 虚拟内存的目标存储器是磁盘,所以虚拟内存区域是和磁盘中的文件对应的。初始化虚拟内存的内容时,会把虚拟内存区域...

  • 操作系统内存

    Linux 内存 一、虚拟内存 这个虚拟内存指的是“进程的虚拟内存”,或者说是虚拟地址空间,注意与” Linux ...

  • iOS内存管理及优化

    iOS内存管理的基本介绍: 1.iOS使用的是虚拟内存:段式虚拟内存+页式虚拟内存。 2.iOS没有Swap机制,...

  • 进程虚拟内存

    Linux虚拟内存空间分布Linux虚拟内存空间描述linux进程虚拟内存 .text(代码段)可执行文件加载到内...

  • Linux 内存管理

    虚拟内存1.1. 为什么要使用虚拟内存技术1.2. 理论前提1.3. 虚拟内存实现1.4. 页机制1.5. MMU...

  • MacOS, iOS 内存的基本概念和分析工具

    一些基本概念 Virtual Memory(虚拟内存) 虚拟内存指的是一个程序程序运行时,使用的内存空间。虚拟内存...

  • Android内存管理机制

    Linux 的虚拟内存、物理内存、磁盘 为什么要有虚拟内存的概念 进程创建时,会分配4G的虚拟内存,如果分配物理内...

  • linux 虚拟内存的作用?

    虚拟内存可以用来管理物理内存,进程直接和虚拟内存进行打交道而不是物理内存,为什么这样设计? 什么是虚拟内存? 虚拟...

  • 虚拟内存

    虚拟内存,分页文件,交换空间等等,它们本质上都是一个东西。 1、硬盘内存基本概念 1.1 什么是虚拟内存 虚拟内存...

  • linux io与zero copy

    1. 物理内存与虚拟内存 1.1 物理内存 物理内存指通过物理内存条而获得的内存空间。 1.2 虚拟内存 虚拟内存...

网友评论

      本文标题:虚拟内存

      本文链接:https://www.haomeiwen.com/subject/mywqjxtx.html