技术领域
本发明涉及内存管理技术领域,尤其是一种数字信号处理器嵌入式操作系统内存管理方法。
背景技术
嵌入式操作系统的内存管理方法通常是从整个内存中随机获取,主要有SLAB内存分配算法和顺序查找内存分配算法。SLAB内存分配算法是不断对空闲内存块进行对半切分,直至切出来的内存块刚好满足分配需求。内存分配时,首先计算满足需求的最小块是多大,若能够在对应链表中找到这样的块就直接分配,否则就搜索更大的块,并将其分为2个相等的子块,不断地重复这个过程,直至产生满足需求的最小块。顺序查找内存分配算法是从空闲内存块链表头部向后遍历链表,直至发现第一个合适的空闲内存块。例如,Best-Fit算法是从空闲内存块链表中寻找满足要求的最小空闲内存块;Next-Fit算法是将最后一次满足要求的内存块的位置记录下来,当新的分配请求到来时,从该位置向后搜索,直至找到合适的内存块。
以上两种内存分配算法均在嵌入式操作系统领域得到广泛应用,但针对具有内存空间离散、离散内存空间访问延时不同等特点的数字信号处理器,存在以下不足:1、均需要耗费较长时间寻找最适合的内存块,增加了任务获取内存时长;2、均未根据不同内存块的访问延时高低,对其进行分类,而任务获取内存所在区域是随机的,这可能使得实时性要求较高的任务分配到访问延时较高的内存,导致具有较高实时性需求的任务无法及时获取内存,保证数字信号处理器的任务实时性要求。
发明内容
针对现有内存管理方法中存在的不考虑任务实时性要求的内存分配算法,本发明提出一种数字信号处理器嵌入式操作系统内存管理方法。
一种数字信号处理器嵌入式操作系统内存管理方法,针对数字信号处理器的离散内存,根据其访问延时的长短进行优先级设定,延时越短的内存其优先级越高;操作系统的任务进程根据自身优先级申请对应优先级的内存空间。
进一步的,通过一级链表组织离散的内存块,通过二级链表组织每个内存块中的内存,同一内存块中的已分配内存在释放后与相邻未分配内存合并。
进一步的,内存分配流程包括以下步骤:
步骤1,将未分配内存的进程与其具有相应优先级的内存块匹配,该优先级记为P,并判断具有优先级P的内存块中的未匹配内存是否满足进程需求,若不满足需求,则执行步骤2,否则执行步骤3;
步骤2,P=P+1,再次判断具有优先级P的内存块中的未匹配内存是否满足进程需求,若不满足需求,再次执行步骤2,否则执行步骤3;
步骤3:未分配内存的进程从具有优先级P的内存块中申请内存。
本发明针对数字信号处理器的离散内存提出一种有效的内存管理方法,能够缩短对实时性要求较高的任务的内存访问时间,保障数字信号处理器的任务实时性要求。
附图说明
图1是具有优先级的内存块组合图;
图2是已匹配内存释放后与相邻未分配内存的合并图;
图3是本发明内存分配流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
实施例1
一种数字信号处理器嵌入式操作系统内存管理方法,针对数字信号处理器的离散内存,根据其访问延时的长短进行优先级设定,延时越短的内存其优先级越高。例如,根据内存块访问延时的长短,将其分为0、1、2三个优先级,如图1所示,数值越低,优先级越高。
操作系统的任务进程自身也具有优先级,优先级最高的进程优先向优先级为0的内存块申请内存空间,优先级最低的进程只能向优先级为2的内存块申请内存空间。
通过一级链表组织离散的内存块,通过二级链表组织每个内存块中的内存,同一内存块中的已分配内存在释放后与相邻未分配内存合并,如图2所示,进程3释放的内存与未分配内存合并。
为了提高内存分配成功率,优先级高的进程可以向比起对应优先级低的内存块申请内存,具体内存分配流程如图3所示,包括以下步骤:
步骤1,将未分配内存的进程与其具有相应优先级的内存块匹配,该优先级记为P,并判断具有优先级P的内存块中的未匹配内存是否满足进程需求,若不满足需求,则执行步骤2,否则执行步骤3;
步骤2,P=P+1(即向具有低一级优先级的内存块申请内存空间),再次判断具有优先级P的内存块中的未匹配内存是否满足进程需,若不满足需求,再次执行步骤2(即再次向具有低一级优先级的内存块申请内存空间),否则执行步骤3;
步骤3:未分配内存的进程从具有优先级P的内存块中申请内存。
显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域及相关领域的普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
机译: 信息处理设备,包括从处理器到内存的内存管理设备管理访问权限和一种内存管理方法,能够处理从处理器到存储的混合内存,其中包括非易失性内存
机译: 用于以交互方式再现音频数据和从存储介质中读出的v / v的记录和/或再现设备。用于再现第一数据和/或再现的设备。以交互方式从存储设备读取交互数据。以交互方式使用的设备中用于ENAV的临时存储(缓冲区)的存储器的管理方法为交互式。临时存储的内存的管理方法(“缓冲区”)到交互式设备中的服务“聊天”,该交互设备具有用于临时存储(缓冲区)en.AV的内存,并且在计算机中读取了临时存储的内存的管理方法(记录设备的复制和/或复制,以交互方式复制从armazenBudget的am u00ecdia读取的第一数据和交互数据,以及信息存储m
机译: 通过使用相同的方法直接在数字信号处理器和数字信号处理器中进行内存访问的方法