CN111813531B - 一种操作***时钟调度方法及*** - Google Patents

一种操作***时钟调度方法及*** Download PDF

Info

Publication number
CN111813531B
CN111813531B CN202010894521.1A CN202010894521A CN111813531B CN 111813531 B CN111813531 B CN 111813531B CN 202010894521 A CN202010894521 A CN 202010894521A CN 111813531 B CN111813531 B CN 111813531B
Authority
CN
China
Prior art keywords
operating system
clock
interrupt
triggering
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.)
Active
Application number
CN202010894521.1A
Other languages
English (en)
Other versions
CN111813531A (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 Ucas Technology Co ltd
Original Assignee
Beijing Ucas 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 Ucas Technology Co ltd filed Critical Beijing Ucas Technology Co ltd
Priority to CN202010894521.1A priority Critical patent/CN111813531B/zh
Publication of CN111813531A publication Critical patent/CN111813531A/zh
Application granted granted Critical
Publication of CN111813531B publication Critical patent/CN111813531B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

本发明公开了一种操作***时钟调度方法及***,本发明实施例在确定设备的操作***的当前运行进程主动调度时,确定所述当前运行进程的优先级高于等于所设置的关注优先级时,判断所述设备的操作***的当前时间大于所述设备的操作***的上次时钟中断触发时间与时钟中断调度周期时间之和时,直接触发时钟中断,执行待运行中断事件。可以看出,为了防止频繁的判断及触发时钟中断,防止降低设备的操作***性能,所述当前运行进程的优先级高于等于所设置的触发时钟中断的关注优先级时,才执行上述方案。这样,本发明实施例提供的方法及***就可以准确确定触发时钟中断的时间,提高实时进程切换的实时性。

Description

一种操作***时钟调度方法及***
技术领域
本发明涉及设备的操作***执行技术领域,特别涉及一种操作***时钟调度方法及***。
背景技术
诸如计算机或嵌入式器件等设备通常是由硬件部分和软件部分组成,是能够独立运行并执行各种功能的设备。其中,设备中的软件部分包括软件运行环境及其操作***,硬件部分包括处理器、存储器、通信模块等硬件单元。上述结构的设备被广泛应用在日常生活、工业控制、航空航天及军事等方面。
通常,设备采用开源的操作***,比如Linux***等管理和控制设备中的硬件资源和软件资源。设备的操作***采用进程方式实现软件程序的运行,即将软件程序调用到所设置的进程中,由设备的中央处理器(CPU)在采用时钟中断方式的中断调用下,对操作***的进程进行调度。
为了控制设备的CPU 有序地执行进程及中断事件,就需要在设备的操作***中设置时钟子***,所述时钟子***周期或不定期的触发时钟中断,实现设备全局的时间管理、进程调度和进程统计等功能。
设备中的时钟子***调度时钟,触发时钟中断的方式有多种,以设备的操作***采用Linux***为例,对触发时钟中断的方式进行说明。
第一种方式,周期性调度方式(HZ_PERIODIC),设置时钟调度周期,即设置时钟调度的赫兹(HZ)参数,根据时钟调度周期,周期性触发时钟中断;
第二种方式,空闲调度方式(NO_HZ_IDLE),当设备的CPU处于空闲状态或关闭状态时,停止触发时钟中断;当设备的CPU处于运行状态时,则根据设置的时钟调度周期,周期性触发时钟中断;
第三种方式,单进程运行时的调度方式(NO_HZ_FULL),当设备中的CPU处于空闲状态或关闭状态时,或者设备的Linux***当前只运行一个进程,或者设备的Linux***采用先进先出(FIFO)调度机制调度进程,则停止触发时钟中断;在排除了上述几种情况下,则根据设置的时钟调度周期,周期性触发时钟中断。
可以看出,设备的操作***采用的时钟调度方式进行时钟中断的触发,主要可以分为周期性时钟调度方式和非周期性时钟调度方式两种,其中上述的第一种方式采用了周期性时钟调度方式,第二种方式和第三种方式采用了非周期时钟调度方式。非周期调度时钟方式与周期性时钟调度方式相比,主要是降低了对设备的操作***正在运行的进程的干扰,并在低负载情况下降低调度设备的CPU执行进程的频率,从而降低CPU的功耗,所以应用更广泛。
为了保证设备的操作***中进程的执行实时性,采用非周期时钟调度方式触发时钟中断,控制设备的CPU将当前运行进程退出或暂停,切换运行待运行中断事件时,触发时钟中断的时间间隔,就成为了影响进程切换速度的一个关键因素。这是因为当时钟中断被触发后,在控制设备的CPU运行对应的待运行中断事件完成之前,无法实现实时进程的切换。也就是说,在该时钟中断对应的待运行中断事件运行完成之前,设备的CPU无法响应设备的操作***中正在运行进程的退出或正在运行进程的主动调度请求。
在非周期时钟调度情况下,触发两次时钟中断之间的间隔时间可能会比周期时钟调度的时间间隔更长。触发两次时钟中断之间的间隔时间更长,设备中待运行中断事件运行时间也会更长,进而实时进程无法切换的时间也更长,导致设备的操作***实时性变差。
而在周期性时钟调度情况下,时钟中断的触发则更为频繁,影响设备的操作***的实时进程切换的概率也更大。
发明内容
有鉴于此,本发明实施例提供了一种操作***时钟调度方法,该方法能够准确确定触发时钟中断的时间,提高实时进程切换的实时性。
本发明实施例还提供一种操作***时钟调度***,该***能够准确确定触发时钟中断的时间,提高实时进程切换的实时性。
本发明实施例提供了一种操作***时钟调度方法,包括:
确定设备的操作***的当前运行进程主动调度;
确定所述当前运行进程的优先级高于等于所设置的关注优先级时,判断所述设备的操作***的当前时间大于所述设备的操作***的上次时钟中断触发时间与所设置的时钟中断调度周期时间之和,立即触发时钟中断,执行待运行中断事件。
较佳地,所述确定设备的操作***的当前运行进程主动调度包括:
确定设备的操作***的当前运行进程主动放弃设备的中央处理器CPU占用。
较佳地,在所述确定所述当前运行进程的优先级高于等于所设置的关注优先级之前,还包括:
判断所述当前运行进程的优先级是否高于等于所设置的关注优先级,如果是,执行后续的判断步骤;如果否,则根据时钟中断的触发时间触发时钟中断,控制所述设备的CPU执行待运行中断事件。
较佳地,所述设备的操作***采用Linux***。
本发明实施例还提供了一种操作***时钟调度***,包括:判断单元及触发时钟中断单元,其中,
判断单元,用于确定设备的操作***的当前运行进程主动调度;确定所述当前运行进程的优先级高于等于所设置的关注优先级时,判断所述操作***的当前时间大于所述设备的操作***的上次时钟中断触发时间与所设置的时钟中断调度周期时间之和,立即控制触发时钟中断单元触发时钟中断;
时钟中断单元,用于在判断单元的控制下立即触发时钟中断,以控制所述设备的CPU执行待运行中断事件。
较佳地,所述判断单元,还用于确定设备的操作***的当前运行进程主动放弃所述设备的CPU占用。
较佳地,所述判断单元还用于判断所述当前运行进程的优先级是否高于等于所设置的关注优先级,如果是,则执行后续的判断步骤;如果否,则控制触发时钟中断单元根据时钟中断的触发时间触发时钟中断。
较佳地,所述设备的操作***采用Linux***。
如上所见,本发明实施例在确定的操作***的当前运行进程主动调度时,确定所述当前运行进程的优先级高于等于所设置的关注优先级时,判断所述设备的操作***的当前时间大于所述设备的操作***的上次时钟中断触发时间与时钟中断调度周期时间之和时,直接触发时钟中断,执行待运行中断事件。可以看出,为了防止频繁的判断及触发时钟中断,防止降低设备的操作***性能,在设备的操作***的当前运行进程的优先级高于等于所设置的关注优先级时,才执行上述方案。这样,本发明实施例提供的方法及***就可以准确确定触发时钟中断的时间,提高实时进程切换的实时性。
附图说明
图1为本发明实施例提供的一种操作***时钟调度方法流程图;
图2为本发明实施例提供的一种操作***时钟调度方法示例流程图;
图3为本发明实施例提供的一种操作***时钟调度***结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
从背景技术可以看出,设备的CPU执行待运行中断事件时,会影响设备的操作***中实时进程切换的实时性。如果能在特定的时间,主动触发时钟中断,将此影响因素控制在可预知的范围,则可显著提高设备的操作***中的实时进程切换的实时性。
为了解决上述问题,本发明实施例在确定的操作***的当前运行进程主动调度时,确定所述当前运行进程的优先级高于等于所设置的关注优先级时,判断所述设备的操作***的当前时间大于所述设备的操作***的上次时钟中断触发时间与时钟中断调度周期时间之和时,直接触发时钟中断,控制设备的CPU执行待运行中断事件。这样,就可以准确确定触发时钟中断的时间,选择触发时钟中断的时机就是设备的操作***中的进程主动调度的时候,这时再次发生设备的操作***中的实时进程切换的概率就明显降低,从而降低了待运行中断事件和设备的操作***中的实时进程切换之间的冲突,从而提高操作***的实时性。
可以看出,为了防止频繁的判断及触发时钟中断,防止降低设备的操作***性能,在当前运行进程的优先级高于等于所设置的关注优先级时,才执行上述方案。
这样,本发明实施例提供的方法及***就可以准确确定触发时钟中断的时间,提高实时进程切换的实时性。
图1为本发明实施例提供的一种操作***时钟调度方法流程图,其具体步骤包括:
步骤101、确定设备的操作***的当前运行进程主动调度;
步骤102、确定所述当前运行进程的优先级高于等于所设置的关注优先级;
步骤103、判断所述设备的操作***的当前时间是否大于所述设备的操作***的上次时钟中断触发时间与所设置的时钟中断调度周期时间之和,如果是,执行步骤104;如果否,执行步骤105;
步骤104、立即触发时钟中断,控制所述设备的CPU执行待运行中断事件;
步骤105、不进行时钟调度;
在该步骤中,可以不进行时钟调度、不需要特殊操作,或继续执行所述操作***的其他进程,这并不是本发明实施例的关键点,这里不限制。
在该方法中,所述确定设备的操作***的当前运行进程主动调度包括:
确定设备的操作***的当前运行进程主动放弃设备的CPU占用。在这种情况下,多为设备的操作***的当前运行进程执行完成,或者当前运行进程完成了阶段任务后主动进入了休眠。
在该方法中,所述在执行完步骤102之前,还包括:
判断所述当前运行进程的优先级是否高于等于所设置的关注优先级,如果是,执行后续的步骤103;如果否,则根据时钟中断的触发时间触发时钟中断,控制所述设备的CPU执行待运行中断事件。这样,对于一些低优先级的设备的操作***的当前运行进程,就可以不采用本发明实施例提供的方法,而仍然采用非周期时钟调度时钟中断或周期时钟调度时钟中断,控制设备的CPU执行后续的待运行中断事件,保证设备的操作***性能不降低。
在本发明实施例中,设备的操作***的当前运行进程主动放弃所述设备的CPU占用时,此时再次发生进程抢占设备的CPU执行资源的概率较小,所以采用本发明实施例提供的方法可以降低对进程实时性的影响。
在本发明实施例中,所述设备的操作***采用Linux***。以下以所述设备的操作***为Linux***为例,对本发明实施例进行举例说明。
图2为本发明实施例提供的一种操作***时钟调度方法示例流程图,其具体步骤为:
步骤201、设置触发时钟中断的关注优先级,表示为Pcare;
在本步骤中,Pcare根据具体需求设置,如果设置的比较大,则设备的操作***中优先级大于Pcare的进程实时性越好,但实时性能够提高的进程也就越少;
步骤202、上次时钟中断触发时间为Tn-1;
步骤203、设备的时钟中断调度频率参数设置为HZ,则调度周期时间为Tperiod为1/HZ;
步骤204、设备的CPU根据操作***调度开始执行某一进程;
步骤205、确定所述当前运行进程主动调度;
步骤206、判断当前运行进程的优先级P是否大于等于Pcare,如果是,则执行步骤208;如果否,则执行步骤207;
步骤207、采用设置的非周期时钟调度方式或周期时钟调度方式,控制设备的CPU执行待运行中断事件,执行完成后,返回步骤204;
步骤208、判断操作***的当前时间T,判断T>Tn-1+Tperiod,如果是,则执行步骤209;如果否,则返回步骤204执行;
步骤209、立即触发时钟中断,控制设备的CPU执行待运行中断事件,设置本次时钟中断触发时间为Tn=T,执行完成后,返回步骤204;
在这里,将本次时钟中断触发时间设置为Tn=T,用以在下一次CPU执行待运行中断事件时作为时钟中断的触发时间确定依据。
图3为本发明实施例提供的一种操作***时钟调度***结构示意图,包括:判断单元及触发时钟中断单元,其中,
判断单元,用于确定设备的操作***的当前运行进程主动调度;确定所述当前运行进程的优先级高于等于所设置的关注优先级时,判断所述操作***的当前时间大于所述设备的操作***的上次时钟中断触发时间与所设置的时钟中断调度周期时间之和,立即控制触发时钟中断单元触发时钟中断;
时钟中断单元,用于在判断单元的控制下立即触发时钟中断,以控制所述设备的CPU执行待运行中断事件。
本发明所设置的***可设置在设备的时钟子***中。
在该***中,所述判断单元,还用于确定设备的操作***的当前运行进程主动放弃所述设备的CPU占用。
在该***中,所述判断单元还用于判断所述当前运行进程的优先级是否高于等于所设置的关注优先级,如果是,则执行后续的判断步骤;如果否,则控制触发时钟中断单元根据时钟中断的触发时间触发时钟中断。
本发明所述***应用在具有操作***的设备中,所述设备的操作***采用Linux***。
可以看出,本发明实施例提供的时钟中断触发的方法,兼顾了设备进程的实时性切换需求及性能需求。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (8)

1.一种操作***时钟调度方法,其特征在于,包括:
确定设备的操作***的当前运行进程主动调度;
确定所述当前运行进程的优先级高于等于所设置的关注优先级时,判断所述设备的操作***的当前时间大于所述设备的操作***的上次时钟中断触发时间与所设置的时钟中断调度周期时间之和,立即触发时钟中断,执行待运行中断事件。
2.如权利要求1所述的方法,其特征在于,所述确定设备的操作***的当前运行进程主动调度包括:
确定设备的操作***的当前运行进程主动放弃设备的中央处理器CPU占用。
3.如权利要求1或2所述的方法,其特征在于,在所述确定所述当前运行进程的优先级高于等于所设置的关注优先级之前,还包括:
判断所述当前运行进程的优先级是否高于等于所设置的关注优先级,如果是,执行后续的判断步骤;如果否,则根据时钟中断的触发时间触发时钟中断,控制所述设备的CPU执行待运行中断事件。
4.如权利要求1所述的方法,其特征在于,所述设备的操作***采用Linux***。
5.一种操作***时钟调度***,其特征在于,包括:判断单元及触发时钟中断单元,其中,
判断单元,用于确定设备的操作***的当前运行进程主动调度;确定所述当前运行进程的优先级高于等于所设置的关注优先级时,判断所述操作***的当前时间大于所述设备的操作***的上次时钟中断触发时间与所设置的时钟中断调度周期时间之和,立即控制触发时钟中断单元触发时钟中断;
时钟中断单元,用于在判断单元的控制下立即触发时钟中断,以控制所述设备的CPU执行待运行中断事件。
6.如权利要求5所述的***,其特征在于,所述判断单元,还用于确定设备的操作***的当前运行进程主动放弃所述设备的CPU占用。
7.如权利要求5或6所述的***,其特征在于,所述判断单元还用于判断所述当前运行进程的优先级是否高于等于所设置的关注优先级,如果是,则执行后续的判断步骤;如果否,则控制触发时钟中断单元根据时钟中断的触发时间触发时钟中断。
8.如权利要求5所述的***,其特征在于,所述设备的操作***采用Linux***。
CN202010894521.1A 2020-08-31 2020-08-31 一种操作***时钟调度方法及*** Active CN111813531B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010894521.1A CN111813531B (zh) 2020-08-31 2020-08-31 一种操作***时钟调度方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010894521.1A CN111813531B (zh) 2020-08-31 2020-08-31 一种操作***时钟调度方法及***

Publications (2)

Publication Number Publication Date
CN111813531A CN111813531A (zh) 2020-10-23
CN111813531B true CN111813531B (zh) 2020-11-27

Family

ID=72859818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010894521.1A Active CN111813531B (zh) 2020-08-31 2020-08-31 一种操作***时钟调度方法及***

Country Status (1)

Country Link
CN (1) CN111813531B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115580366A (zh) * 2022-09-28 2023-01-06 东南大学 一种基于进程冲突判决的软硬件多层级同步采集方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292846A1 (en) * 2008-05-21 2009-11-26 Kyu-Ho Park Method of interrupt scheduling
CN102081555A (zh) * 2011-02-24 2011-06-01 华为技术有限公司 调整时钟中断周期的方法和装置
US20130055276A1 (en) * 2011-08-26 2013-02-28 Knu-Industry Cooperation Foundation Task scheduling method and apparatus
US20130117756A1 (en) * 2011-11-08 2013-05-09 Electronics And Telecommunications Research Institute Task scheduling method for real time operating system
CN103984596A (zh) * 2014-05-19 2014-08-13 上海微小卫星工程中心 一种星载软件的调度方法及装置
CN104572281A (zh) * 2014-12-29 2015-04-29 联合汽车电子有限公司 时钟中断实现周期性任务抢占的方法及嵌入式***
CN104679583A (zh) * 2013-11-28 2015-06-03 华为技术有限公司 一种动态调整时钟中断的方法及装置
CN110928657A (zh) * 2019-11-18 2020-03-27 西北工业大学 嵌入式***确定性分析方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292846A1 (en) * 2008-05-21 2009-11-26 Kyu-Ho Park Method of interrupt scheduling
CN102081555A (zh) * 2011-02-24 2011-06-01 华为技术有限公司 调整时钟中断周期的方法和装置
US20130055276A1 (en) * 2011-08-26 2013-02-28 Knu-Industry Cooperation Foundation Task scheduling method and apparatus
US20130117756A1 (en) * 2011-11-08 2013-05-09 Electronics And Telecommunications Research Institute Task scheduling method for real time operating system
CN104679583A (zh) * 2013-11-28 2015-06-03 华为技术有限公司 一种动态调整时钟中断的方法及装置
CN103984596A (zh) * 2014-05-19 2014-08-13 上海微小卫星工程中心 一种星载软件的调度方法及装置
CN104572281A (zh) * 2014-12-29 2015-04-29 联合汽车电子有限公司 时钟中断实现周期性任务抢占的方法及嵌入式***
CN110928657A (zh) * 2019-11-18 2020-03-27 西北工业大学 嵌入式***确定性分析方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
动态调整时钟中断周期提高μC/OS-II实时性能;郭俊 等;《单片机与嵌入式***应用》;20041130;第82-83页 *

Also Published As

Publication number Publication date
CN111813531A (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
US8504753B2 (en) Suspendable interrupts for processor idle management
US8775838B2 (en) Limiting the number of unexpected wakeups in a computer system implementing a power-saving preemptive wakeup method from historical data
EP2227727B1 (en) Data processor performance prediction
US7689839B2 (en) Dynamic power management in system on chips (SOC)
US7120911B1 (en) Processor power-saving control method, storage medium, and processor power-saving control device
US20060010446A1 (en) Method and system for concurrent execution of multiple kernels
Leyva-del-Foyo et al. Predictable interrupt management for real time kernels over conventional PC hardware
JPWO2005106623A1 (ja) Cpuクロック制御装置、cpuクロック制御方法、cpuクロック制御プログラム、記録媒体、及び伝送媒体
US10271326B2 (en) Scheduling function calls
CN111897637B (zh) 作业调度方法、装置、主机及存储介质
WO2014186105A1 (en) System and method for selective timer coalescing
WO2016195778A1 (en) Opportunistic waking of an application processor
CN111813531B (zh) 一种操作***时钟调度方法及***
US20050160425A1 (en) Limitation of the response time of a software process
JP4614239B2 (ja) マルチタスクスケジューリング機能搭載装置及びプログラム
EP2490100B1 (en) Suspendable interrupts for processor idle management
RU2450330C2 (ru) Аппаратно-реализуемый способ выполнения программ
Oikawa et al. Efficient timing management for user-level real-time threads
Cheour et al. EDF scheduler technique for wireless sensors networks: case study
JP2006172229A (ja) タスクの動作制御方法、タスクの動作制御システムおよびプログラム
Chen et al. Research Reform on Embedded Linux's Hard Real-Time Capability in Application
CN110489089B (zh) 基于中断管理框架的嵌入式***低功耗控制方法及***
CN116932227B (zh) 一种基于单线程的任务调度方法及装置
Seo et al. Catching two rabbits: adaptive real‐time support for embedded Linux
Back Processes (Part II)

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
GR01 Patent grant
GR01 Patent grant