CN111201513B - 用于执行确保实时任务之间低延迟通信的排序计划的方法 - Google Patents
用于执行确保实时任务之间低延迟通信的排序计划的方法 Download PDFInfo
- Publication number
- CN111201513B CN111201513B CN201880065707.7A CN201880065707A CN111201513B CN 111201513 B CN111201513 B CN 111201513B CN 201880065707 A CN201880065707 A CN 201880065707A CN 111201513 B CN111201513 B CN 111201513B
- Authority
- CN
- China
- Prior art keywords
- execution
- current
- time slot
- time
- list
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 271
- 238000004891 communication Methods 0.000 title claims description 18
- 230000001174 ascending effect Effects 0.000 claims abstract description 5
- 230000001934 delay Effects 0.000 claims description 3
- 230000003068 static effect Effects 0.000 description 8
- 230000000737 periodic effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 108091081062 Repeated sequence (DNA) Proteins 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Multi Processors (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种用于为要在实时系统上执行的多个任务(Tp,Tc)离线构造排序计划的方法,包括以下步骤:将每个任务(Tp,Tc)分解成帧序列,其中,每个帧与具有执行需求(Bp(m))的基本进程(Tp(m))相关联,并且定义该进程可以开始的开始日期(Dp(m))以及该进程必须完成的结束日期(Dp(m+1))或最后期限;将相应顺序约束(C)与进程对(Tp(m),Tc(n))相关联;在与该实时系统的执行单元相关联的时标(S)上投影日期,从而形成时隙序列;顺序解析序列的时隙;在当前时隙内识别合格进程,如果进程满足以下两个标准,则该进程是合格的:i)进程在当前时隙中是可执行的,以及ii)如果进程具有顺序约束,则由该顺序约束引用的进程在当前时隙中也是可执行的,或者该被引用的进程的最后期限在之前的时隙中;按最后期限的递增顺序将合格的进程排序在列表中;修改该列表以根据其顺序约束对进程进行重新排序;以及按照该列表的顺序在当前时隙中分配合格进程的执行需求,以构建排序计划。
Description
技术领域
本发明涉及硬实时多任务系统,更具体地,涉及用于这种系统中的任务间通信的技术。
背景技术
在硬实时(hard real-time)系统中,即在不能容忍任何通过操作的执行中的延迟的最后期限违反的系统中,通常使用静态调度方法来执行任务。然后,离线构造静态排序计划,其表示使用执行资源的需求的静态时间分配。这种方法例如在C.Aussaguès,V.David在1998年第四届IEEE复杂计算机系统工程国际会议(Fourth IEEE InternationalConference on Engineering of Complex Computer Systems,1998)的论文“在安全关键实时系统中建模和确保及时性的方法和技术(A Method and a Technique to Model andEnsure Timeliness in Safety Critical Real-Time Systems)”中以及专利申请WO2006-050967和US2010-0199280中有所描述。
静态排序计划可以包括将在时间共享模式(time-sharing mode)下在执行单元上执行的几个并行任务。任务也可以彼此通信。例如,第一任务可以从传感器进行定期测量,而第二任务可以对产生的测量进行采样以实现控制。
在这样的配置中,延迟可能在生产任务提供数据的时刻和消耗任务读取数据的时刻之间发生。在某些情况下,延迟可能会很大,以至于影响使用产生的数据的控制系统的稳定性或响应性。
发明内容
通常提供一种用于离线构造要在实时系统上执行的多个任务的排序计划的方法,该方法包括以下步骤:将每个任务分解成帧序列,其中,每个帧与具有执行需求的基本进程相关联,并定义该进程可以开始的开始日期和该进程必须完成的结束日期或最后期限;将相应的顺序约束与进程对相关联;将日期投影到与实时系统的执行单元相关联的时标上,从而形成时隙序列;顺序解析该序列的时隙;在当前时隙内识别合格进程,如果某个进程满足以下两个标准,则该进程是合格的:i)进程在当前时隙中是可执行的,并且ii)如果进程具有顺序约束,则由该顺序约束所引用的进程在当前时隙内也是可执行的,或者所引用的进程的最后期限在之前的时隙内;按最后期限的递增顺序将合格的进程排序在列表中;修改该列表以根据其顺序约束对进程进行重新排序;以及按照列表的顺序在当前时隙中分配合格进程的执行需求,以构建排序计划。
该方法可以包括移除由其帧不重叠的两个进程形成的每个对中的顺序约束的初始步骤。
修改列表的步骤和分配执行需求的步骤可以包括以下步骤:顺序地解析进程列表;如果该列表中的当前进程具有引用了在列表中被放置在当前进程之后的进程的顺序约束,则通过将被引用进程移动到当前进程之前来修改列表;从移动的被引用进程的位置开始继续列表解析;否则,将当前进程的执行需求放置在当前时隙中。
放置执行需求的步骤可以包括以下步骤:如果当前时隙具有足够的空间来容纳执行需求,则将执行需求完全放置在该时隙中;否则,用执行需求的第一部分填充当前时隙,并将执行需求的剩余部分推迟放置到随后的时隙中。
该实时系统可以包括多个执行单元。然后,该方法可以进一步包括以下步骤:将时隙序列的副本与每个执行单元相关联,以形成用于每个执行单元的排序计划;将执行单元分配给任务,以便在不同的执行单元上执行通过顺序约束链接的进程;在执行需求放置步骤中:i)将执行需求放置在计划的与当前进程相关联的当前时隙中,并且ii)在计划的与被引用进程相关联的当前时隙中放置与所放置的执行需求相对应的填充间隔,考虑到在两个执行单元之间的数据通信中出现的延迟以及该两个执行单元的时钟之间的偏移,该填充间隔被增加了同步时间。
将执行需求放置在当前时隙中的步骤可以包括将执行需求放置在当前时隙中包含的任何填充间隔中。
还可以提供一种用于在实时多任务系统中执行任务的方法,该方法包括以下步骤:根据上述方法产生多任务排序计划;配置实时多任务系统执行单元以循环应用该排序计划;配置该实时多任务系统的时基(time base)以对该排序计划的时隙计时;按照将对应的执行需求在时隙内的分配的顺序,顺序地运行每个时隙的合格进程;以及检查进程执行时间符合对应的执行需求。
附图说明
相对于附图,将在以下非限制性描述中阐述实施例,其中,:
图1A和1B以称为帧序列的格式示出了可以进行通信的两个任务的示例;
图2A和2B表示从图1B中的任务构造排序计划的两种可能性;
图3A和3B示出表示三个通信任务的示例的一组帧序列,以及使用用于减少或甚至消除通信延迟的方法构造的对应排序计划;
图4A和4B示出了表示两个通信任务的示例的一对帧序列,以及使用用于减少通信延迟的替代方法构造的对应排序计划;以及
图5A和5B示出了表示两个通信任务的示例的一对帧序列,以及使用用于减少或甚至取消通信延迟的方法分别为两个执行单元构造的两个对应的排序计划。
具体实施方式
图1A示出了产生数据的任务Tp的示例和消耗数据的任务Tc的示例,这些任务将在实时系统上并行运行。每个任务都可以按照Krono-Safe的专利申请US2017-0004011中的建议形式化。因此,每个任务被分解成重复帧序列,每个帧与基本进程Tp(m)、Tc(n)(其中,m和n是进程的序列号)相关联。帧的边界由形成该进程的时间约束的同步点或日期Dp、Dc定义。每个进程都可以从第一同步点或开始日期开始,并且必须最迟在第二同步点或最后期限结束。
同步点是根据时基Hp、Hc选择的,该时基在执行期间为实时系统计时。他们通常是周期性的或在周期性顺序中分组。
此外,每个进程都有执行需求(以下记为B),其可以用小于对应帧的长度的时间间隔形式化,其例如是最差情况执行时间(或WCET)。执行需求可以以任何方式在帧中使用,以单个片段或几个不连续的分段,这取决于在静态排序计划的后期构造阶段中实现的约束。
为了建立任务间通信,可以将任务Tp的各个进程设计为产生用于任务Tc的进程的数据。在此,进程Tp(m)产生用于进程Tc(n)的数据。例如,数据通过共享存储器进行交换。因此,通常将进程Tp(m)的结束设计为将数据写入共享存储器,而将进程Tc(n)的开始设计为从共享存储器中读取数据。
在图1A的示例中,进程Tc(n)的开始日期Dc(n)在进程Tp(m)的最后期限Dp(m+1)之后。这意味着进程Tc(n)将始终能够消耗进程Tp(m)产生的数据,但是具有大于Dc(n)-Dp(m+1)的延迟。
在图1B的示例中,进程Tc(n)的开始日期Dc(n)在进程Tp(m)的最后期限Dp(m+1)之前。这意味着不能在所有情况下都保证进程Tc(n)可以消耗进程Tp(m)产生的数据。此外,进程Tc(n+1)的开始日期Dc(n+1)也在最后期限Dp(m+1)之前。在这种情况下,可以可靠地消耗数据的第一个进程是Tc(n+2),其延迟大于Dc(n+2)-Dp(m+1)。
图2A示出了可以通过开发工具从如图1B所示的任务Tp和Tc的帧序列中自动生成的静态排序计划分段。
这样的工具可以被设计为在时标S上投影所有任务的同步点,从而创建连续时隙序列。如果实时系统包括数个处理器核心或执行单元,则该工具将为每个执行单元产生单独的同步点投影。该工具按顺序处理这些时隙以分配进程需求,以便在一些情况下满足(如果可能的话)时间限制,该工具可能找不到解决方案,这意味着开发人员将必须执行新的迭代,例如在减少并行任务的数量或放松约束后。
更具体地,对于观察的每个时隙,该工具列出了对于在该时隙中的执行合格的进程,即可以在观察的时隙中开始或继续的每个进程。实际上,可以在观察的时隙中“继续”的进程是在之前的时隙中开始的进程的其余部分。实际上,一帧可以重叠数个时隙-在这种情况下,对应进程的执行需求可能会在重叠的时隙上碎片化(fragmented)。在运行时,通过操作系统抢占,碎片化(fragmentation)导致对应进程的挂起和恢复,每个挂起和恢复都花费固定的开销来保存和还原进程执行上下文。由于碎片化是静态实现的,因此可以确定固定的开销余量,当检查是否符合时间约束时,可以将固定的开销余量添加到执行需求中。
对于合格的进程,该工具可以在时隙中按给定顺序分配执行需求,优选地以最后期限的递增顺序。如果最后期限相同(当同步点为周期性的或和谐的(harmonic)时这会定期发生),则可以按任意顺序(例如,按进程标识符的字母顺序)分配执行需求。
在图2A中,时隙[Dp(m),Dc(n)]中唯一合格的进程是Tp(m)。该时隙由进程Tp(m)的需求的第一部分Bp1(m)填充。在之后的时隙[Dc(n),Dc(n+1)]中,进程Tc(n)和Tp(m)是合格的。最后期限的顺序意味着,首先要放置进程Tc(n)的需求Bc(n),然后是进程Tp(m)的需求的剩余部分(residue)Bp2(m)。
可以使用常规可用的所有参数和约束获得的此排序计划表明,进程Tp(m)产生的数据不能被进程Tc(n)消耗,这导致了图1A和1B中所示的用于消耗进程的选择。
相反,图2B示出了与图1B中的任务兼容的排序计划,其中,进程Tc(n)可以消耗由进程Tp(m)产生的数据而没有延迟。在此示例中,将剩余部分Bp2(m)放置在需求Bc(n)之前就足够了,如图所示。
(请注意,到目前为止,这些示例是为清楚起见而开发的案例研究。图2A和2B中的案例,其中将通过给定方法获得的结果与所需结果进行比较,得出的解决方案似乎微不足道。然而,这必须通过以下事实来缓解:该解决方案旨在在实际情况下以通用和自动化的方式工作,在这种情况下,将为许多并行任务生成排序计划,每个并行任务可能具有许多处理和通信相互依赖性。)
下面提出一种通过在开发人员选择的进程之间引入由C指定的顺序约束,趋向于图2B所示类型的零延迟排序计划的方法。因此,由帧(开始日期、最后期限和执行需求)形式化的进程可以还通过引用另一个进程的顺序约束来表征。
为了使该方法在实践中有用,通过这样的顺序约束链接的两个进程的帧具有重叠,即,存在共同的时间间隔,其中,两个链接的进程是同时可执行的。结果,两个链接的进程取自两个单独的任务(例如,图1B中的进程Tp(m)和Tc(n)或Tc(n+1))。否则,顺序约束将系统地由时间约束满足,并且将是冗余的(例如,图1A的情况)。
这样形成的一对进程的两个进程以相互约束作为特征,对于一个是在先约束(precedence constraint),对于另一个是在后约束(posteriority constraint)。在先约束要求对应的进程在被引用进程开始之前完成,而在后约束要求对应的进程在被引用进程结束之后开始。根据一个实施例,同一进程可以受到若干顺序约束,这使得可以建立进程之间的依赖关系链,并且通常来说是依赖关系树。
进程对的在后约束和在先约束是相互的(reciprocal),因此,人们可以利用这些相互约束中的仅一个来构造排序计划。在下面的描述中,仅利用在后约束。结果,在每对链接的进程中,只有一个进程具有在后约束,而另一个进程可以被认为没有约束。(等效的替代方法是仅利用在先约束。)
然后,设计开发工具以考虑到这些新约束,以构建集成所有任务的静态排序计划。更具体地,该工具可以在由帧序列和一组在后约束定义的一组并行任务上实现以下步骤:
1.将与任务的同步点相对应的日期投影在相同的时标S上,以获得时隙序列。该时隙序列形成了排序计划的骨架。
2.顺序地解析时隙,并观察当前时隙。
3.当前时隙中识别合格进程的列表,即满足以下两个标准的一组进程:
3.1.该进程是可执行的,也就是说,当前时隙包括在该进程的开始和结束日期之间;以及
3.2.如果该进程具有在后约束C,则该约束所引用的进程也是可执行的(例如,图1B,间隔[Dc(n),Dc(n+1)],假设Tc(n)引用Tp(m)),或者被引用进程的最后期限在之前的时隙中(图1A)。
该标准消除了消耗当前时隙中不可用的数据的任何进程。
在实现了进程之间的依赖关系链的实施例中,该标准可以涉及遍历依赖关系树以确定树中的所有进程都是可执行的。然后,如果树中的至少一个进程不可执行,则将整个树从合格的进程中去除。
4.合格的进程按最后期限的递增顺序排序,并放置在排序的列表中。此列表提供了用于确定其中将对应执行需求放置在排序计划的当前时隙中的顺序的起点。
该列表可能包含通过顺序约束链接的成对的进程,并且不能保证每对进程都以正确的顺序放置(生产者-消耗者)。以下步骤旨在对列表进行重新排序,以便将每个消耗者进程放置在其相应的生产者进程之后。
5.顺序解析已排序的列表,并观察该列表的当前进程。
5.1.如果当前进程没有在后约束,则将与该进程相对应的执行需求放置在当前时隙中。该执行需求可能是来自之前的时隙的剩余部分。剩余部分可能为零,这意味着执行需求已完全放置在之前的时隙中。如果执行需求不能完全放置在当前时隙中,则用执行需求的第一部分填充当前时隙,其余部分则保存以用于之后的时隙。从步骤5开始重复该过程。
在某些情况下,在此阶段,当前时隙的结束可能是当前进程的最后期限,并且该时隙无法包含执行需求。然后,所定义的任务无法在正在考虑的实时系统上并行执行,并且开发人员可能需要重新设计任务。
执行需求优选地从时隙的开始连续地放置,以便在时隙的结束处留下尽可能多的空间。
5.2.如果当前进程具有在后约束:
5.2.1.如果被引用进程在列表中放置在当前进程之前,则列表的顺序是正确的。如步骤5.1中放置当前进程的执行需求,并从步骤5开始重复该过程。
根据情况,列表中的另一个进程可能会将两个相关进程分开。在这种特定情况下,通信延迟将不会为零,但与两个进程可在不同时隙中执行的情况相比,它将大大降低。
5.2.2.如果被引用进程在列表中放置在当前进程之后,则通过将被引用进程移动到当前进程之前(最好是紧接在当前进程之前以实现零延迟通信)来修改列表。通过从列表中的相同位置(现在包含刚刚移动的进程的位置)继续开始,从步骤5开始重复该过程。
在依赖关系序列的情况下,被移动进程也可以具有在后约束,在这种情况下,在重新迭代步骤5.2时,可能发生对列表的新修改。
6.对于之后的时隙,从步骤2重复该方法。
该方法可以包括去除冗余顺序约束(即必须由同步点的配置来遵守(respect)的那些)的初始步骤。这种约束总是发生在具有不重叠帧的进程中。
该方法适用于无限的帧序列。当然,在实际情况下,每个任务是由有限的进程序列(特别是重复序列)定义的。然后,排序计划中几个任务的组合自然会产生一个重复的排序计划,其周期是组成各个任务的重复序列的周期中最小的公倍数,但是也可以产生任意长度的重复的排序计划。在任何一种情况下,当检测到重复的排序计划时,都可以保留该方法的迭代。
这样开发的排序计划被用于配置实时多任务系统,以约束任务的执行。更具体地,执行单元被配置为在无限循环中应用排序计划。系统的时基被设置为产生为时隙计时的同步点。在每个时隙中,执行单元根据时隙中执行需求的放置顺序开始(或恢复)进程。看门狗控制进程的执行时间与对应的执行需求的一致性。
图3A将被用来使用相对复杂的示例来说明上述方法的实现。在该示例中,任务Tp产生由其他两个任务Tc1和Tc2消耗的数据。通过与具有开始日期Dp(m)和最后期限Dp(m+1)的帧相关联的进程Tp(m)来产生该数据。该数据由两个任务Tc1和Tc2的两个相应进程Tc1(n),Tc2(p)消耗,这由在后约束C1和C2形式化。另外,进程Tc1(n)消耗由进程Tc2(p)产生的数据,这由在后约束C3形式化。进程Tc1(n)和Tc2(p)与两个帧相关联,这两个帧与进程Tp(m)具有相同长度且具有相同最后期限Dc1(n+1),Dc2(p+1)。进程Tc1(n)和Tc2(p)的开始日期Dc1(n),Dc2(p)相等并且早于进程Tp(m)的开始日期。
图3B示出了由上述方法步骤的应用产生的排序计划。
在步骤1中,将不同任务的日期在刻度S上投影。在几个相等的日期中,仅指示第一个。
在步骤2的第一次迭代中,观察时隙[Dc1(n),Dp(m)]。
在步骤3中,没有进程被选择为合格。实际上,尽管进程Tc1(n)和Tc2(p)是可执行的,但它们由在后约束C1,C2链接到进程Tp(m),Tp(m)在当前时隙中是不可执行的。如图3B所示,该时隙保持为空。
重复步骤2以观察时隙[Dp(m),Dp(m+1)]。
在步骤3中,根据标准3.1,这三个进程是可执行的。根据标准3.2,它们也是合格的,因为它们没有引用不可执行进程的在后约束。
在步骤4中,将进程放置在列表中,该列表通常按最后期限递增排序。由于最后期限相等,因此以任意顺序(例如,按其标识符的字母顺序)对进程进行排序。该列表将是{Tc1(n),Tc2(p),Tp(m)}。该顺序不正确,并将在后续步骤中校正。
在步骤5中,考虑列表中的第一个进程Tc1(n)。由于该进程具有“在Tp(m)之后”的在后约束C1,因此执行步骤5.2。测试5.2.1失败,并执行步骤5.2.2。结果,将进程Tp(m)移动到进程Tc1(n)之前,从而提供列表{Tp(m),Tc1(n),Tc2(p)}。
继续执行步骤5,以观察列表中的相同位置,该位置现在包含进程Tp(m)。因为进程Tp(m)没有在后约束,所以通过了步骤5.1中的测试。该进程的执行需求Bp(m)可以完全放置在当前时隙的开始,如图3B所示。
继续执行步骤5,以考虑列表中的下一个的进程Tc1(n)。该进程具有“在Tc2(p)之后”的在后约束C2,该进程Tc2(p)尚未被考虑。在步骤5.2.2中,将进程Tc2(p)移动到进程Tc1(n)之前,从而产生列表{Tp(m),Tc2(p),Tc1(n)}。
重复步骤5,以考虑此修改列表中的进程Tc2(p)。此进程通过了步骤5.2.1中的测试,并且执行需求Bc2(p)可以完全放置在当前时隙中,如图3B所示。
对于进程Tc1(n),最后一次重复步骤5。这一次该进程通过了步骤5.2.1中的测试,并且执行需求Bc1(n)可以完全放置在当前时隙中,如图3B所示。
将该方法应用于图1B的示例,假设进程Tc(n)被约束为消耗由进程Tp(m)产生的数据,则实现了图2B的零延迟排序计划。
图4A和4B示出了一种替代技术,该技术可提供考虑了顺序约束的排序计划。
在图4A中,在与图3A的前两个任务相同的条件下考虑了生产者进程Tp(m)和消耗者进程Tc(n)。根据该替代方案,寻求放置与在两个进程之间的顺序约束相关联的中间同步点D'。该点D'旨在代替生产者进程的最后期限Dp(m+1)和消耗者进程的开始日期Dc(n)。如图所示,该同步点可以被任意地放置在从Dp(m)+Bp(m)到Dc(n+1)-Bc(n)的日期范围D'poss中。
在图4B中,同步点可以被投影在时标S上,但是消耗者进程的开始日期Dc(n)和生产者进程的最后期限Dp(m+1)被移位到相同的中间点D'。然后可以以通常的方式按顺序处理生成的时隙,而无需考虑顺序约束,这将提供图4B所示的排序计划。从针对点D'的位置的朝向其变化范围的中心所取的示例可以看出,进程Tp(m)和Tc(n)之间的延迟很短,但不为零。
为了执行这种排序计划,可以为实时系统提供附加的时基,以实现中间同步点D',其然后由开发工具或开发人员从几个离散值中静态选择。但是,这样的过程可以大大减少调度并行任务的可能性的数量。例如,将点D'放置在其范围的开始将趋向于零延迟,但是执行需求Bp(m)将不再具有任何放置余量。
实际上,点D'可以在两个阶段中临时使用。在第一阶段,针对同步点在时标S上的投影,将其放置在其变化范围的结束。这在执行需求分配阶段留出了最大可能的自由来放置执行需求Bp(m)。在将执行需求Bp(m)放置在其时隙[Dp(m),D']中后,将点D'从该时标中去除,导致时隙[Dp(m),D']和[D',Dc(n+1)]合并以用于进一步操作。这增加了放置执行需求Bc(n)的自由度,并且不再要求在实时系统中使用适配的时基。
然后,此过程等效于上述的六步过程。使用此替代方法,获得零延迟通信的可能性较低,但与未使用顺序约束的情况相比,仍然更好。
到目前为止,假设静态排序计划是为单个执行单元或单核处理器构建的。该方法可以扩展到多核处理器。在这种情况下,为每个执行单元复制由时标S定义的时隙序列,并尝试在多个序列中分配所有任务的执行需求,以便为每个执行单元构造排序计划。所产生的时隙序列与执行单元的相应时基或时钟对准。为了清楚起见,在图中假设时钟是相同的。实际上,时钟可以相对于彼此漂移,并且可以通过稍后解释的同步时间tsync考虑时钟之间导致的偏移。
实际上,每个任务都静态分配给同一执行单元。如果因此将两个相互依赖的任务分配给同一执行单元,则上述教导按原样适用。
但是,可以将相互依赖的任务分配给几个不同的执行单元。在这种情况下,该方法如下完成。
在“当前时隙”中放置执行需求的任何引用均指与分配给任务的执行单元相关联的序列的时隙。换句话说,与时标S上相同时隙相对应的所有时隙同时是“当前”时隙,每个执行单元一个当前时隙。
步骤3中建立的进程列表包含所有进程,与分配的执行单元无关。
上述步骤5.2.1重写如下(在原始步骤中添加了方括号[]中的部分):
5.2.1如果被引用进程在列表中在当前进程之前,则列表的顺序是正确的。
[如果被引用进程被分配给不同的执行单元,则将填充间隔tpad放置在当前时隙中。该填充间隔对应于被引用进程的执行需求,或者其剩余部分,如被放置在与另一个执行单元相关联的当前时隙中一样,其增加了上述同步时间tsync。同步时间考虑到执行单元之间通信所需的时间和执行单元的时钟之间的偏移。]
然后将当前进程的执行需求以及任何剩余部分放入时隙中,并从步骤5开始重复该过程。
图5A和5B通过示例示出了由此完成的方法步骤的动机。
图5A类似于图1B,其中,进程Tp(m)产生由进程Tc(n)消耗的数据。进程Tc(n)的开始日期Dc(n)大于进程Tp(m)的开始日期Dp(m)。
图5B示出了分别与任务Tp和Tc以及两个不同的执行单元相关联的两个所产生的排序计划Sp和Sc。
在计划Sp中,将进程Tp(m)的执行需求的第一部分Bp1(m)放置在时隙[Dp(m),Dc(n)]中,将剩余部分Bp2(m)放置在下一个时隙[Dc(n),Dc(n+1)]的开始处。
在计划Sc中,时隙[Dc(n),Dc(n+1)]接收的时间间隔等于放置在计划Sp中的剩余部分Bp2(m),然后是同步时间间隔tsync。这些间隔的总和形成填充间隔tpad。最后,将执行需求Bc(n)放置在此填充间隔tpad之后。如果没有此填充间隔,执行需求Bp(n)可被放置在时隙中太早的部分,在另一个执行单元上的进程Tp(m)结束之前,这种情况在使用单个执行单元进行单个计划时不发生。
然后,将步骤5.1重写如下:
5.1如果当前进程没有在后约束,则将与该进程相对应的执行需求放置在当前时隙中。[如果当前时隙包含填充间隔tpad,则可以使用它来放置执行需求。]执行需求可以是来自之前的时隙的剩余部分。如果执行需求不能完全放置在当前时隙中,则以执行需求的第一部分填充当前时隙,剩余部分被保存以用于下一个时隙。
因此,此步骤利用了由步骤5.2.1的迭代插入的填充间隔。如有必要,可以分解执行需求以填充填充间隔,然后填充当前时隙的结束处的任何剩余空间。
Claims (7)
1.一种用于离线构造用于要在实时系统上执行的多个任务的排序计划的方法,包括以下步骤:
将每个任务分解成帧序列,其中,每个帧与具有执行需求的基本进程相关联,并定义所述进程可以开始的开始日期和所述进程必须完成的结束日期或最后期限;
将相应的顺序约束与进程对相关联;
将所述日期投影到与所述实时系统的执行单元相关联的时标上,从而形成时隙序列;
顺序地解析所述序列的所述时隙;
在当前时隙内识别合格进程,如果进程满足以下两个标准,则该进程是合格的:
-进程在当前时隙中是可执行的,以及
-如果进程具有顺序约束,则由所述顺序约束引用的所述进程在当前时隙中也是可执行的,或者被引用的进程的所述最后期限在前一个时隙中;
按最后期限的递增顺序将所述合格进程排序在列表中;
修改所述列表以根据所述进程的顺序约束来对所述进程进行重新排序;以及
将所述合格进程的所述执行需求按照所述列表的顺序分配在所述当前时隙中,以构建所述排序计划。
2.根据权利要求1所述的方法,包括移除由帧不重叠的两个进程形成的每个对中的顺序约束的初始步骤。
3.根据权利要求1所述的方法,其中,所述修改所述列表的步骤和所述分配所述执行需求的步骤包括以下步骤:
顺序地解析所述进程列表;
如果所述列表中的当前进程具有引用所述列表中被放置在所述当前进程之后的进程的顺序约束,则通过将被引用的进程移动到所述当前进程之前来修改所述列表;
在所移动的被引用的进程的位置处开始继续所述列表解析;
否则,将所述当前进程的所述执行需求放置在所述当前时隙中。
4.根据权利要求2所述的方法,其中,将所述执行需求分配的步骤包括以下步骤:
如果所述当前时隙有足够的空间来容纳当前执行需求,则将所述当前执行需求完全放置在所述当前时隙中;
否则,用所述当前执行需求的第一部分填充所述当前时隙,并将所述当前执行需求的剩余部分的放置推迟到随后的时隙中。
5.根据权利要求3所述的方法,其中,所述实时系统包括多个执行单元,所述方法还包括以下步骤:
将所述时隙序列的副本与每个执行单元相关联以形成用于每个执行单元的排序计划;
将执行单元分配给任务,以使得在不同的执行单元上执行通过顺序约束链接的进程;
在将所述执行需求分配的步骤中:
-将当前执行需求放置在所述计划的与所述当前进程相关联的所述当前时隙中,以及
-在所述计划的与所述被引用的进程相关联的所述当前时隙中放置与所述当前执行需求对应的填充间隔,考虑在两个执行单元之间的数据通信中出现的延迟以及所述两个执行单元的时钟之间的偏移,所述填充间隔被增加同步时间。
6.根据权利要求5所述的方法,其中,所述将所述执行需求放置在所述当前时隙中的步骤包括:将所述执行需求放置在所述当前时隙中包含的任何填充间隔中。
7.一种在实时多任务系统中执行任务的方法,包括以下步骤:
根据权利要求1产生多任务排序计划;
配置实时多任务系统执行单元以循环应用所述排序计划;
配置所述实时多任务系统的时基,以对所述排序计划的所述时隙计时;
按照将对应的执行需求在所述时隙内分配的顺序,顺序地运行每个时隙的所述合格进程;以及
检查进程执行时间符合对应的执行需求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1759487A FR3072197B1 (fr) | 2017-10-10 | 2017-10-10 | Procede d'execution de plans de sequencement assurant une communication a faible latence entre taches temps-reel |
FRFR1759487 | 2017-10-10 | ||
PCT/FR2018/052476 WO2019073156A1 (fr) | 2017-10-10 | 2018-10-08 | Procédé d'exécution de plans de séquencement assurant une communication à faible latence entre tâches temps-réel |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111201513A CN111201513A (zh) | 2020-05-26 |
CN111201513B true CN111201513B (zh) | 2023-12-29 |
Family
ID=61521565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880065707.7A Active CN111201513B (zh) | 2017-10-10 | 2018-10-08 | 用于执行确保实时任务之间低延迟通信的排序计划的方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11249802B2 (zh) |
EP (1) | EP3665571B1 (zh) |
JP (1) | JP7266590B2 (zh) |
KR (1) | KR102602151B1 (zh) |
CN (1) | CN111201513B (zh) |
FR (1) | FR3072197B1 (zh) |
WO (1) | WO2019073156A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200101682A (ko) | 2019-02-20 | 2020-08-28 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
KR102384977B1 (ko) * | 2020-12-07 | 2022-04-07 | 현대오토에버 주식회사 | 멀티 코어 사이의 실시간성을 유지하는 동기화 시스템 및 방법 |
DE102021211440A1 (de) | 2021-10-11 | 2023-04-13 | Vitesco Technologies GmbH | Computerimplementiertes Verfahren und elektronische Steuereinheit für eine deterministische Datenkommunikation in einem partitionierten eingebetteten System |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105144104A (zh) * | 2013-04-09 | 2015-12-09 | 克罗诺安全公司 | 关键实时系统中执行任务的方法 |
CN106951313A (zh) * | 2017-03-02 | 2017-07-14 | 北京工业大学 | 多工作流共享资源协同调度的子期限获取方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0855036A (ja) * | 1994-08-11 | 1996-02-27 | Hitachi Ltd | タスクスケジューリング方法 |
JPH10171667A (ja) * | 1996-12-13 | 1998-06-26 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | タスク管理方法 |
JP2002099432A (ja) * | 2000-09-22 | 2002-04-05 | Sony Corp | 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体 |
JP4057989B2 (ja) * | 2003-09-26 | 2008-03-05 | 株式会社東芝 | スケジューリング方法および情報処理システム |
DE102004054571B4 (de) * | 2004-11-11 | 2007-01-25 | Sysgo Ag | Verfahren zur Verteilung von Rechenzeit in einem Rechnersystem |
JP4074296B2 (ja) * | 2005-03-25 | 2008-04-09 | 株式会社東芝 | スケジューリング可能性判定方法、リアルタイムシステム及びプログラム |
US8316368B2 (en) | 2009-02-05 | 2012-11-20 | Honeywell International Inc. | Safe partition scheduling on multi-core processors |
FR2965947B1 (fr) * | 2010-10-11 | 2019-05-31 | Safran Electronics & Defense Sas | Procede et dispositif d'ordonnancement de taches semi-periodiques dans un systeme multitache temps reel |
FR3015067B1 (fr) * | 2013-12-18 | 2017-03-17 | Krono Safe | Procede de composition et d'execution d'un plan de sequencement de taches temps-reel |
US9796415B2 (en) * | 2014-09-25 | 2017-10-24 | Nsk Ltd. | Control apparatus and control method of on-vehicle electronic equipment |
-
2017
- 2017-10-10 FR FR1759487A patent/FR3072197B1/fr active Active
-
2018
- 2018-10-08 US US16/755,263 patent/US11249802B2/en active Active
- 2018-10-08 CN CN201880065707.7A patent/CN111201513B/zh active Active
- 2018-10-08 WO PCT/FR2018/052476 patent/WO2019073156A1/fr unknown
- 2018-10-08 JP JP2020521334A patent/JP7266590B2/ja active Active
- 2018-10-08 EP EP18801016.9A patent/EP3665571B1/fr active Active
- 2018-10-08 KR KR1020207013241A patent/KR102602151B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105144104A (zh) * | 2013-04-09 | 2015-12-09 | 克罗诺安全公司 | 关键实时系统中执行任务的方法 |
CN106951313A (zh) * | 2017-03-02 | 2017-07-14 | 北京工业大学 | 多工作流共享资源协同调度的子期限获取方法 |
Non-Patent Citations (1)
Title |
---|
Christophe Aussagues等.A Method and a Technique to Model and Ensure Timeliness in Safety Critical Real-Time Systems.IEEE.2002,全文. * |
Also Published As
Publication number | Publication date |
---|---|
FR3072197A1 (fr) | 2019-04-12 |
EP3665571A1 (fr) | 2020-06-17 |
JP2020537269A (ja) | 2020-12-17 |
WO2019073156A1 (fr) | 2019-04-18 |
KR102602151B1 (ko) | 2023-11-15 |
US20210224112A1 (en) | 2021-07-22 |
FR3072197B1 (fr) | 2019-10-11 |
KR20200068702A (ko) | 2020-06-15 |
JP7266590B2 (ja) | 2023-04-28 |
US11249802B2 (en) | 2022-02-15 |
CN111201513A (zh) | 2020-05-26 |
EP3665571B1 (fr) | 2023-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111201513B (zh) | 用于执行确保实时任务之间低延迟通信的排序计划的方法 | |
Guan et al. | Fixed-priority multiprocessor scheduling with liu and layland's utilization bound | |
Tămaş-Selicean et al. | Design optimization of mixed-criticality real-time embedded systems | |
Axer et al. | Response-time analysis of parallel fork-join workloads with real-time constraints | |
Carle et al. | From dataflow specification to multiprocessor partitioned time-triggered real-time implementation | |
CN116562054B (zh) | 一种多实体协同实时仿真系统的构建方法及装置 | |
Ernst et al. | System level LET: Mastering cause-effect chains in distributed systems | |
US10452425B2 (en) | Apparatus and method for processing a plurality of tasks | |
CN109445929A (zh) | 一种调度任务的方法和系统 | |
Klaus et al. | Data propagation delay constraints in multi-rate systems: Deadlines vs. job-level dependencies | |
Lowinski et al. | Splitting tasks for migrating real-time automotive applications to multi-core ecus | |
Lemerre et al. | An introduction to time-constrained automata | |
Kehr et al. | Supertask: Maximizing runnable-level parallelism in autosar applications | |
Höttger et al. | On reducing busy waiting in AUTOSAR via task-release-delta-based runnable reordering | |
Monot et al. | PASA: Framework for partitioning and scheduling automation applications on multicore controllers | |
Åsberg et al. | Prototyping and code synthesis of hierarchically scheduled systems using times | |
KR102261021B1 (ko) | 실시간 태스크 시퀀스 플랜을 구성하고 실행하는 방법 | |
de la Cámara et al. | Model extraction for arinc 653 based avionics software | |
Feiler et al. | Pattern-based analysis of an embedded real-time system architecture | |
Socci et al. | A timed-automata based middleware for time-critical multicore applications | |
Bansal et al. | Optimal implementation of simulink models on multicore architectures with partitioned fixed priority scheduling | |
Thaden | Semi-automatic optimization of hardware architectures in embedded systems | |
Wahler et al. | Reconciling flexibility and robustness in industrial automation systems, and living happily ever after | |
Di Natale | Optimizing the multitask implementation of multirate simulink models | |
Goossens et al. | Partitioned scheduling of multimode multiprocessor real-time systems with temporal isolation |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40028730 Country of ref document: HK |
|
CB02 | Change of applicant information |
Address after: France Massey Applicant after: KRONO-SAFE Address before: Orsay Applicant before: KRONO-SAFE |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |