嵌入式管理,第一个小作业。实现自己的内存管理程序。
题目:统计程序使用内存块大小的频率,实现内存管理程序。目的为减少外部碎片,(宁可换取内部碎片)功能包括
①初始化内存区域
②申请内存,返回内存首地址
③释放内存
④展示内存占用情况
情景假设:如程序经常使用30-50字节的小块内存区域,较长使用500-1000的大块内存区域,以及较少的1000+的内存区域。
实现思路:
1.设计模型
(1)对于小内存块(SMALLSIZE字节)和大内存块(BIGSIZE字节)的管理如下图。
该部分共有四个数据结构 ↓
/*小内存块结构*/
typedef struct{
char data[SMALLSIZE];/*存放data域*/
}small_block;
/*大内存块结构 */
typedef struct{
char data[BIGSIZE];/*存放data域*/
}big_block;
/*小内存块管理结构*/
typedef struct{
small_block * base_add;/*小内存块的基地址*/
int busy_n