CN102520925B - Aadl2tasm模型转换方法 - Google Patents

Aadl2tasm模型转换方法 Download PDF

Info

Publication number
CN102520925B
CN102520925B CN201110369259.XA CN201110369259A CN102520925B CN 102520925 B CN102520925 B CN 102520925B CN 201110369259 A CN201110369259 A CN 201110369259A CN 102520925 B CN102520925 B CN 102520925B
Authority
CN
China
Prior art keywords
thread
model
rule
state
conversion
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
CN201110369259.XA
Other languages
English (en)
Other versions
CN102520925A (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN201110369259.XA priority Critical patent/CN102520925B/zh
Publication of CN102520925A publication Critical patent/CN102520925A/zh
Application granted granted Critical
Publication of CN102520925B publication Critical patent/CN102520925B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种模型转换方法,用于将AADL模型转换为TASM模型,使用KM3描述源语言AADL的元模型,使用KM3描述目标语言TASM的元模型,针对AADL模型中的线程构件、分发器、模式变换、调度器,分别使用线程构件的转换方法、分发器构件的转换方法、模式变换的转换方法和调度器构件的转换方法,将AADL模型转换为TASM模型。

Description

AADL2TASM模型转换方法
技术领域
本发明涉及AADL2TASM模型转换方法,尤其涉及将AADL模型转换为TASM模型的方法。
背景技术
复杂嵌入式实时系统广泛应用于航空电子、航天器、汽车控制等领域,这些系统具有资源受限、实时响应、容错、专用硬件等特点,对实时性、可靠性等性质有较高的要求,由于计算精度、实时响应的要求,这类系统变得越来越复杂,如何设计与实现高质量的复杂嵌入式实时系统,并有效控制开发时间与成本,是大家共同关心的一个问题。
模型驱动开发方法(Model Driven Development,简称MDD)能够在早期阶段对系统进行分析与验证,有助于保证系统的质量属性,并有效控制开发时间与成本。模型转换为模型驱动设计开发方法的核心,它是指将一种语言描述的模型转换成另外一种语言描述的模型。它被认为是基于模型驱动的复杂嵌入式实时系统设计与实现的基础。
AADL是针对复杂嵌入式实时系统而提出的一种体系结构分析与设计语言。它认为是基于模型驱动的复杂嵌入式实时系统设计与实现的基础。
目前已有很多基于AADL的模型转换。法国Verimag实验室提出了AADL到BIP(Behavior InteractionPriority)的模型转换,,BIP是Verimag提出的实时系统建模语言,采用自动机的方式描述行为,并支持异构构件之间的组合;Pennsylvania大学提出AADL到时间进程代数ACSR的模型转换,。ACSR的优点是能够支持资源竞争的描述,使其能够支持更精确的可调度分析。但对线程层次的语义还不够完整,也不能支持模式变换、分区、BehaviorAnnex的转换;Verimag实验室将AADL转换到同步语言Lustre,其它的转换还包括AADL到IF模型的转换、AADL到Petri Net的转换、AADL到Fiacre的转换、AADL到UMLMarte的转换,等。
下表是各基于AADL的模型转换的对比。
AADL模型转换对象比较
Figure BDA0000109870730000011
从该对比中,我们发现,各目标语言都有它们各自的优缺点,而且它们的转换集中在线程构件层次,由于TASM较好的可读性以及可以表示资源,我们选用TASM作为目标语言,重点针对AADL模型的模式变换构件以及调度器构件进行转换。
发明内容
本发明提供一种模型转换方法,用于将AADL模型转换为TASM模型,其特征在于:
使用KM3描述源语言AADL的元模型;
使用KM3描述目标语言TASM的元模型;
针对AADL模型中的线程构件、分发器、模式变换、调度器,分别使用线程构件的转换方法、分发器构件的转换方法、模式变换的转换方法和调度器构件的转换方法,将AADL模型转换为TASM模型。
所述AADL的元模型包括:
AadlSpec:AADL模型的根节点,包括25个属性,其中包括AADL模型的名字等基本信息以及该模型中所有构件的类型(type)和实现(implementation);
SystemType:描述系统的基本信息;
SystemImpl:与SystemType等级相同,都是AadlSpec的分支节点,该节点是对之前声明的SystemType进行实例化,该节点声明该系统实例中包含的子构件和连接,所包含的子构件包含硬件构件和/或软件构件,硬件构件包括用户定义的设备和处理器,软件构件主要是线程,所声明的连接是端口到端口的数据通信,此外还定义处理器与线程的绑定关系,规定线程在系统运行时对应的处理器;
ProcessorType:AadlSpec下的分支节点,主要描述声明的处理器的基本信息;
ProcessorImpl:与ProcessorType等级相同,都是直属于AadlSpec的分支节点,是对ProcessorType的实例化;
ProcessType:AadlSpec下的一个分支节点,主要描述声明的进程的基本信息;
ProcessImpl:与ProcessType等级相同,都是直属于AadlSpec的分支节点,是对ProcessType的实例化,定义该线程实例中包含的线程、线程组以及数据端口间的通信关系;
ThreadType:AadlSpec下的一个分支节点,定义一个线程的属性,包括该线程的调度协议,如果是周期性线程,还包括计算执行时间、时间限和周期表,定义线程的输入输出端口;
ThreadImpl:与ThreadType等级相同,都是直属于AadlSpec的分支节点,是对ThreadType的实例化。
所述TASM的元模型包括:
tasm:TASM模型的根节点,其属性中包括该TASM模型的版本信息;
Project:tasm下辖的节点,包含TASM模型名称、模型描述、模型ID号;
Environment:tasm下辖的节点,是保存TASM模型的类型、资源、管道、变量的部分,其下辖的节点为:
types:用户自定义的类型;
tsrcs:用户定义的资源;
chans:用户定义的管道;
vars:用户声明的变量,并且初始化;
Systems:tasm下辖的节点,保存TASM模型主状态机(Main Machine)和变量的初始化信息;
Mainmachines:tasm下辖的节点,是Main Machine的集合,下辖一定数量的Main Machine节点Machineasm,其中Machineasm下的各主要节点为:
cvars:Main Machine有权限修改的变量;
mvars:Main Machine有权限读取的变量;
ivars:Main Machine的内部变量;
cons:Main Machine的构造公式;
rls:Main Machine的规则集;
Submachines:tasm下辖的节点,是子状态机(Sub Machine)的集合,下辖一定数量的Sub Machine节点Submachines,其中Submachines下的各主要节点为:
cvars:Sub Machine有权限修改的变量;
mvars:Sub Machine有权限读取的变量;
ivars:Sub Machine的内部变量;
cons:Sub Machine的构造公式;
rls:Sub Machine的规则集;
Functionmachines:tasm下辖的节点,是功能状态机(Function Machine)的集合,下辖一定数量的Function Machine节点Functionmachines,其中Functionmachines下的各主要节点为:
cvars:Function Machine有权限修改的变量;
mvars:Function Machine有权限读取的变量;
ivars:Function Machine的内部变量;
cons:Function Machine的构造公式;
rls:Function Machine的规则集;
上述三种状态机Mainmachines、Submachines和Functionmachines均具有规则集rls,规则集rls节点下辖若干规则节点rl,其中rl下的主要节点为:
rtime:执行该规则所消耗的时间,可以是固定值、区间值或者关键字next;
rrscs:执行该规则时所消耗或占用的各种资源;
guard:规则的If条件语句;
effect:满足规则If条件语句时执行的动作。
所述线程构件的转换方法将一个线程表示成一个状态机,该状态机包含以下规则:
Initialization规则:用来处理系统加载进程,表示线程初始化的状态变迁;
Acitvation规则:用来处理线程和模式变换的同步关系,处于当前模式的线程为激活Active状态,否则处于非激活Inactive状态;
Dispatch规则:用来处理线程等待分发的情况;
Waiting Execution规则:用来处理线程等待调度的情况;
Execution规则:此规则的执行时间为最长执行时间(WCET),所述WCET为AADL模型中线程构件的一个属性,其值表示线程一个周期内最长执行时间,该规则抽象表示线程执行;
Write Dtate规则:线程执行完成之后,直接将输出端口的数据写入接收线程的的输入端口当中;
Waiting Next Event规则:用于处理当条件不满足而需要等待的情况。
所述分发器构件的转换方法包括以下规则:
dispatch规则:在分发器处于可被分发(dispatched)状态时,分发线程,并让该自动机重新进入不可被分发(undispatched)状态;
required规则:主要用于分发器在undispatched状态时,重新等待分发条件的满足;
mode_change规则:用于当分发器处于dispatched状态时,判断是否已离开当前状态,如果是,则进入到非当前模式(unactivation)的状态,从unactivation的状态到dispatched状态变迁在模式自动机里有表示;
waiting规则:用于与其它状态机同步。
所述模式变换的转换方法包括以下规则:
hyperperiod规则:表示旧模式的超周期,执行时间为旧模式下所有关键线程周期的最小公倍数;
oldmode_has_mcr规则:在同步点检测到有模式变换请求,并将系统状态变到模式变换过程中,使旧模式下的线程的状态设为不处于当前模式状态,新模式下的线程的状态设为处于当前模式状态;
oldmode_hasnot_mcr规则:在同步点检测到没有模式变换请求到来,重新开始新一次旧模式的超周期;
inprogress规则:表示从旧模式到新模式的模式变换过程,执行时间为模式变换超周期,即新模式下关键线程的周期与删除僵尸线程的时间之和。
所述调度器的转换方法包括以下规则:
schedule规则:表示线程能被执行,将处理器分发给该线程;
pass规则:表示线程不能马上执行,需要将令牌分发下去。
附图说明
图1:模型转换的总体框架
图2:AADL元模型结构图
图3:TASM元模型结构图
图4:线程状态机
图5:分发器状态机
图6:模式变换时序图
图7:调度器的表示方法
具体实施方式
下面将结合附图对本发明作进一步的说明:
本发明涉及到一个AADL2TASM模型转换工具,该模型转换工具对任意AADL模型,都能自动将其转换到相应的TASM模型。该模型转换工具的源语言AADL是一种针对复杂嵌入式实时系统的体系结构建模与分析语言,它能提供一种标准、精确的方式,设计与分析嵌入式实时系统的软、硬件体系结构及功能与非功能性质,采用单一模型支持多种分析的方式,将系统设计、分析、验证、自动代码生成等关键环节融合于统一框架之下。该模型转换工具的目标语言TASM是一种广泛应用于软、硬件系统设计的形式化描述语言,它支持嵌入式实时系统的功能行为、时间属性以及资源消耗的描述和验证。
1)工具总体概述
该模型转换工具,基于ATL模型转换技术,要完成该模型转换工具,定义源语言AADL与目标语言的元模型,元模型是以面向对象的思想描述一种语言的语法结构,从而使模型转换时,能根据其相应的语法元素,进行相对应的转换。针对模型转换的特点,使用了KM3重新描述了AADL和TASM的元模型(语法结构)。
2)AADL元模型
AADL语言是一种语法结构比较复杂,模块化的实时系统体系结构设计语言。根据模型转换工具特性,简化了AADL的语法图,并使用KM3对其进行了描述,如图2是AADL元模型的框架图。
●AadlSpec:AADL模型的根节点,包括25个属性,其中包括AADL模型的名字等基本信息以及该模型中所有构件的类型(type)和实现(implementation);
●SystemType:主要描述系统的基本信息,比如系统名称,系统中包括哪些子构件等;
●SystemImpl:SystemImpl与SystemType等级相同,都是AadlSpec的分支节点,该节点是对之前声明的SystemType进行实例化。该节点声明该系统实例中包含的子构件和连接,所包含的子构件可包含硬件构件和/或软件构件,硬件构件包括用户定义的设备和处理器,软件构件主要是线程,所声明的连接是端口到端口的数据通信,此外还定义了处理器与线程的绑定关系,规定了线程在系统运行时对应的处理器;
●ProcessorType:AadlSpec下的一个分支节点,主要描述声明的处理器的基本信息;
●ProcessorImpl:ProcessorImpl与ProcessorType等级相同,都是直属于AadlSpec的分支节点,ProcessorImpl是对ProcessorType的实例化;
●ProcessType:AadlSpec下的一个分支节点,主要描述声明的进程的基本信息,比如进程名称,数据端口等;
●ProcessImpl:ProcessImpl与ProcessType等级相同,都是直属于AadlSpec的分支节点,ProcessImpl是对ProcessType的实例化,定义该线程实例中包含的线程,线程组以及数据端口间的通信关系;
●ThreadType:AadlSpec下的一个分支节点,定义一个线程的属性,包括该线程的调度协议,如果是周期性线程,还会包括计算执行时间、时间限和周期表,还会定义线程的输入输出端口;
●ThreadImpl:ThreadImpl与ThreadType等级相同,都是直属于AadlSpec的分支节点,ThreadImpl是对ThreadType的实例化。
以上各节点还下辖很多节点,并且很多节点有多个父节点,因此在使用KM3语言对AADL元模型进行描述时,通过使用抽象类和多重引用的方法实现代码重用,同时体现了AADL语言的层级关系和模块化。
3)TASM元模型
TASM用比较精简的概念来描述实时系统,TASM中状态机主状态机(Main Machine)、功能状态机(Function Machine)和子状态机(Sub Machine)是描述实时系统的主体,其元模型的结构图如图3所示。
下面将模块化地介绍TASM元模型。
●tasm:tasm是TASM模型的根节点,可以从其属性中得到该TASM模型的版本信息;
●Project:tasm下辖的节点,包含TASM模型名称、模型描述、模型ID号等信息;
●Environment:tasm下辖的节点,是保存TASM模型的类型、资源、管道、变量等信息的部分,下面分别介绍其下辖的节点:
Figure BDA0000109870730000051
types:用户自定义的类型;
Figure BDA0000109870730000052
rsrcs:用户定义的资源,比如内存,处理器;
Figure BDA0000109870730000061
chans:用户定义的管道;
Figure BDA0000109870730000062
vars:用户声明的变量,并且初始化;
●Systems:tasm下辖的节点,保存TASM模型主状态机(Main Machine)和变量的初始化信息;
●Mainmachines:tasm下辖的节点,是Main Machine的集合,下辖一定数量的Main Machine节点Machineasm,下面介绍Machineasm下的各主要节点:
Figure BDA0000109870730000063
cvars:Main Machine有权限修改的变量;
Figure BDA0000109870730000064
mvars:Main Machine有权限读取的变量;
ivars:Main Machine的内部变量;
Figure BDA0000109870730000066
cons:Main Machine的构造公式;
Figure BDA0000109870730000067
rls:Main Machine的规则集;
●Submachines:tasm下辖的节点,是子状态机(Sub Machine)的集合,下辖一定数量的Sub Machine节点Submachines,下面介绍Submachines下的各主要节点:
Figure BDA0000109870730000068
cvars:Sub Machine有权限修改的变量;
Figure BDA0000109870730000069
mvars:Sub Machine有权限读取的变量;
Figure BDA00001098707300000610
ivars:Sub Machine的内部变量;
Figure BDA00001098707300000611
cons:Sub Machine的构造公式;
Figure BDA00001098707300000612
rls:Sub Machine的规则集;
●Functionmachines:tasm下辖的节点,是功能状态机(Function Machine)的集合,下辖一定数量的Function Machine节点Functionmachines,下面介绍Functionmachines下的各主要节点:
Figure BDA00001098707300000613
cvars:Function Machine有权限修改的变量;
Figure BDA00001098707300000614
mvars:Function Machine有权限读取的变量;
Figure BDA00001098707300000615
ivars:Function Machine的内部变量;
Figure BDA00001098707300000616
cons:Function Machine的构造公式;
Figure BDA00001098707300000617
rls:Function Machine的规则集。
三种状态机均具有的重要节点——规则集rls,是TASM模型可以在模拟中实现各种状态变换,数据通信以及资源消耗的核心部分。可以说,让TASM模型运转起来的动力就来自规则集结点。规则集rls节点下辖若干规则节点rl,下面介绍rl下的主要节点:
Figure BDA00001098707300000618
rtime:执行该规则所消耗的时间,可以是固定值、区间值或者是关键字next;
Figure BDA00001098707300000619
rrscs:执行该规则时所消耗或占用的各种资源;
Figure BDA00001098707300000620
guard:规则的If条件语句;
Figure BDA00001098707300000621
effect:满足规则If条件语句时执行的动作。
4)模型转换方法
研究AADL中各构建元素到TASM的模型转换方法,其中包括线程构件的转换方法,分发器构件的转换方法,模式变换的转换方法,调度器构件的转换方法。
4.1)线程构件的转换方法:
将一个线程表示成一个状态机,如图4所示,该状态机有五个状态,包括Halted,waiting-mode,waiting-dispatch,waiting-execution,completed等,状态变迁过程中的动作包括:线程初始化,(模式)激活线程、分发线程、线程执行,线程结束执行,退出模式等。
线程构件表示一个二进制镜像中顺序执行的指令序列,是系统中主要的执行和调度单元。线程默认开始时是出于halted状态,在执行之前,需要将其二进制镜像文件加载到进程,加载成功才能处于等待分发状态(Waiting-Dispatch);如果系统存在不同模式,只有处于当前模式的线程才能被分发,否则线程处于等待模式状态(Waiting Mode);处于等待分发状态的线程可以被周期性时钟或事件来分发,包括周期、非周期、偶发等多种分发协议;分发后的线程需要等待调度执行(Waiting Execution);得到处理器的线程进入执行状态,执行完后,线程将其计算所得到的数据写到输出端口,进入下一次分发状态。
该状态机,我们用七条TASM规则来进行描述,分别是:Initialization规则;Activation规则;Dispatch规则;waiting_execution规则;execution规则;write_data规则;waiting_next_execution规则:
Initialization规则:用来处理系统加载进程,表示线程初始化的状态变迁;
Acitvation规则:用来处理线程和模式变换的同步关系,处于当前模式的线程为激活Active状态,否则处于非激活Inactive状态;
Dispatch规则:用来处理线程等待分发的情况;
Waiting Execution规则:用来处理线程等待调度的情况;
Execution规则:此规则的执行时间为最长执行时间(WCET),所述WCET为AADL模型中线程构件的一个属性,其值表示线程一个周期内最长执行时间,该规则抽象表示线程执行;
Write Dtate规则:线程执行完成之后,直接将输出端口的数据写入接收线程的的输入端口当中;
Waiting Next Event规则:用于处理当条件不满足而需要等待的情况,如:进程加载失败、不处于当前模式、没有被分发、没有得到处理器资源等,该规则使用了TASM非常重要的等待机制t:=next。
4.2)分发器的转换方法:
在AADL中,分发器(Dispatcher)并不是一个独立构件,而是线程构件的一个执行模型属性,支持周期、非周期、偶发、实时、混成、后台六种分发协议。主要转换前三种的分发情况。分发器也是通过一个状态机来表示其执行过程的,该状态机如图5所示,有三个状态,分别是undispatched,dispatched,unactivation。在undispatch状态,表示使线程分发,等到一定的条件(周期性线程:处于undispatched的时间大于其周期;偶发线程:分发事件发生;非周期性线程:时间大于周期或分发时间发生)满足,则进入dispatched状态,如果线程还处于当前模式,则分发相应的线程,又进入到undispatched状态;如果线程不处于当前模式了,则进入unactivation状态,一直等着重新进入当前模式。
可以用4条TASM规则表示该状态机,分别是dispatch规则,require规则,mode_change规则,waiting规则:
dispatch规则主要是在分发器处于可被分发(dispatched)状态时,分发线程,并该自动机重新进入不可被分发(undispatched)状态;
required规则主要用于分发器在不可被分发(undispatched)状态时,重新等待分发条件的满足;
mode_change规则主要用于当分发器处于dispatched状态时,判断是否已离开当前状态,如果是,进入到非当前模式(unactivation)状态,注意到从unactivation的状态到dispatched状态变迁在模式自动机里面有表示;
waiting规则主要用于与其它状态机同步。
4.3)模式变换的转换方法:
模式变换请求到来后,从旧模式变换到新模式,我们认为需要经历3个过程,分别是模式变换准备期,模式变换过程中,新模式。其过程如图6所示
从模式变换请求到来,并不马上进行模式变换,而是进入到一个模式变换的准备期(Waiting SOMTransition),等待一个同步点。在该同步点,所有旧模式下的关键线程都已经完成其执行,处于等待分发状态,这样,这些线程间通信的确定性得到保证。因此,这个同步点一般是旧模式下周期性关键线程的超周期。
结束模式变换的准备期,系统进入到模式变换过程状态,系统正式开始模式变换:添加新模式下且不属于旧模式的线程;删除旧模式下且不属于新模式的线程和连接;同时属于两个模式的关键线程继续执行;同时属于两个模式的连接可以用于通信;一些非周期或偶发线程,它们属于旧模式并且不属于新模式,在准备期之后才分发,所以需要在模式变换期间终止这类线程的执行,称这类线程为Zombie线程;完成这些动作,系统才正式进入新模式。
对于每一个模式变换,我们用4条TASM规则表示,分别是hyperperiod规则,oldmode_has_mcr规则,oldmode_hasnot_mcr规则,inprogress规则:
hyperperiod规则:表示旧模式的超周期,因此它的执行时间为旧模式下所有关键线程周期的最小公倍数;
oldmode_has_mcr规则:在同步点检测到有模式变换请求,并将系统状态变到模式变换过程中,使旧模式下的线程的状态设为不处于当前模式状态,新模式下的线程的状态设为处于当前模式状态;
oldmode_hasnot_mcr规则:在同步点检测到没有模式变换请求到来,重新开始新一次旧模式的超周期;
inprogress规则:表示从旧模式到新模式的模式变换过程,它的执行时间为模式变换超周期,既新模式下关键线程的周期与删除僵尸线程的时间之和。
4.4)调度器的转换方法:
使用令牌算法的思想,将TASM这样的状态机语言来表示调度器的行为。其基本思想如图7所示。
对于每一个处理器,都有一个令牌,令牌在绑定到该处理器上得线程间传递,从优先级最高的线程依次往优先级最低的线程传递。一个线程拿到令牌,首先判定处理器是否空闲,如果不空闲,则等待处理器空闲,如果处理器空闲了,就判断该线程能否被执行,比如要判断线程是否处于等待执行状态,线程的数据依赖是否得到满足,如果线程能被判定能执行,处理器就分配给该线程,并将令牌重新传给优先级最高的线程(因为高优先级的线程可能仍需执行),如果处理器不能被执行,就需要判断比它优先级的线程是否有能被执行的,如果有,就将令牌传递下去,如果没有,令牌就停止传递,直到有线程能被执行。
对于除优先级最低的每一个线程,调度器状态机都需要用两条规则进行表示,分别为schedule规则和pass规则。而优先级最低的线程只有schedule规则,没有pass规则。
schedule规则:表示线程能被执行,将处理器分发给该线程;
pass规则:表示线程不能马上执行,需要将令牌分发下去。

