系统建模复习总结

系统建模复习总结

3.16日更新考试内容:

  1. CPS,CPS和实时系统区别
  2. modeling和MDA
  3. 录音机用例图和顺序图
  4. EDF
  5. 不知道啥题,读不懂
  6. ATM死锁
  7. 时间自动机相关,有画图
  8. UML profile

什么是CPS系统?

What are Cyber-Physical Systems?

Cyber(信息技术): 计算,通信,控制(3C技术,computation, communication, control ),并且离散,逻辑,交换的系统;
Physical(物理系统): 一些受物理定律的支配,并可持续运行的自然或人工系统;
信息物理融合系统CPS是一个综合计算、网络和物理环境的多维复杂系统,通过3C(Computation、Communication、Control)技术的有机融合与深度协作,实现大型工程系统的实时感知、动态控制和信息服务,可使系统更加可靠、高效、实时协同。

Characteristics of Cyber-Physical Systems 特性

a) CPS具有自适应性、自主性、高效性、功能性、可靠性、安全性等特点和要求。
b) 信息-物理结构的耦合由新的需求和应用驱动:1.每个物理组件都有网络能力;2. 网络工作在多个和极端的规模下;3. 有大规模的有线和无线网络
c) 系统的系统
d) 新的时空约束:多个时间和空间尺度上的复杂性,动态重组/重新配置,非传统的计算和物理基板
e) 通信/计算/控制 之间的新型交互:自动化程度高,控制回路必须在所有尺度上关闭,控制回路中有大量非技术型的精明用户
f) 无处不在的安全和隐私需求,操作必须可靠
g) Notice:不是桌面计算;不是传统的,事后嵌入式/实时系统;不是今天的传感器网络。其研究目标是物理和网络(计算,通信,控制)设计深度集成。
应用领域:远程医疗,交通运输,过程控制,防御系统等。

建模的概念

Modeling,什么是模型驱动开发

模型是指对某个系统的简化表示,从给定的角度突出显示感兴趣的属性。它使用某种建模语言对系统的功能、行为和结构进行描述。模型驱动开发是面向模型的分析与设计,正确无误地、且快速高质量地完成一个软件开发过程。

模型驱动开发Model Driven Development (MDD) 是一种以模型作为主要工件的高级别抽象的开发方法,模型在工具的支持下,被作为核心资产被转换成代码或者可运行配置。

模型驱动架构

Model Driven Architecture
MDA 定义了三种模型:

计算独立模型(Computation-Independent Model,CIM)
描述系统的需求和将在其中使用系统的业务上下文。此模型通常描述系统将用于做什么,而不描述如何实现系统。CIM 通常用业务语言或领域特定语言来表示。 用例图
平台独立模型(Platform-Independent Model,PIM)
描述如何构造系统,而不涉及到用于实现模型的技术。此模型不描述用于为特定平台构建解决方案的机制。PIM 在由特定平台实现时可能是适当的,或者可能适合于多种平台上的实现。 类图、顺序图
平台特定模型(Platform-Specific Model,PSM)
从特定平台的角度描述解决方案。其中包括如何实现 CIM 和如何在特定平台上完成该实现的细节。 如Spring、JSP模型
6BpNl9.png

什么是安全攸关系统

What is a Safety-critical System?

安全攸关系统是指一个系统的失效或误动作会产生以下后果:
人员重伤或死亡,或者
设备的严重毁损,或者
环境的危害

什么是实时系统

What is a Real-Time System?

实时系统的定义是:“系统的正确性不仅取决于计算的逻辑结果,而且取决于产生结果的时间”;实时系统是指其计算和动作方面具有性能期限的系统。

实时系统名词解释

