CN105190556A - 允许确定性的实时错误恢复的任务时间分配方法 - Google Patents

允许确定性的实时错误恢复的任务时间分配方法 Download PDF

Info

Publication number
CN105190556A
CN105190556A CN201480021800.XA CN201480021800A CN105190556A CN 105190556 A CN105190556 A CN 105190556A CN 201480021800 A CN201480021800 A CN 201480021800A CN 105190556 A CN105190556 A CN 105190556A
Authority
CN
China
Prior art keywords
time
process operation
quota
execution
relevant
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
CN201480021800.XA
Other languages
English (en)
Other versions
CN105190556B (zh
Inventor
V·大卫
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.)
KRONO SAFE
Original Assignee
KRONO SAFE
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 KRONO SAFE filed Critical KRONO SAFE
Publication of CN105190556A publication Critical patent/CN105190556A/zh
Application granted granted Critical
Publication of CN105190556B publication Critical patent/CN105190556B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明涉及一种用于在多任务计算机上执行实时应用的任务的方法,该方法包括以下步骤:定义时间窗口,每个时间窗口与所述应用的任务的处理操作的执行相关,向具有时间窗口的每个处理操作分配时间配额(QA1、QA2、QA3、QB)和时间余裕(MA1、MA2、MA3、MB),通过时间配额和时间余裕分配给处理操作的时间比与所述处理操作时间窗口的持续时间短,在所述应用的执行期间,在与其相关的时间窗口的开始激活每个处理操作,在处理操作之一的时间配额期满时,如果所述处理操作的执行还没有被完成,则激活错误模式,如果错误模式对于所述处理操作之一是激活的,则在通过时间配额和时间余裕分配给处理操作的剩余时间内,为处理操作执行错误处置过程。

Description

