[发明专利]一种基于多DSP处理器平台的分布式实时多任务操作系统有效
申请号: | 201210459048.X | 申请日: | 2012-11-14 |
公开(公告)号: | CN103019838A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 汤俊;张曦;汤小为;陆俊江;李宁;杜劲松 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F15/163 |
代理公司: | 北京众合诚成知识产权代理有限公司 11246 | 代理人: | 薄观玖 |
地址: | 100084 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 dsp 处理器 平台 分布式 实时 任务 操作系统 | ||
技术领域
本发明属于嵌入式操作系统领域,尤其涉及基于多DSP处理器平台的分布式实时多任务操作系统。
背景技术
随着现今DSP技术的发展,DSP被越来越多的用于消费电子、通信、军事等领域,基于DSP系统的软件开发经历了无操作系统开发和基于操作系统开发两个阶段。在无操作系统的开发阶段中,系统没有操作系统的支持,通常通过汇编语言来访问底层硬件资源。这类系统一般功能单一,针对性强,且无用户接口。在有操作系统的开发阶段中,系统能够支持多任务处理,具有通信管理、内存管理、调度管理等功能,开发人员无须了解底层硬件结构便能进行软件开发。尽管基于操作系统的DSP开发有若干优势,在实时性要求非常强的场合,系统一般还是会采取无操作系统的开发方法,这是因为使用操作系统会带来额外的开销。VDK(VisualDSPKernel)是ADI公司推出的商业操作,随VisualDSP一起出售。其特点是(1)基于优先级的调度系统,对于不同优先级的任务来说,处理器资源优先分配给高优先级任务,对于同一优先级任务来说,处理器轮流分配给不同任务。(2)使用信号量、消息通信机制完成线程间同步。
经过对现有技术的研究,VDK具有一下不足之处:
(1)作为一款商业操作系统,VDK并不开源,因而不能根据实际处理任务需求对其进行改进 (2) 对多DSP处理器平台支持不好 (3)实时性差,面对高速信号处理系统性能有待提高 (4)支持任务个数有限,无法处理复杂的多任务处理任务。
发明内容
本发明针对现有技术存在的上述不足,提出一种基于多DSP处理器平台的分布式实时多任务处理系统,采用非抢占调度策略作为调度内核,支持任意多个处理任务,改善了系统实时性。
本发明的特征在于,这是一个在多DSP处理器平台的每个DSP处理器上对内部建立的多个处理模块进行实时调度的分布式实时操作系统,包括:任务调度模块,存储管理模块和任务通信模块,其中:
存储管理模块,包括相互连接的内存池管理单元和内存池单元,以传输任务访问请求,其中:
内存池单元,共有N个内存块,分别存储每个处理任务的任务输入数据,每个处理任务的任务输出数据和所有所述DSP处理器任务的中间变量缓存数据,
内存池管理单元,用以维护分别记录了N个内存块使用情况的共N个使用信息mem_use_info的数据结构,
所述内存池管理单元按以下步骤进行管理:
第一步:各内存块初始化,
第二步:判断是否接收到包括对内存池的存储空间的申请及其容量在内的内存使用信息:
若不存在,则返回第一步,
若存在,则查找所述各条使用信息中是否存在满足申请大小的内存块,若不存在,则返回第一步,若存在,则获取内存起始地址ptr,
第三步,更新第二步中找到的内存块中的内存使用信息,返回第一步,
任务通信管理模块,包括:任务信息通信单元,和任务数据通信单元,其中:
任务信息通信单元,传输来自主控机或者所述任务调度模块的定长的任务信息字,长度为64字,包括:发送任务编号、发送任务的DSP处理器、接受任务编号、接受任务的DSP处理器、任务数据长度和任务模式码,
任务数据通信单元,传输来自所述主控机或DSP处理器的任务长度的任务数据,
所述任务通信单元,按以下步骤与作为发送节点的所述主控机进行任务通信:
第一步,所述任务通信单元获得所述任务信息字,
第二步,作为所述发送节点的主控机或DSP处理器生成任务信息字并发送,
第三步,所述任务信息通信单元接受任务信息字,并配置所述任务数据通信单元,
第四步,所述任务通信单元接受来自所述发送单元的指定长度、指定任务的数据,
任务调度模块,包括:调度模块单元、等待态任务队列单元、就绪态任务队列单元和输出态任务队列单元,所述任务调度模块按以下步骤进行任务调度执行,
第一步,初始状态下,所述调度执行单元把从所述任务通信模块接收到的所有任务置于等待态任务队列单元,
第二步,所述调度执行单元扫描所述等待态任务队列单元,判断是否存在准备就绪的任务,
若:有准备就绪的任务,则把所述准备就绪任务置于就绪态任务队列单元,
若:没有,则返回第一步,
第三步,所述调度执行单元扫描所述就绪态任务队列单元,判断是否存在已处理就绪的任务:
若:存在则把所述已处理就绪的任务置于输出态任务队列中,
若:没有,返回第二步,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210459048.X/2.html,转载请声明来源钻瓜专利网。