CN1645334A - 一种实时多任务操作***的定时器调度方法 - Google Patents

一种实时多任务操作***的定时器调度方法 Download PDF

Info

Publication number
CN1645334A
CN1645334A CN 200510048947 CN200510048947A CN1645334A CN 1645334 A CN1645334 A CN 1645334A CN 200510048947 CN200510048947 CN 200510048947 CN 200510048947 A CN200510048947 A CN 200510048947A CN 1645334 A CN1645334 A CN 1645334A
Authority
CN
China
Prior art keywords
node
timer
linked list
circular linked
time
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
CN 200510048947
Other languages
English (en)
Other versions
CN1304949C (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.)
NINGBO SUNRUN ELECTRONIC INFORMATION TECHNOLOGY DEVELOPMENT Co Ltd
Ningbo University
Original Assignee
NINGBO SUNRUN ELECTRONIC INFORMATION TECHNOLOGY DEVELOPMENT Co Ltd
Ningbo University
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 NINGBO SUNRUN ELECTRONIC INFORMATION TECHNOLOGY DEVELOPMENT Co Ltd, Ningbo University filed Critical NINGBO SUNRUN ELECTRONIC INFORMATION TECHNOLOGY DEVELOPMENT Co Ltd
Priority to CNB2005100489470A priority Critical patent/CN1304949C/zh
Publication of CN1645334A publication Critical patent/CN1645334A/zh
Application granted granted Critical
Publication of CN1304949C publication Critical patent/CN1304949C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种实时操作***中基于时钟结构的定时器调度方法,包括:建立M个循环链表,按定时间隔由短到长依次标记为T1、T2、…、TM,这些链表分别等分为N1、N2、…、NM个节点。这些循环链表构成类似时钟的结构,链表的每个节点可挂接多个定时器,这些定时器组成纵向链表。在每个计时周期,‘秒表’T1的指针向后移动一个节点,然后考察当前指向的节点:如果当前节点上没有定时器,就等下一个计时周期;如果当前节点上有定时器,就执行这个节点上所有定时器的任务。当‘秒表’T1的指针移动N1次完成一个循环后,T1的指针重新指向0号节点,同时将‘分表’T2的指针指向下一个节点,并将该节点上的所有定时器按设定时间的先后转移到‘秒表’T1的相应节点上;其余链表指针的更新依此类推。

Description

