空内存控制块链表
发布时间:2009/2/2 0:00:00 访问次数:750
与μc/os-ii中的其他控制块一样,在μc/os-ii初始化时,会调用内存控制块的初始化函数os memlnit()定义并初始化一个空内存控制块链表。
在这个空内存控制块链表中,一共有os_max_mem_part(在文件os_cfg.h中定义的常数)个空内存控制块。这时内存控制块的成员osmemfreelist暂时作为指向下一个内存控制块的指针。
由于这时链表中的所有控制块还没有对应的内存分区,所以这个链表就叫做空内存控制块链表。空内存控制块链表的结构如图所示。
图 空内存控制块链表
每当应用程序需要创建一个内存分区时,系统就会从空内存控制块链表中摘取一个控制块,而把链表的头指针osmemfreelist指向下一个空内存控制块;而每当应用程序释放一个内存分区时,则会把该分区对应的内存控制块归还给空内存控制块链表。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
与μc/os-ii中的其他控制块一样,在μc/os-ii初始化时,会调用内存控制块的初始化函数os memlnit()定义并初始化一个空内存控制块链表。
在这个空内存控制块链表中,一共有os_max_mem_part(在文件os_cfg.h中定义的常数)个空内存控制块。这时内存控制块的成员osmemfreelist暂时作为指向下一个内存控制块的指针。
由于这时链表中的所有控制块还没有对应的内存分区,所以这个链表就叫做空内存控制块链表。空内存控制块链表的结构如图所示。
图 空内存控制块链表
每当应用程序需要创建一个内存分区时,系统就会从空内存控制块链表中摘取一个控制块,而把链表的头指针osmemfreelist指向下一个空内存控制块;而每当应用程序释放一个内存分区时,则会把该分区对应的内存控制块归还给空内存控制块链表。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
上一篇:内存控制块OS_MEM的结构