CN112799821A - 一种调度多个执行时机可变的周期任务的方法 - Google Patents

一种调度多个执行时机可变的周期任务的方法 Download PDF

Info

Publication number
CN112799821A
CN112799821A CN202110165599.4A CN202110165599A CN112799821A CN 112799821 A CN112799821 A CN 112799821A CN 202110165599 A CN202110165599 A CN 202110165599A CN 112799821 A CN112799821 A CN 112799821A
Authority
CN
China
Prior art keywords
task
time
execution
scheduling
executed
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
Application number
CN202110165599.4A
Other languages
English (en)
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.)
Readboy Education Technology Co Ltd
Original Assignee
Readboy Education 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 Readboy Education Technology Co Ltd filed Critical Readboy Education Technology Co Ltd
Priority to CN202110165599.4A priority Critical patent/CN112799821A/zh
Publication of CN112799821A publication Critical patent/CN112799821A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种调度多个执行时机可变的周期任务的方法,将所有任务的执行时机和进行调度的时刻映射到同一个时刻序列中,比较得到下一个要执行的任务,完成调度,从而使得调度计算次数与任务执行的次数相等,减少不必要的中断处理操作,适应执行时机和周期常变的周期任务调度需求。

Description

一种调度多个执行时机可变的周期任务的方法
技术领域
本发明涉及多任务调度技术领域,具体涉及一种调度多个执行时机可变的周期任务的方法。
背景技术
现有的多任务调度算法主要侧重研究根据任务优先度和复杂度、设备负载情况等选择要执行的任务,或者确定调度任务周期等选择要执行的任务,而未考虑已经有多个周期任务需要执行的情况。针对这一问题,现有技术中根据所有任务执行周期的最大公约数设置时钟中断,中断时检查各任务是否满足执行条件,即自有的计数变量恰好为:自身周期除以最大公约数。这样减少了CPU消耗,计算简单。
但这一方法要在第一次中断的时候离第一项任务的执行时机相差比较大(从而公约数可以比较大)的时候,性能优势才明显。而一种实际场景是,所有周期任务的执行时机、周期由于用户操作等经常发生不规律的变化,此时重新进行调度,可能下一次执行时机非常近,不能发挥算法的优点。
发明内容
针对现有技术的不足,本发明旨在提供一种调度多个执行时机可变的周期任务的方法。
为了实现上述目的,本发明采用如下技术方案:
一种调度多个执行时机可变的周期任务的方法,具体过程如下:
S1、按设定的循环周期长度T产生一个时刻序列,任务Ni,i=1,2,3......的执行时机落在时刻序列上的固定位置;
S2、当任务信息发生改变而需要重新计算任务的执行时机时,将计算到的下次任务执行时机发生的时刻映射到时刻序列中,从而在时刻序列上找到与之距离最近的执行时机的时刻,执行对应的任务,并将两者相差的时间设为休眠或中断定时,在任务执行的同时进行下次调度的任务执行时机的计算。
进一步地,上述方法中,对于只在其中固定数量周期内执行的任务,在进行步骤S1时,在任务内部设置一个代表待执行次数的计数变量,每执行一次后计数变量自减1,直至计数变量的值为0后将该任务移出待执行任务队列。
本发明的有益效果在于:本发明方法将所有任务的执行时机和进行调度的时刻映射到同一个时刻序列中,比较得到下一个要执行的任务,完成调度,从而使得调度计算次数与任务执行的次数相等,减少不必要的中断处理操作,适应执行时机和周期常变的周期任务调度需求。
附图说明
图1为本发明方法的实施示意图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
本实施例提供一种调度多个执行时机可变的周期任务的方法,具体过程如下:
按设定的循环周期长度T产生一个时刻序列,任务Ni(i=1,2,3......)的执行时机落在时刻序列上的固定位置。
当任务信息发生改变而需要重新计算任务的执行时机时,如图1所示,将计算到的下次任务执行时机(称为一次调度)发生的时刻映射到时刻序列中,从而在时刻序列上找到与之距离最近的执行时机的时刻,执行对应的任务,并将两者相差的时间设为休眠或中断定时,在任务执行的同时进行下次调度的任务执行时机的计算。
对于只在其中固定数量周期内执行的任务(例如在本实施例中,N2本应只在第一个周期内执行),在映射每个任务的执行时机并构造待执行任务队列时,在任务内部设置一个代表待执行次数的计数变量,每执行一次后计数变量自减1,直至计数变量的值为0后将该任务移出待执行任务队列。对于需要长期循环执行的任务,计数变量的初始值可置为一个足够大的数字(如32位有符号整型的上限231-1)。
例如,如果希望N2至少执行一次,将计数变量初始值置为1,在周期T-2T执行完时计数变量减为0,此时将N2移出队列,这样再次调度时就会跳过N2并读取下一个任务的数据,实现期望的动作。这些判断条件可以内置到任务数据内部,用户设置任务的时候可以自定义期望的动作,调度时即可加以判断。
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。