时间约束(Timing constraint):实时系统的任务具有一定的时间约束(截止时间)。根据截止时间,实时系统的实时性分为“硬实时”和“软实时”。硬实时是指应用的时间需求必须得到完全满足,否则就造成重大安全事故。
发布时间(Release Time):作业变成为可执行的时间。如果所有的工作在系统开始执行时被释放,那么就认为没有发布时间。
截止时间(Deadline):工作被要求执行完成的时间。如果截止时间是无限的,那么工作就没有最后期限。绝对截止时间等于发布时间加上相对截止时间。
响应时间(Response time):作业从发布到执行完成的时间长度。

及时性(timeless):实时系统中,动作必须在事件到达或者预期时间到达时开始执行,作出响应,在动作开始后的某个时刻必须完成,否则就会造成重大安全事故。
并发性(concurrency):是指多个动作顺序链的同时执行。
可预测性(predictability):系统的可预测性就是系统的响应特性所达到的可预知程度。
正确性和鲁棒性(correctness and robustness):正确性表明一个系统总是运行正确。鲁棒性表明系统即使在遇到新的情况(不在计划中)下也是可靠的。因此必须警惕死锁,竞争以及其他异常情况。
实时操作系统特点:及时性、可靠性(工业控制、武器发射等领域)

死锁

死锁产生的条件:

系统资源不足
任务推进不合理
资源分配不当等

死锁的四个必要条件:

互斥。任务要求对共享资源进行独占控制,即一个资源每次只能被一个进程使用
占有且等待。任务在等待其他资源被放弃的同时保持资源,即一个进程因请求资源而阻塞时,对已获得的资源保持不放
不可剥夺性。任务已获得的资源,在未使用完之前,不能强行剥夺
循环等待。若干进程之间形成一种头尾相接的循环等待资源关系

处理死锁的基本方法:

死锁预防:破坏死锁的必要条件
死锁避免:允许前三个必要条件,但采取措施避免形成循环等待(如,银行家算法)
死锁检查和死锁解除:系统检查是否存在死锁,若存在,则通过撤销部分进程等方法回收资源,解除死锁

RM/EDF算法

周期任务\((p_{i},e_{i})\):p表示任务发布周期,e表示单个任务执行时间
利用率:\(U=\frac{e}{p}\)
总利用率:\(\Sigma U_{i}=\Sigma\frac{e_{i}}{p_{i}}\)

RM

Fixed-priority algorithm 固定优先级

RM根据周期分配优先级,周期较短的任务具有较高的优先级,执行周期(即p最小)最短的作业。

6DB7M6.png
响应时间是指任务到执行完成的时间,上图是\(T_{3}\)的响应时间。

实时系统能执行RM算法调度需满足:

\[\sum U_{i} \leq n\left(2^{\frac{1}{n}}-1\right) \text{其中n表示任务数,上图为3} \]

EDF

Dynamic-priority algorithm 动态优先级

优化动态优先级调度一个截止时间较短的任务的优先级较高,执行截止时间(deadline最小)最早的作业

6Dy7fH.md.png

EDF调度只需要满足:\(\sum U_{i} \leq 1\)

ROPES开发流程

Rapid Object-Oriented Process Embedded System 用于嵌入式系统的快速面向对象过程

以下过程都建立在系统的模型之上,这些过程可以理解为同一模型的不同视图。要明白分析设计阶段用到的UML图。

  1. 分析(analysis)阶段对所有可能的正确方案的本质特征进行识别。

    • 需求分析(requirements analysis)是从客户获取需求及把这些需求组织为容易理解的形式的过程。
    • 系统分析(system analysis)要构造定义更为严格的模型,并且以这些需求为基础,将系统的行为划分为机械组件、电子组件和软件组件。
    • 对象分析(Object Analysis)要给出重要的对象和类,以及它们的主要属性,前面的子阶段定义了系统要求具备的行为,这些需求由本阶段给出的对象结构予以满足。它还包括两个子阶段:
      • 结构对象分析(structural object analysis)以类和对象的形式标识对象分解的结构单元,同时建立对象分解的组织单元(包、节点和组件)以及这些元素之间的内在关系。
      • 行为对象分析(behavioral object analysis)为已识别的类定义必要的动态行为模型。
  2. 设计(design)则在分析的结果中添加了一些元素,这些元素根据对某些判定准则的优化,定义了一份特定的解决方案。

    • 架构设计(architectural design)能够给出可部署软件系统的大尺度组织分解。
    • 机制设计(Mechanistic Design):对对象间的协作具体化。
    • 详细设计(detailed design)定义类的结构和并对各个类的内部进行组织。
  3. 转化(translation)阶段为设计创建一个可执行的、可部署的实现。(如将UML模型转化成源代码)

  4. 测试(testing)要检查转化的结果是否与设计等价,并验证具体实现是否满足了分析阶段建立的正确性准则。

