CN101339521B - 一种任务优先级动态调度算法 - Google Patents
一种任务优先级动态调度算法 Download PDFInfo
- Publication number
- CN101339521B CN101339521B CN2008100485929A CN200810048592A CN101339521B CN 101339521 B CN101339521 B CN 101339521B CN 2008100485929 A CN2008100485929 A CN 2008100485929A CN 200810048592 A CN200810048592 A CN 200810048592A CN 101339521 B CN101339521 B CN 101339521B
- Authority
- CN
- China
- Prior art keywords
- task
- time
- priority
- scheduling
- variable
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及实时***中的任务调度技术领域,具体涉及一种任务优先级动态调度算法。本发明的目的在于提供一种任务优先级动态调度算法,该算法可以克服在***超负荷的情况动态优先级算法的截止期错失率急剧增加的问题,减小任务平均延迟,增加调度成功率,并能提高任务的公平性,对于执行时间E较大的任务来说不会出现过高截止期限错失率。
Description
技术领域
本发明涉及实时***中的任务调度技术领域,具体涉及一种任务优先级动态调度算法。
背景技术
对实时调度算法的研究,是实时领域的一个重要的研究课题。优先级驱动方式是实时***调度的最常用的方式,实现的方法是给每一个任务一个优先级,在每一个调度时机选择优先级最高的任务得到运行。基于优先级的调度方式又可以分为两大类:静态与动态优先级调度。静态优先级调度中,优先级的初值是由任务的特定信息确定的,且在运行过程中是不变的;在动态优先级调度算法中,任务的调度优先级随着任务中任务运行而变化,任务优先级不仅仅与任务自身有关系,而且与***中其它的任务有关。
常用的静态优先级调度算法有RM(Rate-Monotonic)算法和DM(Deadline-Monotonic)算法;动态优先级调度算法有经典的EDF(EarliestDeadline First)。静态优先级调度算法任务的调度时刻确定,实现起来简单,但是CPU利用率不高,相对于静态优先级调度算法,动态优先级调度算法体现更大的灵活性,***在运行中是根据临时的任务的紧迫程度来确定优先级,因此其显得更合理,但是***的调度也更复杂,也表现出了更多的不确定性,特别是在***超负荷的情况下,EDF算法的截止期错失率急剧增加,调度成功率下降很快,因此基于EDF调度策略改进,减小截止期限错失率(DMR),减小任务平均延迟,增加调度成功率,对于软实时的应用有重要意义。
在实时调度***中,实时任务分为周期和非周期两种,常见的实时任务都是周期性的。假定周期任务组为τ={T1,T2,…Tn},n为任务的个数,其中Ti=(ei,di,pi,ri)是任意一个周期任务,ei,di,pi是正实数,分别表示该周期任务的周期内的,执行时间,完成时限,周期大小。ri是非负实数,表示该任务的初始释放时刻(任务投入运行时刻)。用ri,k表示周期任务Ti在第K周期的释放时刻,则第K周期的相应的完成时限为di,k=ri,k+di。在上述任务组情况下进行调度。
最早的EDF调度算法是采用非抢占式的,如果一个实时任务在分配的执行时间之前完成本周期内的工作,则在这个空闲时间内其它实时任务也不能运行,CPU将处于相对空闲状态(可能执行非实时任务,可能idle)。
如果一个实时任务超出了自己的执行时间(overrun),工作没有结束,则将保持当前的高优先级继续执行下去,这样就会顺延本来已经安排后后面的任务,形成“多米诺”效应,造成多个任务超出截止时间。
发明内容
本发明的目的在于提供一种任务优先级动态调度算法,该算法可以克服在***超负荷的情况动态优先级算法的截止期错失率急剧增加的问题,减小任务平均延迟,增加调度成功率,并能提高任务的公平性,对于执行时间E较大的任务来说不会出现过高截止期限错失率。
为了达到上述目的,本发明采用的技术方案为:
一种任务优先级动态调度算法,包括如下步骤:
(1)根据被调度的任务是否在本周期内完成,将该任务的状态分别标记为active和inactive,计算resume_time作为该任务下一次释放时间;
(2)作业调度时刻到来时的作业调度的具体步骤为:
步骤a、获取当前时间,并将时间保存到now变量中;获取当前任务的状态;
步骤b、循环遍历任务队列,依次找出任务队列中的任务的状态state为inactive的任务;对遍历得到的inactive的任务的resume_time和当前时间变量now进行比较;判断resume_time是否大于当前时间变量,如果是则继续遍历任务队列直到遍历完毕;如果否则设置该任务T的状态为active,并更新任务优先级和下次释放时间,完成后继续遍历任务队列直到遍历完毕;
步骤c、完成遍历后调用动态优先级调度器进行调度;
(3)作业完成本周期工作转入睡眠时的作业调度的具体步骤为:
步骤a、设置当前任务的状态为inactive;
步骤b、调用动态优先级调度器进行调度;
(4)动态优先级调度器执行最早截止期优先算法,在该算法中加入期望执行时间e的因素,截止期相同时,期望执行时间比较大的任务,优先级更高。
上述调度算法中对于任意一个没有完成本周期工作的任务,其优先级计算方法为
对于任意一个完成本周期工作的任务,其优先级计算方法为
式(2)
其中t为当前时间,p为该任务周期,d为该任务周期内截止期限,e为周期内执行时间,f是一个可调的系数,0<f<1.vdeadline最小的任务优先级最高。
上述调度算法中对于一个没有完成本周期工作的任务,不管它的运行时间是否超过预算,不管它是否超过期限,其任务状态一直为active。优先级都按照式(1)来计算。且在该任务每个周期的开始都会更新优先级,并按照这个优先级进行调度。
上述调度算法中对于一个完成本周期工作的任务,其任务状态设置为inactive,其任务的优先级按照式(2)重新计算。其下一次释放时间计算方法为
对于一个没有完成本周期工作,且延迟至下一周期的任务,此时下一个周期将会丢失,其resume_time将会按照式(3)更新。
上述调度算法中调度是完全可抢占的,在每次调度的时刻,在所有的active任务中选取一个优先级最高的任务“next”作为将要切换的任务,在包括所有的active,inactive任务中,选取一个优先级最高的任务“preemptor”,作为抢占任务。如果next等于preemptor,则下一次调度时刻设置为next的resume_time;如果next不等于preemptor,则将next的resume_time和preemptor的resume_time中的最小值作为下一次调度时刻。
上述调度算法步骤(4)中动态优先级调度器的调度流程的具体步骤为:
步骤a、按照式(3)更新当前任务的resume_time,获取当前任务的状态,判断该任务状态是否为inactive状态,如果是则按照式(2)更新该任务的优先级,如果否则按照式(1)更新该任务的优先级;
步骤b、在所有任务中,找出优先级最高的任务作为抢占任务,并保存到preemptor变量中;
步骤c、在状态为active的任务中,找出优先级最高的任务作为将要切换的新任务,并保存到next变量中;
步骤d、对next变量和preemptor变量进行比较,判断next变量和preemptor变量是否相等,如果是则设置变量preempt_time为任务next的resume_time,如果否则设置变量preempt_time为任务next的resume_time和任务preemptor的resume_time中较小的一个;
步骤e、将变量preempt_time设置为下一次作业的调度时刻;进行作业切换,完成调度。
与现有技术相比,本发明产生的有益效果为:
本发明可以克服在***超负荷的情况动态优先级算法的截止期错失率急剧增加的问题,减小任务平均延迟,增加调度成功率,并能提高任务的公平性,对于执行时间E较大的任务来说不会出现过高截止期限错失率。
附图说明
图1是本发明调度中作业调度时刻到来时的作业调度流程图;
图2是本发明作业完成本周期工作转入睡眠流程图;
图3是本发明动态优先级调度器流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行详细说明。
在具体实施方式中,利用到的任务的数据结构的伪码为:
Struct task{
Unsigned long p;
Unsigned long e;
Unsigned long d;
Unsigned long deadline;
Unsigned long resume_time;
Long state;
/*other attributes*/
};
该任务task的属性中存在有如上的一些结构体内部变量。在上述中,task的状态变量state有两种属性:一是active,一个是inactive。
一种任务优先级动态调度算法,包括如下步骤:
(1)根据被调度的任务是否在本周期内完成,将该任务的状态分别标记为active和inactive,计算resume_time作为该任务下一次释放时间;
(2)作业调度时刻到来时的作业调度的具体步骤为:
步骤a、获取当前时间,并将时间保存到now变量中;获取当前任务的状态;
步骤b、循环遍历任务队列,依次找出任务队列中的任务的状态state为inactive的任务;对遍历得到的inactive的任务的resume_time和当前时间变量now进行比较;判断resume_time是否大于当前时间变量,如果是则继续遍历任务队列直到遍历完毕;如果否则设置该任务T的状态为active,并更新任务优先级和下次释放时间,完成后继续遍历任务队列直到遍历完毕;
步骤c、完成遍历后调用动态优先级调度器进行调度;
(3)作业完成本周期工作转入睡眠时的作业调度的具体步骤为:
步骤a、设置当前任务的状态为inactive;
步骤b、调用动态优先级调度器进行调度;
(4)动态优先级调度器执行最早截止期优先算法,在该算法中加入期望执行时间e的因素,截止期相同时,期望执行时间比较大的任务,优先级更高。
上述调度算法中对于任意一个没有完成本周期工作的任务,其优先级计算方法为
对于任意一个完成本周期工作的任务,其优先级计算方法为
其中t为当前时间,p为该任务周期,d为该任务周期内截止期限,e为周期内执行时间,f是一个可调的系数,0<f<1.vdeadline最小的任务优先级最高。
上述调度算法中对于一个没有完成本周期工作的任务,不管它的运行时间是否超过预算,不管它是否超过期限,其任务状态一直为active。优先级都按照式(1)来计算。且在该任务每个周期的开始都会更新优先级,并按照这个优先级进行调度。
上述调度算法中对于一个完成本周期工作的任务,其任务状态设置为inactive,其任务的优先级按照式(2)重新计算。其下一次释放时间计算方法为
对于一个没有完成本周期工作,且延迟至下一周期的任务,此时下一个周期将会丢失,其resume_time将会按照式(3)更新。
上述调度算法中调度是完全可抢占的,在每次调度的时刻,在所有的active任务选取一个优先级最高的任务“next”作为将要切换的任务,在包括所有的active,inactive任务中,选取一个优先级最高的任务“preemptor”,作为抢占任务。如果next等于preemptor,则下一次调度时刻设置为next的resume_time;如果next不等于preemptor,则将next的resume_time和preemptor的resume_time中的最小值作为下一次调度时刻。
参见图1,图1是本发明的任务调度算法调度中作业调度时刻到来时的作业调度流程图。作业调度时刻到来时的作业调度的步骤如下:
在步骤10,在定时器到期,作业调度被触发之后,获取当前时间,并将时间保存到now变量中。该步骤的目的为后续步骤的比较来做准备。
在步骤20,获取当前任务的状态。当前任务的属性如前的task结构体变量所示。该步骤的目的是需要为下一步根据当前任务来进行调度判断来做准备。
在步骤30,遍历任务队列,依次找出任务队列中的任务的状态state为inactive的任务,并将得到的任务赋给变量T。
在步骤40,判断是否遍历完毕。如果还没遍历完毕,则跳到步骤50;如果已经遍历完毕,则跳到步骤100。
在步骤50,对遍历得到的任务T的resume_time和当前时间变量now进行比较。
在步骤60,判断resume_time是否大于当前时间变量。如果判断是对的,则跳到步骤30,继续遍历任务队列;如果判断是错的,则跳到步骤70。
在步骤70,设置该任务T的状态为active。
在步骤80,依照式(1)计算该任务T的优先级并进行更新。
在步骤90,依照式(3)计算该任务T的resume_time并进行更新。完成后调转到步骤30,进行下一次遍历操作。
在步骤100,调用调度器过程。该过程的具体流程图如图3所示,上述过程都是为了调用调度器做准备。
参照图2,图2是本发明的任务调度算法中作业完成本周期工作转入睡眠流程图。作业完成本周期工作转入睡眠的步骤如下:
在步骤110,设置当前任务的状态为inactive。由于当前任务的作业本周期已经完成,因此该任务可以设置成inactive,不参与下次调度。
在步骤120,调用调度器过程。该过程的具体流程图如图3所示,上述过程是调用调度器的前期准备工作。
参照图3,图3是本发明的任务调度算法中EDF调度器流程图。EDF调度器的步骤如下:
在步骤130,按照式(3)更新当前任务的resume_time。
在步骤140,获取当前任务的状态。获取到当前任务的状态为下一步的比较判断来做准备。
在步骤150,判断步骤140获取的当前任务状态是否为inactive状态。如果判断结果为是,则跳转到步骤160;如果判断结果为否,则跳转到步骤170。
在步骤160,按照式(2)更新当前任务的优先级。完成更新后跳转到步骤180。
在步骤170,按照式(1)更新当前任务的优先级。完成更新后跳转到步骤180。
在步骤180,在所有任务中,找出优先级最高的任务作为抢占任务,并保存到preemptor变量中。
在步骤190,在状态为active的任务中,找出优先级最高的任务作为将要切换的新任务,并保存到next变量中。
在步骤200,对next变量和preemptor变量进行比较。
在步骤210,判断next变量和preemptor变量是否相等。如果判断结果为是,则跳转到步骤220;如果判断结果为否,则跳转到步骤230。
在步骤220,设置变量preempt_time为任务next的resume_time。变量preempt_time将在步骤240中用到,是作为作业调度时刻用的。在完成此步骤后跳转到步骤240。
在步骤230,设置变量preempt_time为任务next的resume_time和任务preemptor的resume_time中较小的一个。变量preempt_time将在步骤240中用到,是作为作业调度时刻用的。在完成此步骤后跳转到步骤240。
在步骤240,将变量preempt_time设置为下一次作业的调度时刻。
在步骤250,进行作业切换,完成调度。
以上说明仅仅是本发明的一种实施方式,不能对本发明进行限定,本领域普通技术人员所做的任何不超出本发明主题的改变,只要在本发明所请求的范围内,都在本发明的保护范围内。
Claims (3)
1.一种任务优先级动态调度算法,其特征在于:包括如下步骤:
(1)根据被调度的任务是否在本周期内完成,将该任务的状态分别标记为active和inactive,计算resume_time作为该任务下一次释放时间;
(2)作业调度时刻到来时的作业调度的具体步骤为:
步骤a、获取当前时间,并将时间保存到now变量中;获取当前任务的状态;
步骤b、循环遍历任务队列,依次找出任务队列中的任务的状态state为inactive的任务;对遍历得到的inactive的任务的resume_time和当前时间变量now进行比较;判断resume_time是否大于当前时间变量,如果是则继续遍历任务队列直到遍历完毕;如果否则设置该任务T的状态为active,并更新任务优先级和下次释放时间,完成后继续遍历任务队列直到遍历完毕;
对于任意一个没有完成本周期工作的任务,其优先级计算方法为:
对于任意一个完成本周期工作的任务,其优先级计算方法为:
其中,t为当前时间,p为该任务周期,d为该任务周期内截止期限,e为周期内期望执行时间,f是一个可调的系数,0<f<1,vdeadline最小的任务优先级最高;
对于一个没有完成本周期工作的任务,其任务状态一直为active;优先级都按照式(1)来计算;且在该任务每个周期的开始都会更新优先级,并按照这个优先级进行调度;
对于一个完成本周期工作的任务,其任务状态设置为inactive,其任务的优先级按照式(2)重新计算,其下一次释放时间计算方法为
对于一个没有完成本周期工作,且延迟至下一周期的任务,此时下一个周期将会丢失,其resume_time将会按照式(3)更新;
步骤c、完成遍历后调用动态优先级调度器进行调度;
(3)作业完成本周期工作转入睡眠时的作业调度的具体步骤为:
步骤a、设置当前任务的状态为inactive;
步骤b、调用动态优先级调度器进行调度;
(4)动态优先级调度器执行最早截止期优先算法,在该算法中加入期望执行时间e的因素,截止期相同时,期望执行时间比较大的任务,优先级更高。
2.如权利要求1所述的一种任务优先级动态调度算法,其特征在于:调度是完全可抢占的,在每次调度的时刻,在所有的active任务中选取一个优先级最高的任务“next”作为将要切换的任务,在包括所有的active,inactive任务中,选取一个优先级最高的任务“preemptor”,作为抢占任务;如果next等于preemptor,则下一次调度时刻设置为next的resume_time;如果next不等于preemptor,则将next的resume_time和preemptor的resume_time中的最小值作为下一次调度时刻。
3.如权利要求1所述的一种任务优先级动态调度算法,其特征在于:所述动态优先级调度器的调度流程的具体步骤为:
步骤a、按照式(3)更新当前任务的resume_time,获取当前任务的状态,判断该任务状态是否为inactive状态,如果是则按照式(2)更新该任务的优先级,如果否则按照式(1)更新该任务的优先级;
步骤b、在所有任务中,找出优先级最高的任务作为抢占任务,并保存到preemptor变量中;
步骤c、在状态为active的任务中,找出优先级最高的任务作为将要切换的新任务,并保存到next变量中;
步骤d、对next变量和preemptor变量进行比较,判断next变量和preemptor变量是否相等,如果是则设置变量preempt_time为任务next的resume_time,如果否则设置变量preempt_time为任务next的resume_time和任务preemptor的resume_time中较小的一个;
步骤e、将变量preempt_time设置为下一次作业的调度时刻;进行作业切换,完成调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100485929A CN101339521B (zh) | 2008-07-28 | 2008-07-28 | 一种任务优先级动态调度算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100485929A CN101339521B (zh) | 2008-07-28 | 2008-07-28 | 一种任务优先级动态调度算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101339521A CN101339521A (zh) | 2009-01-07 |
CN101339521B true CN101339521B (zh) | 2011-04-20 |
Family
ID=40213593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100485929A Expired - Fee Related CN101339521B (zh) | 2008-07-28 | 2008-07-28 | 一种任务优先级动态调度算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101339521B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207883A (zh) * | 2011-06-01 | 2011-10-05 | 华中科技大学 | 异构分布式实时***的事务调度方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101799770B (zh) * | 2010-01-19 | 2012-07-25 | 湖南大学 | 基于单位面积加速比的可重构资源管理方法 |
CN102012837B (zh) * | 2010-10-18 | 2012-12-19 | 西南交通大学 | 优先级位图算法的一种空间优化方法 |
CN103548000A (zh) * | 2011-03-21 | 2014-01-29 | 惠普发展公司,有限责任合伙企业 | 数据备份优先化 |
CN102148762A (zh) * | 2011-04-28 | 2011-08-10 | 合肥工业大学 | 一种用于CAN-FlexRay网关的混合调度方法 |
CN102394932A (zh) * | 2011-11-04 | 2012-03-28 | 浪潮(北京)电子信息产业有限公司 | 一种云海操作***及其资源调度方法 |
CN103324525B (zh) * | 2013-07-03 | 2016-01-13 | 东南大学 | 一种云计算环境下的任务调度方法 |
CN103793207B (zh) * | 2014-01-21 | 2016-06-29 | 上海爱数信息技术股份有限公司 | 一种单线程多优先级***的智能调度方法 |
CN104331327B (zh) * | 2014-12-02 | 2017-07-11 | 山东乾云启创信息科技股份有限公司 | 大规模虚拟化环境中任务调度的优化方法及优化*** |
CN106354555B (zh) * | 2016-08-26 | 2019-07-05 | 昆明理工大学 | 一种操作***进程调度算法 |
CN107589993A (zh) * | 2017-08-15 | 2018-01-16 | 郑州云海信息技术有限公司 | 一种基于linux实时操作***的动态优先级调度算法 |
CN109167713A (zh) * | 2018-07-19 | 2019-01-08 | 郑州云海信息技术有限公司 | 一种can总线控制网络的混合调度方法 |
CN111026519B (zh) * | 2018-10-10 | 2023-11-10 | 上海宝信软件股份有限公司 | 基于分布式的任务优先级调度方法和***及存储介质 |
CN109558227B (zh) * | 2018-11-12 | 2023-03-31 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于任务执行预算的单调速率任务调度方法 |
CN111143045B (zh) * | 2019-12-11 | 2024-03-22 | 青岛海尔科技有限公司 | 智能家居操作***的任务调度方法及装置、存储介质 |
CN111930490B (zh) * | 2020-09-25 | 2021-06-15 | 武汉中科通达高新技术股份有限公司 | 一种流媒体任务管理方法及装置 |
CN113568725A (zh) * | 2021-07-14 | 2021-10-29 | 中国科学院计算技术研究所 | 深度学习作业优先级调度方法及深度学习作业*** |
CN114578945B (zh) * | 2022-02-21 | 2023-05-26 | 华侨大学 | 非抢占动态优先级混合关键任务能耗感知实时调度方法 |
CN114860397B (zh) * | 2022-04-14 | 2024-06-25 | 深圳清华大学研究院 | 一种任务调度方法、装置及设备 |
-
2008
- 2008-07-28 CN CN2008100485929A patent/CN101339521B/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102207883A (zh) * | 2011-06-01 | 2011-10-05 | 华中科技大学 | 异构分布式实时***的事务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101339521A (zh) | 2009-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101339521B (zh) | 一种任务优先级动态调度算法 | |
CN101923487A (zh) | 一种综合嵌入式实时周期任务调度方法 | |
CN108984292A (zh) | 混合关键***固定优先级周期任务能耗优化方法 | |
CN104156264B (zh) | 一种基于多gpu的基带信号处理任务并行实时调度方法 | |
CN104536835B (zh) | 一种热备份实时控制***中自适应任务调度方法 | |
CN106445070B (zh) | 一种硬实时***资源受限偶发任务能耗优化调度方法 | |
CN109739332B (zh) | 一种多任务通用能耗优化方法 | |
CN107391244A (zh) | 一种基于混合调度模型的物联网操作***调度方法 | |
CN106445659B (zh) | 一种空间飞行器周期性混成随机任务调度方法 | |
CN109324891A (zh) | 一种比例空闲时间分配的周期任务低功耗调度方法 | |
CN108563494A (zh) | 一种自适应动态调整的线程调度***及方法 | |
CN103049314A (zh) | 一种开放式***实时调度方法 | |
El Ghor et al. | Energy efficient scheduler of aperiodic jobs for real-time embedded systems | |
CN107589993A (zh) | 一种基于linux实时操作***的动态优先级调度算法 | |
CN103810037A (zh) | 一种作业调度方法和计算装置 | |
CN108304257A (zh) | 基于延迟服务器的强实时混合任务调度方法 | |
El Osta et al. | An efficient aperiodic task server for energy harvesting embedded systems | |
CN113238841A (zh) | 一种基于云计算技术的任务调度方法 | |
CN106293000B (zh) | 一种面向云环境的虚拟机存储子***节能方法 | |
Awadalla | Heuristic Approach for Scheduling Dependent Real-Time Tasks | |
CN106933325B (zh) | 一种固定优先级io设备能耗管理方法 | |
CN106325983A (zh) | 一种内存占用小、支持并发的微程模型及调度方法 | |
Azhen et al. | Adaptive real-time scheduling for mixed task sets based on total bandwidth server | |
Leng et al. | A new utilization based admission control algorithm for aperiodic tasks with constant time complexity under EDF scheduling | |
CN115454640B (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110420 Termination date: 20120728 |