CN103473126A - 一种多级别任务处理方法 - Google Patents
一种多级别任务处理方法 Download PDFInfo
- Publication number
- CN103473126A CN103473126A CN2013104076861A CN201310407686A CN103473126A CN 103473126 A CN103473126 A CN 103473126A CN 2013104076861 A CN2013104076861 A CN 2013104076861A CN 201310407686 A CN201310407686 A CN 201310407686A CN 103473126 A CN103473126 A CN 103473126A
- Authority
- CN
- China
- Prior art keywords
- queue
- task
- subscript
- tail
- wait
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Multi Processors (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
本发明涉及一种多级别任务处理方法,包括建立带有头下标和尾下标的队列;将等待分发的任务放入队列中时,要先判断队列是否已满,如果已满则等待,待队列中有空位时,向队列中放入任务,放任务时,低优先级任务放在头下标所指位置,高优先级任务放在尾下标所指位置,从队列中取出任务时,从尾下标所指位置取出任务进行处理;其中,向队列中放入任务与从队列中取出任务是异步进行的,尤其是在向尾下标放任务时,要将队列加上等待锁,防止在向尾下标所指位置放高优先级任务时,同时发生从尾下标所指位置取任务的现象;本发明所述方法针对不同级别的任务进行处理,保证了不同级别任务所需的响应速度。
Description
技术领域
本发明涉及电信领域,尤其涉及一种多级别任务处理方法。
背景技术
BOSS系统中存在多种任务触发方式:文件方式,工单方式,实时消息方式,不同触发在响应速度上有不同的要求。
电信在线系统,要求一套系统能同时处理三种任务(文件、工单、消息),但这三种任务要求的响应处理效率不同,如消息类要求实时响应,返回处理结果。
然而现有的任务处理方法,难以做到针对不同级别的任务进行分别处理,进而实现不同的响应速度。
因此,需要研发一种针对不同级别的任务有不同响应速度的处理方法。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种多级别任务处理方法,保证不同级别的任务有不同的响应速度。
本发明解决上述技术问题的技术方案如下:一种多级别任务处理方法,包括如下步骤:
步骤1:建立带有头下标和尾下标的队列;
步骤2:获取等待分发的任务;
步骤3:判断队列是否已满,如果已满则等待,待队列中有空位时,执行步骤4;如果未满则直接执行步骤4;
步骤4:判断待分发任务的级别,如果是低优先级任务执行步骤5;如果高优先级任务则执行步骤6;
步骤5:头下标朝队列入口方向移动一个位置,将所述低优先级任务放置在头下标所指位置,执行步骤7;
步骤6:尾下标朝队列出口口方向移动一个位置,将所述高优先级任务放置在尾下标所指位置,执行步骤7;
步骤7:处理任务时,取出尾下标所指位置内存放的任务,将尾下标朝队列入口方向移动一个位置,执行步骤8;
步骤8:判断是否仍有待分发的任务,如果有,返回步骤2,否则待队列中任务均处理完毕,结束。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,步骤2中所述待分发的任务都预先根据任务类型及其所需的响应速度,为每个待分发的任务标定优先级。
进一步,步骤5、6中向队列里放任务与步骤7中从队列中取任务是异步处理的。
进一步,步骤5中将所述低优先级任务放入队列的具体步骤如下:
步骤5.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤5.2;否则直接执行步骤5.2;
步骤5.2:判断队列中是否有互斥锁,如果有则等待,等互斥锁释放,在头下标所指位置加互斥锁;如果没有则直接在头下标所指位置加互斥锁;
步骤5.3:将低优先级任务放入头下标所指位置;
步骤5.4:解除互斥锁。
进一步,步骤6中将高优先级任务放入队列的具体步骤如下:
步骤6.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后,再在队列上加上等待锁,执行步骤6.2;否则直接在队列上加上等待锁,执行步骤6.2;
步骤6.2:判断队列中是否有互斥锁,如果有则等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁;
步骤6.3:将高优先级任务放入尾下标所指位置;
步骤6.4:解除互斥锁和等待锁。
进一步,步骤7中取出尾下标所指队列位置内存放的任务的具体步骤如下:
步骤7.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤7.2;否则直接执行步骤7.2;
步骤7.2::判断队列中是否有互斥锁,如果有则等待,等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁;
步骤7.3:从尾下标所指位置取出所存储的任务;
步骤7.4:释放互斥锁。
本发明的有益效果是:满足不同级别任务的不同响应速度,针对不同级别的任务,用尾下标标示队列中的高优先级任务,头下标标示队列中低优先级任务,获取任务进行处理时,都是从尾下标所指位置取出的,这就保证了高优先级任务优先处理,保证了其响应速度。
附图说明
图1为本发明所述一种多级别任务处理流程图;
图2为本发明所述步骤5的流程图;
图3为本发明所述步骤6的流程图;
图4为本发明所述步骤7的流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,一种多级别任务处理方法,包括如下步骤:
步骤1:建立带有头下标和尾下标的队列;
步骤2:获取等待分发的任务;
步骤3:判断队列是否已满,如果已满则等待,待队列中有空位时,执行步骤4;如果未满则直接执行步骤4;
步骤4:判断待分发任务的级别,如果是低优先级任务执行步骤5;如果高优先级任务则执行步骤6;
步骤5:头下标朝队列入口方向移动一个位置,将所述低优先级任务放置在头下标所指位置,执行步骤7;
步骤6:尾下标朝队列出口口方向移动一个位置,将所述高优先级任务放置在尾下标所指位置,执行步骤7;
步骤7:处理任务时,取出尾下标所指位置内存放的任务,将尾下标朝队列入口方向移动一个位置,执行步骤8;
步骤8:判断是否仍有待分发的任务,如果有,返回步骤2,否则待队列中任务均处理完毕,结束。
其中,步骤2中所述待分发的任务都预先根据任务类型及其所需的响应速度,为每个待分发的任务标定优先级。
其中,步骤5、6中向队列里放任务与步骤7中从队列中取任务是异步处理的。
如图2所示,步骤5中将所述低优先级任务放入队列的具体步骤如下:
步骤5.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤5.2;否则直接执行步骤5.2;
步骤5.2:判断队列中是否有互斥锁,如果有则等待,等互斥锁释放,在头下标所指位置加互斥锁;如果没有则直接在头下标所指位置加互斥锁;
步骤5.3:将低优先级任务放入头下标所指位置;
步骤5.4:解除互斥锁。
如图3所示,步骤6中将高优先级任务放入队列的具体步骤如下:
步骤6.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后,再在队列上加上等待锁,执行步骤6.2;否则直接在队列上加上等待锁,执行步骤6.2;
步骤6.2:判断队列中是否有互斥锁,如果有则等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁;
步骤6.3:将高优先级任务放入尾下标所指位置;
步骤6.4:解除互斥锁和等待锁。
如图4所示,步骤7中取出尾下标所指队列位置内存放的任务的具体步骤如下:
步骤7.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤7.2;否则直接执行步骤7.2;
步骤7.2::判断队列中是否有互斥锁,如果有则等待,等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁;
步骤7.3:从尾下标所指位置取出所存储的任务;
步骤7.4:释放互斥锁。
综上可知,只在向尾下标所指位置放任务时要将队列加上等待锁,这样可以在有高优先级任务要往队列放时,暂停取任务、放低优先级任务的操作,保证高优先级任务优先放队列。
等待锁,保证高优先级任务先放到任务队列;互斥锁,避免放任务、取任务同时操作队列的同一个位置。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种多级别任务处理方法,其特征在于,包括如下步骤:
步骤1:建立带有头下标和尾下标的队列;
步骤2:获取等待分发的任务;
步骤3:判断队列是否已满,如果已满则等待,待队列中有空位时,执行步骤4;如果未满则直接执行步骤4;
步骤4:判断待分发任务的级别,如果是低优先级任务执行步骤5;如果高优先级任务则执行步骤6;
步骤5:头下标朝队列入口方向移动一个位置,将所述低优先级任务放置在头下标所指位置,执行步骤7;
步骤6:尾下标朝队列出口口方向移动一个位置,将所述高优先级任务放置在尾下标所指位置,执行步骤7;
步骤7:处理任务时,取出尾下标所指位置内存放的任务,将尾下标朝队列入口方向移动一个位置,执行步骤8;
步骤8:判断是否仍有待分发的任务,如果有,返回步骤2,否则待队列中任务均处理完毕,结束。
2.根据权利要求1所述一种多级别任务处理方法,其特征在于,步骤2中所述待分发的任务都预先根据任务类型及其所需的响应速度,为每个待分发的任务标定优先级。
3.根据权利要求1所述一种多级别任务处理方法,其特征在于,步骤5、6中向队列里放任务与步骤7中从队列中取任务是异步处理的。
4.根据权利要求1所述一种多级别任务处理方法,其特征在于,步骤5中将所述低优先级任务放入队列的具体步骤如下:
步骤5.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤5.2;否则直接执行步骤5.2;
步骤5.2:判断队列中是否有互斥锁,如果有则等待,等互斥锁释放,在头下标所指位置加互斥锁;如果没有则直接在头下标所指位置加互斥锁;
步骤5.3:将低优先级任务放入头下标所指位置;
步骤5.4:解除互斥锁。
5.根据权利要求1所述一种多级别任务处理方法,其特征在于,步骤6中将高优先级任务放入队列的具体步骤如下:
步骤6.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后,再在队列上加上等待锁,执行步骤6.2;否则直接在队列上加上等待锁,执行步骤6.2;
步骤6.2:判断队列中是否有互斥锁,如果有则等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁;
步骤6.3:将高优先级任务放入尾下标所指位置;
步骤6.4:解除互斥锁和等待锁。
6.根据权利要求1所述一种多级别任务处理方法,其特征在于,步骤7中取出尾下标所指队列位置内存放的任务的具体步骤如下:
步骤7.1:判断队列是否有等待锁,如果有则等待,等到等待锁释放后执行步骤7.2;否则直接执行步骤7.2;
步骤7.2::判断队列中是否有互斥锁,如果有则等待,等待互斥锁释放后,在尾下标所指位置加互斥锁,如果没有则直接在尾下标所指位置加互斥锁;
步骤7.3:从尾下标所指位置取出所存储的任务;
步骤7.4:释放互斥锁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310407686.1A CN103473126B (zh) | 2013-09-09 | 2013-09-09 | 一种多级别任务处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310407686.1A CN103473126B (zh) | 2013-09-09 | 2013-09-09 | 一种多级别任务处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473126A true CN103473126A (zh) | 2013-12-25 |
CN103473126B CN103473126B (zh) | 2016-10-26 |
Family
ID=49797995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310407686.1A Active CN103473126B (zh) | 2013-09-09 | 2013-09-09 | 一种多级别任务处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103473126B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155952A (zh) * | 2016-06-24 | 2016-11-23 | 武汉光迅科技股份有限公司 | 一种具有优先级仲裁机制的i2c多机通信方法 |
CN108958911A (zh) * | 2018-05-30 | 2018-12-07 | 北京小米移动软件有限公司 | 进程的控制方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083063A1 (en) * | 2000-12-26 | 2002-06-27 | Bull Hn Information Systems Inc. | Software and data processing system with priority queue dispatching |
CN1913412A (zh) * | 2006-07-31 | 2007-02-14 | 杭州华为三康技术有限公司 | 队列访问方法和装置 |
CN102752136A (zh) * | 2012-06-29 | 2012-10-24 | 广东东研网络科技有限公司 | 通信设备操作调度方法 |
CN102945185A (zh) * | 2012-10-24 | 2013-02-27 | 深信服网络科技(深圳)有限公司 | 任务调度方法及装置 |
CN103049324A (zh) * | 2013-01-08 | 2013-04-17 | 浙江大学 | 一种基于优先级位图的AUTOSAR NvM读写任务的管理方法 |
-
2013
- 2013-09-09 CN CN201310407686.1A patent/CN103473126B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083063A1 (en) * | 2000-12-26 | 2002-06-27 | Bull Hn Information Systems Inc. | Software and data processing system with priority queue dispatching |
CN1913412A (zh) * | 2006-07-31 | 2007-02-14 | 杭州华为三康技术有限公司 | 队列访问方法和装置 |
CN102752136A (zh) * | 2012-06-29 | 2012-10-24 | 广东东研网络科技有限公司 | 通信设备操作调度方法 |
CN102945185A (zh) * | 2012-10-24 | 2013-02-27 | 深信服网络科技(深圳)有限公司 | 任务调度方法及装置 |
CN103049324A (zh) * | 2013-01-08 | 2013-04-17 | 浙江大学 | 一种基于优先级位图的AUTOSAR NvM读写任务的管理方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106155952A (zh) * | 2016-06-24 | 2016-11-23 | 武汉光迅科技股份有限公司 | 一种具有优先级仲裁机制的i2c多机通信方法 |
CN106155952B (zh) * | 2016-06-24 | 2019-04-09 | 武汉光迅科技股份有限公司 | 一种具有优先级仲裁机制的i2c多机通信方法 |
CN108958911A (zh) * | 2018-05-30 | 2018-12-07 | 北京小米移动软件有限公司 | 进程的控制方法及装置 |
CN108958911B (zh) * | 2018-05-30 | 2022-02-08 | 北京小米移动软件有限公司 | 进程的控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103473126B (zh) | 2016-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106547612B (zh) | 一种多任务处理方法及装置 | |
CN101452399B (zh) | 任务二级调度模块及方法 | |
CN109684060B (zh) | 一种多类型时间关键任务的混合调度方法 | |
CN102207890A (zh) | 一种任务信息处理方法及调度控制处理装置 | |
CN103365726A (zh) | 一种面向gpu集群的资源管理方法和系统 | |
CN101882089A (zh) | 一种采用多线程处理业务会话应用的方法及装置 | |
CN105391649A (zh) | 一种队列调度方法及装置 | |
CN102541642B (zh) | 一种增强实时性能的任务管理方法 | |
CN105760216A (zh) | 一种多进程同步控制方法 | |
US20180329750A1 (en) | Resource management method and system, and computer storage medium | |
CN103268258A (zh) | 一种卫星地面遥控发令安全控制方法 | |
CN101923600B (zh) | 炼钢连铸车间的物流仿真方法 | |
CN106776025A (zh) | 一种计算机集群作业调度方法及其装置 | |
CN104156261A (zh) | 多控制器之间任务处理的方法和装置 | |
CN106155803A (zh) | 一种基于信号量的线程池共享方法及系统 | |
CN104899093A (zh) | 数据处理方法、装置和系统 | |
CN103870330A (zh) | 一种基于dsp的任务调度方法和装置 | |
CN103473126A (zh) | 一种多级别任务处理方法 | |
CN103645944A (zh) | 一种批量数据冲突检测方法、装置及系统 | |
CN108536609B (zh) | 内存碎片管理系统及方法 | |
CN102567120B (zh) | 一种节点调度优先级确定方法及装置 | |
CN106802825B (zh) | 一种基于实时系统的动态任务调度方法与系统 | |
CN103823712A (zh) | 一种多cpu虚拟机系统的数据流处理方法和装置 | |
CN108304254A (zh) | 快速虚拟机进程调度控制方法及装置 | |
CN108139938A (zh) | 用于利用次级线程以辅助主线程执行应用程序任务的装置、方法及计算机程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |