《线程数目可伸缩的多任务队列调度系统及其实现方法.pdf》由会员分享,可在线阅读,更多相关《线程数目可伸缩的多任务队列调度系统及其实现方法.pdf(9页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103473129 A(43)申请公布日 2013.12.25CN103473129A*CN103473129A*(21)申请号 201310428355.6(22)申请日 2013.09.18G06F 9/46(2006.01)(71)申请人柳州市博源环科科技有限公司地址 545006 广西壮族自治区柳州市高新一路15号科技工业苑10层1005号(72)发明人覃祖茂 刘为 袁增伟 杜怡曼何佳 李东娥 刘晓 黄益农黄华峰(74)专利代理机构广西南宁汇博专利代理有限公司 45114代理人邓晓安(54) 发明名称线程数目可伸缩的多任务队列调度系统及其实现方法(57) 摘要。
2、本发明公开了一种线程数目可伸缩的多任务队列调度系统及其实现方法,该系统主要由任务派发者、工作线程池和任务队列构成;其中,所述的任务派发者为一个独立的进程或线程;所述的工作线程池创建有一个以上的工作线程,且工作线程不与任务队列直接相关联;所述的任务队列是根据任务类型创建的任务排队序列;所述的任务派发者根据任务队列情况决定是否分配新的工作线程。本发明系统结构组成及其逻辑设计合理、可行、易实现;不需要为每个任务类型创建一个独立的工作进程或线程,可以极大的有效的节省系统资源。(51)Int.Cl.权利要求书1页 说明书4页 附图3页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页。
3、 说明书4页 附图3页(10)申请公布号 CN 103473129 ACN 103473129 A1/1页21.一种线程数目可伸缩的多任务队列调度系统,主要由任务派发者、工作线程池和任务队列构成;其特征在于:所述的任务派发者为一个独立的进程或线程;所述的工作线程池创建有一个以上的工作线程,且工作线程不与任务队列直接相关联;所述的任务队列是根据任务类型创建的任务排队序列;所述的任务派发者根据任务队列情况决定是否分配新的工作线程。2.一种如权利要求1所述的线程数目可伸缩的多任务队列调度系统的实现方法,包括系统初始化设计、任务派发者的逻辑设计和工作线程的逻辑设计;其特征在于,所述的系统初始化设计包括。
4、:(1)为每种任务类型创建一个对应的任务队列,并分别记为TQ1,TQ2,TQn;(2)创建一个或者两个以上任务派发者,接收任务并根据任务类型派发到相应的任务队列中;(3)初始化工作线程池,空闲状态的工作线程进入睡眠状态;所述的任务派发者的逻辑设计包括:(1)任务派发者接收到某一类型的任务Ti时,找到其对应的任务队列TQi,并判断该任务队列的待执行任务是否为空;(2)如果该任务队列TQi的待执行任务为空,则将任务Ti放入到该任务队列TQi中,并执行以下操作:a.在工作线程池中查找空闲状态的工作线程,如果工作线程池中无空闲状态的工作线程,则创建一个新的工作线程,并将其加入到工作线程池中;b.用找到。
5、的空闲状态的工作线程或是新建的工作线程来执行任务Ti;(3)如果该任务队列TQi的待执行任务不为空,则将任务Ti放在任务队列TQi的末尾,等待任务执行;所述的工作线程的逻辑设计包括:(1)当工作线程被分配一个任务Ti时,其执行该任务;(2)当工作线程执行完一个任务Ti后,其查找Ti对应的队列TQi,然后执行以下操作:a.将任务Ti从TQi中移除;b.如果TQi不为空,继续执行队头的任务;c.如果TQi为空,终止执行,工作线程回归工作线程池。3.根据权利要求2所述的多任务队列调度系统的实现方法,其特征在于:所述的任务派发者为一个独立的进程或线程。4.根据权利要求2所述的多任务队列调度系统的实现方。
6、法,其特征在于:所述的工作线程池创建有一个以上的工作线程,且工作线程不与任务队列直接相关联。5.根据权利要求2-4任一所述的多任务队列调度系统的实现方法,其特征在于:所述的待执行任务包括未执行任务和正在执行但未完成的任务。6.根据权利要求5所述的多任务队列调度系统的实现方法,其特征在于:所述的工作线程回归工作线程池后,工作线程池将销毁该工作线程或是将该工作线程分配给其他任务队列执行任务。权 利 要 求 书CN 103473129 A1/4页3线程数目可伸缩的多任务队列调度系统及其实现方法技术领域0001 本发明属于计算机工程技术领域,涉及了一种基于工作线程池而设计的多任务队列调度系统及其实现方。
7、法。背景技术0002 RTOS(Realtime operation system,实时操作系统)是嵌入式应用软件的基础和开发平台,是一个可靠性和可信性很高的实时内核。RTOS将CPU时间、中断、I/O、定时器等资源都包装起来,留给用户一个标准的API(Application Program Interface,应用程序接口),并根据各个任务的优先级,合理地在不同任务之间分配CPU时间。0003 RTOS通常设置于嵌入式系统中实时地完成各种功能,这些嵌入式系统通常具有实时性很好、系统体积小、资源有限和没有图形界面等特点。典型的RTOS有:Vxworks、pSOS、Nucleus、eCos、uC。
8、/OS-II等。0004 GUI(Graphic User Interface,图形用户接口)系统以图形的方式实现人机交互,调度机制是GUI系统的核心,管理GUI系统的驱动和各个应用程序,实现各个应用程序对CPU资源的共享使用。高性能的GUI调度机制不仅占用很少的CPU资源,而且能够快速响应用户请求。0005 上述GUI调度机制不是指操作系统内核层面的任务调度,而是指具有界面显示的各个应用程序之间的调度机制。例如,开机便进入待机模块,摘机就进入拨号模块,不摘机按功能键就进入功能菜单模块,从功能菜单中选择照相机从而进入拍照模块,此时如果有来电,则进入语音通话模块,在通话完毕挂机后又返回拍照模块。。
9、0006 当前典型的GUI系统为Windows操作系统的GUI,在嵌入式系统中比较常见的GUI系统为Qtopia和MiniGUI。下面分别介绍上述三个GUI系统。0007 1.Windows CE(Control System,控制系统)Windows CE是嵌入式操作系统,提供完整的GUI界面和调度系统,与PC版的Windows在界面上几乎完全一致。0008 2.MiniGUIMiniGUI是针对嵌入式设备的、跨操作系统的图形界面支持系统,属于一种“嵌入式图形中间件”软件产品。在近八年的发展历程中,MiniGUI已经从一个仅仅是为了在Linux显示中文而开发的小技术,发展成为一个跨操作系统的。
10、、完善的嵌入式图形用户界面支持系统。MiniGUI最理想地平台是Linux操作系统,也可以支持uCOSII等RTOS。0009 3.QtopiaQtopia由Qt/Embedded发展而来,是面向嵌入式系统的Qt版本。因为Qt是KDE等项目使用的GUI支持库,因此有许多基于Qt的X Window程序可以非常方便地移植到Qtopia版本上。Qtopia是一个C+函数库,它提供的控件集风格沿用了PC风格。0010 上述现有技术中的GUI系统的缺点为:上述GUI系统的调度完全使用内核提供的线程调度,每个应用程序不管是否需要界面显示都有独立的线程来接收操作系统的调度。说 明 书CN 103473129。
11、 A2/4页4基于底层强大的操作系统做支撑,各个应用程序的设计虽然具有极大的灵活性,但是,各个应用程序对底层操作系统的依赖太重,通常需要平台化的操作系统的支持,比如Windows或者Linux操作系统。0011 上述GUI系统的资源开销巨大,不能适应功能明确的小型嵌入式系统的应用需求,一般不支持RTOS作为底层的操作系统。另外,对于嵌入式应用也不需要复杂的GUI系统,过于复杂的GUI事实上会降低用户操作的简便性。0012 上述GUI系统的各个应用程序之间是一种松散关系,导致需要实现多个应用程序时可能会出现如下的两个问题:1、如果将要实现的多个应用程序作为不同的应用程序功能模块,则要求这些应用程。
12、序功能模块之间不要有太多的相互联系。一旦这些应用程序功能模块之间有复杂的联系,这些应用程序功能模块对系统的资源和设备(比如Camera、内存)的需求必然会产生冲突,实现起来很难维护;2、如果将要实现的多个应用程序作为一个单独应用程序功能模块,则会给多个程序员的协同开发带来巨大的维护难度,将会导致多个程序员去开发同一个模块或者一个程序员完成一个规模宏大的模块。发明内容0013 本发明的目的在于针对现有技术的不足,提供了一种基于操作系统内置的工作线程池以及开发语言提供的队列数据结构而设计的线程数目可伸缩的多任务队列调度系统及其实现方法。该系统特别适用于拥有大量不同类型任务,且所有任务都需要能够即时。
13、并有序处理的情景。本系统的特点在于其拥有良好的进程或线程数可伸缩性;因为其不需要为每个任务类型创建一个独立的工作进程或线程,所以它可以极大的节省系统资源。0014 为了实现上述目的,本发明采取了以下技术方案:一种线程数目可伸缩的多任务队列调度系统,主要由任务派发者、工作线程池和任务队列构成;其中,所述的任务派发者为一个独立的进程或线程;所述的工作线程池创建有一个以上的工作线程,且工作线程不与任务队列直接相关联;所述的任务队列是根据任务类型创建的任务排队序列;所述的任务派发者根据任务队列情况决定是否分配新的工作线程。0015 上述的线程数目可伸缩的多任务队列调度系统的实现方法,包括系统初始化设计。
14、、任务派发者的逻辑设计和工作线程的逻辑设计;其特征在于,所述的系统初始化设计包括:(1)为每种任务类型创建一个对应的任务队列,并分别记为TQ1,TQ2,TQn;(2)创建一个或者两个以上任务派发者,接收任务并根据任务类型派发到相应的任务队列中;(3)初始化工作线程池,空闲状态的工作线程进入睡眠状态;所述的任务派发者的逻辑设计包括:(1)任务派发者接收到某一类型的任务Ti时,找到其对应的任务队列TQi,并判断该任务队列的待执行任务是否为空;(2)如果该任务队列TQi的待执行任务为空,则将任务Ti放入到该任务队列TQi中,并说 明 书CN 103473129 A3/4页5执行以下操作:a.在工作线。
15、程池中查找空闲状态的工作线程,如果工作线程池中无空闲状态的工作线程,则创建一个新的工作线程,并将其加入到工作线程池中;b.用找到的空闲状态的工作线程或是新建的工作线程来执行任务Ti;(3)如果该任务队列TQi的待执行任务不为空,则将任务Ti放在任务队列TQi的末尾,等待任务执行;所述的工作线程的逻辑设计包括:(1)当工作线程被分配一个任务Ti时,其执行该任务;(2)当工作线程执行完一个任务Ti后,其查找Ti对应的队列TQi,然后执行以下操作:a.将任务Ti从TQi中移除;b.如果TQi不为空,继续执行队头的任务;c.如果TQi为空,终止执行,工作线程回归工作线程池。0016 在多任务队列调度系。
16、统的实现方法中,所述的任务派发者为一个独立的进程或线程。0017 在多任务队列调度系统的实现方法中,所述的工作线程池创建有一个以上的工作线程,且工作线程不与任务队列直接相关联。0018 在多任务队列调度系统的实现方法中,所述的待执行任务包括未执行任务和正在执行但未完成的任务。0019 在多任务队列调度系统的实现方法中,所述的工作线程回归工作线程池后,工作线程池将销毁该工作线程或是将该工作线程分配给其他任务队列执行任务。0020 本发明的优点:1.在本发明中,创建有多个任务队列,这样该系统就可以适用于拥有大量不同类型任务且所有任务都需要能够即时并有序处理的情景。0021 2.在本发明中,任务队列。
17、与工作线程池的工作线程没有直接关联,因此,不需要为每个任务类型创建一个独立的工作进程或线程,可以极大的有效的节省系统资源。0022 3.在本发明中,工作线程池内的工作线程可以根据实际情况创建或销毁,这样使得本系统拥有良好的进程或线程数可伸缩性。0023 4.本发明系统结构组成及其逻辑设计合理、可行、易实现。附图说明0024 图1是本发明中的系统组成结构示意图。0025 图2是本发明中的任务派发者的逻辑设计流程图。0026 图3是本发明中的工作线程的逻辑设计流程图。具体实施方式0027 下面结合附图和实施例对本发明进一步说明。0028 实施例:如图1所示,一种线程数目可伸缩的多任务队列调度系统,。
18、主要由任务派发者、工作线程池和任务队列构成;其中,所述的任务派发者为一个独立的进程或线程;所述的工作线说 明 书CN 103473129 A4/4页6程池创建有一个以上的工作线程,且工作线程不与任务队列直接相关联;所述的任务队列是根据任务类型创建的任务排队序列;所述的任务派发者根据任务队列情况决定是否分配新的工作线程。0029 如图2、3所示,上述的线程数目可伸缩的多任务队列调度系统的实现方法,包括系统初始化设计、任务派发者的逻辑设计和工作线程的逻辑设计;其中,所述的系统初始化设计包括:(1)为每种任务类型创建一个对应的任务队列,并分别记为TQ1,TQ2,TQn;(2)创建一个或者两个以上任务。
19、派发者,接收任务并根据任务类型派发到相应的任务队列中;(3)初始化工作线程池,空闲状态的工作线程进入睡眠状态;所述的任务派发者的逻辑设计包括:(1)任务派发者接收到某一类型的任务Ti时,找到其对应的任务队列TQi,并判断该任务队列的待执行任务是否为空;所述的待执行任务包括未执行任务和正在执行但未完成的任务;(2)如果该任务队列TQi的待执行任务为空,则将任务Ti放入到该任务队列TQi中,并执行以下操作:a.在工作线程池中查找空闲状态的工作线程,如果工作线程池中无空闲状态的工作线程,则创建一个新的工作线程,并将其加入到工作线程池中;b.用找到的空闲状态的工作线程或是新建的工作线程来执行任务Ti;。
20、(3)如果该任务队列TQi的待执行任务不为空,则将任务Ti放在任务队列TQi的末尾,等待任务执行;所述的工作线程的逻辑设计包括:(1)当工作线程被分配一个任务Ti时,其执行该任务;(2)当工作线程执行完一个任务Ti后,其查找Ti对应的队列TQi,然后执行以下操作:a.将任务Ti从TQi中移除;b.如果TQi不为空,继续执行队头的任务;c.如果TQi为空,终止执行,工作线程回归工作线程池。所述的工作线程回归工作线程池后,工作线程池将销毁该工作线程或是将该工作线程分配给其他任务队列执行任务。说 明 书CN 103473129 A1/3页7图1说 明 书 附 图CN 103473129 A2/3页8图2说 明 书 附 图CN 103473129 A3/3页9图3说 明 书 附 图CN 103473129 A。