一种实时多任务操作***的定时器调度方法
技术领域
本发明涉及计算机中的操作***领域,具体地说,涉及一种实时多任务操作***的定时器调度方法。
背景技术
在计算机应用中,操作***是用户与计算机硬件之间的桥梁,它方便了用户对计算机资源的管理。在操作***中,有些用户要求计算机在特定的时间和空间内完成特定的任务,这对操作***提出了实时性要求。实时操作***是指用户要求在限定时间内必须有相应反应的***,如果逻辑和时序出现偏差则会引起严重后果。实时操作***广泛应用于生产过程控制、汽车工业、计算机外设、通信设备、机器人、航空航天、民用消费等领域。
对于一般的操作***,如果只要求有一定的结果,则操作***只需对***资源进行管理并响应用户的操作动作即可。对于实时操作***,则必须及时响应用户操作。随着任务量的增大和资源的增加,实时操作***既要进行多任务处理和共享资源的管理,又要及时响应用户的操作,从而对实时操作***的性能提出了更高的要求。
操作***一般由进程调度管理、资源管理、进程同步和通信、时间控制等几部分组成。实时操作***对时序的偏差要求很强,因此定时器调度作为实时操作***时间管理的核心就十分重要。
在网络通信中,一次通信过程需要多个定时器来完成不同的计时任务。当同时通信的用户数增加时,所需定时器的数目急剧增加。如果定时器的调度方法效率低,则会因定时器数目太大而造成定时处理耗用***资源过大,延长对用户的反应时间,影响定时精度,进而影响整个***的性能。因此,定时器调度方法的效率高低是反映实时操作系操性能的重要指标之一。
定时器的时钟来源于硬件时钟中断。时钟中断会每隔一定周期产生,该周期为最小计时时长,即定时器的计时精度,对硬件时钟的中断处理称为计时周期。
目前定时器的调度方法很多,主要有以下三种类型:
第一种类型:参见附图2,所有的定时器按照到期时间的先后排成一个顺序链表。在每个计时周期,链表指针后移一个节点,然后考察当前的链表节点:如果没有定时器到期,则等下一个计时周期;如果有定时器到期,就执行该节点上所有定时器的任务并删除对应的定时器。这种计时方法称为简单计时法。
第二种类型:参见附图3,定时器按到期的时间长度线性分段,比如按0~99、100~199、200~299、……进行分段,每个定时器在自己所属的时段中进行排序,这样可以减少排序的数量。对定时器的处理与类型一相同。
第三种类型:参见附图4,定时器按到期的时间长度非线性分段,比如按0~3、4~7、8~15、16~31、…分段,区间长度呈指数上升,与类型二相比这种类型可以进一步减少分段数目。对定时器的处理与类型一相同。
上述三种类型中,对定时器的调度过程也就是确定新定时器加入到链表的哪一个节点上的过程。其中第一种类型不额外占用***资源,对定时器的操作和判断几乎不费时间,但是增加新定时器时需要花费较长时间对所有定时器重新进行排序;第二种类型虽然排序操作次数有了一定的减小,但是与第一种类型相比本质不变,当需要加入到期时间为100000的定时器时,至少需要1000个分段,即1000个节点,其效率仍然很低。第三种的算法在第二种的基础上进行了一些改进,减少了分段的个数,计时效率有一定的提高,但是每当新增定时器时,必须对当前所有定时器重新进行分段,增加了不必要的操作,降低了效率。
发明内容
本发明所要解决的技术问题是提供一种分段排序的实时多任务操作***的定时器调度方法,它克服了现有实时操作***定时器调度方法中存在大量冗余操作和重复排序操作的缺点,提高了定时效率,而且具有伸缩性,适用于不同规模的实时操作***。
本发明解决上述技术问题所采用的技术方案包括以下环节:
1)设置M个循环链表,M为不小于2的整数;
2)循环链表的初始化:根据设置的循环链表的个数M,建立M个循环链表,这些循环链表构成类似于时钟的结构:计时间隔最短的循环链表为第一循环链表(T1),它等分成N1个节点,依次编号0~N1-1,相邻节点的时间间隔等于操作***定时器的计时周期τ;第二循环链表(T2)等分成N2个节点,依次编号0~N2-1,相邻节点间的时间间隔等于第一循环链表T1的循环周期N1τ;第三循环链表(T3)等分成N3个节点,依次编号0~N3-1,相邻节点间的时间间隔等于第二循环链表T2的循环周期N2N1τ;以此类推,其余循环链表的结构及关系与此类似,可分别称之为第四循环链表(T4)、第五循环链表(T5)、第六循环链表(T6)等等,各循环链表内的节点数目相等或不等;
3)新定时器的加入:上层应用程序产生新定时器任务时,首先计算新定时器的设定时间与当前时刻的间隔D;如果新定时器的设定时间在第M循环链表TM的第NM-1号节点的计时范围外,即D>N1N2…(NM-1)τ,就将新定时器加到第M循环链表TM的第NM-1号节点上;否则根据D的大小按如下步骤将新定时器加入到某个循环链表的恰当节点上;
①置i=M,记从T1到TM各循环链表的当前节点编号依次为A1、A2、…、AM
②计算 即Q为商的整数部分;
③如果Q=0,且i>1,则i=i-1,返回步骤②;
④将新定时器加入到循环链表Ti的第n号节点上,n=[(Q+Ai)mod Ni],即n为(Q+Ai)除以Ni的余数;结束新定时器的加入操作。
4)定时器位置的调度更新:在每个计时周期,第一循环链表T1的指针向后移动一个节点,然后考察当前指向的节点:如果当前节点上没有定时器,就等下一个计时周期;如果当前节点上有定时器,就执行这个节点上所有定时器的任务并删除对应的定时器;当第一循环链表T1的指针移动N1次完成一个循环后,T1的指针重新指向0号节点,同时将第二循环链表T2的指针移动一个节点,并将新指向节点上的所有定时器按如下步骤分别转移到第一循环链表T1的相应节点上:
①计算定时器设定时间与当前时刻的差D;
②计算R=D mod N1,即R为D除以N1的余数;
③将定时器加入到T1的R号节点上。
其它循环链表的更新依此类推;
当循环链表TM的指针指向第NM-1号节点时,对该节点上设定到期时刻与当前时刻的差D<N1N2…(NM-1)τ的那部分定时器按新定时器的加入方法转移到其它链表的节点上,对不符合上述条件的其它定时器不作改变,然后将表TM的指针移动到0号节点。
采用本发明所述的多循环队列定时器调度方法,经过模拟测试,与现有技术相比,定时器在各种负载下的平均性能提高10倍以上,达到了高性能、高效率、高均衡性的统一,并且实现简单,节省了实时操作***的定时器管理、调度所需的计算资源。
附图说明
图1为本发明实施例中的定时器循环链表结构示意图。
图2为第一种现有技术的定时器调度方法示意图。
图3为第二种现有技术的定时器调度方法示意图。
图4为第三种现有技术的定时器调度方法示意图。
具体实施方式
以下结合附图实施例对发明作进一步详细描述。
由于定时器的排序查找与一般的情形不同,处理器最关心当前到期的定时器,对以后到期的定时器以后再关心。因此,没有必要对很长时间以后的定时器进行排序,只需要把最近有限时间内的定时器安排好就行了。
因此,根据定时器的定时长度进行分组,如图1所示,为本发明调度定时器的循环链表的一个实施例:
假定循环链表个数M为4,M个循环链表按定时间隔由短到长排序,依次记为T1,T2,…,T4(即TM),各循环链表中节点数分别取为N1=8,N2=8,N3=4,N4=4,它们的结构与时钟相似。每个链表的指针是Index[i],循环链表上每个圆点代表一个节点Vor[i],每个节点Vor[i]上都可以挂一串定时器。当指针走到某个Vor[i]时,就对该节点上所有定时器进行有关的处理。T1是最基本的循环链表,在每个时钟周期,T1的指针移动一个节点,执行节点上挂的定时器对应的任务。T1的指针完成一次循环后,T2的指针移动一个节点从而指向T2.Vor[4],该节点上的四个定时器依设定的时间按定时器位置调度更新方法中所述的步骤挂接到T1的相应节点上去,这样当T1的指针移动时会依次执行定时器的任务。其它循环链表的更新依此类推。
如果把第一循环链表T1称为‘秒表’,第二循环链表T2称为‘分表’的话,上述关于定时器的调度方法可描述为:首先依次执行当前‘秒表’上所有‘秒’的定时器任务;过了一‘分’后,将下一个‘分’节点(T2.Vor[4])的所有定时器以‘秒’为单位转移到‘秒表’T1的相应节点上;同理,当‘分表’T2完成一次循环指向0号节点时,将‘时表’T3下一个‘时’节点(T3.Vor[3])上的所有定时器以‘分’为单位转移到‘分表’T2的相应节点上,并继续把‘分表’T2当前节点(即T2.Vor[0])上的所有定时器以‘秒’为单位转移到‘秒表’T1的相应节点上;依此类推。当某一定时器到期时,操作***执行完定时器相应的任务后会自动删除该定时器。
***新定时器时,需要考察***定时器的设定时间。记新定时器的设定时间与当前时刻的时间间隔为D。如果D在一‘分’内(即D<N1τ),则直接将新定时器加入到T1的某个节点上,新节点编号=(T1的当前节点编号+时间差值D)/N1的余数;如果D长于一‘分’但短于一‘时’(N1τ<D<N1N2τ),则将新定时器加入到T2的某个节点上,新节点编号=(T2当前节点编号+时间差值D/N1的整数部分)/N2的余数;其余依此类推;如果D>N1N2…(NM-1)τ,则将新定时器加入到第M个循环链表TM的第NM-1号节点上。
综上所述,本发明采用多循环队列的时钟结构进行定时器的调度,实现简单,在空间和时间上效率都很高,节省了***的资源。

