地址空间&地址生成、连续内存分配

  • 地址空间定义

  • 地址生成

逻辑地址生成

物理地址的生成

  • 地址安全检查

  • 连续内存分配

  • 内存碎片问题

内存碎片:空闲内存不能被利用

外部碎片:分配单元之间的未被使用内存

内部碎片:分配单元内部的未被使用内存,取决于分配单元大小是否要取整。

  • 分区的动态分配
  1. 第一适配

原理&实现

空闲分区列表按地址顺序排列

分配过程时,搜索一个合适的分区

释放分区时,检查是否可与临近的空闲分区合并

优点:

简单

在高地址空间有大块的空闲分区

缺点:

外部碎片

分配大块时较慢

 

 

 2. 最佳适配

原理&实现

空闲分区列表按照大小排列

分配过程时,搜索一个合适的分区

释放分区时,检查是否可与临近的空闲分区合并

优点:

大部分分配的尺寸较小,效果很好

    •  可避免大的空闲分区被拆分
    • 可减小外部碎片大小
    • 相对简单

缺点:

外部碎片

释放分区较慢

容易产生很多无用的小碎片

 

 

         3. 最差适配

原理&实现

 

空闲分区列表按照大小排列

 

分配时,选最大分区

 

释放时,检查是否可与临近的空闲分区合并,进行可能的合并,并调整空闲分区列表顺序。

 

优点:

 

中等大小的分配较多时,效果最好

避免出现太多的小碎片

 

缺点:

 

外部碎片

 

释放分区较慢

 

容易破坏大的空闲分区,因此后续难以分配大的分区

压缩式碎片整理

交换式碎片整理

原文地址:https://www.cnblogs.com/cjsword/p/12150340.html