CN103473126A - 一种多级别任务处理方法 - Google Patents

一种多级别任务处理方法 Download PDF

Info

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
Application number
CN2013104076861A
Other languages
English (en)
Other versions
CN103473126B (zh
Inventor
周伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN201310407686.1A priority Critical patent/CN103473126B/zh
Publication of CN103473126A publication Critical patent/CN103473126A/zh
Application granted granted Critical
Publication of CN103473126B publication Critical patent/CN103473126B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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:释放互斥锁。
CN201310407686.1A 2013-09-09 2013-09-09 一种多级别任务处理方法 Active CN103473126B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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读写任务的管理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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