多任务监控管理系统的制作方法

文档序号:6471978阅读:243来源:国知局

专利名称::多任务监控管理系统的制作方法
技术领域
:本发明涉及监控管理系统,更具体地说,涉及一种多任务监控管理系统。
背景技术
:规模稍大的应用软件和嵌入式软件(以下简称应用程序),一般需要同时完成多个任务,任务都采用多进程或者多线程方式实现。目前桌面和嵌入式操作系统(以下简称操作系统)都提供进程process和线程thread的创建、停止和同步方法,操作系统内部对进程和线程进行管理,但操作系统没有给应用程序提供对本身创建的子进程或子线程(以下简称子任务)进行统一管理的接口,应用程序无法知道当前各子任务的运行状况。当需要时,应用程序的主任务都是采用逐个査询子任务的运行状态来了解子任务是否在运行。当子任务较多时,要了解所有子任务状态,是很困难的事情,一般的应用程序都创建任务,任务的管理全部交给操作系统。甚至,某个子任务异常终止了,主任务也不知道。另外,在嵌入式产品里,涉及到硬件看门狗的喂狗操作。硬件看门狗目的是监测应用程序的正常运行,应用程序必须在指定时间间隔内喂狗,否则,看门狗将重启整个硬件系统。在有多个子任务的应用程序里,如果每个任务都去喂一个看门狗,则某些任务即使异常,看门狗也不能发现。
发明内容本发明要解决的技术问题在于,针对现有技术的应用程序不能在运行过程中对自身的子任务进行监控管理,不能及时发现子任务的异常,以及在具有看门狗的系统中,不能使得看门狗及时发送异常情况等缺陷,提供一种多任务监控管理系统。本发明解决其技术问题所采用的技术方案是构造一种多任务监控管理系统,用于监控其所属的应用程序,所述应用程序运行于主机操作系统上,所述主机操作系统包括主机任务管理器,其用于以多任务的方式管理主机资源和各个应用程序,所述多任务监控管理系统包括主任务模块、子任务管理器和多个子任务模块,其中,所述子任务管理器用于采集多个子任务模块的心跳信号,并控制所述主任务模块与多个子任务模块的通信,以实现主任务模块通过一个子任务管理器处理子任务管理事件。在本发明所述的多任务监控管理系统中,所述子任务管理事件包括子任务管理器心跳、子任务创建、子任务停止和子任务无响应;在主任务模块和子任务管理器之间设置有四个通信接口,分别用于接收心跳信号、创建子任务信号、停止子任务信号和子任务无响应信号。在本发明所述的多任务监控管理系统中,在所述子任务管理器中设置有存储模块,用于存储子任务模块的数据结构。在本发明所述的多任务监控管理系统中,在主任务模块中设置有看门狗接口,当主任务模块接收到的每一个心跳信号均正常时,主任务模块通过看门狗接口向主机看门狗发送喂狗信号。在本发明所述的多任务监控管理系统中,每一个子任务模块均映射到主机任务管理器中,以实现主机操作系统对各个应用程序及其子任务的统一调度。实施本发明的多任务监控管理系统,具有以下有益效果子任务通过统一接口创建(即子任务管理器),创建时在子任务管理器中登记创建成功的子任务数据结构;子任务运行时在可设定的时间间隔内发出心跳信号;子任务管理器定时检测各子任务心跳,子任务心跳异常时,主动通知主任务,由主任务对异常的子任务及时进行停止处理。正常时,子任务管理器也给主任务提供心跳信号,在主任务检测到每一个子任务都发出正常的心跳信号时,主任务可以进行喂狗操作,从而避免了每个子任务单独进行喂狗时,看门狗可能发现不了异常应用程序的失误。另外,在主任务模块和子任务管理器之间4设置四个通信接口,从而可实现主任务和子任务管理器之间发送的信号进行分类、排序,然后以不同的接口处理,不需要进行子任务状态轮巡,提高了监控管理的效率,使得在子任务出现异常情况时,能快速的响应和处理。下面将结合附图及实施例对本发明作进一步说明,附图中图1是本发明多任务监控管理系统的原理框图;图2是图1所示的主任务模块的工作流程图;图3是图1所示的子任务管理的工作流程图;图4是图1所示的子任务模块的工作流程图。具体实施例方式任务是操作系统参与CPU调度的单位,不同的任务有自己的任务上下文(Context)和堆栈空间,各任务之间共享内存,每个任务都有相应的任务入口函数,不同的任务可以有相同的任务入口函数。每个任务都有优先级,操作系统一般采用优先级抢占的调度策略,在多个任务就绪的情况下,只有优先级最高的就绪任务能够获得CPU运行。在操作系统环境下,整个应用程序按任务被分割成若干个独立的软件模块,每个模块处理应用程序的一部分功能,各个软件模块功能相对独立,藕合性尽量地小并通过多任务通讯机制,如共享内存、消息队列、管道、信号量等,完成模块之间的同步和协调工作。但是,这种按照任务来划分软件模块的方法需要上层应用充分了解多任务操作系统软件的原理和机制,实际实现中,需要综合考虑任务间通讯、临界资源的保护、同步、互斥、任务间死锁等因素。如图1所示,本技术方案的发明点于将对应用程序的监控管理从操作系统中分离出来,由各个应用程序对自身的子任务进行监控管理,而操作系统仅仅负责对应用程序及其子任务的运行管理,以完成应用程序的功能,因此本发明在每个应用程序中设置有多任务监控管理系统,其包括主任务模块、子任务管理器和多个子任务模块,其中,应用程序启动后,由主任务模块对子任务管理器进行初始化,接着通过统一的接口即子任务管理器,进行子任务模块的创建,在该过程中主任务管理模块将通过专门发送子任务创建信号的接口,将子任务创建信号发送到子任务管理器,由子任务管理器执行子任务创建事件,另外在创建子任务模块后,同时主任务模块将子任务模块的数据结构存储在子任务管理的存储模块中,在具体实施时,该存储模块可以设计为一数组;同时,主任务模块将子任务模块映射到主机操作系统的主机任务管理器中,并且主任务模块将准备好相应的数据或者缓冲区等,调用主机操作系统相应的API如WriteFile、ReadFile、DeviceIoControl等,对设备进行读写等各种操作,由此主机操作系统为实现各个应用程序的多任务间的数据交换,将使得相互通信的任务间共享某些数据结构或存储区,并且提供共享文件,以字符流形式将大量的数据写入共享文件,而接收输出的任务可从共享文件中接收数据,以实现动态通信;另外,在消息传递中,任务间的数据交换以消息为单位,由主机操作系统的消息通信机构统一管理一组空闲的消息缓冲区,一个任务要向另一个任务发送消息,先要向主机操作系统申请一个缓冲区,填写了消息正文和其他有关的特征和控制信息后,通过消息通信机构将该消息发送到接收任务的消息队列中。接收任务在一个适当时机从消息队列中取出一个消息,读取所有的信息后,再释放消息缓冲区。通过以上的过程主机操作系统即实现了对应用程序的运行管理。在子任务管理方法中,主任务模块和子任务管理器之间关键的任务管理接口,定义如下表l:<table>tableseeoriginaldocumentpage6</column></row><table>MainRunThreadEventHandler主任务提供的处理子任务管理事件信息的回调接口,事件包括子任务创建、停止、无响应,和子任务管理器的心跳信息。表l而在应用程序的运行过程中,子任务模块将在给定的时间间隔内产生心跳信号,由子任务管理器用于采集多个子任务模块的心跳信号,子任务管理器将接收到的各个子任务模块的心跳信号,进行分析处理,检测子任务是否运行正常,以专门发送子任务事件信号的通信接口发送到主任务模块,主任务模块将对各个子任务事件信号进行分析处理,当所有的子任务状态均为正常时,此时如果该主机具有看门狗的话,主任务模块将通过看门狗接口将喂狗信号发送到看门狗,以表明该应用程序处于正常运行状态;如果当存在异常的子任务时,子任务管理器将把子任务无响应的事件通知给主任务,主任务模块将可以指示子任务管理器调用操作系统的任务终止接口来终止异常子任务,同时删除内部的子任务数据结构,也可重新启动应用程序甚至复位整个系统,避免应用程序系统运行的进一步差错。并控制所述主任务模块与多个子任务模块的通信,以实现主任务模块通过一个子任务管理器处理子任务管理事件。如图2所示,在主任务模块的工作流程中,系统上电,运行应用程序,主任务模块将调用RunThread一Managerlnit,初始化子任务管理器,完成子任务管理器的初始化后,在运行应用程序的过程中,主任务模块就可通过子任务管理器调用RimThread—Create,进行子任务模块的创建,并在子任务管理器中存储其数据结构,同时主任务模块在工作过程中,根据子任务管理器发送的消息,对相应的子任务管理事件进行处理。如果主任务模块需要创建多个子任务模块时,就会重复以上操作;如果主任务模块完成任务后,就会调用RunThread一ManagerExit,退出各个子任务,结束操作。如图3所示,在子任务管理器的工作过程中,初始化子任务管理器后,子任务管理器就会定时检测子任务模块的心跳信号,在具体工作时,通过调用Main—RunThreadEventHandler,将心跳信号和子任务管理事件发送到主任务模块。如图4所示,在子任务模块的工作过程中,子任务模块被创建后,一方面会调用RimThread—Heartbeat,定时向子任务管理器发送心跳信号,同时处理自身的子任务功能。总之,本发明将应用程序的工作过程分为运行管理和监控管理,其中,一方面通过操作系统对应用程序进行运行管理,实现了操作系统对各个应用程序及其子任务进行统一的调度以完成应用程序的功能,另一方面通过应用程序自身的多任务监控系统进行监控管理,使得应用程序自身能在其子任务出现异常时,能及时的发现异常,从而停止异常的子任务,避免了系统进一步的运行错误。本发明是通过几个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。权利要求1、一种多任务监控管理系统,用于监控其所属的应用程序,所述应用程序运行于主机操作系统上,所述主机操作系统包括主机任务管理器,其用于以多任务的方式管理主机资源和各个应用程序,其特征在于,所述多任务监控管理系统包括主任务模块、子任务管理器和多个子任务模块,其中,所述子任务管理器用于采集多个子任务模块的心跳信号,并控制所述主任务模块与多个子任务模块的通信,以实现主任务模块通过一个子任务管理器处理子任务管理事件。2、根据权利要求1所述的多任务监控管理系统,其特征在于,所述子任务管理事件包括子任务管理器心跳、子任务创建、子任务停止和子任务无响应;在主任务模块和子任务管理器之间设置有四个通信接口,分别用于主任务模块接收心跳信号、创建子任务信号、停止子任务信号和子任务无响应信号。3、根据权利要求1或2所述的多任务监控管理系统,其特征在于,在所述子任务管理器中设置有存储模块,用于存储子任务模块的数据结构。4、根据权利要求1或2所述的多任务监控管理系统,其特征在于,在主任务模块中设置有看门狗接口,当主任务模块接收到的每一个心跳信号均正常时,主任务模块通过看门狗接口向主机看门狗发送喂狗信号。5、根据权利要求4所述的多任务监控管理系统,其特征在于,每一个子任务模块均映射到主机操作系统中,以实现主机操作系统对各个应用程序及其子任务的统一调度。全文摘要本发明涉及一种多任务监控管理系统,用于监控其所属应用程序创建的子任务。多任务监控管理系统包括主任务模块、子任务管理器和多个子任务模块。其中,子任务管理器用于采集多个子任务模块的心跳信号,并控制所述主任务模块与多个子任务模块的通信。本多任务监控管理系统将子任务通过统一接口创建;子任务管理器定时检测各子任务心跳,子任务心跳异常时,主动通知主任务,由主任务对异常的子任务及时进行处理。另外,在主任务模块和子任务管理器之间使用主动子任务事件通知接口,从而可实现主任务和子任务管理器之间发送的信号进行分类、筛选后进行相应处理,不需要主任务不断查询子任务状态,提高了监控管理的效率,使得在子任务出现异常情况时,能快速的响应和处理。文档编号G06F9/46GK101464811SQ200810241729公开日2009年6月24日申请日期2008年12月29日优先权日2008年12月29日发明者毛福华申请人:艾默生网络能源有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1