虚拟内存

虚拟内存

虚拟内存是进程和内存的物理地址之间的桥梁,进程操作的地址是虚拟地址,这样就可以避免直接操作物理地址可能引起的冲突,操作系统将虚拟地址和物理地址映射起来。映射的方式是内存分段和内存分页

内存分段

当一段程序写好之后,程序中的各个部分主函数、变量、动态数组等等会被分配到不同的段中。如下图所示:

内存分段.png

查找位置的时候通过段基址+偏移地址的方式来寻找实际的物理地址。

段基址则固定在PCB里面的进程段表,CPU每执行一条涉及地址的指令都会查下这个PCB表。

内存碎片

内存分段中,程序在内存里面是连续的,内存在分配给一个个程序空间之后,会剩下许多的空闲分区。此时,如果需要一个40K大小的内存,会将第一个满足要求的内存分配出去。但是如果此时有一个160K的内存需求程序,而剩下的空闲列表只有150K的和50K的,都不够,这个就是内存碎片。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 我们都知道一个进程是与其他进程共享CPU和内存资源的。正因如此,操作系统需要有一套完善的内存管理机制才能防止...
    java高并发阅读 2,467评论 0 5
  • 概述 我们都知道一个进程是与其他进程共享CPU和内存资源的。正因如此,操作系统需要有一套完善的内存管理机制才能防止...
    SylvanasSun阅读 3,887评论 0 25
  • 本文转载自 https://juejin.im/post/59f8691b51882534af254317 参考:...
    xingdong阅读 2,767评论 0 3
  • 计算机系统的存储器层次结构自上而下依次分为:寄存器、高速缓存、内存储器、磁盘缓存、可移动存储介质5层。 存储介质的...
    特立独行的佩奇阅读 740评论 0 0
  • 1.虚拟内存的介绍 ① 背景:软件占用的内存可能已经远远超出了电脑本身具有的物理内存。 ② 问题:为什么可以这样呢...
    熊本极客阅读 1,636评论 0 2