允许确定性的实时错误恢复的任务时间分配方法
技术领域
本发明涉及实时多任务***,所述***包括通过相同时间基准计时的一组时间独立的任务,并且其执行时间约束是已知的。本发明特别涉及在它们的实施中要求高性能的实时***,以及对分配给***的每个任务的执行硬件资源的使用要求高保证程度的关键***。
本发明特别适用于命令和控制***,例如那些在(汽车、轨道、海洋和空中)运输、工业自动化、能源领域使用的***,以及用于其资源的受控分配非常重要的其他***,如在通信网络中。
背景技术
在关键的实时***中,任务通常会根据静态调度方法执行,以便执行时间配额的静态时间分配以用于使用例如处理器的执行资源。就资源的使用——特别是处理器的使用来说,这使得在任务自身之间的时间独立性得以表现出来。这种简单的和被广泛接受的愿景(vision)没有考虑任务之间通信的问题,其特别地在文献[3]、[4]、[7]、[8]中被处理。然而,这一愿景带来包括超高速缓存的现代处理器上的实施的问题。事实上,这些超高速缓存的内容取决于任务和被存取数据的整个执行历程。现在,这些存储器的状态影响交叉任务的处理操作的执行时间。这些条件下,很难保证处理操作的执行时间的绝对上部边界(参考文献[5]-WCET--最坏情况执行时间-)。因而计算这些上部边界的正式方法导致与实验结果相比的这些上部边界的可能明显的过高估计。
此外,在某些实时多任务***中,必需保证任务不互相干扰,即在被分配给另一任务的时间内,任务不能被执行或它的执行不能结束。在任务之间的追求这样的不干扰在一定的领域导致在分配给处理操作的每个时间窗口的开始处去激活(deactivating)超高速缓存或清空它们的全部内容,以便具有独立于前面的处理操作的执行的状态(空)。然而,该清空超高速缓存的操作显著地降低了多任务***的性能。此外,在一些情况下处理操作可以被分成几个不同时间窗口,这要求在处理操作的执行期间多次清空超高速缓存。
出于这些不同的原因,实时***的设计者被迫将这样的***设计得过分大。从实用的角度来看,为了使得该方法带来较少的性能下降,处理器的时间分配基于比“理论的”WCET短的执行时间要求来执行,导致接受一定的错误率。此方法的主要缺点在于没有表征处理操作的执行时间的分配定律的任何模型,真正使得错误率就分配的时间配额而言可被评估。特别地,当可接受的误码率必须非常低并且因此产生于非常少的事件的时候,采用这种基于极低实验抽样的该方法来展示这些***具有确定性的行为是不可能的。因此,为了提高这类***的鲁棒性,一种公知的方法涉及在执行时间配额上这样的错误实施错误-恢复措施,以将剩余错误的情况降低到极低数值。
需要注意,为了克服尺寸过大的明显问题,它通常通过将未使用的时间(在平均执行时间和分配的时间配额之间的差异)动态地再分配给作为非优先级后台任务的非实时和非关键任务(参考文献[2]、[7]、[8])。然而,该解决方案没满足相同目标并且对关键的实时任务没有任何贡献。
同样地,对于关键实时任务的执行期间出现的其他类型的易受影响错误,具有这样的确定性的实时错误处置机制是有益的,同时不会对其它正被执行的任务有任何干扰。这实现了错误恢复,而无需在任务执行流中断开并且用充分的时间约束来保证足够动作的实施。这些问题在非同步***中具有已知解决方案,即无任何执行时间约束。然而,这些解决方案不提供任何实时性能保证,它们不适合于寻求处理操作之间的无干扰的关键任务的环境,当然包括在运行故障的情形下。
因而,期望能够产生这样的应用,该应用包括通过相同时间基准计时的一组任务,同时保证在其上执行任务的多任务***的高效和可靠使用。可以进一步期望分配足够的时间给错误处置,以便在确定的时间完成,并与关键的实时***的约束兼容,而没有与其它任务的任何干扰风险。还期望使用未使用的分配时间进行不同的优化,例如温度调节、能耗最小化,或关键任务的分布式或共享的执行。进一步期望能够保证通过多任务***执行的应用的任务处理的正确顺序,并能表明该排序是正确的。
发明内容
一些实施例涉及一种用于在多任务计算机上执行实时应用的任务的方法,每个任务包括至少一个处理操作,该方法包括以下步骤:定义时间窗口,每个时间窗口与所述应用的任务的处理操作的执行相关,向具有时间窗口的每个处理操作分配时间配额和时间余裕,通过时间配额和时间余裕分配给处理操作的时间比与所述处理操作相关的时间窗口的持续时间短,在通过多任务***执行所述应用期间,在与其相关的时间窗口的开始激活每个处理操作,在处理操作之一的时间配额期满时,如果所述处理操作的执行还没有被完成,则激活错误模式,如果错误模式对于所述处理操作之一是激活的,则在通过时间配额和时间余裕分配给处理操作的剩余时间内,执行处于错误模式的处理操作的错误处置过程。
根据一个实施例,该方法包括下列步骤:如果错误模式对于所述处理操作之一是激活的,继续执行在分配给处理操作的时间配额期满时其执行没有完成的处理操作,同时监控分配给处理操作的时间余裕的期满,并且在分配给处理操作的时间余裕期满时,如果处理操作的执行还没有被完成,则结束所述处理操作的执行并执行时间配额溢出错误处置操作。
根据一个实施例,该方法包括下列步骤:将与时间窗口相关的处理操作分段为在若干时间窗口上扩展,用于处理该应用的其他任务,以使得每个时间窗口排他地与处理操作或处理操作片段相关,向每个处理操作片段分配时间配额,使得分段的处理操作的所有片段的时间配额的总和等于被分段的处理操作的时间配额,与分段的处理操作相关的时间余裕与分段的处理操作的最后片段相关联,将每个处理操作片段关联到表明它是否为被分段的处理操作的最后片段的状态变量,如果与处理操作片段相关的状态变量表明该处理操作片段不是被分段的处理操作的最后片段,则在该处理操作片段的配额期满时错误模式不被激活。
根据一个实施例,其中与时间配额相关的每个处理操作的余裕是通过将乘法因子施加到处理操作的时间配额而计算得出,所述乘法因子对与时间配额相关的所有处理操作是相同的。
根据一个实施例,其中确定乘法因子(Kx)以便应用的任务可以根据处理操作的时间要求、根据与处理操作相关的时间窗口、以及根据对计算机(RTS)的特征被调度。
根据一个实施例,处理操作由通过第一时间基准计时的处理器执行,与处理操作相关的时间窗口以与第一时间基准相比不规则的第二时间基准定义,第二时间基准中的时间单位具有第一时间基准中的最小值,乘法因子根据该最小值被定义。
根据一个实施例,每个处理操作与表明它是否执行涉及执行该处理操作的处理器的输入/输出的状态变量相关,并且如果处理操作之一与表明处理操作不执行任何输入/输出的状态变量相关,则前面处理操作的执行一结束,处理操作的执行就被启动而无需等待处理操作的时间窗口的开始。
一些实施例还涉及一种包括执行实时应用的多任务计算机的实时多任务***,所述实时应用包括若干任务,每个任务包括至少一个处理操作,所述***被配置为:存储时间窗口,每个时间窗口都与应用的任务的一组处理操作的执行相关,为具有时间窗口的每个处理操作存储时间配额和时间余裕,通过时间配额和时间余裕分配给处理操作的时间比与所述处理操作相关的时间窗口的持续时间短,执行应用的处理操作,并且在处理操作之一的时间配额期满时,如果所述处理操作的执行还没有被完成,则激活错误模式,如果错误模式对于所述处理操作之一是激活的,则在通过时间配额和时间余裕分配给处理操作的剩余时间内,执行处于错误模式的处理操作的错误处置过程。
根据一个实施例,所述***被配置为:如果错误模式对于所述处理操作之一是激活的,继续执行在分配给处理操作的时间配额期满时其执行没有完成的处理操作,同时监控被分配给处理操作的时间余裕的期满,在分配给处理操作的时间余裕的期满时,如果处理操作的执行还没有被完成,则结束所述处理操作的执行并执行时间配额溢出错误处置操作。
根据一个实施例,所述***被配置为:存储与时间窗口相关的一些处理操作被进行分段的事实,为每个处理操作片段存储时间窗口和时间配额以用于所述处理操作片段的执行,为每个分段的处理操作的最后片段存储作为相关的时间余裕,所述时间余裕与分段的处理操作相关,为每个处理操作片段存储状态变量,所述状态变量表明该片段是否为被分段的处理操作的最后片段,以及在应用的执行期间,如果与处理操作片段相关的状态变量表明该片段不是被分段的处理操作的最后片段,则在处理操作片段的配额期满时不激活错误模式。
根据一个实施例,所述***被配置为通过将乘法因子施加到处理操作的时间配额来确定与时间配额相关的每个处理操作的余裕,所述乘法因子对于与时间配额相关的所有处理操作是相同的。
根据一个实施例,所述***包括通过第一时间基准计时的处理器以执行处理操作,并且接收与第一时间基准相比不规则的第二时间基准,该***被配置为以第二时间基准确定与处理操作相关的时间窗口,第二时间基准中的时间单位具有第一时间基准中的最小值,乘法因子根据最小值被定义。
根据一个实施例,所述***被配置为:为每个处理操作存储状态变量,所述状态变量表明该处理操作是否执行涉及执行该处理操作的处理器的输入/输出,以及如果处理操作之一与表明处理操作不执行任何输入/输出的状态变量相关,则前面处理操作的执行一结束,就启动处理操作的执行而无需等待处理操作的时间窗口的开始。
附图说明
本发明的实施方式的一些例子将结合下面将要描述的附图进行,但不受限于这些附图,其中:
图1示意性地表示多任务计算机,
图2A和2B表示两项任务的时序图,
图3以时序图的形式示意性地表示图2A、2B的两项任务的调度计划,
图4以时序图的形式示意性地表示根据一个实施例的负载计划,
图5以时序图的形式示意性地表示根据另一个实施例的负载计划,
图6A、6B、7和8表示根据不同实施例由实时计算机的实时核心执行的步骤。
具体实施方式
图1表示多任务计算机RTS,其包括一个或多个处理器PRC、时钟电路CLK、一个或多个非易失性存储NVM(可或不可覆写)、一个或多个易失性存储器VM(例如RAM类型-随机存取存贮器),以及被配置为控制外部单元(未示出)和/或从这样的单元接收信号的一个或多个接口电路PHC。处理器PRC通过地址和数据总线SB被耦合到电路CLK、NVM、VM和PHC。时钟电路CLK也连接到处理器PRC的中断输入,以便当给定的可编程持续时间已经过去时触发中断。为此目的,处理器PRC通过总线SB可以传输持续时间的值,并激活电路CLK。
存储器NVM存储多任务应用的任务程序以及涉及应用的数据。存储器VM存储在应用的执行中使用的变量数据。需要注意,如果当多任务应用被启动时要执行的程序被发送到计算机,则存储器NVM可以省去。
处理器PRC可以包括一个或多个微处理器或微控制器,其可以每个都包括一个或多个核心或处理单元。处理器PRC也可以包括一个或多个ASIC(专用集成电路)或FPGA(现场可编程门阵列)类型的电路或由这些电路组成。处理器PRC执行实时核心,其特别地包括实时多任务应用的执行所必要的功能,例如用于实施任务调度计划的功能、用于管理任务执行背景的功能、和用于管理一个或多个看门狗以监控处理操作的执行时间的功能。
对于关键的实时应用,可能需要展示(demonstrate)执行介质(计算机RTS)——特别是在计算功率方面,是足够的以满足应用的所有任务的最坏执行时间要求。无论用什么方法来安排任务,该展示可以通过负载***方程的形式证明提供(参考文献[1]、[2]、[3])。这里介绍的方法独立于调度方法以及要被检验的负载方程的相关***的选择。为了通过例子说明该方法,使用一般的表达(例如参考文献[3])。
图2A表示在时序图上,在时间基准t中的周期性的任务,该任务可以被分解成重复执行的三个处理操作TA1、TA2和TA3。处理操作TA1在记为[0,1[的时间窗口被执行,该窗口由最早开始时间t=0和最迟结束时间t=1定义。因而时间窗口[0,1[具有一个时间单位的持续时间。处理操作TA2在时间t=1和t=5之间的持续4个时间单位的时间窗口[1,5[被执行。处理操作TA3在时间t=5和t=6之间持续一个时间单位的时间窗口[5,6[上被执行。在这些时间窗口[0,1[、[1,5[、[5,6[的每一个上的处理操作TA1、TA2、TA3各自的执行时间要求被记为QA1、QA2和QA3,这些要求根据目标多任务计算机的能力被定义。
图2B表示在时序图上,在相同时间基准t中,在时间t=0和t=3之间的时间窗口[0,3[上持续3个时间单位的周期性任务B,该任务包括唯一被重复地执行的处理操作TB。时间窗口[0,3[中的处理操作TB的执行时间要求被记为QB。
为了建立任务A和B的调度计划,任务的处理操作分布在它们各自的时间窗口上,这样每个处理操作的要求被满足。这导致在几个更短时间窗口上对某些处理操作进行分段,以使得在所考虑的每个时间窗口中,与该时间窗口相关的处理操作和/或处理操作片段可以被完全地执行,同时尊重每个任务的时间约束。换句话说,处理操作被分段,以使得考虑的所有时间窗口一直是连续的(一个窗口的末端对应于另一窗口的开始)并且是不相交的(两个窗口没有任何区域是共同的)。这导致必须被满足的在处理操作片段上的条件,以便应用的所有任务可以被调度。
图3表示任务A和B的调度计划。处理操作TA2被分段到两部分TA21和TA22以考虑任务B的时间t=3,其对应于用于复活处理操作TB的时间窗口的开始,其在处理操作TA2的时间窗口期间发生。同样地,任务B的处理操作TB在时间窗口[0,3[上被分段成两部分TB11和TB12,以考虑任务A的处理操作TA2的时间窗口[1,5[的起始时间t=1,其在处理操作TB的时间窗口期间发生。与时间窗口[3,6[相关的处理操作TB的发生也是被分段为两部分TB21和TB22,以考虑任务A的处理操作TA3的时间窗口的起始时间t=5,这是由于该时间发生在处理操作TB发生的时间窗口期间。处理操作TB的两次发生的这些不同的片段是构造任务A和B的各个调度计划所必须的。任务A、B的各个序列持续时间合起来等于每个任务的重复序列的持续时间的最小公倍数(LCM)。在图3的例子中,任务A与具有6个时间单位持续时间的时间窗口相关,然而任务B与具有3个时间单位持续时间的时间窗口相关。任务A,B的重复序列的持续时间等于6和3的LCM,即6个时间单位,对应于任务B的两次发生。这一分段导致处理操作TA1和处理操作片段TB11必须在时间窗口[0,1[内被执行。处理操作片段TA21和TB12必须在时间窗口[1,3[内被执行。处理操作片段TA22和TB21必须在时间窗口[3,5[内被执行。处理操作TA3和处理操作片段TB22必须在时间窗口[5,6[内被执行。
此外,处理操作片段TA21和TA22的执行时间要求分别被记为QA21和QA22。同样,处理操作片段TB11、TB12、TB21和TB22的执行时间要求被分别记为QB11、QB12、QB21和QB22。在图3所呈现的每个时间窗口中,要被检验的负载方程(或不等方程式)可以被定义,以便任务A和B可以被调度。此方程式指定相同时间窗口的处理操作或处理操作片段的要求总和低于时间窗口的时间单位的持续时间。因而,从图3得到如下负载方程式***:
QA1+QB11≤1(E1)
QA21+QB12≤2(E2)
QA22+QB21≤2(E3)
QA3+QB22≤1(E4)
此方程组定义了针对一定调度算法的充要条件,例如在文献[1]和[3]中所表述的。此方程组用于展示多任务计算机的尺寸设计是正确的。需要注意的是,对于RMS调度算法(单调速率调度-参考文献[1],[2])来说,在所有情况下此***不定义充分条件,并且该条件必须根据在文献[1]中表示的公式被校正。然而,此校正确实无论如何不改变提供的方法。计算片段的要求QA21、QA22、QB11、QB12、QB21、QB22的方式已经由调度理论定义,并且不涉及本发明。为了获得详细信息,例如可以参考文献[3]。
根据一个实施例,通过在不等符号的左边部分引入大于1的乘法因子K来从先前定义的负载方程组中导出新负载方程组。在图3的例子中,通过以下方式从方程组(E1)-(E4)导出新的负载方程组:
K·(QA1+QB11)≤1(E1’)
K·(QA21+QB12)≤2(E2’)
K·(QA22+QB21)≤2(E3’)
K·(QA3+QB22)≤1(E4’)
根据因子K的值,新方程组可以或可以不具有解(solution)。因此,任务的计算时间要求的最大乘法因子Kx被定义,以使得实时应用(通过例如计算机RTS的指定计算机执行)可以被调度,即,这样新方程组(E1')-(E4')具有解。
根据初始的负载方程组(E1)-(E4),每个要求可以被替换成乘以因子素Kx的相同要求,同时保证实时应用(通过指定***执行)可以被调度。因而在图3的例子中,以下情况得到保证:扩展的要求Kx·QA1和Kx·QB11可以在第一时间窗口[0,1[上被调度,扩展的要求Kx·QA21和Kx·QB12在第二时间窗口[1,3[上被调度等等。
除了使用的例子,对于通过施加调度方法获得的任何方程组来说通过因子Kx倍增的要求都是可适用的(特别地如文献[1]、[2]、[3])。还需要注意,对关键的实时应用,余裕通常被保持在多任务计算机的要求和在其性能上,在其上应用必须被执行。因而,因子Kx可以从计算时间余裕来确定,以使得计算机的例如100%计算时间资源被使用。例如,20%余裕对应于因子Kx值等于5/4,50%余裕对应于因子Kx值等于2。还需要注意,与规定正式标准以被应用到可测数量的因子Kx的定义不同,余裕概念通常欠佳地被正式化。因而,通过因子Kx倍增计算时间要求提供了总是至少有被计算用于所有处理操作的最坏情况的余裕而非均值的保证。
在图3所示的例子中,因子Kx的定义的结果是最大负载在至少一个时间窗口上达到(其中kx·Q=时间窗口的时间单位的持续时间,Q是与时间窗口相关的处理操作的要求),但取决于要求的值没必要在每一个时间窗口上达到。
因此,通过因子Kx(大于1)对处理操作的实际需要进行乘法使得任务调度计划按每个处理操作Ti的实际执行时间要求通过增加等于(Kx-1)·Q的扩展执行时间余裕Mi的方式而获得。任务调度计划也可以包括对应于最大负载未达到情况下剩余时间窗口的空闲时间。
为了构建任务调度计划,实际执行时间要求的值必须是已知的,并且处理操作必须被分配给时间窗口。处理操作的实际需要和这些处理操作到时间窗口分配使因子Kx的值能够被确定。然后,可以应用所选的调度方法。因而,根据图3,例如假定最大负载在第一和第二时间窗口[0,1[和[1,3[上达到,可获得如下方程组:
Kx·(QA1+QB11)=1(E1")
Kx·(QA21+QB12)=2(E2")
Kx·(QA22+QB21)≤2(E3")
Kx·(QA3+QB22)≤1(E4")
方程组(E1")-(E4")的检验导致图4中呈现的负载计划。图4以时序图的形式呈现了负载计划,其中呈现了时间窗口[i,i+1[(i=0、1、2、3、4和5),实际需要QA1、QA21、QA22、QA3,QB由沿着时轴t的交叉影线区域表示,相关的执行时间余裕MA1、MA21、MA22、MA3、MB由在时轴t之上的阴影线区域表示,通过时轴t下的阴影线区域表示,并且示出最大负载的时间窗口未达到情况下的空闲时间NA1、NA2。在该负载计划中,每个时间窗口与单个处理操作或处理操作片段相关联。考虑到在时间窗口的时间单位中的持续时间,某些处理操作片段的要求可以被定义。因而,两次处理操作TB发生的要求QB12和QB22可以被设置为QB。其结果是,要求QB12和QB22被设置为0。
可以在图4的负载计划中看出,处理操作TB与不同持续时间的两个独特时间窗口相关联。事实上,负载计划包括处理操作TB的两次发生,一个被分配给时间窗口[1,2[,另一个被分配给时间窗口[32,5[。
图4的负载计划也被切割成时隙,每个可以是处理操作要求、处理余裕或空闲时间类型。因而,连续的要求QA1、QB、QA21、QA22、QB和QA3分别与时隙[0,01[、[1,11[、[2,21[、[3,32[、[33,42[和[5,51[相关。连续的余裕MA1、MB、MA21、MA22、MB、MA3分别与时隙[01,1[、[11,2[、[21,3[、[32,33[、[41,42[和[51,52[相关。空闲时间NA1、NA2分别与时隙[42,5[和[52,6[相关。
从多任务计算机负载的角度来看,图4的负载计划符合方程式(E1")-(E4"),但是还可以注意到,因为某些操作处理被分段,与要求相关的执行时间余裕也可以被分段。因而,在上面的例子中,要求QA2看起来被分段为两个独立的部分QA21和QA22。同样情况也适用于相关的余裕MA21、MA22。此分段可以导致重新定义不同时间窗口。事实上,在处理操作片段TA22的扩展要求Kx.QA22以及处理操作TB的第二次发生的要求QB之间的转变意味着在图4上记为[32]的时间窗口限度这个时间出现。处理操作TA22因而与时间窗口[3,32[相关。此外,因为处理操作TB的第二次发生的要求QB在时间[4]前后延伸,这个时间不再对应于时间窗口限度。处理操作TB的第二次出现因而与时间窗口[32,5[相关。
为了提供能够将分配给处理操作的余裕的使用最优化的静态调度计划,特别是处置错误和超出预计执行时间要求的特别错误,负载计划可以被重新安排,如图5示出的。与图4的负载计划相比,图5的负载计划通过将与要求QA21和QA22相关的执行时间余裕MA21和MA22聚合到一起来修改。为此目的,与片段TA21相关的余裕MA21已被恰好移动到余裕MA22之前,并且这两个余裕已经被合并以形成等于(Kx-1)·QA2的余裕MA2。在图5的例子中,在移动余裕MA21之后,处理操作TA2的要求QA21和QA22也可以被合并,因为它们是连续的。需要注意,由于实时应用通常具有超过两项任务,将处理操作分段的要求的可能性不是常有的。该要求和余裕的聚合也导致重新定义讨论的时间窗口,同时考虑最初被分配到后者的时间窗口定义的处理操作的最后期限。事实上,由于要求QA21和QA22的聚合,时间[3]不再对应于时间窗口限度。该聚合也导致再分配要求QA2时间[31]至处理操作TA2的末端,因为时间[32]不再对应于要求的末端或余裕的开始。需要注意,现在分配给处理操作TA2的时间窗口[2,33[被包含在最初分配给该处理操作的窗口[1,5[。因而该聚合导致在时隙[2]和[33]之间重新定义时隙。因而,在图5的例子中,处理操作TA2的要求QA2与时隙[2,31[相关,并且该处理操作的余裕MA2与时隙[31,33[相关。
因此,对于由相同时间基准计时的一组任务,有可能建立可以保证下列的任务调度计划,即,在出现错误的情况下,分配给错误处置的时间被保证(而不会溢出至分配给另一处理操作的时间),使得能够以与关键实时***的约束相兼容的确定性的时间实现错误处置操作,所述关键实时***由执行实时应用的多任务计算机构成。如果多任务计算机规模修改(sizing)中出现错误,由于处理操作的执行时间的变化,该方法尽可能通过将剩余错误的情况降低到极低值来使得实时多任务***的鲁棒性得以改善,并且不会干扰其它任务的执行。因而,该方法使得能够以模块化和合成的途径来调度实时应用的任务,这减少了验证整个计算机的规模修改所需要的测试。该方法使得可能生产对其来说要求所有任务之间的时间独立性(不干扰)的关键实时***,并促进这样的***的认证。该方法也使得执行处理器的过大尺寸减少,这对于具有相对低处理能力的嵌入式计算机来说是显著优势。
需要注意,在普通情况下,时隙不一定如图4和5中那样调度。事实上,如果对每个处理操作Ti,要求Qi、余裕MAi和可能的空闲时间NA时隙的次序被满足,分配给调度计划的不同处理设备操作的时隙可以用无论任何哪种方式进行嵌套。因而,不同处理设备操作的几个配额-类型时隙可以是连续的。同样,不同处理设备操作的几个余裕-类型时隙可以是连续的。唯一重要的是,每个处理操作的配额和余裕时隙被包含在最初被分配到处理操作的时间窗口。
通过图4和5示出的实施例也使得周期的长度能够在不停止处理器PRC的执行的情况下得到限制,这可以限制处理器的升温(在可靠性和使用寿命方面得到益处)。处理器在其间不执行属于关键任务的任何处理操作的周期也可以用于执行经常具有再发生要求的非关键任务,例如具有低等待时间的输入/输出管理。
一般说来,与分配的要求的兼容通过看门狗控制,当处理操作或处理操作片段被启动时,以定义分配给处理操作或处理操作片段的时间配额的时延启用所述看门狗,其可以根据处理操作或处理操作片段的要求的值来设置。因而,在下文中,分配给处理操作的执行时间配额等于如之前所定义的要求。如果处理操作或处理操作片段未完成,在时延的末端触发看门狗。
图6A、6B表示步骤S1到S6和S10到S14,其被计算机RTS的实时核心执行。图6A的步骤S1到S6被永久地执行以激活看门狗WD,以使得它可以可能在调度计划的每个时隙的末端被触发。当看门狗WD被触发时,图6B的步骤S10到S14被执行。下文中,术语“处理操作”一般地指处理操作或处理操作片段。为了执行图6A、6B的一些步骤,计算机RTS的实时核心具有从调度计划或从实时应用的任务的处理操作的负载计划生成的表。这些表可以特别地包括应用的处理操作的清单以及定义分配给每个处理操作的时隙的时间参数的清单。在应用的处理操作的清单中,每个处理操作Ti可以与时间配额Qi类型和时间余裕Mi类型的一个或多个时隙相关联。在时隙清单中,每个时隙与处理操作或处理操作片段相关联,具有类型(配额、余裕或空闲时间)并具有时隙的持续时间和/或具有时隙的开始和终止终时间。
在图6A上,步骤S1在记为t<j>的时隙的开始被执行。处理器PRC访问时隙的清单以确定激活看门狗WD所必要的参数——以使得后者在时隙t<j>的末端被触发,并激活看门狗。在步骤S2,处理器PRC确定时隙t<j>的类型。如果时隙t<j>是配额Q型,处理器PRC在步骤S3启动与时隙t<j>相关的处理操作T[t<j>]。如果时隙t<j>是余裕M类型,处理器PRC执行步骤S4。在步骤S4,处理器PRC测试与处理操作T[t<j>]相关的错误指示符ER(T[t<j>])。如果此错误指示符ER(T[t<j>])表明处理操作T[t<j>]处于配额溢出错误,处理器PRC在步骤S5继续处理操作T[t<j>]的执行。在执行完步骤S3和S5之后,即使处理操作T[t<j>]不是在配额溢出错误中,处理器PRC执行步骤S6以增加一计数器j,由此可以进行到下一时隙t<j+1>的处理操作。
在图6B的步骤S10中,当激活用于时隙t<j>的看门狗WD被触发时(在配额或余裕溢出的情况下),步骤被执行,通过测试时隙t<j>的类型(Q/M/NA),处理器PRC确定是否看门狗的触发是由于处理操作的时间配额或时间余裕的期满。如果看门狗WD的触发是由于时间配额的期满,则执行步骤S11。如果该触发是由于时间余裕的期满,则执行步骤S12到S14。
在步骤S11,分配给处理操作T[t<j>]的时间配额在处理操作的执行结束之前已经期满。于是处理器PRC例如通过为处理操作T[t<j>]激活错误指示符ER来进入错误模式。在步骤S12,分配给处理操作T[t<j>]的时间余裕已经期满,而处理操作并没有被完全执行。于是,处理器PRC阻止处理操作T[t<j>]的执行。在步骤S13,处理器PRC可以存储这一事实,即时间配额溢出错误针对处理操作T[t<j>]被检测到。在步骤S14,处理器PRC可以按照实时核心所提供的执行常规错误处置操作。为了尊重处理操作之间的不干涉规则,此常规错误处置操作足够短以便不侵占下个时间窗口因此不侵占分配给下一个处理操作的时间。同样,为了尊重处理操作之间的不干涉规则,它也可以设置成在分配给处理操作的后继时间窗口期间,执行为配额溢出中应用或处理操作T[t<j>]所特有的错误处置操作。
需要注意,在时间配额溢出错误的情形下处理操作的继续执行,是由实时应用的简单设计方案选择造成的。在某些情况下,可以规定实施不同于那个先前描述模式的处置该错误的其他模式,例如永久地停止在时间配额溢出错误中的处理操作,并执行为实时***或任务的降级操作设置的备选处理操作,要求比错误处置操作的时间余裕更短的执行时间。
在分段的处理操作执行的情况下,其中看门狗表明被分配给第一或中间片段的配额末端的情况必须与其中它表示处理操作的最后片段的要求的末端的情况进行区分。在第一种情形中,看门狗仅仅表示在分段的处理操作的执行期间,当时间窗口改变时从一个处理操作到另一个处理操作的改变。在第二种情形中,看门狗表明被分段处理操作的配额被完全地使用,因而出现异常(anomaly)。
根据一个实施例,当分段的处理操作留在调度计划中的时候,状态变量与每个处理操作或处理操作片段相关,以表明是否这是分段的处理操作的第一片段或中间片段,或是否后者为非分段的处理操作或分段的处理操作的最后片段。该状态变量被使用以便如果这是第一片段或中间片段则不分配任何余裕给处理操作片段,并且在处理操作片段的时间配额期满时不产生任何错误。该状态变量可以例如在生成实时应用的可执行码时为每个处理操作或片段自动地生成,并且被***定义应用的负载计划的表中。
该状态变量可以用于如图7所表示的例子。因而,图7表示图6B的步骤S10到S14,以及在步骤S10和S11之间夹设的附加步骤S15。因此,当处理操作T[t<j>]的时间配额期满,看门狗WD被触发时,执行步骤S15。在步骤S15,处理器PRC测试状态变量LF(T[t<j>]),该状态变量表明处理操作T[t<j>]是分段的处理操作的第一片段或中间片段,还是完整处理操作(未片段的)或被分段的处理操作的最后片段。如果可变的LF(T[t<j>])表明被执行T[t<j>]的处理操作是完整处理操作或者被分段的处理操作的最后片段,执行如上所述的步骤S11以激活错误模式。否则,错误模式不被激活。
需要注意,由于没有时间余裕被分配给分段的处理操作的第一片段或中间片段,分配给分段的处理操作的整个时间余裕被分配给分段的处理操作的最后片段。
根据一个实施例,状态变量与每个处理操作或处理操作片段相关联以显示后者是否执行涉及处理器PRC的输入和/或输出。输入/输出意味着例如对存储器VM或NVM中的实时应用的全局变量的写或读访问,或处理器PRC和外部设备之间通过电路PHC的信号或数据传送。该状态变量可以用于预测不执行任何输入和/或输出的处理操作,而不必等待其关联的时间窗口的开始。例如当产生实时应用的可执行码时,该状态变量为每个处理操作或处理操作片段自动生成,并且被***定义应用的负载计划和调度计划的表中。
该状态变量可以用于如图8所表示的例子。图8表示图6A的步骤S1到S6,以及在步骤S6和S1之间夹设的两个附加步骤S8和S9。在步骤S8,处理器PRC确定与处理操作Nxt.(T)相关的下一个时隙。如果该时隙是配额Q类型,其测试表示在负载计划中下一个处理操作Nxt.(T)的出现输入/输出的状态变量。如果变量IO(Nxt.(T))表示该处理操作Nxt.(T)不执行任何输入/输出,处理器PRC执行步骤S9以在步骤S8确定的时隙启动步骤S1-S2-S3的处理操作Nxt.(T)的执行。否则,在跟随刚刚被处理过的时间窗口的时间窗口t<j+1>执行步骤S1。自然,不言而喻,步骤图7和8可以结合执行,以便都实施状态变量LF和IO。
这种布置因而使得在排序计划中计划的处理操作被动态地预测,并且因此相关的未使用的余裕被推迟到与不能被预测的、执行输入/输出的处理操作或处理操作片段相关的时间窗口,其中推迟相关的未使用余裕导致将未用的余裕和任何空闲时间聚合成单一余裕。该布置不挑战***的确定的行为以及前述操作保证。聚合余裕和/或空闲时间提供实施辅助活动的优势,所述辅助活动可以包括非关键或非实时任务的工作,其可以因而通过较少中断并且因此以较少的执行上下文切换被执行。这导致了性能以及因此在处理器的能源消耗和平均温度方面受益。如果处理器在聚合的余裕期间进入待机模式,它因此可以被进入待机模式较长的时间,这导致待机模式持续时间内的温度和能源消耗的下降。该余裕聚合也使得处理器待机机构的激活设备的数量的减少。此外,预见处理操作的可能性使得实时***以被更好地规划大小并因此获得更高的整体性能。需要注意,这些优点的获得不影响实时***的运行可靠性。
在大多数实时***中,用于控制处理操作的执行时间的时间测量和用于描述时间约束的时间测量(进入时间窗口时的切分(découpage))基于相同的源、来自例如电路CLK的时钟电路。然而,此条件并不是必要的。事实上,一些实时***可以通过非规则的外部事件(与时钟信号不相关)以限定时间窗口的余裕。例如,这些外部事件可以涉及移动物体的位置,如变速的曲轴运转的角位,或其周期并非严格不变的交流电信号的相位。
在常规方法中,必须使用非规则的时间基准不能使得一连串任务被容易地构建,这导致了使用动态调度算法。相反,用上面提出的方法,可以用完全相同方式继续。在处理器的执行时间单位中,由第一时钟信号定义的时间要求和配额仍被然表达,然而时间约束以及因此处理操作的先后顺序以非规则的第二信号定义的不同时间基准表达,所述非规则的第二信号例如角度位置测量信号。然而,为了应用可以被调度,两个信号之间存在关联,由此可以确定以第一时钟信号测量的第二信号的时间单位的最小持续时间。在这种情况下,因子Kx的值可以仍然根据该最小值计算。因此,仍然可能是通过因子Kx来倍增要求的方式来定义要求余裕。
根据一个实施例,因子Kx被设置为根据由用第一时钟信号测量的第二信号定义的时间单位的最小持续时间计算的值。其结果是,余裕的各个持续时间是固定的,然而空闲时间变化并且特别是在由第二信号定义的时间单位移出它的最小值的时候是增加的。
因而,与之前在性能与可靠性方面所述的特征和优点相同的特征和优点在其执行时间约束(即,时间窗口)被定义的基础上得以维持而不考虑非规则时间基准的速度变化。
本领域的技术人员应当理解,本发明容易有不同的备选实施例和不同应用。特别地,本发明不限于在时间配额溢出时使用时间余裕来继续处理操作的执行。事实上,其他错误处置操作可以被提供,例如执行处理操作所特有的错误处置操作。
此外,分配给实时应用的处理操作的时间余裕不一定与分配给这些处理操作的时间配额成正比。用于计算时间余裕的各个持续时间的其他模式可以被使用。给定分配的时间配额和余裕以及分配给应用的计算时间资源,唯一重要的是实时应用可以被调度。因而,分配给每个处理操作的余裕可以特别地根据处理操作而定义。
引用的文献
[1]“SchedulingAlgorithmsforMultiprogramminginaHardReal-TimeEnvironment”,C.L.Liu,J.W.Layland,国际计算机协会期刊,1973年1月第1期,第20卷,第46-61页
[2]“FoundationsofReal-TimeComputing:SchedulingandResourceManagement”,editedbyAndréM.VanTilborg,GaryM.Koob,1991年克鲁维尔学术出版社
[3]“AMethodandaTechniquetoModelandEnsureTimelinessinSafetyCriticalReal-TimeSystems”,C.Aussaguès,V.David,关于复杂计算机***工程的第四次IEEE国际会议,1998
[4]专利申请WO/2002/039277或US/2004/0078547
[5]“TheWorst-CaseExecutionTimeProblem-OverviewofMethodsandSurveyofTools”,R.Wilhelm,J.Engblom,A.Ermedahl,N.Holsti,S.Thesing,D.Whalley,G.Bernat,C.Ferdinand,R.Heckmann,T.Mitra,F.Mueller,I.Puaut,P.Puschner,J.Staschulat,P.ACM嵌入式计算***汇刊(TECS),2007
[6]“Giotto:ATime-TriggeredLanguageforEmbeddedProgramming”,T.A.Henzinger,B.Horowitz,C.M.Kirsch,EMSOFT2001,第166-184页,2001,Springer-Verlag.
[7]专利申请WO/2006/050967.
[8]专利申请US/2010/0199280.

Claims (13)

1.一种用于在多任务计算机(RTS)上执行实时应用的任务的方法,每个任务(A,B)包括至少一个处理操作(Ti),该方法包括以下步骤:
定义时间窗口,每个时间窗口与所述应用的任务的处理操作的执行相关,
向具有时间窗口的每个处理操作分配时间配额(Qi)和时间余裕(Mi),通过时间配额和时间余裕分配给处理操作的时间比与所述处理操作相关的时间窗口的持续时间短,
在通过所述多任务***执行所述应用期间,在与其相关的时间窗口的开始激活每个处理操作,
在所述处理操作之一的时间配额期满时,如果所述处理操作的执行还没有被完成,则激活错误模式,
如果错误模式对于所述处理操作之一是激活的,则在通过时间配额和时间余裕分配给所述处理操作的剩余时间内,执行处于错误模式的处理操作的错误处置过程。
2.如权利要求1所述的方法,包括以下步骤:
如果错误模式对于所述处理操作之一是激活的,则继续执行在分配给所述处理操作的时间配额(Qi)期满时其执行没有完成的处理操作(Ti),同时监控分配给所述处理操作的时间余裕(Mi)的期满,
在分配给所述处理操作的时间余裕(Mi)期满时,如果所述处理操作的执行还没有被完成,则结束所述处理操作的执行并执行时间配额溢出错误处置操作。
3.如权利要求1或2所述的方法,包括以下步骤:
将与时间窗口相关的所述处理操作分段为在若干时间窗口上扩展以用于处理所述应用的其他任务,以使得每个时间窗口排他地与所述处理操作或所述处理操作片段相关,
向每个处理操作片段(TA21、TA22)分配时间配额(QA21、QA22)以使得分段的处理操作的所有片段的时间配额的总和等于分段的处理操作的时间配额(QA2),与分段的处理操作(TA2)相关的时间余裕(MA22)与所述分段的处理操作的最后片段(TA22)相关联,
将每个处理操作片段(TA21、TA22)关联到表明它是否为所述分段的处理操作(TA2)的最后片段的状态变量(LF),如果与处理操作片段相关的状态变量表明该处理操作片段不是分段的处理操作(TA2)的最后片段,则在该处理操作片段(TA21)的配额(QA21)期满时错误模式不被激活。
4.如权利要求书1到3之一所述的方法,其中与时间配额(Qi)相关的每个处理操作(Ti)的余裕(Mi)是通过将乘法因子(Kx)施加到处理操作的时间配额上而计算得出,所述乘法因子对于与时间配额相关的所有处理操作是相同的。
5.如权利要求4所述的方法,其中确定乘法因子(Kx)以使得所述应用的任务可以根据处理操作的时间要求、根据与所述处理操作相关的时间窗口、以及根据对计算机(RTS)的特征被调度。
6.如权利要求4或5所述的方法,其中处理操作由通过第一时间基准计时的处理器(PRC)执行,与处理操作(Ti)相关的时间窗口以与第一时间基准相比不规则的第二时间基准定义,第二时间基准中的时间单位具有第一时间基准中的最小值,乘法因子(Kx)根据所述最小值被定义。
7.如权利要求书1到6之一所述的方法,其中每个处理操作(Ti)与表明它是否执行涉及执行该处理操作的处理器(PRC)的输入/输出的状态变量(IO)相关,如果处理操作之一与表明该处理操作不执行任何输入/输出的状态变量相关,则前面处理操作的执行一结束,该处理操作的执行就被启动而无需等待处理操作的时间窗口的开始。
8.一种包括执行实时应用的多任务计算机(RTS)的实时多任务***,所述实时应用包括若干任务,每个任务(A,B)包括至少一个处理操作(Ti),所述***被配置为:
存储时间窗口,所述时间窗口每个都与应用的任务的一组处理操作的执行相关,
为具有时间窗口的每个处理操作存储时间配额(Qi)和时间余裕(Mi),通过时间配额和时间余裕分配给处理操作的时间比与所述处理操作相关的时间窗口的持续时间短,
执行应用的处理操作,并且在处理操作之一的时间配额期满时,如果所述处理操作的执行还没有被完成,则激活错误模式,
如果错误模式对于所述处理操作之一是激活的,则在通过时间配额和时间余裕分配给所述处理操作的剩余时间内,执行处于错误模式的处理操作的错误处置过程。
9.如权利要求8所述的***,被配置为:
如果错误模式对于所述处理操作之一是激活的,继续执行在分配给所述处理操作的时间配额(Qi)期满时其执行没有完成的处理操作(Ti),同时监控被分配给所述处理操作的时间余裕(Mi)的期满,
在所述时间余裕期满时,如果处理操作的执行还没有被完成,则结束所述处理操作的执行并执行时间配额溢出错误处置操作。
10.如权利要求8或9所述的***,被配置为:
存储与时间窗口相关的一些处理操作被进行分段的事实,
为每个处理操作片段存储时间窗口和时间配额,以用于所述处理操作片段的执行,
为每个分段的处理操作的最后片段存储作为相关的时间余裕,所述时间余裕(MA22)与分段的处理操作(TA2)相关,以及
为每个处理操作片段(TA21、TA22)存储状态变量(LF),所述状态变量(LF)表明该片段是否为分段的处理操作(TA2)的最后片段,以及
在所述应用的执行期间,如果与处理操作片段相关的状态变量(LF)表明该片段不是被分段的处理操作(TA2)的最后片段,则在处理操作片段(TA21)的配额(QA21)期满时不激活错误模式。
11.如权利要求书8到10之一所述的***,被配置为通过将乘法因子(Kx)施加到处理操作的时间配额来确定与时间配额(Qi)相关的每个处理操作(Ti)的余裕(Mi),所述乘法因子对与时间配额相关的所有处理操作是相同的。
12.如权利要求11所述的***,包括通过第一时间基准计时以执行处理操作并且接收与第一时间基准相比不规则的第二时间基准的处理器(PRC),该***被配置为以第二时间基准确定与处理操作(Ti)相关的时间窗口,第二时间基准中的时间单位具有第一时间基准中的最小值,乘法因子(Kx)根据最小值被定义。
13.如权利要求书8到12之一所述的***,被配置为:
为每个处理操作(Ti)存储状态变量(IO),所述状态变量(IO)表明该处理操作是否执行涉及执行该处理操作的***的处理器(PRC)的输入/输出,以及
如果处理操作之一与表明处理操作不执行任何输入/输出的状态变量相关,则前面处理操作的执行一结束,该处理操作的执行就被启动而无需等待处理操作的时间窗口的开始。
CN201480021800.XA 2013-04-19 2014-03-17 实时多任务***及其执行方法 Active CN105190556B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1353630 2013-04-19
FR1353630A FR3004825B1 (fr) 2013-04-19 2013-04-19 Procede d'allocation temporelle de taches permettant une recuperation d'erreur deterministe en temps reel
PCT/FR2014/050613 WO2014170569A1 (fr) 2013-04-19 2014-03-17 Procédé d'allocation temporelle de tâches permettant une récupération d'erreur deterministe en temps réel

Publications (2)

Publication Number Publication Date
CN105190556A true CN105190556A (zh) 2015-12-23
CN105190556B CN105190556B (zh) 2019-06-21

Family

ID=48782417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480021800.XA Active CN105190556B (zh) 2013-04-19 2014-03-17 实时多任务***及其执行方法

Country Status (10)

Country Link
US (1) US9645850B2 (zh)
EP (1) EP2987081B1 (zh)
JP (1) JP6424208B2 (zh)
KR (1) KR102209030B1 (zh)
CN (1) CN105190556B (zh)
BR (1) BR112015026331B1 (zh)
CA (1) CA2908951C (zh)
FR (1) FR3004825B1 (zh)
RU (1) RU2648943C2 (zh)
WO (1) WO2014170569A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213027A (zh) * 2018-07-16 2019-01-15 哈尔滨工程大学 一种基于μ/COS-II实时操作***的船用低速共轨柴油机调速单元

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10768984B2 (en) 2015-06-11 2020-09-08 Honeywell International Inc. Systems and methods for scheduling tasks using sliding time windows
KR102079499B1 (ko) * 2015-10-20 2020-02-21 엘에스산전 주식회사 Plc 위치 결정 시스템의 축별 제어주기 독립 할당 방법
JP6838222B2 (ja) * 2016-04-28 2021-03-03 日立Astemo株式会社 車両制御装置、及び車両システム
JP6848340B2 (ja) * 2016-10-25 2021-03-24 株式会社リコー 情報処理システム、更新方法、情報処理装置及びプログラム
US11025722B2 (en) * 2017-04-15 2021-06-01 Microsoft Technology Licensing, Llc IoT device jobs
FR3067482A1 (fr) * 2017-06-12 2018-12-14 Inria Institut National De Recherche En Informatique Et En Automatique Dispositif de caracterisation et/ou de modelisation de temps d'execution pire-cas
EP3537293A1 (de) * 2018-03-09 2019-09-11 Till I.D. GmbH Zeitlich deterministischer mikroprozessor und mikrocontroller
DE102018205390A1 (de) * 2018-04-10 2019-10-10 Robert Bosch Gmbh Verfahren und Vorrichtung zur Fehlerbehandlung in einer Kommunikation zwischen verteilten Software Komponenten
FR3093579B1 (fr) * 2019-03-07 2021-07-30 Thales Sa Ordonnanceur d'evenements pour microprocesseur

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030187907A1 (en) * 2002-03-29 2003-10-02 Takafumi Ito Distributed control method and apparatus
CN1488097A (zh) * 2000-11-13 2004-04-07 �Դ���� 具有错误防护以确定控制和命令型的多任务应用实时运行的安全方法
US20100199280A1 (en) * 2009-02-05 2010-08-05 Honeywell International Inc. Safe partition scheduling on multi-core processors
CN103034554A (zh) * 2012-12-30 2013-04-10 焦点科技股份有限公司 一种纠错重启以及自动判断启动的etl调度***及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5640563A (en) * 1992-01-31 1997-06-17 International Business Machines Corporation Multi-media computer operating system and method
JP2000056989A (ja) * 1998-08-03 2000-02-25 Chokosoku Network Computer Gijutsu Kenkyusho:Kk タスク設計方法
KR20030045024A (ko) * 2001-06-05 2003-06-09 코닌클리케 필립스 일렉트로닉스 엔.브이. 태스크의 진행을 평가하는 방법 및 시스템
JP3859564B2 (ja) * 2002-08-05 2006-12-20 日本電気株式会社 イベント通知タスク制御処理方式及び方法並びにプログラム
JP4122968B2 (ja) * 2002-12-25 2008-07-23 日本電気株式会社 共通資源へのアクセス方式、共通資源へのアクセス方法、及びプログラム
DE102004054571B4 (de) 2004-11-11 2007-01-25 Sysgo Ag Verfahren zur Verteilung von Rechenzeit in einem Rechnersystem
US7971095B2 (en) * 2005-02-16 2011-06-28 Honeywell International Inc. Fault recovery for real-time, multi-tasking computer system
WO2007149228A1 (en) * 2006-06-19 2007-12-27 Diskeeper Corporation Computer micro-jobs
JP5069325B2 (ja) * 2010-03-11 2012-11-07 株式会社豊田中央研究所 タスク実行制御装置及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1488097A (zh) * 2000-11-13 2004-04-07 �Դ���� 具有错误防护以确定控制和命令型的多任务应用实时运行的安全方法
US20030187907A1 (en) * 2002-03-29 2003-10-02 Takafumi Ito Distributed control method and apparatus
US20100199280A1 (en) * 2009-02-05 2010-08-05 Honeywell International Inc. Safe partition scheduling on multi-core processors
CN103034554A (zh) * 2012-12-30 2013-04-10 焦点科技股份有限公司 一种纠错重启以及自动判断启动的etl调度***及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DAMIEN CHABROL等: "A spatial and temporal partitioning approach for dependable automotive systems", 《EMERGING TECHNOLOGIES & FACTORY AUTOMATION,2009. ETFA 2009. IEEE CONFERENCE ON》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109213027A (zh) * 2018-07-16 2019-01-15 哈尔滨工程大学 一种基于μ/COS-II实时操作***的船用低速共轨柴油机调速单元
CN109213027B (zh) * 2018-07-16 2021-07-16 哈尔滨工程大学 一种基于μ/COS-II实时操作***的船用低速共轨柴油机调速单元

Also Published As

Publication number Publication date
EP2987081A1 (fr) 2016-02-24
FR3004825A1 (fr) 2014-10-24
RU2015149621A (ru) 2017-05-24
JP2016519371A (ja) 2016-06-30
KR102209030B1 (ko) 2021-01-28
RU2648943C2 (ru) 2018-03-28
CA2908951C (fr) 2021-06-01
WO2014170569A1 (fr) 2014-10-23
FR3004825B1 (fr) 2015-04-24
US9645850B2 (en) 2017-05-09
KR20160003710A (ko) 2016-01-11
BR112015026331A2 (pt) 2017-07-25
BR112015026331B1 (pt) 2022-05-03
CA2908951A1 (fr) 2014-10-23
JP6424208B2 (ja) 2018-11-14
EP2987081B1 (fr) 2024-05-08
CN105190556B (zh) 2019-06-21
US20160055032A1 (en) 2016-02-25

Similar Documents

Publication Publication Date Title
CN105190556A (zh) 允许确定性的实时错误恢复的任务时间分配方法
US8069444B2 (en) Method and apparatus for achieving fair cache sharing on multi-threaded chip multiprocessors
US6567840B1 (en) Task scheduling and message passing
US8219220B2 (en) Industrial controller using shared memory multicore architecture
CN106773711B (zh) 一种铁路机车运行操纵***的混合任务调度方法及模型
US20140059232A1 (en) Robust tenant placement and migration in database-as-a-service environments
JP2002517035A (ja) リアルタイムスケジューリングロジックおよび時間確定的アーキテクチャを使用する分散コンピューティング環境
US20080013572A1 (en) System and method for executing distributed software
US20050262365A1 (en) P-state feedback to operating system with hardware coordination
CN102591815A (zh) 一种用环形数据缓冲区读写批量数据的方法及装置
Borghesi et al. Scheduling-based power capping in high performance computing systems
EP2693297A1 (en) Strictly increasing virtual clock for high-precision timing of programs in multiprocessing systems
Hilbrich et al. Model-based generation of static schedules for safety critical multi-core systems in the avionics domain
Han et al. Energy efficient fault-tolerant earliest deadline first scheduling for hard real-time systems
Schleiss et al. Generic management of availability in fail-operational automotive systems
Zhao et al. An efficient schedulability analysis for optimizing systems with adaptive mixed-criticality scheduling
EP3295308B1 (en) System and method for multi-level real-time scheduling analyses
US8527999B2 (en) Method, computer program and device for supervising a scheduler for managing the sharing of processing time in a multi-task computer system
Ryu et al. End-to-end design of distributed real-time systems
Rosa et al. The network transparency concept in fieldbus based distributed systems
Ntaryamira et al. Data consistency and temporal validity under the circular buffer communication paradigm
Musliner Scheduling issues arising from automated real-time system design
Colaco et al. mcDVFS: cycle conserving DVFS scheduler for multi-core mixed criticality systems
Colaco et al. Task models for mixed criticality systems-a review
CN114860418A (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
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: France Massey

Patentee after: KRONO-SAFE

Address before: Orsay

Patentee before: KRONO-SAFE

CP02 Change in the address of a patent holder