一种多任务调度的方法

文档序号:6463500阅读:291来源:国知局
专利名称:一种多任务调度的方法
技术领域
本发明涉及计算机领域,尤其涉及一种多任务调度的方法。
技术背景实时操作系统是嵌入式应用软件的基础和开发平台,是一个可靠性和可信性很高的实时内核。RTOS将CPU时间、中断、1/0、定时器等资源都包 装起来,寧给用户一个标准的API (Application Program Interface,应 用程序接口),并根据各个任务的优先级,合理地在不同任务之间分配CPU 时间。RTOS通常设置于嵌入式系统中实时地完成各种功能,这些嵌入式系统 通常具有实时性很好、系统体积小、资源有限和没有图形界面等特点。典 型的RT0S有V勤rks、 pS0S、 Nucleus、 eCos、 uC/0S-II等。GUI (Graphic User Interface,图形用户接口)系统以图形的方式实 现人机交互,调度机制是GUI系统的核心,管理GUI系统的驱动和各个应用 程序,实现各个应用程序对CPU资源的共享使用。高性能的GUI调度机制不 仅占用很少的CPU资源,而且能够快速响应用户请求。上述现有技术中的GUI系统的缺点为上述GUI系统的调度完全使用内 核提供的线程调度,每个应用程序不管是否需要界面显示都有独立的线程 来接收操作系统的调度。基于底层强大的操作系统做支撑,各个应用程序的设计虽然具有极大的灵活性,但是,各个应用程序对底层操作系统的依赖太重,通常需要平台化的操作系统的支持,比如Windows或者Limix操作 系统。上述GUI系统的资源开销巨大,不能适应功能明确的小型嵌入式系统的应 用需求, 一般不支持RTOS作为底层的操作系统。另外,对于嵌入式应用也 不需要复杂的GUI系统,过于复杂的GUI事实上会降低用户操作的简便性。 发明内容为解决上述中存在的问题与缺陷,本发明提供了一种多任务调度的方法。本发明是通过以下技术方案实现的本发明所涉及的一种多任务调度的方法,包括控制多个分别实现不 同任务功能的应用程序中最多只能有一个处于运行状态;应用程序的管理 模块按照统一的唯一化的方式调用应用程序模块中的各个应用程序,和各 个应用程序进行消息交互;将需要下发的消息发送给正在运行的应用程序, 对应用程序没有处理的消息进行默认处理。所述管理模块按照具有相同参数结构的函数的指针调用所述各个应用 程序,和所述各个应用程序交互具有统一的数据结构的消息。所述方法还包括所述管理模块将正在运行的应用程序中断,将中断 的应用程序的所有相关上下文信息发送给程序堆栈,程序堆栈将该相关上 下文信息进行保存;当其它正在运行的应用程序退出后,所述管理模块将 最后保存在程序堆栈中的应用程序释放出来,将释放出来的应用程序恢复 为运行状态。所述方法还包括在正在运行的应用程序中创建并维护和所述UI管理模块和应用程序模块共同使用的线程不同的另一个线程,该另一 个线程不能控制多任务调度系统的显示输出,当该正在运行的应用程序退 出后,释放所述创建的另一个线程。本发明提供的技术方案的有益效果是本发明通过在整个多任务调度系统中运行一个独立线程,在这个独立 线程中按统一的唯一化方式调用各个应用程序模块。从而可以基于简单的 RTOS上实现比较完善的图形化的用户交互系统。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图
对本 发明实施方式作进一步地详细描述本实施例提供了一种多任务调度的方法,该方法主要包括UI管理模 块控制多个分别实现不同任务功能的应用程序中最多只能有一个处于运行 状态,并且处于运行状态的应用程序运行在同一个线程中,该线程可以为 独立线程。所述方法还包括UI管理模块按照统一的唯一化的方式调用应用程序 模块中的各个应用程序,和各个应用程序进行消息交互;将需要下发的消 息发送给正在运行的应用程序,对应用程序没有处理的消息进行默认处理。上述统一的唯一化的方式调用方式可以为UI管理模块按照具有相同 参数结构的函数的指针调用所述各个应用程序,和所述各个应用程序交互 具有统一的数据结构的消息。所述方法还包括UI管理模块根据需要将正在运行的应用程序中断,将中断的应用程序的所有相关上下文信息发送给程序堆栈,程序堆栈将该相关上下文信息进行保存;当其它正在运行的应用程序退出后,所述管理 模块将最后保存在程序堆栈中的应用程序释放出来,将释放出来的应用程 序恢复为运行状态。在正在运行的应用程序中创建并维护和所述独立线程不同的另一个线 程,该另一个线程不能控制多任务调度系统的显示输出,当该正在运行的 应用程序退出后,释放所述创建的另一个线程。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并 不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本 发明的保护范围应该以权利要求的保护范围为准。
权利要求
1. 一种多任务调度的方法,其特征在于,该方法包括控制多个分别实现不同任务功能的应用程序中最多只能有一个处于运行状态;应用程序的管理模块按照统一的唯一化的方式调用应用程序模块中的各个应用程序,和各个应用程序进行消息交互;将需要下发的消息发送给正在运行的应用程序,对应用程序没有处理的消息进行默认处理。
2、 根据权利要求l所述的多任务的调度的方法,其特征在于,其中所述管 理模块按照具有相同参数结构的函数的指针调用所述各个应用程序,和所述各 个应用程序交互具有统一 的数据结构的消息。
3、 根据权利要求l所述的多任务调度的方法,其特征在于,所述方法还包 括所述管理模块将正在运行的应用程序中断,将中断的应用程序的所有相关 上下文信息发送给程序堆栈,程序堆栈将该相关上下文信息进行保存;当其它 正在运行的应用程序退出后,所述管理模块将最后保存在程序堆栈中的应用程 序释放出来,将释放出来的应用程序恢复为运行状态。
4、 根据权利要求l所述的多任务调度的方法,其特征在于,所述方法还包 括在正在运行的应用程序中创建并维护和所述UI管理模块和应用程序模块共 同使用的线程不同的另一个线程,该另一个线程不能控制多任务调度系统的显 示输出,当该正在运行的应用程序退出后,释放所述创建的另一个线程。
全文摘要
本发明公开了一种多任务调度的方法,该方法主要包括控制多个分别实现不同任务功能的应用程序中最多只能有一个处于运行状态;应用程序的管理模块按照统一的唯一化的方式调用应用程序模块中的各个应用程序,和各个应用程序进行消息交互;将需要下发的消息发送给正在运行的应用程序,对应用程序没有处理的消息进行默认处理。
文档编号G06F9/48GK101266555SQ20081010620
公开日2008年9月17日 申请日期2008年5月9日 优先权日2008年5月9日
发明者任忠宇, 鲁现辉 申请人:北京泰得思达科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1