一种分布式系统时序关系建模与仿真分析方法

文档序号:25780625发布日期:2021-07-09 09:22阅读:139来源:国知局
一种分布式系统时序关系建模与仿真分析方法

1.本发明涉及分布式嵌入式系统技术领域,特别涉及一种分布式系统时序关系建模与仿真分析方法。


背景技术:

2.当前分布式系统规模不断扩大,系统功能愈加复杂,系统中并发、任务依赖和资源竞争等情况引入更多不确定性,对系统时序建模和分析愈加困难。为解决上述问题,研究一种分布式系统的时序建模和仿真技术,对系统时序相关内容进行建模,包括系统中任务的时间属性、任务间偏序关系、处理器和资源的配置以及处理器间的同步等,并对系统的执行过程进行仿真,获取系统时序的仿真结果,为系统时序关系的设计和优化提供参考。


技术实现要素:

3.为了克服现有技术的不足,本发明提供一种分布式系统时序关系建模与仿真分析方法。首先通过自底向上的方法对分布式嵌入式系统的关键组成部件进行抽象与建模,分别建立各部件的模型,然后建立分布式系统中系统资源与处理器的映射方式、任务之间的偏序关系、处理器间的同步协议等的模型,在对系统进行仿真时,引入虚拟时钟的模型,用以实现对系统中时间的控制,在模型的基础上实现对系统的仿真。
4.本发明解决其技术问题所采用的技术方案的具体实现步骤如下:
5.步骤一、建立处理器模型;
6.首先给出分布式系统处理器模型的描述:
7.processor=<p_id,type,num,preemption,speed,scheduling_strategy,switch_time>
8.其中,p_id为处理器的标识,type表述处理器的类型,num表示此类型处理器的数量,preemption为处理器的抢占性,表示任务在处理器上的执行被抢占或者不能被抢占,speed为处理器运算速率,处理器的运算速率为一个相对值,处理器的运算速率会影响任务的执行时间,任务在运算速率为x1的处理器上的执行时间为c1,则在运算速率为x2处理器上的执行时间c2=c1*(1/x);scheduling_strategy为处理器所使用的调度策略,switch_time任务切换时间,表征每一次抢占所花费的时间;
9.步骤二、建立系统资源模型;
10.建立分布式系统中的各类资源的模型:
11.resource=<preemption,num,type,requesttime,releasetime>
12.其中,preemption为抢占性,表示资源是否可以被抢占;num为资源数量,描述该类资源的数量;type用来区分资源的类型,如共享数据对象、缓冲区、内存等可以使用不同的类型表示;requesttime表示任务请求此资源的时间开销;releasetime表示任务释放该资源的时间开销;
13.步骤三、建立任务模型
14.分布式系统的任务模型分为周期性任务和偶发性任务,系统中周期任务参数包括:任务标识、优先级、任务周期、释放时间、相位、最差执行时间、最差执行时间分布、响应时间、相对时限、绝对时限、利用率、时间裕量、阻塞时间、所在处理器和资源需求;偶发性任务参数包括任务标识、优先级、释放时间、抖动、最小时间间隔、最差执行时间、最差执行时间分布、响应时间、相对时限、绝对时限、时间裕量、阻塞时间、所在处理器和资源需求;
15.步骤四、建立通信网络与信息传递模型;
16.将分布式系统中的网络连接抽象为网络处理器,将分布式系统不同网络节点之间的信息传递抽象为消息传输任务;
17.网络处理器的模型为:
18.networkprocessor=<scheduling_strategy,bandwidth>
19.其中:scheduling_strategy表示网络处理器中使用的调度策略;bandwidth表示网络带宽;
20.消息传输任务的模型为:
21.messagetask=<t_id,wcet,bandwidth,sourceprocessor,destionprocessoor>
22.其中t_id表示消息传输任务的标识,wcet表示消息传输任务的最差执行时间,bandwidth表示执行该任务需要的带宽,sourceprocessor表示发出该消息的处理器,destionprocessoor表示接受该消息的处理器;
23.步骤五、端到端事务(end

to

end transaction)建模
24.定义完成一个特定功能的任务的集合,称为端到端的事务,简称事务;
25.transaction=<sequences,release_time,deadline,response_time,utilization>
26.式中,sequences表示该事务中的任务序列,不仅描述所包含的任务,还约束了任务的前后关系;release_time为事务的释放时间,使用第一个任务的释放时间来进行表示,deadline为事务的截止时间,使用最后一个任务的截止时间表示,事务的响应时间response_time为所有任务的执行时间之和,utilization利用率为所有任务的执行时间与最后一个任务截止时间和第一个任务释放时间之差的比值;
27.步骤六、任务的偏序关系;
28.对于任务间的偏序关系,包括以下几种类型:
29.前驱、后继、直接前驱、直接后继、and/or前驱、and/or后继;
30.如果任务k在任务t执行完成之前不能开始执行,则称任务t为任务k的前驱,任务k为任务t的后继,使用“<”描述任务之间的先后约束关系,即t<k;
31.直接前驱:如果任务t执行完成之后,k即可执行,则称t为k的直接前驱,称k为t的直接后继;
32.and/or前驱约束:如果一个任务存在多个直接前驱,那么在它所有的直接前驱完成之前必须等待,然后才能执行,则称为这样的任务为and任务,他们之间的依赖关系称为and优先约束。与and优先约束相反,如果只要任务的一个或者一部分直接前驱已经完成,那么此任务在它的释放时间之后即可执行,则称此任务为or任务。
33.and/or后继约束:在传统的模型中,一个任务所有的直接后继都必须执行,所有的约束都是and约束。如果一个任务的直接后继为or约束,那么此任务只有部分直接后继执
行,如果直接后继只有一个需要执行,则称该任务为条件块。
34.任务之间的偏序关系使用任务图进行描述;
35.步骤七、时间距离约束建模;
36.任务之间不仅有顺序约束,在某些情况下要求两个任务完成时间的差值在一定的范围之内,定义时间距离来描述此种情形,时间距离的模型如下:
37.temporaldistance=<pretask,tdistance,sutask>
38.其中,pretask表示前序任务;tdistance表示两个任务之间的时间距离;sutask表示后序任务。
39.步骤八、系统级时序仿真
40.在完成分布式系统建模的基础上,基于以上模型对系统的执行过程进行仿真。
41.所述步骤八的仿真步骤如下:
42.1)定义系统全局时钟和局部时钟,时钟的时刻随着仿真步长的增加而增加;
43.2)按照预先设定的调度算法对处理器上的任务进行调度执行;
44.3)在每一个仿真步长内将任务执行的顺序关系和时间属性与系统模型进行比较,如果未出现违背,则继续下一个仿真步长,如果出现违背,则停止仿真;
45.4)在仿真过程使用局部时钟记录每一个任务的响应时间、阻塞时间,端到端事务的响应时间;使用全局时钟记录任务的释放时刻、任务执行的时间区间、任务的完成时刻,端到端事务的释放时刻和完成时刻;
46.5)记录系统中不同类型资源随着时间变化的使用量。
47.本发明的有益效果是通过对分布式系统进行抽象与建模,得到一个系统模型来描述分布式嵌入式系统,分别建立系统的处理器、资源、任务、通信网络及消息传递、端到端事务、任务偏序关系、时间距离约束的模型,通过系统仿真分析得到分布式嵌入式系统的各类时间指标、资源使用情况、任务时序关系等信息,根据以上信息验证系统执行过程是否满足预定要求,据此判断系统任务序列编排、处理器和资源配置等结果是否合理,是否能够满足设计要求,对设计人员提供量化的指导,帮助设计人员对系统资源与任务进行合理规划。
附图说明
48.图1是本发明资源配置图。
49.图2是本发明系统任务图。
50.图3是本发明系统仿真分析过程示意图。
具体实施方式
51.下面结合附图和实施例对本发明进一步说明。
52.参照图1

