存管理机制研究-电动液压滚圆机滚弧机张家港数控钢管电动滚圆机
作者:lujianjun | 来源:泰宇机械 | 发布时间:2019-03-25 12:53 | 浏览次数:

Nucleus PLUS是一种嵌入式实时操作系统内核,其内存管理采用实存储器管理技术。本文详细研究了Nucleus PLUS动态内存管理机制及实现细节,针对主要系统函数介绍测试思路及测试用例设计方法。最后从内存碎片和内存越界风险两个角度对该内存管理机制进行评估,提出改进措施和内存越界检测方法。为基于本版本Nucleus PLUS的嵌入式开发在动态内存使用方面提供参考和指导。 PCB节点就会从链表中删除。内存池控制块链表如图1所示。图1内存池控制块链表1.1.2内存池控制块(DM_PCB)DM_PCB用于管理内存池,它包含了内存池的状态和控制信息,属性见表1。表1内存池控制块主要属性属性含义dm_name内存池的名称dm_start_address内存池起始地址d小分配空间dm_available可用内存大小(以字节为单位)池空闲块链表头指塞在该内存池上的任务个数dm_suspension_list内存池阻塞结构链表,当任务向该内存池的内存申请无法被满足时,则针对该任务生成一个内存池阻塞结构,加入该链链表的每个节点为一个内存池阻塞结构,其定义见DM_SUSPEND。本文由公司网站滚圆机网站采集转载中国知网资源整理!www.wanguanji138.com它主要包含如下信息存管理机制研究-电动液压滚圆机滚弧机张家港数控钢管电动滚圆机滚弧机:①dm_memory_pool:内存池控制块指针,指示阻塞哪个内存池上。:任务控制块指针,指示哪个任务被阻塞。任务请求内存的大小。1.1.3内存池内存布局内存池的内存由内存块组成,分为空闲内存存池的创建会建立一个属性由传入参数决定的DM_PCB,并将其加入到“内存控制块链表”中。内存池创建后,其内存的初始布局为:一个空闲内存块和一个Trailer。1.2.2内存分配内存分配采用first-fit策略(首次适配策略)。第一个满足需求的可用内存块被分配。如果没有可用内存满足内存分配请求,任务可能被挂起。系统提供两种内存分配接口:图5内存分割①此方式分配的内存首地址不要求对齐。此方式分配的内存首地址要求分配的内存首地址按参数指定的值对齐。内存分配时,可能出现下列内存分割情况:(注:下文的“最小分配空间”记为min_alloc,大小为16)①尾部分割(rearsplit):当内存分配后尾部剩余内存,会发生尾部分割,将尾部所剩内存新建一个空闲块。图3中,大小为100字节的空闲块中分配出去68字节后,剩余32字节,等于“最小分配空间”,于是进行尾部分割。图3尾部分割②头部分割于对齐方式分配内存,如果头部用于对存管理机制研究-电动液压滚圆机滚弧机张家港数控钢管电动滚圆机滚弧机本文由公司网站滚圆机网站采集转载中国知网资源整理!www.wanguanji138.com