代码改变世界

内存碎片

2016-09-04 10:47  shuaihanhungry  阅读(320)  评论(0编辑  收藏  举报
  • 内存碎片指的是不能够被操作系统利用的内存空间。

  • 内存碎片分为内部碎片和外部碎片。

  • 内部碎片是指已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间。外部碎片是指还没有被分配出去(不属于任何进程),但由于太小了无法分配给申请内存空间的新进程的内存空闲区域。

  • 内部碎片是已经被分配出去的的内存空间大于请求所需的内存空间。外部碎片是指还没有分配出去,但是由于大小太小而无法分配给申请空间的新进程的内存空间空闲块。

  • 内部碎片是处于区域内部或页面内部的存储块。外部碎片是出于任何已分配区域或页面外部的空闲存储块。

  • 固定分区存在内部碎片,可变式分区分配会存在外部碎片,页式虚拟存储系统存在内部碎片,段式虚拟存储系统存在外部碎片。

  • 为了有效的利用内存,使内存产生更少的碎片,要对内存分页,内存以页为单位来使用,最后一页往往装不满,于是形成了内部碎片。为了共享要分段,在段的换入换出时形成外部碎片,比如5K的段换出后,有一个4k的段进来放到原来5k的地方,于是形成1k的外部碎片。