-
emc datadomain 2500存储设备的任务堆栈维护手册
资源介绍
4.2 任务堆栈
每个任务都有自己的堆栈空间。堆栈必须声明为 OS_STK类型,并且由连续的内存空间
组成。用户可以静态分配堆栈空间(在编译的时候分配)也可以动态地分配堆栈空间(在运行
的时候分配)。静态堆栈声明如程序清单 L4.4 和 4.5 所示,这两种声明应放置在函数的外
面。
程序清单 L4.4 静态堆栈
static OS_STK MyTaskStack[stack_size];
或
程序清单 L4.5 静态堆栈
OS_STK MyTaskStack[stack_size];
用户可以用 C 编译器提供的 malloc()函数来动态地分配堆栈空间,如程序清单 L4.6
所示。在动态分配中,用户要时刻注意内存碎片问题。特别是当用户反复地建立和删除任务
时,内存堆中可能会出现大量的内存碎片,导致没有足够大的一块连续内存区域可用作任务
堆栈,这时 malloc()便无法成功地为任务分配堆栈空间。