Claims (2)

1.一种调度多个执行时机可变的周期任务的方法,其特征在于,具体过程如下:
S1、按设定的循环周期长度T产生一个时刻序列,任务Ni,i=1,2,3......的执行时机落在时刻序列上的固定位置;
S2、当任务信息发生改变而需要重新计算任务的执行时机时,将计算到的下次任务执行时机发生的时刻映射到时刻序列中,从而在时刻序列上找到与之距离最近的执行时机的时刻,执行对应的任务,并将两者相差的时间设为休眠或中断定时,在任务执行的同时进行下次调度的任务执行时机的计算。
2.根据权利要求1所述的方法,其特征在于,对于只在其中固定数量周期内执行的任务,在进行步骤S1时,在任务内部设置一个代表待执行次数的计数变量,每执行一次后计数变量自减1,直至计数变量的值为0后将该任务移出待执行任务队列。
CN202110165599.4A 2021-02-06 2021-02-06 一种调度多个执行时机可变的周期任务的方法 Pending CN112799821A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110165599.4A CN112799821A (zh) 2021-02-06 2021-02-06 一种调度多个执行时机可变的周期任务的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110165599.4A CN112799821A (zh) 2021-02-06 2021-02-06 一种调度多个执行时机可变的周期任务的方法

Publications (1)

Publication Number Publication Date
CN112799821A true CN112799821A (zh) 2021-05-14

Family

ID=75814581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110165599.4A Pending CN112799821A (zh) 2021-02-06 2021-02-06 一种调度多个执行时机可变的周期任务的方法

Country Status (1)

Country Link
CN (1) CN112799821A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510163A (zh) * 2009-04-07 2009-08-19 金蝶软件(中国)有限公司 一种计划任务的处理方法及系统
JP2010262471A (ja) * 2009-05-07 2010-11-18 Mitsubishi Electric Corp 並列化スケジューリング装置
CN103491174A (zh) * 2013-09-26 2014-01-01 中国船舶重工集团公司第七一六研究所 基于延迟服务器的周期/非周期混合实时任务调度方法
CN104699533A (zh) * 2013-12-09 2015-06-10 中国航空工业集团公司第六三一研究所 一种多个周期任务的调度方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510163A (zh) * 2009-04-07 2009-08-19 金蝶软件(中国)有限公司 一种计划任务的处理方法及系统
JP2010262471A (ja) * 2009-05-07 2010-11-18 Mitsubishi Electric Corp 並列化スケジューリング装置
CN103491174A (zh) * 2013-09-26 2014-01-01 中国船舶重工集团公司第七一六研究所 基于延迟服务器的周期/非周期混合实时任务调度方法
CN104699533A (zh) * 2013-12-09 2015-06-10 中国航空工业集团公司第六三一研究所 一种多个周期任务的调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘娴 等: "数控系统中基于预分配的混合任务调度算法", 《计算机集成制造系统》 *

Similar Documents

Publication Publication Date Title
US10649935B2 (en) Deferred inter-processor interrupts
US6360243B1 (en) Method, device and article of manufacture for implementing a real-time task scheduling accelerator
US6430593B1 (en) Method, device and article of manufacture for efficient task scheduling in a multi-tasking preemptive priority-based real-time operating system
US9632822B2 (en) Multi-core device and multi-thread scheduling method thereof
US6128672A (en) Data transfer using software interrupt service routine between host processor and external device with queue of host processor and hardware queue pointers on external device
US20190107874A1 (en) Method and Apparatus for Managing Global Chip Power on a Multicore System on Chip
CN110199241A (zh) 自适应功率控制环路
WO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
EP3391211B1 (en) Controlling scheduling of a gpu
EP2551767B1 (en) Method and device for adjusting clock interrupt cycle
CN102270156A (zh) 一种实时嵌入式系统定时器管理方法
WO2017080276A1 (zh) 资源管理方法和系统、计算机存储介质
JP2009025939A (ja) タスク制御方法及び半導体集積回路
CN106293947B (zh) 虚拟化云环境下gpu-cpu混合资源分配系统和方法
JP2008234638A (ja) 処理装置用制御器
KR20090120970A (ko) 인터럽트 스케줄링 방법
CN100511155C (zh) 无积累误差和自适应定时器实现方法
CN112799821A (zh) 一种调度多个执行时机可变的周期任务的方法
JP2008217628A (ja) Cpuの省電力システム及び省電力方法
Wada et al. Fast interrupt handling scheme by using interrupt wake-up mechanism
US9690616B2 (en) Based on natural load determination either adjust processor sleep time or generate artificial load
KR20090070071A (ko) 소형 저전력 임베디드 시스템 및 그의 선점 회피 방법
WO2002099639A1 (en) Method and apparatus to use task priority to scale processor performance
JP2022550064A (ja) マルチスレッドマイクロプロセッサにおける共有リソース割り当て
CN108090001B (zh) 一种内核dma稳态调度方法及装置

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210514

RJ01 Rejection of invention patent application after publication