Claims (6)

1.一种模型转换方法,用于将AADL模型转换为TASM模型,其特征在于:
使用KM3描述源语言AADL的元模型;
使用KM3描述目标语言TASM的元模型;
针对AADL模型中的线程构件、分发器、模式变换、调度器,分别使用线程构件的转换方法、分发器构件的转换方法、模式变换的转换方法和调度器构件的转换方法,将AADL模型转换为TASM模型;
其中,模式变换的转换方法包括:
在同步点检测到模式变换请求,同步点是旧模式下周期性关键线程的超周期,如果检测到模式变换请求,将系统状态转换为模式变换过程,添加新模式下且不属于旧模式的线程,删除旧模式下且不属于新模式的线程和连接,属于两个模式的线程继续执行,属于两个模式的连接用于通信。
2.根据权利要求1所述的模型转换方法,其特征在于:所述AADL的元模型包括:
AadlSpec:AADL模型的根节点,包括25个属性,其中包括AADL模型的名字等基本信息以及该模型中所有构件的类型(type)和实现(implementation);
SystemType:描述系统的基本信息;
SystemImpl:与SystemType等级相同,都是AadlSpec的分支节点,该节点是对之前声明的SystemType进行实例化,该节点声明该系统实例中包含的子构件和连接,所包含的子构件包含硬件构件和/或软件构件,硬件构件包括用户定义的设备和处理器,软件构件包括线程,所声明的连接是端口到端口的数据通信,此外还定义处理器与线程的绑定关系,规定线程在系统运行时对应的处理器;
ProcessorType:AadlSpec下的分支节点,描述声明的处理器的基本信息;
ProcessorImpl:与ProcessorType等级相同,都是直属于AadlSpec的分支节点,是对ProcessorType的实例化;
ProcessType:AadlSpec下的一个分支节点,描述声明的进程的基本信息;
ProcessImpl:与ProcessType等级相同,都是直属于AadlSpec的分支节点,是对ProcessType的实例化,定义ProcessType实例中包含的线程、线程组以及数据端口间的通信关系;
ThreadType:AadlSpec下的一个分支节点,定义一个线程的属性,包括该线程的调度协议,如果是周期性线程,还包括计算执行时间、时间限和周期表,定义线程的输入输出端口;
ThreadImpl:与ThreadType等级相同,都是直属于AadlSpec的分支节点,是对ThreadType的实例化。
3.根据权利要求1所述的模型转换方法,其特征在于:所述线程构件的转换方法将一个线程表示成一个状态机,该状态机包含以下规则:
Initialization规则:用来处理系统加载进程,表示线程初始化的状态变迁;
Acitvation规则:用来处理线程和模式变换的同步关系,处于当前模式的线程为激活Active状态,否则处于非激活Inactive状态;
Dispatch规则:用来处理线程等待分发的情况;
Waiting Execution规则:用来处理线程等待调度的情况;
Execution规则:此规则的执行时间为最长执行时间(WCET),所述最长执行时间为AADL模型中线程构件的一个属性,其值表示线程一个周期内最长执行时间,该规则抽象表示线程执行;
Write Dtate规则:线程执行完成之后,直接将输出端口的数据写入接收线程的的输入端口当中;
Waiting Next Event规则:用于处理当条件不满足而需要等待的情况。
4.根据权利要求1所述的模型转换方法,其特征在于:所述分发器构件的转换方法包括以下规则:
dispatch规则:在分发器处于可被分发(dispatched)状态时,分发线程,并让该分发器重新进入不可被分发(undispatched)状态;
required规则:用于分发器在不可被分发状态时,重新等待分发条件的满足;
mode_change规则:用于当分发器处于可被分发状态时,判断是否已离开当前状态,如果是,则进入到非当前模式(unactivation)的状态,从非当前模式的状态到可被分发状态变迁在模式自动机里有表示;
waiting规则:用于与其它状态机同步。
5.根据权利要求1所述的模型转换方法,其特征在于:所述模式变换的转换方法包括以下规则:
hyperperiod规则:表示旧模式的超周期,执行时间为旧模式下所有关键线程周期的最小公倍数;
oldmode_has_mcr规则:在同步点检测到有模式变换请求,并将系统状态变到模式变换过程中,使旧模式下的线程的状态设为不处于当前模式状态,新模式下的线程的状态设为处于当前模式状态;
oldmode_hasnot_mcr规则:在同步点检测到没有模式变换请求到来,重新开始新一次旧模式的超周期;
inprogress规则:表示从旧模式到新模式的模式变换过程,执行时间为模式变换超周期,即新模式下关键线程的周期与删除僵尸线程的时间之和。
6.根据权利要求1所述的模型转换方法,其特征在于:所述调度器构件的转换方法包括以下规则:
schedule规则:表示线程能被执行,将处理器分发给该线程;
pass规则:表示线程不能马上执行,需要将令牌分发下去。
CN201110369259.XA 2011-11-18 2011-11-18 Aadl2tasm模型转换方法 Active CN102520925B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110369259.XA CN102520925B (zh) 2011-11-18 2011-11-18 Aadl2tasm模型转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110369259.XA CN102520925B (zh) 2011-11-18 2011-11-18 Aadl2tasm模型转换方法