Claims (2)

1、一种实时多任务操作***的定时器调度方法,其特征在于包括以下环节:
1)设置M个循环链表,M为不小于2的整数;
2)循环链表的初始化:根据设置的循环链表的个数M,建立M个循环链表,这些循环链表构成类似于时钟的结构:计时间隔最短的循环链表为第一循环链表(T1),它等分成N1个节点,依次编号0~N1-1,相邻节点的时间间隔等于操作***的定时器的计时周期τ;第二循环链表(T2)等分成N2个节点,依次编号0~N2-1,相邻节点间的时间间隔等于第一循环链表T1的循环周期N1τ;第三循环链表(T3)等分成N3个节点,依次编号0~N3-1,相邻节点间的时间间隔等于第二循环链表T2的循环周期N2N1τ;以此类推,余下循环链表的结构及关系与此类似,可分别称之为第四循环链表(T4)、第五循环链表(T5)、第六循环链表(T6)等等,各循环链表内的节点数目相等或不等;
3)新定时器的加入:上层应用程序产生新定时器任务时,首先计算新定时器的设定时间与当前时刻的间隔D;如果新定时器的设定时间在第M循环链表TM的第NM-1号节点的计时范围外,即D>N1N2…(NM-1)τ,就将新定时器加到第M循环链表TM的第MM-1号节点上;否则根据D的大小按如下步骤将新定时器加入到某个循环链表的恰当节点上;
①置i=M,记从T1到TM各循环链表的当前节点编号依次为A1、A2、...、AM
②计算
Figure A2005100489470002C1
即Q为商的整数部分;
③如果Q=0,且i>1,则i=i-1,返回步骤②;
④将新定时器加入到循环链表Ti的第n号节点上,n=[(Q+Ai)mod Ni],即n为(Q+Ai)除以Ni的余数;结束新定时器的加入操作。
4)定时器位置的调度更新:在每个计时周期,第一循环链表T1的指针向后移动一个节点,然后考察当前指向的节点:如果当前节点上没有定时器,就等下一个计时周期;如果当前节点上有定时器,就执行这个节点上所有定时器的任务并删除对应的定时器;当第一循环链表T1的指针移动N1次完成一个循环后,T1的指针重新指向0号节点,同时将第二循环链表T2的指针移动一个节点,并将新指向节点上的所有定时器按如下步骤分别转移到第一循环链表T1的相应节点上:
①计算定时器设定时间与当前时刻的差D;
②计算R=D mod N1,即R为D除以N1的余数;
③将定时器加入到T1的R号节点上。
其它循环链表的更新依此类推。
2、如权利要求1所述的定时器调度方法,其特征在于还包括以下环节:当循环链表TM的指针指向第NM-1号节点时,对该节点上设定到期时刻与当前时刻的差D<N1N2…(NM-1)τ的那部分定时器按新定时器的加入方法转移到其它链表的节点上,对不符合上述条件的其它定时器不作改变,然后将表TM的指针移动到0号节点。
CNB2005100489470A 2005-01-12 2005-01-12 一种实时多任务操作***的定时器调度方法 Expired - Fee Related CN1304949C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100489470A CN1304949C (zh) 2005-01-12 2005-01-12 一种实时多任务操作***的定时器调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100489470A CN1304949C (zh) 2005-01-12 2005-01-12 一种实时多任务操作***的定时器调度方法

