多任务调度系统和方法技术方案

技术编号:6243401 阅读:307 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种多任务调度系统和方法,该多任务调度系统主要包括:UI(用户界面)管理模块和应用程序模块。这些模块运行于同一个线程。UI管理模块控制应用程序模块中的各个应用程序,在任意时刻多个应用程序中最多只能有一个处于运行状态;利用本发明专利技术所述多任务调度系统和方法,可以实现具有设计简单、占用系统资源小和用户使用方便等特点的用户交互系统。

【技术实现步骤摘要】

本专利技术涉及计算机应用领域,尤其涉及一种。
技术介绍
RTOS(Realtime operation system,实时操作系统)是嵌入式应用软件的基础和开发平台,是一个可靠性和可信性很高的实时内核。RTOS将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API(Application Program Interface,应用程序接口),并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。RTOS通常设置于嵌入式系统中实时地完成各种功能,这些嵌入式系统通常具有实时性很好、系统体积小、资源有限和没有图形界面等特点。典型的RTOS有Vxworks、pSOS、Nucleus、eCos、uC/OS-II等。GUI(Graphic User Interface,图形用户接口)系统以图形的方式实现人机交互,调度机制是GUI系统的核心,管理GUI系统的驱动和各个应用程序,实现各个应用程序对CPU资源的共享使用。高性能的GUI调度机制不仅占用很少的CPU资源,而且能够快速响应用户请求。上述GUI调度机制不是指操作系统内核层面的任务调度,而是指具有界面显示的各个应用程序之间的调度机制。例如,开机便进入待机模块,摘机就进入拨号模块,不摘机按功能键就进入功能菜单模块,从功能菜单中选择照相机从而进入拍照模块,此时如果有来电,则进入语音通话模块,在通话完毕挂机后又返回拍照模块。当前典型的GUI系统为Windows操作系统的GUI,在嵌入式系统中比较常见的GUI系统为Qtopia和MiniGUI。下面分别介绍上述三个GUI系统。1.Windows CE(Control System,控制系统)。Windows CE是嵌入式操作系统,提供完整的GUI界面和调度系统,与PC版的Windows在界面上几乎完全一致。2.MiniGUI。MiniGUI是针对嵌入式设备的、跨操作系统的图形界面支持系统,属于一种“嵌入式图形中间件”软件产品。在近八年的发展历程中,MiniGUI已经从一个仅仅是为了在Linux显示中文而开发的小技术,发展成为一个跨操作系统的、完善的嵌入式图形用户界面支持系统。MiniGUI最理想的平台是Linux操作系统,也可以支持uCOSII等RTOS。3.Qtopia。Qtopia由Qt/Embedded发展而来,是面向嵌入式系统的Qt版本。因为Qt是KDE等项目使用的GUI支持库,因此有许多基于Qt的X Window程序可以非常方便地移植到Qtopia版本上。Qtopia是一个C++函数库,它提供的控件集风格沿用了PC风格。上述现有技术中的GUI系统的缺点为上述GUI系统的调度完全使用内核提供的线程调度,每个应用程序不管是否需要界面显示都有独立的线程来接收操作系统的调度。基于底层强大的操作系统做支撑,各个应用程序的设计虽然具有极大的灵活性,但是,各个应用程序对底层操作系统的依赖太重,通常需要平台化的操作系统的支持,比如Windows或者Linux操作系统。上述GUI系统的资源开销巨大,不能适应功能明确的小型嵌入式系统的应用需求,一般不支持RTOS作为底层的操作系统。另外,对于嵌入式应用也不需要复杂的GUI系统,过于复杂的GUI事实上会降低用户操作的简便性。上述GUI系统的各个应用程序之间是一种松散关系,导致需要实现多个应用程序时可能会出现如下的两个问题1、如果将要实现的多个应用程序作为不同的应用程序功能模块,则要求这些应用程序功能模块之间不要有太多的相互联系。一旦这些应用程序功能模块之间有复杂的联系,这些应用程序功能模块对系统的资源和设备(比如Camera、内存)的需求必然会产生冲突,实现起来很难维护;2、如果将要实现的多个应用程序作为一个单独应用程序功能模块,则会给多个程序员的协同开发带来巨大的维护难度,将会导致多个程序员去开发同一个模块或者一个程序员完成一个规模宏大的模块。
技术实现思路
本专利技术的目的是提供一种,从而可以实现具有设计简单、占用系统资源小和用户使用方便等特点的用户交互系统。本专利技术的目的是通过以下技术方案实现的一种多任务调度系统,包括用户界面UI管理模块和应用程序模块,UI管理模块和应用程序模块运行于同一个线程,在该独立线程中管理应用程序模块中的各个应用程序,控制所述的多个应用程序中最多只能有一个处于运行状态;应用程序模块和UI管理模块运行于同一个线程,包括多个分别实现不同任务功能的应用程序。所述多任务调度系统还包括资源库包括供应用程序模块中各个应用程序使用的图片资源和/或文字资源。所述多任务调度系统还包括输入法驱动模块对在UI管理模块、应用程序模块、资源库中进行文字输入的输入法进行驱动。所述UI管理模块具体包括消息管理模块按照统一的唯一化的方式调用应用程序模块中的各个应用程序,和各个应用程序进行消息交互;将需要下发的消息发送给正在运行的应用程序,对应用程序没有处理的消息进行默认处理;和/或,应用程序维护模块在应用程序模块中创建和删除应用程序,在任何时刻控制多任务调度系统中最多只能有一个正在运行的应用程序。所述消息管理模块按照具有相同参数结构的函数的指针调用所述各个应用程序,和所述各个应用程序交互具有统一的数据结构的消息。所述UI管理模块还包括线程管理模块在多任务调度系统中创建并管理一个独立线程。所述UI管理模块还包括应用程序中断模块将正在运行的应用程序中断,将中断的应用程序的所有相关上下文信息发送给程序堆栈,程序堆栈将该相关上下文信息进行保存;应用程序恢复模块当正在运行的应用程序退出后,将最后保存在程序堆栈中的应用程序释放出来,将释放出来的应用程序恢复为运行状态。所述应用程序模块还包括线程维护模块在正在运行的应用程序中创建并维护和所述UI管理模块和应用程序模块共同使用的线程不同的另一个线程,该另一个线程不能控制多任务调度系统的显示输出,当该正在运行的应用程序退出后,释放所述创建的另一个线程。所述多任务调度系统包括基于实时操作系统RTOS的用户交互系统。所述用户交互系统包括图形用户接口GUI系统。一种多任务调度的方法,包括应用程序的管理模块控制多个分别实现不同任务功能的应用程序中最多只能有一个处于运行状态,并且处于运行状态的应用程序运行在同一个线程中。所述方法还包括应用程序的管理模块按照统一的唯一化的方式调用应用程序模块中的各个应用程序,和各个应用程序进行消息交互;将需要下发的消息发送给正在运行的应用程序,对应用程序没有处理的消息进行默认处理。所述管理模块按照具有相同参数结构的函数的指针调用所述各个应用程序,和所述各个应用程序交互具有统一的数据结构的消息。所述方法还包括所述管理模块将正在运行的应用程序中断,将中断的应用程序的所有相关上下文信息发送给程序堆栈,程序堆栈将该相关上下文信息进行保存;当其它正在运行的应用程序退出后,所述管理模块将最后保存在程序堆栈中的应用程序释放出来,将释放出来的应用程序恢复为运行状态。所述方法还包括在正在运行的应用程序中创建并维护和所述UI管理模块和应用程序模块共同使用的线程不同的另一个线程,该另一个线程不能控制多任务调度系统的显示输出,当该正在运行的应用程序退出后,释放所述创建的另一个线程。由上述本专利技术提供的技术方案可以看出,本专利技术通本文档来自技高网
...

【技术保护点】
一种多任务调度系统,其特征在于,包括:用户界面UI管理模块和应用程序模块,UI管理模块:和应用程序模块运行于同一个线程,在该独立线程中管理应用程序模块中的各个应用程序,控制所述的多个应用程序中最多只能有一个处于运行状态;应用程序模块 :和UI管理模块运行于同一个线程,包括多个分别实现不同任务功能的应用程序。

【技术特征摘要】

【专利技术属性】
技术研发人员:许操杨武军王义锋贺晓华庞潼川翟秀梅
申请(专利权)人:爱普拉斯通信技术北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1