CN113868142B - 一种多处理器系统aadl模型可调度性分析方法 - Google Patents
一种多处理器系统aadl模型可调度性分析方法 Download PDFInfo
- Publication number
- CN113868142B CN113868142B CN202111171882.4A CN202111171882A CN113868142B CN 113868142 B CN113868142 B CN 113868142B CN 202111171882 A CN202111171882 A CN 202111171882A CN 113868142 B CN113868142 B CN 113868142B
- Authority
- CN
- China
- Prior art keywords
- thread
- threads
- response time
- processor
- intra
- 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
- 238000004458 analytical method Methods 0.000 title abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000004891 communication Methods 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 16
- 230000009191 jumping Effects 0.000 claims description 11
- 230000001360 synchronised effect Effects 0.000 claims description 9
- 238000012795 verification Methods 0.000 abstract description 7
- 230000003993 interaction Effects 0.000 abstract description 2
- 230000003068 static effect Effects 0.000 description 7
- 238000005094 computer simulation Methods 0.000 description 5
- 230000002123 temporal effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000010223 real-time analysis Methods 0.000 description 2
- 101100116973 Mus musculus Dmbt1 gene Proteins 0.000 description 1
- 101100084404 Mus musculus Prodh gene Proteins 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- BULVZWIRKLYCBC-UHFFFAOYSA-N phorate Chemical compound CCOP(=S)(OCC)SCSCC BULVZWIRKLYCBC-UHFFFAOYSA-N 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及一种多处理器系统的AADL模型可调度性分析与验证方法,属于嵌入式软件可信属性验证领域。该方法综合考虑了节点内线程的并发关系、节点间线程的同步关系以及通信时消息的响应时间对线程调度的影响,通过分析AADL模型线程构件与处理器的绑定关系以及绑定在不同处理器上线程构件的交互关系,得到各线程的节点内干扰集和节点间干扰集,通过计算各线程受到节点内线程干扰时的响应时间以及受节点间线程干扰时的干扰时间,进而计算出各线程的最坏响应时间,并将线程的最坏响应时间与其截止期间进行比较,最终根据可调度性判定规则来对多处理器系统AADL模型可调度性进行分析。
Description
技术领域
本发明属于嵌入式软件可信属性验证领域,特别涉及多处理器系统的AADL模型可调度性分析与验证。
背景技术
文献“Automatic Conversion and Verification System Based on AADLScheduling Model,2016 10th International Symposium on Theoretical Aspects ofSoftware Engineering(TASE),2016”提出了一种基于AADL模型的嵌入式实时系统自动转换与验证方法,该方法将AADL模型转换为时间自动机,并利用时间自动机分析工具UPPAAL对转换后的时间自动机进行计算,从而验证AADL模型的可调度性。但是第一,文献提出的方法中,时间自动机的规模会随着线程数的增加而以几何速率增长,分析时间也会急剧增长,因此,在AADL模型比较复杂时,可能会导致可调度性分析十分耗时,甚至是无法分析;第二,文献中的方法只考虑了在一个处理器中线程之间的并发抢占和非抢占两种情况对线程调度的影响,而在多处理器系统AADL模型中,绑定在不同处理器上的线程之间可能通过消息进行通信而具有同步关系,对于具有同步关系的线程,接收线程只有在收到其所有发送线程发送的消息之后才可能运行,因此,文献提出的方法不适用于分析多处理器系统AADL模型的可调度性。
CN111176637A“基于缓存抢占延迟约束下AADL模型的可调度性分析方法”,根据可执行构建分配的存储资源大小初始化构件缓存利用率,并在特定调度算法下获取任务集在一次调度过程中的抢占序列,结合可执行构件的缓存利用率提出了基于抢占序列的CRPD计算方法。CN104598302B“基于资源竞争模型的AADL模型可调度性验证方法”,通过分析AADL架构模型中构件见得交互关系得到线程执行顺序关系,并根据这些连接关系生产进程的并发提集合、线程的干扰集。从而建立系统的可调度性分析模型-资源竞争模型。将线程构件的执行时间属性以及利用资源竞争模型计算得到的响应时间相加,并与线程构件的截止时间属性相比较从而得到系统中各个构件的可调度性,进而分析整个系统的可调度性。但是这两篇专利均只针对单处理器系统AADL模型提出了可调度性分析方法,而无法分析多处理器系统中节点间线程之间的同步关系对系统可调度性的影响。
发明内容
要解决的技术问题
为了克服现有的AADL模型可调度性分析耗时长甚至无法分析以及不支持对节点间线程具有同步关系的多处理器系统进行分析的问题,本发明提供了一种多处理器系统AADL模型可调度性分析方法。
技术方案
一种多处理器系统AADL模型可调度性分析方法,其特征在于步骤如下:
步骤1:建立AADL模型,解析AADL模型并提取出处理器构件、线程构件及其之间的绑定关系,得到处理器集合以及在某一处理器上进行运行的线程集合,处理器集合用PS表示,PS={pro1,pro2,…,pron},处理器proi上所绑定的线程集合用TSi表示,假设proi上绑定了mi个线程,则
步骤2:从AADL模型中提取出任务调度相关的属性,包括线程的执行时间、线程的周期、线程的截止期限、线程的优先级、处理器中线程的调度策略,同时提取出绑定在不同处理器上线程之间的连接关系以及通信相关的属性,包括进行通信的发送线程、接收线程以及消息响应时间;
步骤3:分析各处理器内线程间的并发关系,对于任意一个处理器proi上的任意一个线程Ti,x,对于该处理上任意其他线程Ti,y均与线程Ti,x是并发关系,在特定调度策略下如果线程Ti,y的优先级不低于线程Ti,x的优先级,则将线程Ti,y加入到线程Ti,x的节点内干扰集中,检验完该处理器上所有得线程之后,最终得到该线程Ti,x的节点内干扰集,线程Ti,x的节点内干扰集表示为IntraInteri,x;
步骤4:分析处理器之间线程间的同步关系,对于任意一个处理器proi上的任意一个线程Ti,x,如果任意其他处理器proj上的一个线程Tj,y与线程Ti,x通过连接线直接进行连接,并且连接线的方向为线程Tj,y指向线程Ti,x,表示线程Ti,x只有在收到线程Tj,y发送的消息之后才可能执行,则线程Tj,y与线程Ti,x是节点间同步关系,将线程Tj,y加入到线程Ti,x的节点间干扰集中,找到所有与线程Ti,x之间是节点间同步关系的线程之后,得到线程Ti,x的节点间干扰集,线程Ti,x的节点间干扰集表示为InnerInteri,x;
步骤5:根据公式(1)计算线程受节点内线程干扰下的响应时间:
其中,IntraRTi,x表示线程Ti,x的节点内响应时间,Ei,x表示线程Ti,x的执行时间,Ti,y为线程Ti,x节点内干扰集的任意一个线程,Pi,y表示线程Ti,y的周期,表示在线程Ti,x的节点内响应时间内节点内干扰集中线程Ti,y释放次数的上界;计算过程包括以下子步骤:
步骤5-1:对系统中所有的线程进行遍历,对于每次遍历的线程Ti,x,执行步骤5-2,如果所有的线程的节点内响应时间均计算完成,则跳转到步骤6;
步骤5-2:将IntraRTi,x的初始值设为0;
步骤5-3:将上一次计算的响应时间IntraRTi,x代入公式(1)的右边,如果是第一次计算,则将初始值代入公式(1)的右边,根据公式(1)计算得到新的IntraRTi,x,即公式(1)左边的IntraRTi,x,如果计算得到的新的IntraRTi,x与上一次计算得到的IntraRTi,x相等,则说明该线程的IntraRTi,x已计算完成,继续计算下一个线程的响应时间,跳转到步骤5-1,否则,再次执行步骤5-3;
步骤6:计算部分线程的最坏响应时间,线程Ti,x的最坏响应时间用WCRTi,x表示,对于任意线程Ti,x,如果该线程的节点间同步集InnerInteri,x为空集,即该线程不受其他节点上线程的影响,则其最坏响应时间就是节点内响应时间,即WCRTi,x=IntraRTi,x;
步骤7:计算剩余线程的最坏响应时间,在经过步骤6之后,剩余未计算最坏响应时间的线程Ti,x的节点间干扰集InnerInteri,x均不为空集,即线程Ti,x会受到其他节点中线程的影响,根据以下子步骤计算其WCRTi,x:
步骤7-1:遍历剩余的线程,如果线程Ti,x的同步集中所有线程的最坏响应时间都已经计算完成,则根据公式(2)计算线程Ti,x的受到节点间线程干扰时的干扰时间,其中,InnerITi,x表示线程Ti,x的节点间干扰时间,Tj,y为其节点间干扰集中的任意线程,WCRTj,y为线程Tj,y的最坏响应时间,MTj,y,i,x为线程Tj,y发送给线程Ti,x的消息的响应时间,然后执行步骤7-2,如果线程Ti,x的节点间干扰集中的线程Tj,y的最坏响应时间未计算完成,则先让线程Tj,y执行步骤7-1,如果所有线程的最坏响应时间都已经计算完成,则跳转到步骤8;
步骤7-2:由于线程Ti,x只有在接收到其同步集中所有线程发送的消息之后才能释放进入就绪状态,才可能获得处理器资源进行运行,但在释放之后仍然可能会受到节点内干扰集中的线程干扰,因此在最坏情况下线程Ti,x的最坏响应时间为节点间干扰时间与节点内响应时间之和,根据公式(3)计算线程Ti,x的最坏响应时间,计算完成之后跳转到步骤7-1继续计算下一个线程的最坏响应时间;
WCRTi,x=InnerITi,x+IntraRTi,x (3)
步骤8:将每个线程的最坏响应时间与其截止期限进行比较,得到每个线程的可调度性,进而判断各处理器上线程集合的可调度性以及整个系统的可调度性;所述的可调度性根据下面三条规则进行判定:
规则1:对于一个处理器proi上的线程Ti,x,WCRTi,x是该线程的最坏响应时间,Deadlinei,x是该线程的截止期限属性之,如果满足WCRTi,x≤Deadlinei,x,那么线程Ti,x是可调度的;
规则2:对于一个处理器proi,如果绑定在该处理器上的任意一个线程都是可调度的,那么该处理器上的线程集合TSi是可调度的;
规则3:对于一个多处理器系统,如果任意一个处理器上的线程集合都是可调度的,那么该系统就是可调度的。
一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的方法。
一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现上述的方法。
一种计算机程序,其特征在于包括计算机可执行指令,所述指令在被执行时用于实现上述的方法。
有益效果
本发明提出的一种多处理器系统AADL模型可调度性分析方法,综合考虑了节点内线程的并发关系、节点间线程的同步关系以及通信时消息的响应时间对线程调度的影响,从而支持对节点间线程具有同步关系的多处理器系统进行可调度性分析,同时,本发明不需要将AADL模型转换为时间自动机模型再对其可调度性进行验证,解决了由于AADL模型复杂导致时间自动机规模巨大,可调度性分析耗费时间过长甚至不可分析的问题,本发明提出的方法对于复杂的AADL模型也可以在短时间内完成可调度性的分析。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1是多处理系统AADL模型可调度性分析流程图。
图2是建立的多处理器系统AADL模型。
图3是本发明提出的静态分析方法的可调度性分析结果图。
图4是部分线程在cheddar中动态仿真的调度过程图。
图5是cheddar动态仿真计算出的线程的最坏响应时间图。
图6是静态分析方法与动态仿真分析方法计算出的最坏响应时间的对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明方法综合考虑了节点内线程的并发关系、节点间线程的同步关系以及通信时消息的响应时间对线程调度的影响,其核心思想是通过分析AADL模型线程构件与处理器的绑定关系以及绑定在不同处理器上线程构件的交互关系,得到各线程的节点内干扰集和节点间干扰集,通过计算各线程受到节点内线程干扰时的响应时间以及受节点间线程干扰时的干扰时间,进而计算出各线程的最坏响应时间,并将线程的最坏响应时间与其截止期间进行比较,最终根据可调度性判定规则来对多处理器系统AADL模型可调度性进行分析。
图1为本发明所提出的多处理器系统的AADL模型可调度性分析流程图,具体包括以下八个步骤:
步骤1:建立AADL模型,并从模型中提取处理器集合以及各处理器上绑定的线程集合,图2为建立的多处理器系统的AADL模型,表1中的第1列和第2列分别为从AADL模型中提取的处理器集合和绑定在对应处理器上的线程集合;
表1 AADL模型中提取的调度相关信息
步骤2:从AADL模型中提取出任务调度相关的属性,包括线程的执行时间、线程的周期、线程的截止期限、线程的优先级、处理器中线程的调度策略,调度相关的属性见表1第3~7列,同时提取出绑定在不同处理器上线程之间的连接关系以及通信相关的属性,包括通信中发送线程、接受线程以及消息响应时间,节点间线程通信关系见表2;
表2节点间线程通信关系列表
步骤3:分析各处理器内线程间的并发关系,对于任意一个处理器proi上的任意一个线程Ti,x,对于该处理上任意其他线程Ti,y均与线程Ti,x是并发关系,在特定调度策略下如果线程Ti,y的优先级不低于线程Ti,x的优先级,则将线程Ti,y加入到线程Ti,x的节点内干扰集中,检验完该处理器上所有得线程之后,最终得到该线程Ti,x的节点内干扰集,线程Ti,x的节点内干扰集表示为IntraInteri,x,以线程T1,1为例,与线程T1,1绑定在同一处理器上的其他线程集合有{T1,2,T1,3,T1,4,T1,5,T1,6},在RMS调度策略下,其中线程T1,2、线程T1,3、线程T1,4和线程T1,5的周期是不大于线程T1,1的周期的,因此这四个线程会对线程T1,1造成干扰,因此线程T1,1的节点内干扰集InnerInter1,3={T1,2,T1,3,T1,4,T1,5},以同样的方法可以计算出所有线程的节点内干扰集,各线程的节点内干扰集见表3的第1列;
表3线程干扰集列表
步骤4:分析处理器之间线程间的同步关系,对于任意一个处理器proi上的任意一个线程Ti,x,如果任意其他处理器proj上的一个线程Tj,y与线程Ti,x通过连接线直接进行连接,并且连接线的方向为线程Tj,y指向线程Ti,x,表示线程Ti,x只有在收到线程Tj,y发送的消息之后才可能执行,则线程Tj,y与线程Ti,x是节点间同步关系,将线程Tj,y加入到线程Ti,x的节点间干扰集中,找到所有与线程Ti,x之间是节点间同步关系的线程之后,得到线程Ti,x的节点间干扰集,线程Ti,x的节点间干扰集表示为InnerInteri,x,以线程T2,1为例,线程T2,1需要接受到绑定在处理器Pro1上的线程T1,3和绑定在处理器Pro3上的线程T3,1的消息之后才可能开始执行,因此线程T2,1的节点间干扰集InnerInter2,1={T1,3,T3,1},同理可以计算出线程T3,1的节点间干扰集InnerInter3,1={T1,4}和线程T3,2的节点间干扰集InnerInter3,2={T1,3,T2,4},而其余所有线程由于不需要接收来自于其他处理器上线程发送的消息,因此其余线程的节点间干扰集均为空集,用符号“φ”表示,各线程的节点间干扰集见表3的第3列;
步骤5:根据公式(1)计算线程受节点内线程干扰下的节点内响应时间,计算过程包含以下子步骤:
步骤5-1:对系统中所有的线程进行遍历,对于每次遍历的线程Ti,x,执行步骤5-2,如果所有的线程的节点内响应时间均计算完成,则跳转到步骤6;
步骤5-2:将IntraRTi,x的初始值设为0;
步骤5-3:将上一次计算的响应时间IntraRTi,x代入公式(1)的右边,如果是第一次计算,则将初始值代入公式(1)的右边,根据公式(1)计算得到新的IntraRTi,x,即公式(1)左边的IntraRTi,x,如果计算得到的新的IntraRTi,x与上一次计算得到的IntraRTi,x相等,则说明该线程的IntraRTi,x已计算完成,继续计算下一个线程的响应时间,跳转到步骤5-1,否则,再次执行步骤5-3;
下面以线程T1,6为例来说明线程的节点内响应时间的具体计算过程,首先将初始值IntraRT1,6=0代入公式(1)的右边,通过计算可以得到新计算出的IntraRT1,6=6,与上一次IntraRT1,3不相等,因此需要将IntraRT1,3=6继续代入公式(1)的左边,得到新计算出的IntraRT1,3=42,再次将IntraRT1,3=42代入公式(1)的左边,得到新计算出的IntraRT1,3=55,再次将IntraRT1,3=55代入公式(1)的左边,得到新计算出的IntraRT1,3=55,此时计算出的IntraRT1,3与上一次的IntraRT1,3相等,线程T1,3的节点内响应时间计算完成,即IntraRT1,3=55,以同样方法可以计算出其他各线程的节点内响应时间,各线程的节点内响应时间见表4第2列。
表4已计算的线程相关时间列表
步骤6:计算部分线程的最坏响应时间,线程Ti,x的最坏响应时间用WCRTi,x表示,对于任意线程Ti,x,如果该线程的节点间同步集InnerInteri,x为空集,即该线程不受其他节点上线程的影响,其节点间干扰时间为0,则其最坏响应时间就是节点内响应时间,即WCRTi,x=IntraRTi,x,部分线程的最坏响应时间间表4第4列;
步骤7:计算剩余线程的最坏响应时间,在经过步骤6之后,剩余未计算最坏响应时间的线程Ti,x的节点间干扰集InnerInteri,x均不为空集,即线程Ti,x会受到其他节点中线程的影响,根据以下子步骤计算其WCRTi,x:
步骤7-1:遍历剩余的线程,如果线程Ti,x的同步集中所有线程的最坏响应时间都已经计算完成,则根据公式(2)计算线程Ti,x的节点间干扰时间,如果线程Ti,x的节点间干扰集中的线程Tj,y的最坏响应时间未计算完成,则先让线程Tj,y执行步骤7-1,如果所有线程的最坏响应时间都已经计算完成,则跳转到步骤8;
步骤7-2:根据公式(3)计算线程Ti,x的最坏响应时间,即最坏情况下线程Ti,x的最坏响应时间为节点间干扰时间与节点内响应时间之和,计算完成之后跳转到步骤7-1继续计算下一个线程的最坏响应时间;
在经过步骤6之后,剩余未计算最坏响应时间的线程为线程T2,1、线程T3,1以及线程T3,2,首先计算线程T2,1的节点间干扰时间,由于其节点间干扰集为InnerInter2,1={T1,3,T3,1},并且此时线程T3,1的最坏响应时间并未计算完成,因此要先计算线程T3,1的最坏响应时间,线程T3,1的节点间干扰集为InnerInter3,1={T1,4},线程T1,4的最坏响应时间已经计算完成,可以在表4中找到,线程T1,4给线程T3,1发送的消息的响应时间在表2中可以找到,因此根据公式(2)可以计算出线程T3,1的节点间干扰时间InnerIT3,1=16,再根据公式(3)可以计算出线程T3,1的最坏响应时间WCRT3,1=45,在计算完线程T3,1的最坏响应时间之后便可以根据公式(2)对线程T2,1的节点间干扰时间进行计算,进而根据公式(3)计算其最坏响应时间,同理,线程T3,2的节点间干扰时间和最坏响应时间也是可以计算出来的,计算完成之后各线程的最坏响应时间见表5的第4列。
表5可调度性分析结果
步骤8:将每个线程的最坏响应时间与其截止期限进行比较,得到每个线程的可调度性,进而判断各处理器上线程集合的可调度性以及整个系统的可调度性。可调度性根据下面三条规则进行判定:
规则1:对于一个处理器proi上的线程Ti,x,WCRTi,x是该线程的最坏响应时间,Deadlinei,x是该线程的截止期限属性之,如果满足WCRTi,x≤Deadlinei,x,那么线程Ti,x是可调度的。
规则2:对于一个处理器proi,如果绑定在该处理器上的任意一个线程都是可调度的,那么该处理器上的线程集合TSi是可调度的。
规则3:对于一个多处理器系统,如果任意一个处理器上的线程集合都是可调度的,那么该系统就是可调度的。
通过以上步骤就可以完成对多处理器系统的AADL模型的可调度性分析,各线程的可调度性见表5的第6列,根据各线程的可调度性最终可以判定整个系统AADL模型的可调度性,图3展示了本发明提出的静态分析方法下各处理器上线程的可调度性分析结果,图4和图5为将AADL模型转换为时间自动机模型用实时性分析工具cheddar动态仿真时部分线程的调度过程以及线程的最坏响应时间,图6为静态分析与动态仿真下线程最坏响应时间的对比图,从图6中可以看出本发明提出的静态分析方法计算出的每个线程最坏响应时间都是大于等于动态仿真下计算的结果的,这是因为静态分析下考虑的是最坏情况的线程的响应时间,而动态仿真是根据调度中实际情况进行调度并计算响应时间的,选取线程每一次执行的响应时间的最大值作为最坏响应时间,也就是说如果在静态分析方法下系统是可调度的,那么在动态仿真中则系统必然是可调度,因此,也说明了本发明提出的多处理器系统AADL模型可调度性分析方法的有效性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种多处理器系统AADL模型可调度性分析方法,其特征在于步骤如下:
步骤1:建立AADL模型,解析AADL模型并提取出处理器构件、线程构件及其之间的绑定关系,得到处理器集合以及在某一处理器上进行运行的线程集合,处理器集合用PS表示,PS={pro1,pro2,…,pron},处理器proi上所绑定的线程集合用TSi表示,假设proi上绑定了mi个线程,则
步骤2:从AADL模型中提取出任务调度相关的属性,包括线程的执行时间、线程的周期、线程的截止期限、线程的优先级、处理器中线程的调度策略,同时提取出绑定在不同处理器上线程之间的连接关系以及通信相关的属性,包括进行通信的发送线程、接收线程以及消息响应时间;
步骤3:分析各处理器内线程间的并发关系,对于任意一个处理器proi上的任意一个线程Ti,x,对于该处理上任意其他线程Ti,y均与线程Ti,x是并发关系,在特定调度策略下如果线程Ti,y的优先级不低于线程Ti,x的优先级,则将线程Ti,y加入到线程Ti,x的节点内干扰集中,检验完该处理器上所有得线程之后,最终得到该线程Ti,x的节点内干扰集,线程Ti,x的节点内干扰集表示为IntraInteri,x;
步骤4:分析处理器之间线程间的同步关系,对于任意一个处理器proi上的任意一个线程Ti,x,如果任意其他处理器proj上的一个线程Tj,y与线程Ti,x通过连接线直接进行连接,并且连接线的方向为线程Tj,y指向线程Ti,x,表示线程Ti,x只有在收到线程Tj,y发送的消息之后才可能执行,则线程Tj,y与线程Ti,x是节点间同步关系,将线程Tj,y加入到线程Ti,x的节点间干扰集中,找到所有与线程Ti,x之间是节点间同步关系的线程之后,得到线程Ti,x的节点间干扰集,线程Ti,x的节点间干扰集表示为InnerInteri,x;
步骤5:根据公式(1)计算线程受节点内线程干扰下的响应时间:
其中,IntraRTi,x表示线程Ti,x的节点内响应时间,Ei,x表示线程Ti,x的执行时间,Ti,y为线程Ti,x节点内干扰集的任意一个线程,Pi,y表示线程Ti,y的周期,表示在线程Ti,x的节点内响应时间内节点内干扰集中线程Ti,y释放次数的上界;计算过程包括以下子步骤:
步骤5-1:对系统中所有的线程进行遍历,对于每次遍历的线程Ti,x,执行步骤5-2,如果所有的线程的节点内响应时间均计算完成,则跳转到步骤6;
步骤5-2:将IntraRTi,x的初始值设为0;
步骤5-3:将上一次计算的响应时间IntraRTi,x代入公式(1)的右边,如果是第一次计算,则将初始值代入公式(1)的右边,根据公式(1)计算得到新的IntraRTi,x,即公式(1)左边的IntraRTi,x,如果计算得到的新的IntraRTi,x与上一次计算得到的IntraRTi,x相等,则说明该线程的IntraRTi,x已计算完成,继续计算下一个线程的响应时间,跳转到步骤5-1,否则,再次执行步骤5-3;
步骤6:计算部分线程的最坏响应时间,线程Ti,x的最坏响应时间用WCRTi,x表示,对于任意线程Ti,x,如果该线程的节点间同步集InnerInteri,x为空集,即该线程不受其他节点上线程的影响,则其最坏响应时间就是节点内响应时间,即WCRTi,x=IntraRTi,x;
步骤7:计算剩余线程的最坏响应时间,在经过步骤6之后,剩余未计算最坏响应时间的线程Ti,x的节点间干扰集InnerInteri,x均不为空集,即线程Ti,x会受到其他节点中线程的影响,根据以下子步骤计算其WCRTi,x:
步骤7-1:遍历剩余的线程,如果线程Ti,x的同步集中所有线程的最坏响应时间都已经计算完成,则根据公式(2)计算线程Ti,x的受到节点间线程干扰时的干扰时间,其中,InnerITi,x表示线程Ti,x的节点间干扰时间,Tj,y为其节点间干扰集中的任意线程,WCRTj,y为线程Tj,y的最坏响应时间,MTj,y,i,x为线程Tj,y发送给线程Ti,x的消息的响应时间,然后执行步骤7-2,如果线程Ti,x的节点间干扰集中的线程Tj,y的最坏响应时间未计算完成,则先让线程Tj,y执行步骤7-1,如果所有线程的最坏响应时间都已经计算完成,则跳转到步骤8;
步骤7-2:由于线程Ti,x只有在接收到其同步集中所有线程发送的消息之后才能释放进入就绪状态,才可能获得处理器资源进行运行,但在释放之后仍然可能会受到节点内干扰集中的线程干扰,因此在最坏情况下线程Ti,x的最坏响应时间为节点间干扰时间与节点内响应时间之和,根据公式(3)计算线程Ti,x的最坏响应时间,计算完成之后跳转到步骤7-1继续计算下一个线程的最坏响应时间;
WCRTi,x=InnerITi,x+IntraRTi,x (3)
步骤8:将每个线程的最坏响应时间与其截止期限进行比较,得到每个线程的可调度性,进而判断各处理器上线程集合的可调度性以及整个系统的可调度性;所述的可调度性根据下面三条规则进行判定:
规则1:对于一个处理器proi上的线程Ti,x,WCRTi,x是该线程的最坏响应时间,Deadlinei,x是该线程的截止期限属性之,如果满足WCRTi,x≤Deadlinei,x,那么线程Ti,x是可调度的;
规则2:对于一个处理器proi,如果绑定在该处理器上的任意一个线程都是可调度的,那么该处理器上的线程集合TSi是可调度的;
规则3:对于一个多处理器系统,如果任意一个处理器上的线程集合都是可调度的,那么该系统就是可调度的。
2.一种计算机系统,其特征在于包括:一个或多个处理器,计算机可读存储介质,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1所述的方法。
3.一种计算机可读存储介质,其特征在于存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111171882.4A CN113868142B (zh) | 2021-10-08 | 2021-10-08 | 一种多处理器系统aadl模型可调度性分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111171882.4A CN113868142B (zh) | 2021-10-08 | 2021-10-08 | 一种多处理器系统aadl模型可调度性分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113868142A CN113868142A (zh) | 2021-12-31 |
CN113868142B true CN113868142B (zh) | 2024-02-27 |
Family
ID=79001895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111171882.4A Active CN113868142B (zh) | 2021-10-08 | 2021-10-08 | 一种多处理器系统aadl模型可调度性分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113868142B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100575582B1 (ko) * | 2004-12-20 | 2006-05-03 | 한국전자통신연구원 | 분산 실시간 임베디드 소프트웨어를 위한 정적 실시간성분석 장치 및 그 방법 |
CN104598302A (zh) * | 2015-02-09 | 2015-05-06 | 西北工业大学 | 基于资源竞争模型的aadl模型可调度性验证方法 |
CN107391866A (zh) * | 2017-07-31 | 2017-11-24 | 北京仿真中心 | 一种基于多处理器的aadl模型的可调度性分析方法 |
CN111176637A (zh) * | 2019-12-11 | 2020-05-19 | 西北工业大学 | 基于缓存抢占延迟约束下aadl模型的可调度性分析方法 |
-
2021
- 2021-10-08 CN CN202111171882.4A patent/CN113868142B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100575582B1 (ko) * | 2004-12-20 | 2006-05-03 | 한국전자통신연구원 | 분산 실시간 임베디드 소프트웨어를 위한 정적 실시간성분석 장치 및 그 방법 |
CN104598302A (zh) * | 2015-02-09 | 2015-05-06 | 西北工业大学 | 基于资源竞争模型的aadl模型可调度性验证方法 |
CN107391866A (zh) * | 2017-07-31 | 2017-11-24 | 北京仿真中心 | 一种基于多处理器的aadl模型的可调度性分析方法 |
CN111176637A (zh) * | 2019-12-11 | 2020-05-19 | 西北工业大学 | 基于缓存抢占延迟约束下aadl模型的可调度性分析方法 |
Non-Patent Citations (1)
Title |
---|
针对AADL模型的可调度性分析方法研究;黄英兰;;微处理机;20130630(第03期);第72-77 页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113868142A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113254178B (zh) | 一种任务调度方法、装置、电子设备及可读存储介质 | |
Yalcinkaya et al. | An exact schedulability test for non-preemptive self-suspending real-time tasks | |
CN112363913B (zh) | 一种并行测试任务调度寻优的方法、装置和计算设备 | |
US20230305880A1 (en) | Cluster distributed resource scheduling method, apparatus and device, and storage medium | |
Zhou et al. | Improved carry-in workload estimation for global multiprocessor scheduling | |
CN113868142B (zh) | 一种多处理器系统aadl模型可调度性分析方法 | |
US20020052726A1 (en) | Performance simulation apparatus, performance simulation method, and recording medium containing performance simulation program | |
CN107391866B (zh) | 一种基于多处理器的aadl模型的可调度性分析方法 | |
CN109918181A (zh) | 基于最差响应时间的混合关键系统任务可调度性分析方法 | |
CN110442338B (zh) | 一种结构分析与设计语言aadl模型的仿真方法 | |
CN111124694B (zh) | 一种基于petri网的可达图的死锁检测和解决方法 | |
CN116974994A (zh) | 一种基于集群的高效能文件协作系统 | |
CN104598302A (zh) | 基于资源竞争模型的aadl模型可调度性验证方法 | |
Yang et al. | Study on static task scheduling based on heterogeneous multi-core processor | |
US20240061718A1 (en) | Method and system for managing hybrid spark cluster for efficient spark job execution | |
CN114356534B (zh) | 一种处理单元任务调度方法和装置 | |
Zhou et al. | Response time analysis for tasks with fixed preemption points under global scheduling | |
CN113504966B (zh) | Gpu集群调度策略模拟方法及gpu集群模拟器 | |
Tang et al. | A network load perception based task scheduler for parallel distributed data processing systems | |
CN113821313B (zh) | 一种任务调度方法、装置及电子设备 | |
Matsikoudis et al. | On the schedulability of real-time discrete-event systems | |
CN112882811A (zh) | 一种基于扩展向量模型的软实时周期任务延迟计算方法 | |
CN113094260A (zh) | 一种分布式系统时序关系建模与仿真分析方法 | |
CN105138401A (zh) | 基于线性链表的实时任务可调度性测试直接模拟方法 | |
CN110308988B (zh) | 一种应用于异构计算平台的动态调度方法及系统 |
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 |