Publications (2)

Publication Number Publication Date
CN102520925A CN102520925A (zh) 2012-06-27
CN102520925B true CN102520925B (zh) 2014-04-30

Family

ID=46291868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110369259.XA Active CN102520925B (zh) 2011-11-18 2011-11-18 Aadl2tasm模型转换方法

Country Status (1)

Country Link
CN (1) CN102520925B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049602B (zh) * 2012-12-13 2016-05-18 南京大学 基于模型驱动工程的将aadl组件转换到接口自动机模型方法
CN106548261A (zh) * 2015-09-21 2017-03-29 阿里巴巴集团控股有限公司 一种业务流程控制方法、装置及电子设备
CN105335161B (zh) * 2015-11-13 2018-08-24 华中师范大学 一种从tasm时间抽象状态机到扩展nta自动机的转换方法
CN107291435B (zh) * 2016-04-12 2020-08-25 华东师范大学 一种不确定性环境下混成aadl模型量化分析方法
CN105975695B (zh) * 2016-05-09 2018-12-14 华东师范大学 不确定性环境下ThingML模型的量化分析方法
CN107391866B (zh) * 2017-07-31 2022-03-04 北京仿真中心 一种基于多处理器的aadl模型的可调度性分析方法
CN108196827B (zh) * 2017-12-08 2021-04-02 南京航空航天大学 非形式化需求规约模板到形式化设计模型的自动转换方法
CN108376221B (zh) * 2018-02-27 2021-07-13 哈尔滨工业大学 一种基于aadl模型扩展的软件系统安全性验证与评估方法
CN108563439A (zh) * 2018-04-27 2018-09-21 南京航空航天大学 一种基于中间模型的aadl生成嵌入式系统代码方法
CN109739740A (zh) * 2018-11-22 2019-05-10 南京航空航天大学 一种aadl模型组合形式化验证方法
CN109725890A (zh) * 2018-12-28 2019-05-07 中国人民解放军火箭军工程大学 复杂软件系统Event-B模型到时间自动机网络的转换工具及方法
CN110442338B (zh) * 2019-08-21 2023-09-19 北京神舟航天软件技术有限公司 一种结构分析与设计语言aadl模型的仿真方法
CN111240972B (zh) * 2020-01-06 2022-03-08 上海丰蕾信息科技有限公司 一种基于源代码的模型验证装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Formal Semantics and Verification of AADL Modes in Timed Abstract State Machine;YANG Zhibin等;《Progress in Informatics and Computing (PIC), 2010 IEEE International Conference on》;20101212;1098 - 1103 *
Two Formal Semantics of a Subset of the AADL;YANG Zhibin等;《Engineering of Complex Computer Systems (ICECCS), 2011 16th IEEE International Conference on》;20110429;344 - 349 *
YANG Zhibin等.Formal Semantics and Verification of AADL Modes in Timed Abstract State Machine.《Progress in Informatics and Computing (PIC), 2010 IEEE International Conference on》.2010,1098 - 1103.
YANG Zhibin等.Two Formal Semantics of a Subset of the AADL.《Engineering of Complex Computer Systems (ICECCS), 2011 16th IEEE International Conference on》.2011,344 - 349.