UML

//TODO
这个太重要了,参考一下w3school吧


6rQ0W4.png
6rQcex.png


时间自动机

Timed automata
时间自动机是对实时系统进行建模和验证的一种理论。考察时间自动机事件、迁移 运用时间自动机描述系统行为 UPPAAL 判断死锁,是否成立

变量 对系统中的逻辑时钟进行建模,当系统启动时初始化为零,然后以相同的速率同步增加。
时钟约束 即边上用于限制自动机行为的约束(Guard)
转化 当时钟值满足在边上标记约束(Guard)时,边表示的转换(transition)就可以发生。当进行转换时,时间被重置为零。

系统的状态由所有自动机的位置、时钟值和离散变量的值定义。 每个自动机都可能单独触发一个边缘,或者与另一个自动机同步,从而导致一个新的状态。

6ri5bd.png

时间自动机是一种有限有向图,用非负实值时钟的条件和重置


定义:
\((L, l_{0}, C, A, E, I)\)表示一个时间自动机
\(L\): 表示一系列位置
\(l_{0}\): 初始位置
\(C\): 一组时钟信号
\(A\): 一系列动作,如press?表示判断是否有这个信号,press!表示发出这个信号,一个c!可对应多个c?
\(E\): 在不同位置之间的一组边缘,其中具有一个动作、一个守卫条件(gurad,如y>=5)和一个要重置的一组时钟。

\(A [ ] φ\): 对所有可到达的路径,表达式φ一直满足,则为真
\(A < > φ\): 对所有可到达的路径,表达式φ至少满足一次,则为真
\(E [ ] φ\): 对某一条路径,表达式φ一直满足,则为真
\(E < > φ\): 对某一条路径,表达式φ至少满足一次,则为真

6ruGsx.png
6ru0Wd.png

第三张图ATM

A[] not deadlock
A[] (Eric.READY and Bank.READY) imply Eric.cash_in_pocket + Bank.balance == 80

ATM的死锁问题:要理解该实验的原模型是Eric每次取10块钱,在收到取钱请求后,Bank会把Eric要取钱的数目与Eric账户的余额进行比较,如果超支,则会返回not_Ok!信号,然后Bank回到起点状态。同时ATM会收到这个信号进行转换状态(退卡),然后Atm回到起点状态。但是Eric将会一直停留在等待cash信号的这个状态,无法回到起点状态,所以造成了死锁。


6rKe1A.png
6rKM0f.png
6rKJpj.png

A[] not(P1.CRITICAL and P2.CRITICAL)
A[] not deadlock

6rlwHP.png

6rlDN8.png

6rlccj.png