图3,本发明关于分布式系统时序关系建模与仿真分析方法步骤如下:
53.步骤一、建立处理器的模型
54.建立分布式系统中处理器的集合,处理器集合如下式所示,其中n表示系统中处理器的数量:
55.processors=<processor1,processor2,...,processor
n
>
56.每一个处理器的模型描述如下:
57.processor=<p_id,type,num,preemption,speed,scheduling_strategy,switch_time>
58.其中:p_id为处理器的标识,type表述处理器的类型,num表示此类型处理器的数量,preemption为处理器的抢占性,表示任务在处理器上的执行被抢占或者不能被抢占,speed为处理器运算速率:处理器的运算速率为一个相对值,处理器的运算速率会影响任务的执行时间,任务在运算速率为x1的处理器上的执行时间为c1,则在运算速率为x2处理器上的执行时间c2=c1*(1/x);scheduling_strategy为处理器所使用的调度策略,switch_time任务切换时间,表征每一次抢占所花费的时间。
59.步骤二、建立系统资源模型
60.建立分布式系统中的各类资源的模型:
61.resource=<preemption,num,type,requesttime,releasetime>
62.其中,preemption为抢占性,表示资源是否可以被抢占;num为资源数量,描述该类资源的数量;type用来区分资源的类型,如共享数据对象、缓冲区、内存等可以使用不同的类型表示;requesttime表示任务请求此资源的时间开销;releasetime表示任务释放该资源的时间开销。
63.步骤三、任务模型
64.分布式系统中的任务包括周期性任务和偶发性任务:
65.1)周期性任务
[0066][0067]
2)偶发性任务:
[0068][0069]
步骤四、建立通信网络与信息传递模型
[0070]
将分布式系统中的网络连接抽象为网络处理器,将分布式系统不同网络节点之间的信息传递抽象为消息传输任务,消息传输任务所使用的调度算法类似于使用处理器调度的优先级驱动算法。在所有情况下,可以通过在模型中包含网络处理器和消息传输任务,将处理器间通信开销计算在内,而无需单独用特殊的方法考虑这些因素,简化分析过程。
[0071]
网络处理器的模型为:
[0072]
networkprocessor=<scheduling_strategy,bandwidth>
[0073]
其中:scheduling_strategy表示网络处理器中使用的调度策略;bandwidth表示网络带宽。
[0074]
消息传输任务的模型为:
[0075]
messagetask=<t_id,wcet,bandwidth,sourceprocessor,destionprocessoor>
[0076]
其中t_id表示消息传输任务的标识,wcet表示消息传输任务的最差执行时间,bandwidth表示执行该任务需要的带宽,sourceprocessor表示发出该消息的处理器,destionprocessoor表示接受该消息的处理器。
[0077]
步骤五、端到端事务(end

to

end transaction)建模
[0078]
定义完成一个特定功能的任务的集合,称为端到端的事务,简称事务。
[0079]
transaction=<sequences,release_time,deadline,response_time,utilization>
[0080]
式中,sequences表示该事务中的任务序列,不仅描述所包含的任务,还约束了任务的前后关系;release_time为事务的释放时间,使用第一个任务的释放时间来进行表示,deadline为事务的截止时间,使用最后一个任务的截止时间表示,事务的响应时间
response_time为所有任务的执行时间之和,utilization利用率为所有任务的执行时间与最后一个任务截止时间和第一个任务释放时间之差的比值。
[0081]
步骤六、任务的偏序关系
[0082]
对于任务间的偏序关系,包括以下几种类型:
[0083]
前驱、后继、直接前驱、直接后继、and/or前驱、and/or后继。
[0084]
如果任务k在任务t执行完成之前不能开始执行,则称任务t为任务k的前驱,任务k为任务t的后继。使用“<”来描述任务之间的先后约束关系,即t<k。
[0085]
直接前驱:如果任务t执行完成之后,k即可执行,则称t为k的直接前驱,称k为t的直接后继。
[0086]
and/or前驱约束:如果一个任务存在多个直接前驱,那么在它所有的直接前驱完成之前必须等待,然后才能执行,则称为这样的任务为and任务,他们之间的依赖关系称为and优先约束。与and优先约束相反,如果只要任务的一个或者一部分直接前驱已经完成,那么此任务在它的释放时间之后即可执行,则称此任务为or任务。
[0087]
and/or后继约束:在传统的模型中,一个任务所有的直接后继都必须执行,所有的约束都是and约束。如果一个任务的直接后继为or约束,那么此任务只有部分直接后继执行,如果直接后继只有一个需要执行,则称该任务为条件块。任务之间的偏序关系使用任务图进行描述。
[0088]
步骤七、时间距离约束建模
[0089]
任务之间不仅有顺序约束,在某些情况下要求两个任务完成时间的差值在一定的范围之内,定义时间距离来描述此种情形,时间距离的模型如下:
[0090]
temporaldistance=<pretask,tdistance,sutask>
[0091]
其中,pretask表示前序任务;tdistance表示两个任务之间的时间距离;sutask表示后序任务。
[0092]
步骤八、系统级时序仿真
[0093]
在完成分布式系统建模的基础上,基于以上模型对系统的执行过程进行仿真,步骤如下:
[0094]
1)定义系统全局时钟和局部时钟,时钟的时刻随着仿真步长的增加而增加;
[0095]
2)按照预先设定的调度算法对处理器上的任务进行调度执行;
[0096]
3)在每一个仿真步长内将任务执行的顺序关系和时间属性与系统模型进行比较,如果未出现违背,则继续下一个仿真步长,如果出现违背,则停止仿真;
[0097]
4)在仿真过程使用局部时钟记录每一个任务的响应时间、阻塞时间,端到端事务的响应时间;使用全局时钟记录任务的释放时刻、任务执行的时间区间、任务的完成时刻,端到端事务的释放时刻和完成时刻;
[0098]
5)记录系统中不同类型资源随着时间变化的使用量。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1