存储块的原理与创建

1 存储块的原理与创建

1.1 问题概述

malloc和free:
存储块的原理与创建
存储块的原理与创建
存在的问题:

  • 频繁地进行任意大小的内存分配可能会产生很多不连续的细小的外部碎片,导致无法再次分配。
  • 代码实现比较复杂,分配和释放过程操作时间不确定。

我们考虑下是否真的需要分配任意大小的存储空间吗?

  • 从程序最底层到上层应用,所有东西开发都是完全可见的。
  • 针对特定场合开发,有时存储空间分配大小的种类通常只有少量几种。

我们可以试着提供多种不同固定大小的内存分配方式,这样也可以很好的满足我们的需求:
存储块的原理与创建
不过如上方式也有一定的缺点:

  • 不论何时,各个块类型总是独立持有各空闲存储块,彼此无法共享。
  • 有时会存在少量内部碎片。牺牲了一定存储空间换来了简单、快速、确定的分配方式。
    存储块的原理与创建

1.2 设计原理

存储块的原理与创建

1.3 设计实现

存储块结构定义:
存储块的原理与创建
存储块初始化:
存储块的原理与创建


参考资料:

  1. 【李述铜】从0到1自己动手写嵌入式操作系统