Also Published As

Publication number Publication date
CN102520925A (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
CN102520925B (zh) Aadl2tasm模型转换方法
Amnell et al. TIMES: a tool for schedulability analysis and code generation of real-time systems
Zhou et al. Petri net synthesis for discrete event control of manufacturing systems
Sokolsky et al. Schedulability analysis of AADL models
Strasser et al. Design and execution issues in IEC 61499 distributed automation and control systems
Mashayekhi et al. Execution templates: Caching control plane decisions for strong scaling of data analytics
Yang et al. Towards a formal semantics for the AADL behavior annex
EP3273368A1 (en) Systems and methods for aggregating implicit and explicit event code of executable models
Hu et al. Exploring AADL verification tool through model transformation
Henzinger et al. Time-safety checking for embedded programs
Glonina et al. On the correctness of real-time modular computer systems modeling with stopwatch automata networks
Alur et al. RTComposer: a framework for real-time components with scheduling interfaces
Dearle et al. A component-based model and language for wireless sensor network applications
Caspi et al. From control loops to real-time programs
Ramaswamy et al. Petri net extensions for the development of MIMO net models of automated manufacturing systems
Owicki Specifications and proofs for abstract data types in concurrent programs
Nielsen et al. Towards reusable real-time objects
Lu et al. A UML profile to model safety-critical embedded real-time control systems
Dumitrescu et al. Multicriteria optimal reconfiguration of fault-tolerant real-time tasks
Fant et al. A comparison of executable model based approaches for embedded systems
Lugato et al. Validation and automatic test generation on UML models: the AGATHA approach
Hagge et al. Applying the handler-based execution model to IEC 61499 basic and composite function blocks
Redell Modelling of distributed real-time control systems: An approach for design and early analysis
Hsiung et al. Synthesis of real-time embedded software with local and global deadlines
Gu et al. Synthesis of real-time implementations from component-based software models

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant