本发明专利技术公开了一种多任务调度系统,该系统包括:管理模块和应用程序模块。这些模块运行于同一个线程。管理模块控制应用程序模块中的各个应用程序,在任意时刻多个应用程序中最多只能有一个处于运行状态;利用本发明专利技术所述多任务调度系统,可以实现具有设计简单、占用系统资源小和用户使用方便等特点的用户交互系统。
【技术实现步骤摘要】
本专利技术涉及计算机应用领域,尤其涉及一种多任务调度系统。
技术介绍
实时操作系统是嵌入式应用软件的基础和开发平台,是一个可靠性和可信性很高的实时内核。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或者Linux操作系统。上述GUI系统的资源开销巨大,不能适应功能明确的小型嵌入式系统的应用需求,一般不支持RTOS作为底层的操作系统。另外,对于嵌入式应用也不需要复杂的GUI系统,过于复杂的GUI事实上会降低用户操作的简便性。-->
技术实现思路
为解决上述中存在的问题与缺陷,本专利技术提供了一种多任务调度系统。本专利技术是通过以下技术方案实现的:本专利技术所涉及的一种多任务调度系统,包括:管理模块和应用程序模块,管理模块,和应用程序模块运行于同一个线程,并在独立线程中管理应用程序模块中的各个应用程序,以控制应用程序中只有一个应用程序处于应用状态。应用程序模块,与管理模块运行于同一个线程,并包括多个分别实现不同任务功能的应用程序。所述多任务调度系统还包括:资源库,包括供应用程序模块中各个应用程序使用的图片资源和/或文字资源;输入法驱动模块,对在UI管理模块、应用程序模块、资源库中进行文字输入的输入法进行驱动。所述管理模块还包括应用程序维护模块:在应用程序模块中创建和删除应用程序,在任何时刻控制多任务调度系统中最多只能有一个正在运行的应用程序;线程管理模块:在多任务调度系统中创建并管理一个独立线程;应用程序中断模块:将正在运行的应用程序中断,将中断的应用程序的所有相关上下文信息发送给程序堆栈,程序堆栈将该相关上下文信息进行保存;应用程序恢复模块:当正在运行的应用程序退出后,将最后保存在程序堆栈中的应用程序释放出来,将释放出来的应用程序恢复为运行状态。所述应用程序模块还包括:线程维护模块:在正在运行的应用程序中创建并维护和所述UI管理模块和应用程序模块共同使用的线程不同的另一个线程,该另一个线程不能控制多任务调度系统的显示输出,当该正在运行的应用程序退出后,释放所述创建的另一个线程。本专利技术提供的技术方案的有益效果是:-->本专利技术通过在整个多任务调度系统中运行一个独立线程,在这个独立线程中按统一的唯一化方式调用各个应用程序模块。从而可以基于简单的RTOS上实现比较完善的图形化的用户交互系统。附图说明图1是多任务调度系统的实施例的结构示意图;图2是多任务调度系统的实施例中的管理模块的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述:本实施例提供了一种多任务调度系统的结构。参见图1,本方法所述多任务调度系统适用于基于RTOS的用户交互系统,比如GUI系统。以GUI系统为例,本专利技术所述多任务调度系统的实施例的结构如图1所示,包括如下模块:管理模块、应用程序模块、输入法驱动和资源库。各个模块的功能如下:管理模块为UI(User Interface,用户界面)管理模块,其该管理模块的结构如图2所示。按照统一的唯一化的方式调用应用程序模块中的各个应用程序,和各个应用程序进行消息交互,管理应用程序模块中的各个应用程序,控制所述的多个应用程序中最多只能有一个处于运行状态。创建并管理GUI系统的线程,和管理的各个应用程序运行于同一个线程,该线程可以为独立线程。带有显示界面。UI管理模块包括:线程管理模块、消息管理模块、应用程序创建模块、应用程序中断模块和应用程序恢复模块。其中,线程管理模块:在GUI系统中创建并管理一个独立线程,通过该独立线程来完成GUI系统中所有的应用程序。本专利技术所述GUI系统使用独立线程能保证各个应用程序不会因为同时请求资源而造成资源冲突,用户不能同时执行-->两个应用程序,但是可以在两个应用程序之间切换。上述独立线程可以为GUI系统中一个现有的线程。其中,消息管理模块:通过使用单一的队列化的消息调用接口,调用应用程序模块中的各个应用程序,和各个应用程序进行消息交互。整个GUI系统的各种事件(包括用户按键、外部中断的处理结果或者命令、各种任务的控制命令)都转化为消息。消息管理模块处理的所有消息都具有统一的数据结构,该数据结构中包括:消息ID和消息参数,通过消息ID可以识别消息,消息参数包括消息相关的各种信息,如果消息相关的各种信息不能使用一个简单的值来表达,该消息参数就是一个指针,指向具体的消息数据结构。消息管理模块首先将需要下发的消息发送给当前运行的应用程序,该当前运行的应用程序对接收到的消息如果不处理,则向消息管理模块返回特定值,消息管理模块对该消息做默认处理。比如全局性的摘挂机消息通常都是由UI管理模块中的消息管理模块来默认处理的。本专利技术所述GUI系统与其他模块的输入接口是唯一的。由于GUI系统的所有消息的结构是统一的,UI管理模块和各个应用程序的接口也是唯一的。每个应用程序都使用具有相同参数结构的一个函数作为被调用的接口,消息管理模块只需要存储当前正在运行的应用程序的该函数的指针,通过指针调用该函数,向当前正在运行的应用程序发送消息。其中,应用程序维护模块:根据接收到的消息在GUI系统中创建新的应用程序。在任何时刻维持GUI系统中最多只能有一个正在运行的应用程序。上述消息可以为现有的应用程序发给UI管理模块的特定消息,比如,某个应用程序为了打开其层次树的下级应用程序而发出的特定消息。上述消息还可以为为了完成某项任务的系统消息。应用程序维护模块还可以根据需要删除GUI系统中的应用程序。-->其中,应用程序中断模块:根据接收到的某个应用程序发送的消息或系统消息将正在运行的应用程序中断,释放相关的可能产生冲突的资源,向程序堆栈发送一个Push消息通知程序堆栈保存相关上下文信息,将中断的应用程序的所有相关上下文信息发送给程序堆栈,程序堆栈将该相关上下文信息进行保存。然后,应用程序中断模块将函数调用指针指向新的正在运行的应用程序。其中,应用程序恢复模块:当正在运行的应用程序退出后,将最后保存在程序堆栈中的应用程序释放出来,将函数调用指针指向释放出来的应用程序,将释放出来的应用程序本文档来自技高网...
【技术保护点】
一种多任务调度系统,其特征在于,所述系统包括:管理模块和应用程序模块, 管理模块,和应用程序模块运行于同一个线程,并在独立线程中管理应用程序模块中的各个应用程序,以控制应用程序中只有一个应用程序处于应用状态; 应用程序模块,与管理模块运行于同一个线程,并包括多个分别实现不同任务功能的应用程序。
【技术特征摘要】
1、一种多任务调度系统,其特征在于,所述系统包括:管理模块和应用程序模块,管理模块,和应用程序模块运行于同一个线程,并在独立线程中管理应用程序模块中的各个应用程序,以控制应用程序中只有一个应用程序处于应用状态;应用程序模块,与管理模块运行于同一个线程,并包括多个分别实现不同任务功能的应用程序。2、根据权利要求1所述的多任务调度系统,其特征在于,其中所述多任务调度系统还包括:资源库,包括供应用程序模块中各个应用程序使用的图片资源和/或文字资源;输入法驱动模块,对在UI管理模块、应用程序模块、资源库中进行文字输入的输入法进行驱动。3、根据权利要求1所述的多任务调度系统,其特征在于,所述管理模块还包括:应用程序维护模块,在应用程序模块中创建和删除应用程序,在...
【专利技术属性】
技术研发人员:鲁现辉,任忠宇,
申请(专利权)人:北京泰得思达科技发展有限公司,
类型:发明
国别省市:11[中国|北京]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。