美文网首页
物理内存和虚拟内存

物理内存和虚拟内存

作者: 简书徐小耳 | 来源:发表于2019-03-11 19:46 被阅读0次

物理内存和虚拟内存的区别

物理内存

  • 1.插在板子上的内存是多大就是多大了
  • 2.在cpu概念中物理内存就是cpu的地址线可以直接进行寻址的内存空间大小。
例子:比如8086只有20根地址线,那么它的寻址空间就是1MB,我们就说8086能支持1MB的物理内存,及时我们安装了128M的内存条在板子上,我们也只能说8086拥有1MB的物理内存空间。同理我们现在大部分使用的是32位的机子,32位的386以上CPU就可以支持最大4GB的物理内存空间了。

虚拟内存

    1. 正在运行的一个进程,他所需的内存是有可能大于内存条容量之和的.
  • 2.但是并不是所有数据都一起加到物理内存的,势必有一部分数据放入到其他介质(磁盘)。当进程需要的时候,再通过调度将其
    从磁盘捞取到物理内存。
  • 3.因此虚拟内存可以理解为进程所需的内存空间总和,其中一部分可能不在我们物理内存。

早期没有虚拟内存的时候出现的问题:

  • 1.现在有多个程序需要运行,但是内存空间不足了,就需要将其他程序暂时拷贝到硬盘当中,然后将新的程序装入内存运行.由于大量的数据装入装出,内存的使用效率会十分Low。

  • 2.由于程序都是直接访问物理内存的,所以一个进程可以修改其他进程的内存数据,甚至修改内核地址空间中的数据。

  • 3.因为内存地址是随机分配的,所以程序运行的地址也是不正确的。

假设你的计算机是32位,那么它的地址总线是32位的,也就是它可以寻址00xFFFFFFFF(4G)的地址空间,但如果你的计算机只有256M的物理内存0x0x0FFFFFFF(256M),同时你的进程产生了一个不在这256M地址空间中的地址,那么计算机该如何处理呢?

  • 1.计算机对虚拟内存进行分页产生页,对物理内存分页产生页帧。
  • 2.这里的页和页帧大小一样,因此我们的页个数一般大于页帧数。
  • 3.计算机上有一个页表,类似于map。是虚拟内存页和物理内存帧号的映射(一对一)。
  • 4.因为是一对一所以有些虚拟内存页无法再页表上找到对应的页帧,这个时候如果需要物理内存但是找不到页帧,
    只能调用操作系统进行覆盖最少使用的页帧,然后将页帧上修改的数据刷入磁盘。然后把我们该页需要的内容写入该页帧然后修改页表的映射。
image.png

相关文章

  • Linux 内存管理 应用篇

    1、物理内存和虚拟内存 物理内存:物理内存就是系统硬件提供的内存大小,是真正的内存 虚拟内存:为了满足物理内存的不...

  • linux io与zero copy

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

  • linux 虚拟内存的作用?

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

  • 你不知道的内存管理

    抓主线,三个点: 虚拟内存组织 虚拟内存和物理内存的转换 物理内存组织 虚拟内存组织 平时在进程中,所谓的内存地址...

  • iOS 中的虚拟内存和物理内存

    iOS 中的虚拟内存和物理内存 1. 虚拟内存和物理内存 1.1 起源 在早期的计算机中我们使用的都是物理内存。 ...

  • iOS虚拟内存系统

    内存分为虚拟内存(virtual memory)和物理内存(resident memory)。物理内存 指的是设备...

  • 内存

    虚拟内存、物理内存

  • 什么是物理/虚拟/共享内存——Linux内存管理小结一

    物理内存和虚拟内存到底有什么区别? 提到内存,我们会想到经常接触的三个词:虚拟内存、物理内存、共享内存。它们分别...

  • 25用户态内存映射

    mmap 将虚拟地址空间映射到物理内存 匿名映射,即虚拟内存和物理内存直接映射文件映射,将文件映射到虚拟内存ima...

  • Android内存管理机制

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

网友评论

      本文标题:物理内存和虚拟内存

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