实时系统中动静结合的内存管理实现实时系统中动静结合的内存管理实现
摘要:提出了实时系统中内存管理的一种实现方法。该方法采用动静结合的方式,给用户提供了比较大的自由
度,同时也提高了系统的灵活性。本文主要从实现方面进行了详细阐述。 1. 实时系统内存分配 实时系
统分为硬实时系统和软实时系统。硬实时系统是指系统中各任务不仅要执行无误而且要做到准时;软实时系统
是指系统中各任务运行的越快越好,并不要求限定某一任务必须在多长时间内完成。 可以看出动态内存分
配是绝对不能用于硬实时系统的,因为动态分配具有时间不确定性(分配时间与内存块数量有关),而且动态
分配可能产生分配不成功的情况。所以对于硬实时系统,只能采用静态内存分配方式。静态分配是指在编译或
链接时将
摘要:提出了实时系统中内存管理的一种实现方法。该方法采用动静结合的方式,给用户提供了比较大的自由度,同时也
提高了系统的灵活性。本文主要从实现方面进行了详细阐述。
1. 实时系统内存分配实时系统内存分配
实时系统分为硬实时系统和软实时系统。硬实时系统是指系统中各任务不仅要执行无误而且要做到准时;软实时系统是指
系统中各任务运行的越快越好,并不要求限定某一任务必须在多长时间内完成。
可以看出动态内存分配是绝对不能用于硬实时系统的,因为动态分配具有时间不确定性(分配时间与内存块数量有关),
而且动态分配可能产生分配不成功的情况。所以对于硬实时系统,只能采用静态内存分配方式。静态分配是指在编译或链接时
将程序所需的内存空间分配好,这样不会出现分配失败的情况。
其实对于大多数实时系统而言,内存分配都是采用两种方式的结合,即动静结合的分配方式。
2. 动静结合内存分配的一种实现动静结合内存分配的一种实现
对于整个内存,把它分为4 个部分,即中断向量区、系统映射区、系统内存区和用户内存区。如图1 所示。
其中中断向量表和系统映射区在编译时已经设定好,即采用静态分区的方式。剩下的两个部分可以按用户要求配置。
2.1 系统内存区分区系统内存区分区
对于整个系统内存区,还需要要进行分区操作,使它产生多个分区,每个分区中内存块的大小相等,各个分区之间内存块
大小不等。这样来满足多种内存申请需求。
2.1.1 系统分区类结构定义
系统建立了一个内存块结构,它由一个指向下一个内存块的指针构成,因为系统使用单向链表来管理空闲内存块,所以必
须用每个内存块的这个指针来让所有的空闲内存块连成一个链表。 图1 内存划分示意图结构如下:
struct memblock
{