Publications (2)

Publication Number Publication Date
CN1645334A true CN1645334A (zh) 2005-07-27
CN1304949C CN1304949C (zh) 2007-03-14

Family

ID=34876475

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100489470A Expired - Fee Related CN1304949C (zh) 2005-01-12 2005-01-12 一种实时多任务操作***的定时器调度方法

Country Status (1)

Country Link
CN (1) CN1304949C (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100346307C (zh) * 2006-01-17 2007-10-31 浙江大学 Java操作***中实时任务调度的实现方法
CN101859260A (zh) * 2010-05-14 2010-10-13 中国科学院计算技术研究所 用于操作***中的定时器管理装置和管理方法
CN101645024B (zh) * 2009-08-21 2012-09-19 无锡威泰迅电力科技有限公司 环形推进定时器调度方法
CN103530179A (zh) * 2013-09-30 2014-01-22 大唐移动通信设备有限公司 一种定时任务的处理方法及装置
CN103677976A (zh) * 2013-12-09 2014-03-26 大唐移动通信设备有限公司 一种基于时间轮定器的事件处理方法及装置
CN105808329A (zh) * 2016-02-25 2016-07-27 北京京东尚科信息技术有限公司 分布式超时任务调度方法和装置
CN105939345A (zh) * 2016-04-25 2016-09-14 杭州迪普科技有限公司 协议表项定时器的管理方法及装置
CN101216786B (zh) * 2007-01-05 2016-09-21 三星电子株式会社 在实时操作***中调度任务的方法、介质和设备
CN107659305A (zh) * 2017-10-19 2018-02-02 郑州云海信息技术有限公司 一种基于cpld的时钟计数方法、装置及介质
CN109901879A (zh) * 2017-12-07 2019-06-18 普天信息技术有限公司 一种循环软件定时器实现方法
CN110109741A (zh) * 2019-05-09 2019-08-09 北京旷视科技有限公司 循环任务的管理方法、装置、电子设备及存储介质
CN111966505A (zh) * 2020-10-26 2020-11-20 成都掌控者网络科技有限公司 一种基于时间的触发事件控制方法、装置及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69410489T2 (de) * 1994-03-16 1999-02-04 Ibm Verfahren und gerät für die synchronisation und den ablauf von mehreren datenströmen und echtzeitaufgaben
JPH11327928A (ja) * 1998-05-19 1999-11-30 Mitsubishi Electric Corp リアルタイムアプリケーション支援プログラムを記録したコンピュータ読み取り可能な記録媒体およびコンピュータシステム
CN100485605C (zh) * 2001-09-24 2009-05-06 中兴通讯股份有限公司 一种多任务实时操作***的实现方法
CN100505811C (zh) * 2003-11-25 2009-06-24 中兴通讯股份有限公司 多二叉树循环定时器调度方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100346307C (zh) * 2006-01-17 2007-10-31 浙江大学 Java操作***中实时任务调度的实现方法
CN101216786B (zh) * 2007-01-05 2016-09-21 三星电子株式会社 在实时操作***中调度任务的方法、介质和设备
CN101645024B (zh) * 2009-08-21 2012-09-19 无锡威泰迅电力科技有限公司 环形推进定时器调度方法
CN101859260A (zh) * 2010-05-14 2010-10-13 中国科学院计算技术研究所 用于操作***中的定时器管理装置和管理方法
CN101859260B (zh) * 2010-05-14 2012-12-12 中国科学院计算技术研究所 用于操作***中的定时器管理装置和管理方法
CN103530179A (zh) * 2013-09-30 2014-01-22 大唐移动通信设备有限公司 一种定时任务的处理方法及装置
CN103677976A (zh) * 2013-12-09 2014-03-26 大唐移动通信设备有限公司 一种基于时间轮定器的事件处理方法及装置
CN105808329A (zh) * 2016-02-25 2016-07-27 北京京东尚科信息技术有限公司 分布式超时任务调度方法和装置
CN105939345A (zh) * 2016-04-25 2016-09-14 杭州迪普科技有限公司 协议表项定时器的管理方法及装置
CN107659305A (zh) * 2017-10-19 2018-02-02 郑州云海信息技术有限公司 一种基于cpld的时钟计数方法、装置及介质
CN109901879A (zh) * 2017-12-07 2019-06-18 普天信息技术有限公司 一种循环软件定时器实现方法
CN109901879B (zh) * 2017-12-07 2020-10-20 普天信息技术有限公司 一种循环软件定时器实现方法
CN110109741A (zh) * 2019-05-09 2019-08-09 北京旷视科技有限公司 循环任务的管理方法、装置、电子设备及存储介质
CN110109741B (zh) * 2019-05-09 2021-08-27 北京旷视科技有限公司 循环任务的管理方法、装置、电子设备及存储介质
CN111966505A (zh) * 2020-10-26 2020-11-20 成都掌控者网络科技有限公司 一种基于时间的触发事件控制方法、装置及存储介质

Also Published As

Publication number Publication date
CN1304949C (zh) 2007-03-14

Similar Documents

Publication Publication Date Title
CN1304949C (zh) 一种实时多任务操作***的定时器调度方法
CN1275423C (zh) 嵌入式实时操作***中定时器的计时方法
Fanti et al. Event-based feedback control for deadlock avoidance in flexible production systems
Narahari et al. Transient analysis of manufacturing systems performance
CN109697111A (zh) 在多线程处理器中调度任务
CN104765589B (zh) 基于mpi的网格并行预处理方法
WO2019076713A1 (en) COMBINING STATES OF MULTIPLE EXECUTIVE WIRES IN A MULTI-WIRE PROCESSOR
CN103744726B (zh) 一种Windows***实时扩展的两级调度方法
CN107548490A (zh) 并行计算中的进度计
CN107168770A (zh) 一种低能耗的云数据中心工作流调度与资源供给方法
CN103677990A (zh) 虚拟机实时任务的调度方法、装置和虚拟机
CN109791506A (zh) 任务调度
CN105095255A (zh) 一种数据索引创建方法及装置
CN112068943B (zh) 一种基于复杂异构环境的微服务调度方法及其实现***
CN106201695A (zh) 适用于嵌入式软件***的多任务调度方法
CN1755614A (zh) 定时器的实现方法
Naji et al. A high-speed, performance-optimization algorithm based on a gravitational approach
CN103049310A (zh) 一种基于采样的多核模拟并行加速方法
CN103116809B (zh) 面向产品族排序的批处理机的调度装置及方法
Dziurzanski et al. Implementing digital twins of smart factories with interval algebra
CN1710543A (zh) 一种用于嵌入式实时操作***定时器的两级定时方法
US20120042208A1 (en) Test optimization
Han et al. SPIN: BSP job scheduling with placement-sensitive execution
Patel Pipelines with internal buffers
CN109032772A (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
EE01 Entry into force of recordation of patent licensing contract

Assignee: Ningbo Sanxing Electric Co., Ltd.

Assignor: Ningbo University|Ningbo Sunrun Electronic Information Technology Development Co., Ltd.

Contract fulfillment period: 2008.9.17 to 2014.9.17 contract change

Contract record no.: 2008330000669

Denomination of invention: Timer dispatching method for real-time multi-task operating system

Granted publication date: 20070314

License type: Exclusive license

Record date: 2008.9.26

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENCE; TIME LIMIT OF IMPLEMENTING CONTACT: 2008.9.17 TO 2014.9.17

Name of requester: NINGBO SAMSUNG ELECTRIC CO., LTD.

Effective date: 20080926

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070314

Termination date: 20160112

CF01 Termination of patent right due to non-payment of annual fee