火车处于safe 状态,并在靠近路口时发出appr 同步事件;
控制器处于listen 状态,在接收到同步事件appr 后,迁移至委托状态(C)并发出lower 同步事件,并迁移至wait 状态;
控制门处于Raise 状态,当接收到lower 事件后,迁移至Downing 状态,并将时钟y 设置为0;
控制门在成功下降后,发出havedown 事件;
控制器处于wait 状态并接收到havedown 同步事件,并作出状态的迁移;并发出go 的同步事件;
火车接收到go的信号,开始通过路口,并发出leave的信号,并将时钟x设置为0;
控制器处于Listen状态,当收到leave的信号时,发出raise信号,回到Listen状态;
控制门处于Down状态,当收到raise的信号时,迁移至Raise状态。
控制门处于Downing状态,当时钟y>=100时,发出error的同步事件,并迁移至error状态;
控制器处于wait状态,接收到error同步时间后,迁移至(c)状态,并发出过stop同步事件,迁移至true状态;
火车处于appr状态时,当时钟x<=180时,接收到stop同步事件,则迁移至stop状态;
控制门处于error状态,发出 havedown 同步事件,迁移至Down状态;
控制器处于true状态,接收到havedown 事件,并发出go同步事件,迁移至Listen状态;
火车处于Stop状态,收到go事件的同时,将时钟x置为0,并迁移至Cross状态,时钟x<=60时,发出leave同步事件并将时钟x再次置为0,回到Safe状态;
控制器处于Listen状态,收到leave事件,发出raise同步事件,并回到Listen状态;
控制门处于Down状态,当收到raise事件时,回到Raise状态。

模型验证性质:
(1) A[] Queue.list[N-1]==0,表示队列中不可能有N个元素,即数组永远不会溢出。实际上,模型定义了N作为火车的数量+1来验证这个属性。可以使用与列车数量匹配的队列长度来检查此属性。
(2) A[] Train1.Cross+ Train2.Cross+ Train3.Cross+ Train4.Cross<=1:表示在任何一个时刻多只有一辆火车通过桥,该表达式使用了Train1.Cross来表示结果的真或假,即1或0,易知,模型应该满足这个性质。
(3) E<> Train1.Cross and Train2.Stop and Train3. Stop and Train4. Stop:表示火车1正在过桥,火车2,3,4正在等待过桥,其他火车具有相似的性质。
(4) 性质E<>Train1.Cross and Train2.Stop表示列车1可以过桥,而火车2正在等待过桥,其他火车具有相似的性质。
(5) 性质E<>Train1.Cross表示火车1可以过桥,可以用同样的方法检测其他火车。

UML profile

一个UML预定义包是一个扩充具有补充信息的UML模型的工具。 这种机制可以以两种方式使用:

  • 用以扩展UML语言。
    例如,UML没有提供明确的信号量概念,但可以通过重载现有的UML概念(如Class)来添加它。结果是一种特殊的类,它除了标准的类语义之外,还包含信号量语义。
  • 可用于将附加信息附加到辅助用途(如模型分析或代码生成)所需的模型。
    例如,可以使用这种注释来指定类的某些操作的最差情况执行时间,这可能需要用于分析应用程序的时序特性。

UML预定义包的特点:

  1. 语言基础设施的再利用(工具,规格)
  2. 需要较少的语言设计技能
  3. 允许扩展构造型采用新(图形)符号
  4. 配置文件可以定义模型视点
  5. 缺点:受UML元模型的约束

其他

AADL: Architecture Analysis & Design Language
体系结构分析与设计语言

CCSL: The Clock Constraint Specification Language
时钟约束规范语言 用于时间自动机
CCSL语言中的任务时序行为建模的重要性

uppaal(时间自动机工具)有三部分组成:编辑器、模拟器、验证器。这三部分的功能分别是:

  1. 编辑器对模型进行编辑,并进行系统声明和模型声明。编辑器分为两部分:访问不同模板和声明的树窗格以及绘图画布/文本编辑器。
  2. 模拟器对建立好的模型进行仿真,若所建立的模型符合语法要求,则模型会成功上传并仿真出结果;
  3. 验证器对模型应该满足的性质进行验证。
posted @ 2021-03-14 23:04  Dallas98  阅读(1918)  评论(0编辑  收藏  举报
蜀ICP备20020397号