CN112445592A - 一种高优先级任务的精准调度方法及装置 - Google Patents
一种高优先级任务的精准调度方法及装置 Download PDFInfo
- Publication number
- CN112445592A CN112445592A CN202011294294.5A CN202011294294A CN112445592A CN 112445592 A CN112445592 A CN 112445592A CN 202011294294 A CN202011294294 A CN 202011294294A CN 112445592 A CN112445592 A CN 112445592A
- Authority
- CN
- China
- Prior art keywords
- sleep
- main task
- task
- timer
- scheduling
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种高优先级任务的精准调度方法及装置,通过采用高精度定时器对主任务的休眠时间进行控制,克服了现有技术中休眠时间粒度大,休眠时间误差大的缺陷,能够精确控制主任务的休眠时间,以满足直流保护对动作时间的高要求。
Description
技术领域
本发明涉及继电保护相关技术领域,尤其涉及一种高优先级任务的精准调度方法及装置。
背景技术
现有的嵌入式软件平台为继电保护逻辑的执行设置了两个任务,主任务优先级高,负责执行主保护逻辑代码,后备任务优先级低,负责执行后备保护逻辑代码。在单核CPU硬件架构中,为了让后备任务有机会执行,主任务在执行完逻辑代码后,主动休眠一段时间,让低优先级的后备任务和其它任务有时间得到调度。嵌入式软件平台的任务调度时序图可参考图1。
保护动作时间是衡量保护性能的重要指标。影响保护动作时间的因素除了保护算法外,主任务的休眠时间也是因素之一。休眠时间越长,一次保护的动作时间就可能变长。如图2所示,图2示出了主任务休眠对保护动作的影响示意图,其中,数据窗为保护算法所需的最小采样点集合,图2中,数据窗左端点为故障起始点,如果数据窗右端点恰好落在主任务轮询执行的终点,此后主任务进行休眠状态,如果主任务休眠时间3毫秒,那么保护动作时刻就有可能被延时3毫秒。
当前嵌入式软件平台休眠函数的时间单位为1毫秒,因此实际的休眠时间最大会有1毫秒的误差,误差的产生如图3所示,图3示出了嵌入式软件平台的异常调度时序图。假设主任务执行时间为0.9毫秒,休眠时间为1毫秒。从坐标轴0时刻起,主任务调度、系统时钟、系统调度同时启动。0.9毫秒后主任务执行完毕进入休眠状态。但0.1毫秒后,系统时钟更新,系统调度发现主任务的休眠时间已达1毫秒,因此即刻唤醒主任务执行。所以如果设置休眠时间为1毫秒,会出现主任务休眠时间过短,后备任务长期得不到调度的情况。因此根据嵌入式软件平台的规定,整定的休眠时间最小为2毫秒。
对于常规保护而言,保护动作时间一般不小于20毫秒,因此2毫秒的休眠时间对保护动作时间影响不大。但对于例如地铁领域的直流保护,保护动作时间要求不大于2毫秒。经实测主任务执行时间为0.7毫秒,叠加上最小休眠时间2毫秒,保护动作时间区间为0.7-2.7毫秒,此时已不能满足产品的性能指标。综合来说,当前平台休眠时间粒度大,休眠时间不能小于2毫秒,无法满足地铁直流保护的需求。另外,休眠时间误差大,也不利于后备任务和其它任务的稳态调度。
发明内容
基于现有技术的上述情况,本发明的目的在于提供一种高优先级任务的精准调度方法及装置,能够精确控制主任务的休眠时间,以满足直流保护对动作时间的高要求。
为达到上述目的,根据本发明的一个方面,提供了一种高优先级任务的精准调度方法,包括步骤:
S1、主任务执行完毕后,将休眠持续时间SleepUS清零,将事件状态位清除,主任务状态挂起;
S2、执行定时器中断程序,根据定时器的触发周期PeriodUS触发定时器中断,并累加休眠时间;
S3、若休眠持续时间SleepUS小于预设的休眠时间SleepSetUS,执行步骤S2;若休眠持续时间SleepUS大于或等于预设的休眠时间SleepSetUS,执行步骤S4;
S4、事件状态位置位,主任务状态就绪。
进一步的,所述步骤S2之后还包括步骤:
S21、是否提前唤醒主任务,若否,执行步骤S3;若是,执行步骤S4。
进一步的,所述触发周期PeriodUS根据预设误差休眠等级设置。
进一步的,所述触发周期PeriodUS小于等于1ms。
根据本发明的另一个方面,提供了一种高优先级任务的精准调度装置,包括任务调度模块和定时器控制模块;其中,
所述任务调度模块,主任务执行完毕后,将休眠持续时间SleepUS清零,将事件状态位清除,将主任务状态挂起;以及,在事件状态位置位时,将主任务状态就绪;
所述定时器控制模块,在事件状态位清除,并且休眠持续时间SleepUS小于预设的休眠时间SleepSetUS时,根据定时器的触发周期PeriodUS触发定时器中断,并累加休眠时间;以及,在休眠持续时间SleepUS大于或等于预设的休眠时间SleepSetUS时,将事件状态位置位。
进一步的,还包括提前唤醒主任务执行功能模块。
所述提前唤醒主任务执行功能模块,在有故障发生时,如果主任务在休眠,提前唤醒主任务执行。
进一步的,所述触发周期PeriodUS根据预设误差休眠等级设置。
进一步的,所述触发周期PeriodUS小于等于1ms。
综上所述,本发明提供了一种高优先级任务的精准调度方法及装置,通过采用高精度定时器对主任务的休眠时间进行控制,克服了现有技术中休眠时间粒度大,休眠时间误差大的缺陷,能够精确控制主任务的休眠时间,以满足直流保护对动作时间的高要求。本发明的技术方案具有如下技术效果:
(1)解决了现有技术中休眠时间不能小于2毫秒的缺陷,将休眠时间范围最低降至500微秒;
(2)解决了现有技术中休眠时间误差过大的缺陷,将时间误差由1毫秒降低到200微秒;
(3)具备休眠误差可调的优势,实际使用过程中,可根据实际需要选择休眠误差等级,在精度和性能之间做出合理的选择。
附图说明
图1是现有技术嵌入式软件平台的任务调度时序图;
图2是现有技术主任务休眠对保护动作的影响示意图;
图3是现有技术嵌入式软件平台的异常调度时序图;
图4是本发明高优先级任务的精准调度方法的原理示意图;
图5是本发明高优先级任务的精准调度方法的实施流程图;
图6是本发明高优先级任务的精准调度装置的组成结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
下面对结合附图对本发明的技术方案进行详细说明。根据本发明的一个实施例,提供了一种高优先级任务的精准调度方法,该调度方法基于如下原理设计:高优先级任务精准调度技术,是指利用操作系统事件机制和高精度硬件定时器,设计一种能让主任务在更小的时间粒度下准确调度的方法。简单来说,主任务的调度与否由事件的状态决定,事件的状态切换,借助高精度硬件定时器进行控制。该高优先级任务的精准调度方法的原理示意图如图4所示。
首先,嵌入式软件平台提供一个设置高精度休眠时间的函数,休眠时间的单位为微秒,范围为500微秒至10毫秒。同时该函数还可设置休眠误差等级,平台提供200微秒、500微秒、1毫秒三个等级供选择,默认为1毫秒。
其次,平台借助一个高精度硬件定时器,进行休眠持续时间的判别。定时器的周期取决于休眠误差等级,因此分为200微秒、500微秒、1毫秒三种周期。本领域技术任意可以根据实际需求选择休眠误差等级。需要注意的是,休眠误差过小会引发定时器频繁中断,导致主任务、后备任务被频繁打断,使得装置整体性能下降。
同时,平台提供一个事件对象,用来控制主任务运行还是休眠。借助上述要素,即可实现一种高优先级任务的精准调度技术,具体过程如下:
初始化阶段,平台根据休眠误差等级,创建高精度硬件定时器,设置定时器的触发周期PeriodUS,以用于产生触发事件来对休眠时间进行控制。同时,创建一个事件对象。
主任务每次从任务起点执行到终点,即一次主任务执行结束时,先将休眠持续时间SleepUS清零,再清除事件状态,然后尝试捕获事件。由于事件刚被清除且未达到触发时间,操作系统将主任务挂起。
高精度硬件定时器根据定时器的触发周期PeriodUS触发中断,每一次触发中断,累加休眠持续时间SleepUS。当休眠持续时间SleepUS大于或等于预设的休眠时间SleepSetUS时,平台触发事件,操作系统因此将主任务由挂起态转为就绪态,由于其任务优先级高,操作系统会停止低优先级任务执行,优先调度主任务运行。如果休眠持续时间SleepUS小于预设的休眠时间SleepSetUS时,则返回上一个步骤继续等待定时器触发中断。
同时,软件平台提供一种即时唤醒主任务的接口,来中止主任务休眠。如当在采样中断处理中检测到突变量启动,会调用该接口,让主任务从休眠中提前唤醒,以快速进行计算和保护动作,减少动作延迟。
本实施例所提供的高优先级任务的精准调度方法的实施流程图如图5所示,该方法包括步骤:
S1、主任务执行完毕后,将休眠持续时间SleepUS清零,将事件状态位清除,主任务状态挂起。
S2、执行定时器中断程序,根据定时器的触发周期PeriodUS触发定时器中断,并累加休眠时间。该触发周期PeriodUS根据预设误差休眠等级设置,由高精度硬件定时器实现,根据某些实施例,分为200微秒、500微秒、1毫秒三种周期,也可以根据需要设置其他合适的周期以及更多的休眠等级。高精度硬件定时器可以由FPGA硬件模块实现,以精准控制主任务的休眠时间,最大化降低休眠误差。在此基础上,为了进一步减低误差,也可以采用软件对休眠误差进行优化。例如,当定时器周期为200微秒的情况下,经过软件优化,休眠误差可以降低做到100微秒。
S21、是否需要提前唤醒主任务,若否,执行步骤S3;若是,执行步骤S4。
S3、若休眠持续时间SleepUS小于预设的休眠时间SleepSetUS,执行步骤S2;若休眠持续时间SleepUS大于或等于预设的休眠时间SleepSetUS,执行步骤S4。
S4、事件状态位置位,主任务状态就绪。
根据本发明的另一个实施例,提供一种高优先级任务的精准调度装置,包括任务调度模块、定时器控制模块、以及提前唤醒主任务执行功能模块,该精准调度装置的组成结构图如图6所示。
任务调度模块,主任务执行完毕后,将休眠持续时间SleepUS清零,将事件状态位清除,将主任务状态挂起;以及,在事件状态位置位时,将主任务状态就绪;
定时器控制模块,在事件状态位清除,并且休眠持续时间SleepUS小于预设的休眠时间SleepSetUS时,根据定时器的触发周期PeriodUS触发定时器中断,并累加休眠时间;以及,在休眠持续时间SleepUS大于或等于预设的休眠时间SleepSetUS时,将事件状态位置位。该触发周期PeriodUS根据预设误差休眠等级设置,由高精度硬件定时器实现,根据某些实施例,分为200微秒、500微秒、1毫秒三种周期,也可以根据需要设置其他合适的周期以及更多的休眠等级。高精度硬件定时器可以由FPGA硬件模块实现,以精准控制主任务的休眠时间,最大化降低休眠误差。在此基础上,为了进一步减低误差,也可以采用软件对休眠误差进行优化。例如,当定时器周期为200微秒的情况下,经过软件优化,休眠误差可以降低做到100微秒。
提前唤醒主任务执行功能模块,在需要提前唤醒主任务时,将事件状态位置位。当事件状态位置位后,转至任务调度模块。任务调度模块在事件状态位置位时,将主任务状态就绪,此时,即可开始执行主任务。
综上所述,本发明涉及一种高优先级任务的精准调度方法及装置,通过采用高精度定时器对主任务的休眠时间进行控制,克服了现有技术中休眠时间粒度大,休眠时间的误差大的缺陷,降低了休眠时间粒度,能够精确控制主任务的休眠时间,以满足直流保护对动作时间的高要求,并且具备休眠误差可调的优势,有利于使用者在精度和性能之间做出合理的选择。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (8)
1.一种高优先级任务的精准调度方法,其特征在于,包括步骤:
S1、主任务执行完毕后,将休眠持续时间SleepUS清零,将事件状态位清除,主任务状态挂起;
S2、执行定时器中断程序,根据定时器的触发周期PeriodUS触发定时器中断,并累加休眠时间;
S3、若休眠持续时间SleepUS小于预设的休眠时间SleepSetUS,执行步骤S2;若休眠持续时间SleepUS大于或等于预设的休眠时间SleepSetUS,执行步骤S4;
S4、事件状态位置位,主任务状态就绪。
2.根据权利要求1所述的精准调度方法,其特征在于,所述步骤S2之后还包括步骤:
S21、是否提前唤醒主任务,若否,执行步骤S3;若是,执行步骤S4。
3.根据权利要求2所述的精准调度方法,其特征在于,所述触发周期PeriodUS根据预设误差休眠等级设置。
4.根据权利要求3所述的精准调度方法,其特征在于,所述触发周期PeriodUS小于等于1ms。
5.一种高优先级任务的精准调度装置,其特征在于,包括任务调度模块和定时器控制模块;其中,
所述任务调度模块,主任务执行完毕后,将休眠持续时间SleepUS清零,将事件状态位清除,将主任务状态挂起;以及,在事件状态位置位时,将主任务状态就绪;
所述定时器控制模块,在事件状态位清除,并且休眠持续时间SleepUS小于预设的休眠时间SleepSetUS时,根据定时器的触发周期PeriodUS触发定时器中断,并累加休眠时间;以及,在休眠持续时间SleepUS大于或等于预设的休眠时间SleepSetUS时,将事件状态位置位。
6.根据权利要求5所述的精准调度装置,其特征在于,还包括提前唤醒主任务执行功能模块;
所述提前唤醒主任务执行功能模块,在有故障发生时,如果主任务在休眠,提前唤醒主任务执行。
7.根据权利要求6所述的精准调度装置,其特征在于,所述触发周期PeriodUS根据预设误差休眠等级设置。
8.根据权利要求7所述的精准调度装置,其特征在于,所述触发周期PeriodUS小于等于1ms。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011294294.5A CN112445592A (zh) | 2020-11-18 | 2020-11-18 | 一种高优先级任务的精准调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011294294.5A CN112445592A (zh) | 2020-11-18 | 2020-11-18 | 一种高优先级任务的精准调度方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112445592A true CN112445592A (zh) | 2021-03-05 |
Family
ID=74737496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011294294.5A Pending CN112445592A (zh) | 2020-11-18 | 2020-11-18 | 一种高优先级任务的精准调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112445592A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080153A (zh) * | 2021-03-10 | 2022-09-20 | 深圳市万普拉斯科技有限公司 | 待提速任务识别方法、装置、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252720A (zh) * | 2007-06-25 | 2008-08-27 | 浙江华立通信集团有限公司 | 3g和4g终端休眠模式控制方法和装置 |
CN101998598A (zh) * | 2009-08-20 | 2011-03-30 | 华为技术有限公司 | 一种侦听探测帧序列的方法及装置 |
CN106055026A (zh) * | 2016-07-20 | 2016-10-26 | 深圳市博巨兴实业发展有限公司 | 一种微控制器soc中实时时钟单元 |
US20180176864A1 (en) * | 2016-12-20 | 2018-06-21 | Intel IP Corporation | Method and apparatus to controlling sleep time for bluetooth device and bluetooth enabled device |
CN109765985A (zh) * | 2018-12-25 | 2019-05-17 | 赛特威尔电子股份有限公司 | 单片机间隙性工作控制方法、系统及装置 |
-
2020
- 2020-11-18 CN CN202011294294.5A patent/CN112445592A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252720A (zh) * | 2007-06-25 | 2008-08-27 | 浙江华立通信集团有限公司 | 3g和4g终端休眠模式控制方法和装置 |
CN101998598A (zh) * | 2009-08-20 | 2011-03-30 | 华为技术有限公司 | 一种侦听探测帧序列的方法及装置 |
CN106055026A (zh) * | 2016-07-20 | 2016-10-26 | 深圳市博巨兴实业发展有限公司 | 一种微控制器soc中实时时钟单元 |
US20180176864A1 (en) * | 2016-12-20 | 2018-06-21 | Intel IP Corporation | Method and apparatus to controlling sleep time for bluetooth device and bluetooth enabled device |
CN109765985A (zh) * | 2018-12-25 | 2019-05-17 | 赛特威尔电子股份有限公司 | 单片机间隙性工作控制方法、系统及装置 |
Non-Patent Citations (1)
Title |
---|
张旭;顾乃杰;苏俊杰;: "一种Linux用户态实时多任务调度框架", 中国科学技术大学学报, no. 08, pages 12 - 20 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080153A (zh) * | 2021-03-10 | 2022-09-20 | 深圳市万普拉斯科技有限公司 | 待提速任务识别方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8423999B2 (en) | Computer system, virtual machine monitor and scheduling method for virtual machine monitor | |
US8504753B2 (en) | Suspendable interrupts for processor idle management | |
US8584138B2 (en) | Direct switching of software threads by selectively bypassing run queue based on selection criteria | |
JPWO2005106623A1 (ja) | Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体 | |
JP2015513336A (ja) | リアルタイムシステムにおける動的電力管理 | |
EP3320438B1 (en) | High availability and energy-efficient watchdog timer | |
JP4840455B2 (ja) | フィールド制御システム | |
CN104536835B (zh) | 一种热备份实时控制系统中自适应任务调度方法 | |
KR100959548B1 (ko) | 인터럽트 스케줄링 방법 | |
WO2001067243A1 (fr) | Procede de gestion de la consommation d'energie d'un processeur, support d'enregistrement, et commande de la gestion de la consommation d'energie d'un processeur | |
CN112445592A (zh) | 一种高优先级任务的精准调度方法及装置 | |
WO2016195778A1 (en) | Opportunistic waking of an application processor | |
EP2490100B1 (en) | Suspendable interrupts for processor idle management | |
CN108241522B (zh) | 虚拟化环境中的睡眠状态切换方法、装置及电子设备 | |
US8423681B2 (en) | Control apparatus for process input-output device | |
JP2001216170A (ja) | 専用ポーリング処理組み込みオペレーティング方法及び専用ポーリング処理組み込みオペレーティングシステム | |
CN111813531B (zh) | 一种操作系统时钟调度方法及系统 | |
US20050160425A1 (en) | Limitation of the response time of a software process | |
CN114268670B (zh) | 基于时间触发的以太网异步消息处理系统及方法 | |
JP5771114B2 (ja) | コントローラ、およびタスクとラダーの処理方法 | |
EP2207070A1 (en) | Field control device and field control method | |
US20130007758A1 (en) | Multi-core processor system, thread switching control method, and computer product | |
WO2022180893A1 (ja) | 制御装置及び制御方法 | |
JP2003140787A (ja) | 電力制御装置及び方法並びに電力制御プログラム | |
CN114840053A (zh) | 基于嵌入式软件的同步脉冲与定时器冗余控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |