内存管理

heap_1

  • 最简单,只允许申请内存,不允许释放内存
  • 从内存堆的低地址开始往高地址分配内存

heap_2

  • 允许申请和释放内存,但不能合并相邻的空闲内存块
  • heap_2 内存管理算法使用了最适应算法,以支持释放先前申请的内存,但是 heap_2 内存管理算法并不能将相邻的空闲内存块合并成一个大的空闲内存块,因此 heap_2 内存管理算法不可避免地会产生内存碎片
  • 内存堆被多次申请和释放后,由于相邻的小空闲内存无法合并成一个大的空闲内存,从而导致即使内存堆中有足够多的空闲内存,也无法再分配出一块大内存
  • 在这里插入图片描述

heap_3

  • 简单封装 C 库的函数 malloc()和函数 free(),以确保线程安全

heap_4

  • 使用了首次适应算法
  • 允许申请和释放内存
  • 并且能够合并相邻的空闲内存块,减少内存碎片的产生

heap_5

  • 在 heap_4 内存管理算法的基础上实现了管理多个非连续内存区域的能力
Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