CN102520925A - Aadl2tasm模型转换方法 - Google Patents
Aadl2tasm模型转换方法 Download PDFInfo
- Publication number
- CN102520925A CN102520925A CN201110369259XA CN201110369259A CN102520925A CN 102520925 A CN102520925 A CN 102520925A CN 201110369259X A CN201110369259X A CN 201110369259XA CN 201110369259 A CN201110369259 A CN 201110369259A CN 102520925 A CN102520925 A CN 102520925A
- Authority
- CN
- China
- Prior art keywords
- model
- thread
- rule
- node
- machine
- 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
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及一种模型转换方法,用于将AADL模型转换为TASM模型,使用KM3描述源语言AADL的元模型,使用KM3描述目标语言TASM的元模型,针对AADL模型中的线程构件、分发器、模式变换、调度器,分别使用线程构件的转换方法、分发器构件的转换方法、模式变换的转换方法和调度器构件的转换方法,将AADL模型转换为TASM模型。
Description
技术领域
本发明涉及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模型转换对象比较
从该对比中,我们发现,各目标语言都有它们各自的优缺点,而且它们的转换集中在线程构件层次,由于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模型的类型、资源、管道、变量等信息的部分,下面分别介绍其下辖的节点:
●Systems:tasm下辖的节点,保存TASM模型主状态机(Main Machine)和变量的初始化信息;
●Mainmachines:tasm下辖的节点,是Main Machine的集合,下辖一定数量的Main Machine节点Machineasm,下面介绍Machineasm下的各主要节点:
cvars:Main Machine有权限修改的变量;
●Submachines:tasm下辖的节点,是子状态机(Sub Machine)的集合,下辖一定数量的Sub Machine节点Submachines,下面介绍Submachines下的各主要节点:
cons:Sub Machine的构造公式;
●Functionmachines:tasm下辖的节点,是功能状态机(Function Machine)的集合,下辖一定数量的Function Machine节点Functionmachines,下面介绍Functionmachines下的各主要节点:
三种状态机均具有的重要节点——规则集rls,是TASM模型可以在模拟中实现各种状态变换,数据通信以及资源消耗的核心部分。可以说,让TASM模型运转起来的动力就来自规则集结点。规则集rls节点下辖若干规则节点rl,下面介绍rl下的主要节点:
guard:规则的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 (7)
1.AADL2TASM模型转换方法,用于将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的实例化,定义该线程实例中包含的线程、线程组以及数据端口间的通信关系;
ThreadType:AadlSpec下的一个分支节点,定义一个线程的属性,包括该线程的调度协议,如果是周期性线程,还包括计算执行时间、时间限和周期表,定义线程的输入输出端口;
ThreadImpl:与ThreadType等级相同,都是直属于AadlSpec的分支节点,是对ThreadType的实例化。
3.根据权利要求1所述的模型转换方法,其特征在于:所述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)的集合,下辖一定数量的FunctionMachine节点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条件语句时执行的动作。
4.根据权利要求1所述的模型转换方法,其特征在于:所述线程构件的转换方法将一个线程表示成一个状态机,该状态机包含以下规则:
Initialization规则:用来处理系统加载进程,表示线程初始化的状态变迁;
Acitvation规则:用来处理线程和模式变换的同步关系,处于当前模式的线程为激活Active状态,否则处于非激活Inactive状态;
Dispatch规则:用来处理线程等待分发的情况;
Waiting Execution规则:用来处理线程等待调度的情况;
Execution规则:此规则的执行时间为最长执行时间(WCET),所述WCET为AADL模型中线程构件的一个属性,其值表示线程一个周期内最长执行时间,该规则抽象表示线程执行;
Write Dtate规则:线程执行完成之后,直接将输出端口的数据写入接收线程的的输入端口当中;
Waiting Next Event规则:用于处理当条件不满足而需要等待的情况。
5.根据权利要求1所述的模型转换方法,其特征在于:所述分发器构件的转换方法包括以下规则:
dispatch规则:在分发器处于可被分发(dispatched)状态时,分发线程,并让该自动机重新进入不可被分发(undispatched)状态;
required规则:主要用于分发器在undispatched状态时,重新等待分发条件的满足;
mode_change规则:用于当分发器处于dispatched状态时,判断是否已离开当前状态,如果是,则进入到非当前模式(unactivation)的状态,从unactivation的状态到dispatched状态变迁在模式自动机里有表示;
waiting规则:用于与其它状态机同步。
6.根据权利要求1所述的模型转换方法,其特征在于:所述模式变换的转换方法包括以下规则:
hyperperiod规则:表示旧模式的超周期,执行时间为旧模式下所有关键线程周期的最小公倍数;
oldmode_has_mcr规则:在同步点检测到有模式变换请求,并将系统状态变到模式变换过程中,使旧模式下的线程的状态设为不处于当前模式状态,新模式下的线程的状态设为处于当前模式状态;
oldmode_hasnot_mcr规则:在同步点检测到没有模式变换请求到来,重新开始新一次旧模式的超周期;
inprogress规则:表示从旧模式到新模式的模式变换过程,执行时间为模式变换超周期,即新模式下关键线程的周期与删除僵尸线程的时间之和。
7.根据权利要求1所述的模型转换方法,其特征在于:所述调度器的转换方法包括以下规则:
schedule规则:表示线程能被执行,将处理器分发给该线程;
pass规则:表示线程不能马上执行,需要将令牌分发下去。
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 true CN102520925A (zh) | 2012-06-27 |
CN102520925B 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) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049602A (zh) * | 2012-12-13 | 2013-04-17 | 南京大学 | 基于模型驱动工程的将aadl组件转换到接口自动机模型方法 |
CN105335161A (zh) * | 2015-11-13 | 2016-02-17 | 华中师范大学 | 一种从tasm时间抽象状态机到扩展nta自动机的转换方法 |
CN105975695A (zh) * | 2016-05-09 | 2016-09-28 | 华东师范大学 | 不确定性环境下ThingML模型的量化分析方法 |
CN106548261A (zh) * | 2015-09-21 | 2017-03-29 | 阿里巴巴集团控股有限公司 | 一种业务流程控制方法、装置及电子设备 |
CN107291435A (zh) * | 2016-04-12 | 2017-10-24 | 华东师范大学 | 一种不确定性环境下混成aadl模型量化分析方法 |
CN107391866A (zh) * | 2017-07-31 | 2017-11-24 | 北京仿真中心 | 一种基于多处理器的aadl模型的可调度性分析方法 |
CN108196827A (zh) * | 2017-12-08 | 2018-06-22 | 南京航空航天大学 | 非形式化需求规约模板到形式化设计模型的自动转换方法 |
CN108376221A (zh) * | 2018-02-27 | 2018-08-07 | 哈尔滨工业大学 | 一种基于aadl模型扩展的软件系统安全性验证与评估方法 |
CN108563439A (zh) * | 2018-04-27 | 2018-09-21 | 南京航空航天大学 | 一种基于中间模型的aadl生成嵌入式系统代码方法 |
CN109725890A (zh) * | 2018-12-28 | 2019-05-07 | 中国人民解放军火箭军工程大学 | 复杂软件系统Event-B模型到时间自动机网络的转换工具及方法 |
CN109739740A (zh) * | 2018-11-22 | 2019-05-10 | 南京航空航天大学 | 一种aadl模型组合形式化验证方法 |
CN110442338A (zh) * | 2019-08-21 | 2019-11-12 | 北京神舟航天软件技术有限公司 | 一种结构分析与设计语言aadl模型的仿真方法 |
CN111240972A (zh) * | 2020-01-06 | 2020-06-05 | 华东师范大学 | 一种基于源代码的模型验证装置 |
-
2011
- 2011-11-18 CN CN201110369259.XA patent/CN102520925B/zh active Active
Non-Patent Citations (2)
Title |
---|
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》 * |
YANG ZHIBIN等: "Two Formal Semantics of a Subset of the AADL", 《ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS), 2011 16TH IEEE INTERNATIONAL CONFERENCE ON》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049602B (zh) * | 2012-12-13 | 2016-05-18 | 南京大学 | 基于模型驱动工程的将aadl组件转换到接口自动机模型方法 |
CN103049602A (zh) * | 2012-12-13 | 2013-04-17 | 南京大学 | 基于模型驱动工程的将aadl组件转换到接口自动机模型方法 |
CN106548261A (zh) * | 2015-09-21 | 2017-03-29 | 阿里巴巴集团控股有限公司 | 一种业务流程控制方法、装置及电子设备 |
CN105335161B (zh) * | 2015-11-13 | 2018-08-24 | 华中师范大学 | 一种从tasm时间抽象状态机到扩展nta自动机的转换方法 |
CN105335161A (zh) * | 2015-11-13 | 2016-02-17 | 华中师范大学 | 一种从tasm时间抽象状态机到扩展nta自动机的转换方法 |
CN107291435A (zh) * | 2016-04-12 | 2017-10-24 | 华东师范大学 | 一种不确定性环境下混成aadl模型量化分析方法 |
CN105975695A (zh) * | 2016-05-09 | 2016-09-28 | 华东师范大学 | 不确定性环境下ThingML模型的量化分析方法 |
CN105975695B (zh) * | 2016-05-09 | 2018-12-14 | 华东师范大学 | 不确定性环境下ThingML模型的量化分析方法 |
CN107391866A (zh) * | 2017-07-31 | 2017-11-24 | 北京仿真中心 | 一种基于多处理器的aadl模型的可调度性分析方法 |
CN108196827A (zh) * | 2017-12-08 | 2018-06-22 | 南京航空航天大学 | 非形式化需求规约模板到形式化设计模型的自动转换方法 |
CN108196827B (zh) * | 2017-12-08 | 2021-04-02 | 南京航空航天大学 | 非形式化需求规约模板到形式化设计模型的自动转换方法 |
CN108376221A (zh) * | 2018-02-27 | 2018-08-07 | 哈尔滨工业大学 | 一种基于aadl模型扩展的软件系统安全性验证与评估方法 |
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模型到时间自动机网络的转换工具及方法 |
CN110442338A (zh) * | 2019-08-21 | 2019-11-12 | 北京神舟航天软件技术有限公司 | 一种结构分析与设计语言aadl模型的仿真方法 |
CN110442338B (zh) * | 2019-08-21 | 2023-09-19 | 北京神舟航天软件技术有限公司 | 一种结构分析与设计语言aadl模型的仿真方法 |
CN111240972A (zh) * | 2020-01-06 | 2020-06-05 | 华东师范大学 | 一种基于源代码的模型验证装置 |
CN111240972B (zh) * | 2020-01-06 | 2022-03-08 | 上海丰蕾信息科技有限公司 | 一种基于源代码的模型验证装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102520925B (zh) | 2014-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102520925B (zh) | Aadl2tasm模型转换方法 | |
Sehr et al. | Programmable logic controllers in the context of industry 4.0 | |
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 | |
US20060268967A1 (en) | Supplying instruction to operational stations | |
Vestal | MetaH support for real-time multi-processor avionics | |
EP3273368B1 (en) | Systems and methods for aggregating implicit and explicit event code of executable models | |
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 | |
Mulmuley | Randomized multidimensional search trees: Further results in dynamic sampling | |
Chen et al. | Hare: Exploiting inter-job and intra-job parallelism of distributed machine learning on heterogeneous gpus | |
Glonina et al. | On the correctness of real-time modular computer systems modeling with stopwatch automata networks | |
Socci et al. | Modeling mixed-critical systems in real-time BIP | |
CN111858026B (zh) | 高效的大规模多粒度仿真模型并行调度方法 | |
Dearle et al. | A component-based model and language for wireless sensor network applications | |
CN113723931B (zh) | 一种适用于多尺度高通量材料计算的工作流建模方法 | |
Owicki | Specifications and proofs for abstract data types in concurrent programs | |
Dziurzanski et al. | Energy-aware resource allocation in multi-mode automotive applications with hard real-time constraints | |
Mahfoudhi et al. | Compositional specification of real time embedded systems by priority time petri nets | |
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 | |
Pi et al. | A comparative study of FIACRE and TASM to define AADL real time concepts | |
Magureanu et al. | Generating OMNeT++ specifications from UML models for PSoC distributed applications | |
Gui et al. | UCaS: A schedulability analysis tool for AADL models | |
Verhoef | On the use of VDM++ for specifying real-time systems |
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 |