6讲(下)-电梯控制系统案例研究课件_第1页
6讲(下)-电梯控制系统案例研究课件_第2页
6讲(下)-电梯控制系统案例研究课件_第3页
6讲(下)-电梯控制系统案例研究课件_第4页
6讲(下)-电梯控制系统案例研究课件_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六讲案例分析

(下)主讲:黎忠文第六讲案例分析

(下)主讲:黎忠文目录

6.2电梯控制系统案例研究

6.2.1概述 6.2.2开发环境和行为模型 6.2.3将系统构造成多个任务 6.2.4将系统构造成多个模块 6.2.5集成任务与模块视图 6.2.6开发基于Ada的构架设计 6.2.7分布式电梯控制系统 6.2.8非分布式电梯控制系统的性能分析 6.2.9分布式电梯控制系统的性能分析2022/12/292目录 6.2电梯控制系统案例研究2022/12/266.2.1概述

这个案例由一个可以控制多部电梯的电梯控制系统组成。系统需要对电梯进行调度,以便对不同楼层的乘客所发出的请求做出响应,并控制楼层之间电梯的运动。案例中提供了两种设计方案,并对他们的性能进行分析。2022/12/2936.2.1概述 2022/12/2636.2.2开发环境和行为模型

6.2.2.1开发系统环境图 图6-36显示为系统环境图,并显示出了与系统连接的外部实体。2022/12/2946.2.2开发环境和行为模型 6.2.2.1开发系统

6.2.2开发环境和行为模型

I/O设备的硬件特征是:电梯按钮、楼层按钮和楼层到达传感器都是异步的;也就是说,当从其中任意一个设备中接受到输入时,就会出现一个中断。其他的I/O设备都是被动的。

2022/12/2956.2.2开发环境和行为模型 2022/12/2656.2.2开发环境和行为模型

6.2.2.2将系统分解为多个子系统

将系统分解为子系统要依据子系统所提供服务的特点而定。在对问题进行分析之后表明,系统可以分解为3个相对的独立的松散耦合子系统。这些子系统分别为【电梯】子系统,【楼层】子系统和【调度器】子系统。电梯子系统是一种实时控制子系统,而楼层子系统是一个数据采集子系统。这两个子系统都是集中对象。2022/12/2966.2.2开发环境和行为模型 6.2.2.2将系统6.2.2开发环境和行为模型

电梯系统分解为3个子系统的过程,显示在图6-37中的顶级数据流/控制流图中。有3个数据转换与这3个主要的子系统相对应。2022/12/2976.2.2开发环境和行为模型 电梯系统分解为3个子系统6.2.2开发环境和行为模型 6.2.2.3电梯子系统的分解

状态转换图——每个电梯都对应一个状态转换图,图中显示出该电梯的所有状态和转换(图6-38)。状态转换图要由一个控制对象来执行,即【电梯控制】对象。2022/12/2986.2.2开发环境和行为模型 6.2.2.3电梯子系6.2.2开发环境和行为模型

电梯集中对象——电梯子系统是一个集中对象。每个电梯集中对象是由多个设备I/O对象组成。在图6-39中的数据流/控制流图中对电梯子系统进行了分解。2022/12/2996.2.2开发环境和行为模型 电梯集中对象——电梯子系6.2.2开发环境和行为模型

在图6-39中现实的对象中有一个集中对象——【电梯控制和管理】对象,这个对象在图6-40中进行了进一步的分解。

2022/12/29106.2.2开发环境和行为模型 在图6-39中现实的对象6.2.2开发环境和行为模型

行为分析——现在考虑这个子系统的行为方面;尤其是要考虑【电梯控制】对象交互问题,以及在状态转换图中所定义的与该对象交互的对象和功能。

6.2.2.4楼层子系统的分解

楼层子系统是一个集中对象。在图6-41中的数据流/控制流图中显示了对楼层子系统的分解过程。2022/12/29116.2.2开发环境和行为模型 行为分析——现在考虑这个6.2.3将系统构造成多个任务

首先来考虑将电梯控制系统映射到单CPU或者紧密耦合多处理器环境中的情况(具有共享内存)。 这种方案的关键方面是电梯状态和计划数据存储可以由所有的电梯和调度器来访问,因此就需要使用集中式的数据区。他不适用于松散耦合的分布式系统,因为这种系统中没有共享内存。 如果需要将系统构造成多个任务,则必须分析数据流/控制流图上所有的叶级数据和控制转换,并应用任务结构化标准。这样就会依次对每个数据流/控制流图进行分析。考虑单电梯控制系统和多电梯控制系统两种情况。2022/12/29126.2.3将系统构造成多个任务 首先来考虑将电梯控制系6.2.3将系统构造成多个任务

6.2.3.1确定电梯子系统设备I/O任务 我们来看图6-37中数据流/控制流图。首先从设备I/O对象开始。根据异步设备输入任务结构化标准,电梯按钮要构造成一个单独的任务即监视电梯按钮(图6-42)2022/12/29136.2.3将系统构造成多个任务 6.2.3.1确定电6.2.3将系统构造成多个任务

6.2.3.2确定电梯子系统内部任务

我们来看图6-39中的电梯控制状态转换图。这也是一种控制对象的情况,它是使用状态转换图来表示的。在分析和建模的过程中,实际电梯实体的控制方面要对应于一个控制对象,即【电梯控制】对象。 对于单电梯的情况,电梯子系统要构成4个任务,即【监视电梯按钮】、【监视到达传感器】、【电梯管理器】和【电梯控制器】任务。如图6-42中的任务构架图所示。图6-43中的任务构架图显示了使用多个电梯的情况。2022/12/29146.2.3将系统构造成多个任务 6.2.3.2确定电6.2.3将系统构造成多个任务2022/12/29156.2.3将系统构造成多个任务2022/12/26156.2.3将系统构造成多个任务

6.2.3.3确定楼层子系统任务

楼层子系统要进行如下构造。根据异步设备I/O和任务反向任务结构化标准,楼层按钮要构造成一个单独的任务,即监视楼层按钮任务。该任务要由一个中断来激活,并对中断进行处理,然后发送服务请求,这样就可以处理下一个中断。根据控制内聚标准,输出到这些设备的I/O对象都可以调用任务控制器结合。这都是用于单电梯的解决方案。在多电梯的情况下,由多个电梯控制器的实例,他们可以并发地向楼层灯和方向灯发送请求。这要在每个设备上执行一个资源监视任务,以确保按顺序处理输出请求。2022/12/29166.2.3将系统构造成多个任务 6.2.3.3确定6.2.3将系统构造成多个任务 6.2.3.4定义任务接口

现在我们来考虑如何定义任务接口。首先来考虑数据流,他们显示在数据流/控制流图上。我们只需要考察对应于不同任务的对象/功能之间的接口。

【电梯按钮】与【接收新请求】之间的数据流要对应于【监视电梯按钮】任务和【电梯管理器】任务之间的松散耦合消息通信接口。

【楼层按钮】和【调度器】之间的数据流接口也可以对应于【监视楼层按钮】和【调度器】之间的松散耦合消息通信接口。

2022/12/29176.2.3将系统构造成多个任务 6.2.3.4定义任6.2.3将系统构造成多个任务

【楼层到达传感器】与【检查本楼层】之间的数据流接口要对应于【监视到达传感器】和【电梯控制器】之间的紧密耦合消息通信接口。 【接收新请求】与【电梯控制】转换之间的事件流接口要映射为【电梯管理器】与【电梯控制器】任务之间的紧密耦合消息通信接口。

2022/12/29186.2.3将系统构造成多个任务 2022/12/2616.2.3将系统构造成多个任务

在使用多电梯的情况中,在【电梯控制器】任务和两个资源任务——【楼层灯监视】任务和【方向灯监视】任务之间还存在一个接口。【更新状态】转化会向【楼层灯】和【方向灯】发送【电梯状态】数据流,这对应与【电梯控制器】与【楼层灯监视】之间的【楼层灯消息】接口。 多个任务访问的数据存储,以及这些数据存储与信息隐藏模块之间的对应方式。【电梯状态和计划】要对应与一个同名信息隐藏模块,由多个【电梯控制器】任务、【电梯管理器】任务,以及【调度器】任务来访问。2022/12/29196.2.3将系统构造成多个任务 在使用多电梯的情况中,6.2.3将系统构造成多个任务

6.2.3.5对其他任务构架的讨论 在单电梯案例(图6-42)与多电梯案例(图6-43)的任务构架之间主要的区别是:在多电梯案例中使用了【电梯控制器】任务的多个实例,并引入了两个资源监视任务。2022/12/29206.2.3将系统构造成多个任务 2022/12/2620

6.2.4将系统构造成多个模块

6.2.4.1定义设备接口模块 通过提供与实际设备之间的虚拟接口,设备接口模块(DIM)隐藏了与实际设备之间的实际接口。每个I/O设备都有一个设备接口模块。设备接口模块所提供的操作要通过考虑每个对象需要支付的功能来确定。

设备接口模块是: (1)电梯按钮——这个设备接口模块隐藏了与电梯按钮传感器连接的方式。该模块提供了两个操作:【读取】操作,该操作可以读取电梯按钮传感器中的数据;另一个操作是【初始化】操作。

2022/12/29216.2.4将系统构造成多个模块 6.2.4.1定义6.2.4将系统构造成多个模块

(2)楼层按钮——这个设备接口模块隐藏了与楼层按钮传感器连接的方式。该模块提供了两个操作:【读取】操作,该操作可以读取楼层按钮传感器中的数据;另一个操作是【初始化】操作。 (3)到达传感器——这个设备接口模块隐藏了与楼层到达传感器连接的方式。该模块提供了两个操作:【读取】操作,该操作可以读取楼层到达传感器中的数据;另一个操作是【初始化】操作。2022/12/29226.2.4将系统构造成多个模块 2022/12/2626.2.4将系统构造成多个模块 (4)马达——这个设备接口模块隐藏了与电梯马达连接的方式。提供了【上升】【下降】和【停止】的操作。 (5)电梯门——这个设备接口模块隐藏了与电梯门连接的方式。提供了【打开】【关闭】两个操作。 (6)电梯灯——这个设备接口模块隐藏了与电梯灯连接的方式。提供了【清除】电梯灯的操作。因为可以使用硬件来设置,所以不需要在软件提供【设置电梯灯】的操作。

2022/12/29236.2.4将系统构造成多个模块 (4)马达——这个设备6.2.4将系统构造成多个模块

(7)楼层灯——这个设备接口模块隐藏了与楼层灯连接的方式。提供了【清除】楼层灯的操作。因为可以使用硬件来设置,所以不需要在软件提供【设置楼层灯】的操作。 (8)方向灯——这个设备接口模块隐藏了与方向灯连接的方式。提供了【设置】和【清除】电梯灯的操作。2022/12/29246.2.4将系统构造成多个模块 2022/12/2626.2.4将系统构造成多个模块

6.2.4.2定义数据抽象模块 每个数据存储都奠定了一个数据抽象模块(DAM)的基础。其中一个主要的数据抽象模块就是【电梯状态和计划】模块。为了确定数据抽象模块的操作,必须对访问数据存储的数据转换进行分析(图6-40)。2022/12/29256.2.4将系统构造成多个模块 6.2.4.2定义数6.2.4将系统构造成多个模块

任务构架图中显示有3个不同的任务要访问数据抽象模块:【调度器】、【电梯管理器】和【电梯控制器】。

【调度器】读取每个电梯的计划和状态,以便选择一个电梯为即将到来的楼层请求提供服务。 【电梯管理器】包括【接收新请求】数据转换,他可以对【电梯计划】进行更新,并检查电梯是构处于空闲状态。 【电梯控制器】任务包括3个要访问数据存储的数据转换,即【检查本楼层】、【更新状态】和【检查下一个目的地】数据转换。

2022/12/29266.2.4将系统构造成多个模块 任务构架图中显示有3个6.2.4将系统构造成多个模块

6.2.4.3定义状态转换模块 有一个状态转换模块(StateTransitionModule,STM)即电梯状态转换模块中封装了状态装换图(表)。这个没跨支持两个操作,即【处理事件】和【当前状态】。电梯状态转换模块位于【电梯控制器】任务中。2022/12/29276.2.4将系统构造成多个模块 2022/12/26276.2.5集成任务与模块视图 既然已经定义了任务和信息隐藏模块,下一步就要确定任务和模块之间的关系。在开发的软件构架图(图6-44)中显示了这些关系。每个定义过的信息隐藏模块都明确地显示在图中,并包括它们的操作。2022/12/29286.2.5集成任务与模块视图 既然已经定义了任务和信息6.2.5集成任务与模块视图多电梯控制系统的软件构架,如图6-45所示2022/12/29296.2.5集成任务与模块视图多电梯控制系统的软件构架,如6.2.6开发基于Ada的构架设计

在ADARTS的下一个步骤中,要使用Ada来实现设计方案。在Ada构架图中,要首先引入Ada支持任务。我们首先考虑单电梯的情况。每个松散耦合的消息队列都要对应与一个消息缓冲任务。因此要引入两个消息缓冲任务(图6-46):一个用于缓冲【电梯和调度器请求】消息队列的【电梯和调度器请求缓冲】,另一个任务是用于缓冲【服务请求】消息队列的【服务请求缓冲】。

2022/12/29306.2.6开发基于Ada的构架设计 在ADARTS的6.2.6开发基于Ada的构架设计 【监视到达传感器】和【电梯控制器】之间的紧密耦合消息接口要直接映射为一个Ada会合。【电梯管理器】和【电梯控制器】之间的紧密耦合消息接口也要映射成一个Ada会合。因此,【电梯控制器】可以支持两个入口,一个是由【电梯管理器】调用的【新请求】;另一个是由【监视到达传感器】调用的【未确定的楼层到达】。2022/12/29316.2.6开发基于Ada的构架设计 【监视到达传感器】6.2.6开发基于Ada的构架设计 在【电梯状态和计划】数据抽象模块中要放置一个同步任务,用于确保对模块中保存的数据进行互斥访问。该任务有5个接口,在5个由数据抽象模块所提供的操作中,每个操作要使用一个入口。【电梯状态和计划数据存储要嵌套在同步任务中 有3个异步设备输入任务拥有由硬件调用的入口。这些任务就是【电梯按钮中断】、【楼层按钮中断】和【到达传感器中断】。 在多个电梯控制系统中,为了避免产生过多的任务开销,要通过使用任务调换技术,将【电梯控制器】的多个实例映射到一个任务中,即【电梯控制器任务】(图6-46)2022/12/29326.2.6开发基于Ada的构架设计 在【电梯状态和计划6.2.6开发基于Ada的构架设计2022/12/29336.2.6开发基于Ada的构架设计2022/12/2636.2.7分布式电梯控制系统

6.2.7.1总体系统构架 在分布式配置中,必须保证在分布式子系统之间进行的所有通信都是使用消息进行的。总体系统构架(图6-47)显示了多个电梯子系统的实例、多个楼层子系统的实例和调度器子系统的一个实例。2022/12/29346.2.7分布式电梯控制系统 6.2.7.1总体系统6.2.7分布式电梯控制系统

6.2.7.2电梯子系统的结构 在解决这个问题的分布式方案中,电梯子系统的每个实例都是由各个【电梯控制器】、【监视电梯按钮】、【监视到达传感器】和【电梯管理器】任务的实例组成的。电梯子系统的任务构架图如6-48所示2022/12/29356.2.7分布式电梯控制系统 6.2.7.2电梯子系6.2.7分布式电梯控制系统 子系统软件构架图(图6-49)中显示了信息隐藏模块以及各个任务对其访问的方式。信息隐藏模块的设计类似于非分布式方案。唯一的区别就是【本地电梯状态和计划】数据抽象模块比集中式方案更简单。2022/12/29366.2.7分布式电梯控制系统 子系统软件构架图(图6-6.2.7分布式电梯控制系统

6.2.7.3楼层子系统结构 【楼层】子系统的每个实例都拥有【监视楼层按钮】、【楼层灯监视】和【方向灯】监视任务的一个实例(图6-50)。【楼层】子系统中的任务类似于非分步式方案,区别是楼层子系统中具有多个电梯实例。2022/12/29376.2.7分布式电梯控制系统 6.2.7.3楼层子系6.2.7分布式电梯控制系统 在子系统软件构架图中(图6-51)中,每个楼层都使用了一个设备接口模块的实例。2022/12/29386.2.7分布式电梯控制系统 在子系统软件构架图中(图6.2.7分布式电梯控制系统

6.2.7.4调度器子系统的结构 系统中使用了一个调度器子系统的实例,该子系统由两个任务和一个信息隐藏模块组成(图6-52)。2022/12/29396.2.7分布式电梯控制系统 6.2.7.4调度器子6.2.7分布式电梯控制系统

【总体状态和计划】数据模块所拥有的操作是【更新状态】和【更新计划】,还提供了【选择电梯】的操作(图6-53)。2022/12/29406.2.7分布式电梯控制系统 【总体状态和计划】数据模6.2.7分布式电梯控制系统

6.2.7.5目标系统配置 在对目标系统进行配置的过程中,子系统(图6-47)要映射到物理节点中,一种可行的物理配置是在每一个节点使用各个电梯子系统的实例,在每一个节点上使用各个楼层子系统的实例,在一个节点上使用调度器子系统。因此如果有n部电梯和m个楼层的话,那么物理配置就需要n+m+1个物理节点。

2022/12/29416.2.7分布式电梯控制系统 6.2.7.5目标系统6.2.7分布式电梯控制系统 另一种可行配置是楼层子系统的所有实例都映射到一个节点中。在这种情况中,有一种可行的优化方案就是让每个任务来处理所有楼层的I/O设备,而不是一个楼层的I/O设备。这种配置不需要修改楼层子系统的任务构架。调度子系统可以继续映射到一个单独的节点中,或者可以映射到与楼层子系统相同的物理节点中。在后一种情况中,这种物理配置需要使用n+1个物理节点。2022/12/29426.2.7分布式电梯控制系统 另一种可行配置是楼层子系6.2.8非分布式电梯控制系统的性能分析 6.2.8.1性能分析场景 这一节要介绍应用实时调度理论来对非分布式电梯控制系统进行性能分析的问题。我们必须要研究一种电梯控制系统的指定配置,然后通过应用实时调度理论来分析最坏情况。

a.电梯按钮中断到达的最高频率是每秒钟10次,也就是最小时间间隔是100毫秒。

b.楼层按钮中断到达的最高频率是每秒钟5次,这就表示最小时间间隔是200毫秒。 c.3部电梯都处于运动状态中,并且同时到达楼层。这种情况可以解释为3部电梯的到达中断要在50毫秒之内到达。因为当接收到一个楼层中断时,【电梯控制器】必须确定电梯是否应该停在这个楼层。2022/12/29436.2.8非分布式电梯控制系统的性能分析 6.2.8.16.2.8非分布式电梯控制系统的性能分析

6.2.8.2事件序列

我们首先来研究下列用于非分布式系统的事件序列,如图6-54所示:2022/12/29446.2.8非分布式电梯控制系统的性能分析 6.2.8.6.2.8非分布式电梯控制系统的性能分析 a.楼层到达事件序列(周期=Ta) b.按下电梯按钮的事件序列(周期=Tb) c.按下楼层按钮的事件序列(周期=Tc) 虽然电梯控制系统中没有任何一个任务是定期任务,但是在使用的周期等于最小事件间隔时间的情况下,非定期任务也可以作为定期任务来处理。2022/12/29456.2.8非分布式电梯控制系统的性能分析 a.楼层到达事6.2.8非分布式电梯控制系统的性能分析

6.2.8.3优先级分配 表6-3中列出了非分布式电梯控制系统的任务参数。 中断驱动的任务在执行时比事件序列中其他任务的优先级更高。 根据速度单调优先级的分配原则,任务周期最短的得到最高的优先级。2022/12/29466.2.8非分布式电梯控制系统的性能分析 2022/16.2.8非分布式电梯控制系统的性能分析2022/12/29476.2.8非分布式电梯控制系统的性能分析2022/12/6.2.8非分布式电梯控制系统的性能分析

6.2.8.4非分布式环境实时调度

将表6-3中的任务使用率加在一起,可以得到一个总计使用率为0.4,这个值低于使用率限定定理中最坏情况上限0.69。然而,由于它违反了速度单调优先级的假设,所以必须进行更为详细的实时分析。 在分析过程中,必须考虑被高优先级任务抢占的情况,也要考虑被低优先级任务阻塞的情况。 在进行分析是可以使用泛化使用率限定定理和泛化完成时间定理。后者还可以通过使用图6-55中的时间图来说明,其中假设最坏情况是3个外部中断会同时到达。2022/12/29486.2.8非分布式电梯控制系统的性能分析 6.2.8.6.2.8非分布式电梯控制系统的性能分析

a.楼层到达事件序列——从表6-3中可以看出,事件序列的周期=Ta=50毫秒。

事件序列中任务的执行时间:总计执行时间Ca为7毫秒。执行使用率Ue=Ca/Ta=7/50=0.14。2022/12/29496.2.8非分布式电梯控制系统的性能分析2022/126.2.8非分布式电梯控制系统的性能分析 ●具有较长周期的高优先级任务抢占时间: 总计抢占时间Pa=3+4=7毫秒。抢占使用率Up=Pa/Ta=7/50=0.14。 ● 低优先级任务阻塞时间: 总计最坏情况阻塞时间Ba=20毫秒 最坏情况阻塞使用率Ub=Ba/Ta=20/50=0.40 总计逝去时间=Ca+Pa+Ba=7+7+20=34毫秒<50毫秒的周期。 总计使用率==Ue+Up+Ub=0.14+0.14+0.40=0.68<最坏情况上限0.69。2022/12/29506.2.8非分布式电梯控制系统的性能分析 ●具有较6.2.8非分布式电梯控制系统的性能分析 b.电梯按钮按下事件序列——从表6-3中可以看出,这个事件序列的周期Tb=100毫秒。 ●事件序列中任务的执行时间:总计执行时间Cb=3+6=9毫秒。Ue=Cb/Tb=0.09。 ● 具有较短周期的高优先级任务抢占时间:抢占 时间为14毫秒。 ●具有较长周期的高优先级任务抢占的时间: 总计抢占时间Cp=14+4=18毫秒。 抢占使用率Up=Cp/Tp

=18/100=0.18。 ● 低优先级任务阻塞时间: 总计最坏情况阻塞时间Bb=20毫秒 最坏情况阻塞使用率Ub=Bb/Tb=20/100=0.202022/12/29516.2.8非分布式电梯控制系统的性能分析 b.电梯按钮6.2.8非分布式电梯控制系统的性能分析 总计逝去时间=9+18+20=47毫秒<100毫秒的周期。 总计使用率=Ue+Up+Ub=0.09+0.18+0.20=0.47<最坏情况上限0.69。

c.楼层按钮按下事件序列——从表6-3中可以得出,这个事件序列的周期=Tc=200毫秒。 ● 事件序列中任务的执行时间: 总计执行时 间Cc=4+20+6=30毫秒。 Uc=Cc/Tc=0.15。

2022/12/29526.2.8非分布式电梯控制系统的性能分析 总计逝去时间6.2.8非分布式电梯控制系统的性能分析 ● 具有较短周期的高优先级任务抢占时间: 总计抢占时间Cp=28+18=46毫秒。 抢占使用率Up=Cp/Tp=0.23。 ●阻塞时间:由于其他任务访问数据存储所造成的阻塞时间已经考虑在内,所以这里不再累加阻塞时间。 总计逝去时间=30+46+0=76毫秒<200毫秒的周期。 总计使用率=Ue+Up=0.15+0.23=0.38<最坏情况上限0.69。2022/12/29536.2.8非分布式电梯控制系统的性能分析 ● 具有较短周6.2.9分布式电梯控制系统的性能分析 6.2.9.1性能分析场景 以上的例子表明,单处理器系统完全可以处理3个电梯、10个楼层的情况。当然当电梯和楼层的数量增加时,CPU负载会增加,系统最终将会超负荷运转。 我们再来考虑分布式方案的情况(图6-56)2022/12/29546.2.9分布式电梯控制系统的性能分析 6.2.9.16.2.9分布式电梯控制系统的性能分析 在表6-4中给出了分布式电梯控制系统的任务参数。电梯 子系统的CPU使用率为0.23,而楼层子系统的CPU使用率为0.04,这表明一个楼层节点可以很容易地处理多个楼层2022/12/29556.2.9分布式电梯控制系统的性能分析 在表6-4中给出6.2.9分布式电梯控制系统的性能分析

6.2.9.2分布式环境的实时调度 我们来研究上一节中介绍的3个关键事件序列以及图6-56中所介绍的分布式配置: a.楼层到达事件序列——这个事件序列可以完全使用电梯子系统中的任务来处理(图6-49)。事件序列的周期=Ta=50毫秒。 ●事件序列中任务的执行时间: 总计执行时间Ca为7毫秒。 Ue=Ca/

Ta=7/50=0.14。 ●具有较长周期的高优先级任务抢占时间: 抢占时间Cp=3毫秒。 抢占使用率Up=3/50=0.06。 ●低优先级任务阻塞的时间: 总计最坏情况抢占时间Ba=6毫秒。 最坏情况阻塞使用率Ub=Ba

/Ta=6/50=0.122022/12/29566.2.9分布式电梯控制系统的性能分析 6.2.9.26.2.9分布式电梯控制系统的性能分析 总计逝去时间=7+3+6=16毫秒<50毫秒的周期。 总计使用率=Ue+

Up+

Ub=0.14+0.06+0.12=0.32<最坏情况上限0.69. 根据泛化使用率限定定理和泛化完成时间定理,楼层到达时间序列中的任务可以满足最后期限。使用率小于集中情况中的值。 b.电梯按钮按下事件序列——事件序列的周期=Tb=100毫秒。 ●事件序列中任务的执行时间:Ue=0.09。 ●具有较短周期的高优先级任务抢占时间:抢 占时间为14毫秒,Up=0.14。 ● 不存在阻塞时间,因为在考虑抢占时间和执行时间已 经考虑了电梯子系统中的所有任务。2022/12/29576.2.9分布式电梯控制系统的性能分析 总计逝去时间=6.2.9分布式电梯控制系统的性能分析 总计逝去时间=9+14=23毫秒<100毫秒的周期。 总计使用率=Ue+Up=0.09+0.14=0.23<最坏情况上限0.69。 根据泛化使用率限定定理和泛化完成时间定理,电梯按钮按下时间序列中的任务可以满足最后期限。此外,使用率也小于集中情况中的值。2022/12/29586.2.9分布式电梯控制系统的性能分析 总计逝去6.2.9分布式电梯控制系统的性能分析

6.2.9.3分布式事件序列

根据表6-4中给出的任务参数,依次在每个节点上应用实时调度理论。该事件序列的周期=Tc=200毫秒。 我们首先来考虑楼层子系统(图6-50): 1c.监视楼层按钮接收并处理中断。执行时间=Cf=4毫秒。 2c.【监视楼层按钮】发送消息。Cm=1毫秒。楼层子系统中的总计逝去时间Ef=Cf+Cm=4+1=5毫秒。 下一步我们来考虑网络传输延迟: 3c.消息的长度为25字节或者200比特。网络的容量为100MB,则传输延迟Dt为200/10000=2毫秒。2022/12/29596.2.9分布式电梯控制系统的性能分析 6.2.9.36.2.9分布式电梯控制系统的性能分析 接下来考虑调度器子系统(图6-52): 4c.【电梯调度器】任务接收消息。Cm=1毫秒。 5c.【电梯调度器】查询【全部状态和计划】数据存储,确定是否有一个电梯正驶向这个楼层。Cs=20毫秒。Cm=1毫秒。 由【电梯状态和计划服务器】访问数据存储可能造成的阻塞时间Bs=2毫秒。 调度器子系统中最坏情况逝去时间Es=Cm+CS+Cm+Bs=1+20+1+2=24毫秒。2022/12/29606.2.9分布式电梯控制系统的性能分析 接下来考虑调度器6.2.9分布式电梯控制系统的性能分析

再来考虑网络传输延迟: 6c.【调度器请求】消息要通过网络发送给电梯子系统。传输延迟Dt=2毫秒。 下一步来考虑电梯子系统(图6-48): 7c.【电梯管理器】接收并处理消息,Cm=1毫秒。Ce=6毫秒。 8c.【电梯管理器】向调度器子系统发送【电梯提交】消息。消息准备时间Cm=1毫秒。执行时间:Cm+Ce+Cm=1+6+1=8毫秒2022/12/29616.2.9分布式电梯控制系统的性能分析 2022/126.2.9分布式电梯控制系统的性能分析 在电梯子系统中有几种可能的延迟: ●抢占时间:总计抢占时间 =7+9=16毫秒。 ●阻塞时间:不需要累加阻塞时间。 电梯子系统中最坏情况逝去时间Es=8+16=24毫秒。 另外需要2毫秒的网络延迟(图6-56中的事件9c),并且【电梯状态和计划服务器】(事件10c)在更新【全部状态和计划】数据存储驶的最坏情况使用时间Eu=23毫秒。2022/12/29626.2.9分布式电梯控制系统的性能分析 在电梯子系统中有6.2.9分布式电梯控制系统的性能分析 在考虑了每个子系统以及网络传输延迟之后,处理楼层按钮按下事件序列最坏情况逝去时间=楼层子系统失去时间Ef+传输延迟Dt+调度器子系统由于调度的逝去时间Es+传输延迟Dt+电梯子系统逝去时间Ee+传输延迟Dt+调度器子系统通榆更新的逝去时间Eu=5+2+24+2+24+2+23=82毫秒。 对楼层按钮按下事件序列提供服务的总计最坏情况逝去时间为82毫秒。这个值远小于所需200毫秒的相应时间。2022/12/29636.2.9分布式电梯控制系统的性能分析 在考虑了每个子本讲小结

本讲重点是通过开发案例,深入理解实时系统开发的方法和技术,以及对系统的性能评估。2022/12/2964本讲小结2022/12/2664第六讲案例分析

(下)主讲:黎忠文第六讲案例分析

(下)主讲:黎忠文目录

6.2电梯控制系统案例研究

6.2.1概述 6.2.2开发环境和行为模型 6.2.3将系统构造成多个任务 6.2.4将系统构造成多个模块 6.2.5集成任务与模块视图 6.2.6开发基于Ada的构架设计 6.2.7分布式电梯控制系统 6.2.8非分布式电梯控制系统的性能分析 6.2.9分布式电梯控制系统的性能分析2022/12/2966目录 6.2电梯控制系统案例研究2022/12/266.2.1概述

这个案例由一个可以控制多部电梯的电梯控制系统组成。系统需要对电梯进行调度,以便对不同楼层的乘客所发出的请求做出响应,并控制楼层之间电梯的运动。案例中提供了两种设计方案,并对他们的性能进行分析。2022/12/29676.2.1概述 2022/12/2636.2.2开发环境和行为模型

6.2.2.1开发系统环境图 图6-36显示为系统环境图,并显示出了与系统连接的外部实体。2022/12/29686.2.2开发环境和行为模型 6.2.2.1开发系统

6.2.2开发环境和行为模型

I/O设备的硬件特征是:电梯按钮、楼层按钮和楼层到达传感器都是异步的;也就是说,当从其中任意一个设备中接受到输入时,就会出现一个中断。其他的I/O设备都是被动的。

2022/12/29696.2.2开发环境和行为模型 2022/12/2656.2.2开发环境和行为模型

6.2.2.2将系统分解为多个子系统

将系统分解为子系统要依据子系统所提供服务的特点而定。在对问题进行分析之后表明,系统可以分解为3个相对的独立的松散耦合子系统。这些子系统分别为【电梯】子系统,【楼层】子系统和【调度器】子系统。电梯子系统是一种实时控制子系统,而楼层子系统是一个数据采集子系统。这两个子系统都是集中对象。2022/12/29706.2.2开发环境和行为模型 6.2.2.2将系统6.2.2开发环境和行为模型

电梯系统分解为3个子系统的过程,显示在图6-37中的顶级数据流/控制流图中。有3个数据转换与这3个主要的子系统相对应。2022/12/29716.2.2开发环境和行为模型 电梯系统分解为3个子系统6.2.2开发环境和行为模型 6.2.2.3电梯子系统的分解

状态转换图——每个电梯都对应一个状态转换图,图中显示出该电梯的所有状态和转换(图6-38)。状态转换图要由一个控制对象来执行,即【电梯控制】对象。2022/12/29726.2.2开发环境和行为模型 6.2.2.3电梯子系6.2.2开发环境和行为模型

电梯集中对象——电梯子系统是一个集中对象。每个电梯集中对象是由多个设备I/O对象组成。在图6-39中的数据流/控制流图中对电梯子系统进行了分解。2022/12/29736.2.2开发环境和行为模型 电梯集中对象——电梯子系6.2.2开发环境和行为模型

在图6-39中现实的对象中有一个集中对象——【电梯控制和管理】对象,这个对象在图6-40中进行了进一步的分解。

2022/12/29746.2.2开发环境和行为模型 在图6-39中现实的对象6.2.2开发环境和行为模型

行为分析——现在考虑这个子系统的行为方面;尤其是要考虑【电梯控制】对象交互问题,以及在状态转换图中所定义的与该对象交互的对象和功能。

6.2.2.4楼层子系统的分解

楼层子系统是一个集中对象。在图6-41中的数据流/控制流图中显示了对楼层子系统的分解过程。2022/12/29756.2.2开发环境和行为模型 行为分析——现在考虑这个6.2.3将系统构造成多个任务

首先来考虑将电梯控制系统映射到单CPU或者紧密耦合多处理器环境中的情况(具有共享内存)。 这种方案的关键方面是电梯状态和计划数据存储可以由所有的电梯和调度器来访问,因此就需要使用集中式的数据区。他不适用于松散耦合的分布式系统,因为这种系统中没有共享内存。 如果需要将系统构造成多个任务,则必须分析数据流/控制流图上所有的叶级数据和控制转换,并应用任务结构化标准。这样就会依次对每个数据流/控制流图进行分析。考虑单电梯控制系统和多电梯控制系统两种情况。2022/12/29766.2.3将系统构造成多个任务 首先来考虑将电梯控制系6.2.3将系统构造成多个任务

6.2.3.1确定电梯子系统设备I/O任务 我们来看图6-37中数据流/控制流图。首先从设备I/O对象开始。根据异步设备输入任务结构化标准,电梯按钮要构造成一个单独的任务即监视电梯按钮(图6-42)2022/12/29776.2.3将系统构造成多个任务 6.2.3.1确定电6.2.3将系统构造成多个任务

6.2.3.2确定电梯子系统内部任务

我们来看图6-39中的电梯控制状态转换图。这也是一种控制对象的情况,它是使用状态转换图来表示的。在分析和建模的过程中,实际电梯实体的控制方面要对应于一个控制对象,即【电梯控制】对象。 对于单电梯的情况,电梯子系统要构成4个任务,即【监视电梯按钮】、【监视到达传感器】、【电梯管理器】和【电梯控制器】任务。如图6-42中的任务构架图所示。图6-43中的任务构架图显示了使用多个电梯的情况。2022/12/29786.2.3将系统构造成多个任务 6.2.3.2确定电6.2.3将系统构造成多个任务2022/12/29796.2.3将系统构造成多个任务2022/12/26156.2.3将系统构造成多个任务

6.2.3.3确定楼层子系统任务

楼层子系统要进行如下构造。根据异步设备I/O和任务反向任务结构化标准,楼层按钮要构造成一个单独的任务,即监视楼层按钮任务。该任务要由一个中断来激活,并对中断进行处理,然后发送服务请求,这样就可以处理下一个中断。根据控制内聚标准,输出到这些设备的I/O对象都可以调用任务控制器结合。这都是用于单电梯的解决方案。在多电梯的情况下,由多个电梯控制器的实例,他们可以并发地向楼层灯和方向灯发送请求。这要在每个设备上执行一个资源监视任务,以确保按顺序处理输出请求。2022/12/29806.2.3将系统构造成多个任务 6.2.3.3确定6.2.3将系统构造成多个任务 6.2.3.4定义任务接口

现在我们来考虑如何定义任务接口。首先来考虑数据流,他们显示在数据流/控制流图上。我们只需要考察对应于不同任务的对象/功能之间的接口。

【电梯按钮】与【接收新请求】之间的数据流要对应于【监视电梯按钮】任务和【电梯管理器】任务之间的松散耦合消息通信接口。

【楼层按钮】和【调度器】之间的数据流接口也可以对应于【监视楼层按钮】和【调度器】之间的松散耦合消息通信接口。

2022/12/29816.2.3将系统构造成多个任务 6.2.3.4定义任6.2.3将系统构造成多个任务

【楼层到达传感器】与【检查本楼层】之间的数据流接口要对应于【监视到达传感器】和【电梯控制器】之间的紧密耦合消息通信接口。 【接收新请求】与【电梯控制】转换之间的事件流接口要映射为【电梯管理器】与【电梯控制器】任务之间的紧密耦合消息通信接口。

2022/12/29826.2.3将系统构造成多个任务 2022/12/2616.2.3将系统构造成多个任务

在使用多电梯的情况中,在【电梯控制器】任务和两个资源任务——【楼层灯监视】任务和【方向灯监视】任务之间还存在一个接口。【更新状态】转化会向【楼层灯】和【方向灯】发送【电梯状态】数据流,这对应与【电梯控制器】与【楼层灯监视】之间的【楼层灯消息】接口。 多个任务访问的数据存储,以及这些数据存储与信息隐藏模块之间的对应方式。【电梯状态和计划】要对应与一个同名信息隐藏模块,由多个【电梯控制器】任务、【电梯管理器】任务,以及【调度器】任务来访问。2022/12/29836.2.3将系统构造成多个任务 在使用多电梯的情况中,6.2.3将系统构造成多个任务

6.2.3.5对其他任务构架的讨论 在单电梯案例(图6-42)与多电梯案例(图6-43)的任务构架之间主要的区别是:在多电梯案例中使用了【电梯控制器】任务的多个实例,并引入了两个资源监视任务。2022/12/29846.2.3将系统构造成多个任务 2022/12/2620

6.2.4将系统构造成多个模块

6.2.4.1定义设备接口模块 通过提供与实际设备之间的虚拟接口,设备接口模块(DIM)隐藏了与实际设备之间的实际接口。每个I/O设备都有一个设备接口模块。设备接口模块所提供的操作要通过考虑每个对象需要支付的功能来确定。

设备接口模块是: (1)电梯按钮——这个设备接口模块隐藏了与电梯按钮传感器连接的方式。该模块提供了两个操作:【读取】操作,该操作可以读取电梯按钮传感器中的数据;另一个操作是【初始化】操作。

2022/12/29856.2.4将系统构造成多个模块 6.2.4.1定义6.2.4将系统构造成多个模块

(2)楼层按钮——这个设备接口模块隐藏了与楼层按钮传感器连接的方式。该模块提供了两个操作:【读取】操作,该操作可以读取楼层按钮传感器中的数据;另一个操作是【初始化】操作。 (3)到达传感器——这个设备接口模块隐藏了与楼层到达传感器连接的方式。该模块提供了两个操作:【读取】操作,该操作可以读取楼层到达传感器中的数据;另一个操作是【初始化】操作。2022/12/29866.2.4将系统构造成多个模块 2022/12/2626.2.4将系统构造成多个模块 (4)马达——这个设备接口模块隐藏了与电梯马达连接的方式。提供了【上升】【下降】和【停止】的操作。 (5)电梯门——这个设备接口模块隐藏了与电梯门连接的方式。提供了【打开】【关闭】两个操作。 (6)电梯灯——这个设备接口模块隐藏了与电梯灯连接的方式。提供了【清除】电梯灯的操作。因为可以使用硬件来设置,所以不需要在软件提供【设置电梯灯】的操作。

2022/12/29876.2.4将系统构造成多个模块 (4)马达——这个设备6.2.4将系统构造成多个模块

(7)楼层灯——这个设备接口模块隐藏了与楼层灯连接的方式。提供了【清除】楼层灯的操作。因为可以使用硬件来设置,所以不需要在软件提供【设置楼层灯】的操作。 (8)方向灯——这个设备接口模块隐藏了与方向灯连接的方式。提供了【设置】和【清除】电梯灯的操作。2022/12/29886.2.4将系统构造成多个模块 2022/12/2626.2.4将系统构造成多个模块

6.2.4.2定义数据抽象模块 每个数据存储都奠定了一个数据抽象模块(DAM)的基础。其中一个主要的数据抽象模块就是【电梯状态和计划】模块。为了确定数据抽象模块的操作,必须对访问数据存储的数据转换进行分析(图6-40)。2022/12/29896.2.4将系统构造成多个模块 6.2.4.2定义数6.2.4将系统构造成多个模块

任务构架图中显示有3个不同的任务要访问数据抽象模块:【调度器】、【电梯管理器】和【电梯控制器】。

【调度器】读取每个电梯的计划和状态,以便选择一个电梯为即将到来的楼层请求提供服务。 【电梯管理器】包括【接收新请求】数据转换,他可以对【电梯计划】进行更新,并检查电梯是构处于空闲状态。 【电梯控制器】任务包括3个要访问数据存储的数据转换,即【检查本楼层】、【更新状态】和【检查下一个目的地】数据转换。

2022/12/29906.2.4将系统构造成多个模块 任务构架图中显示有3个6.2.4将系统构造成多个模块

6.2.4.3定义状态转换模块 有一个状态转换模块(StateTransitionModule,STM)即电梯状态转换模块中封装了状态装换图(表)。这个没跨支持两个操作,即【处理事件】和【当前状态】。电梯状态转换模块位于【电梯控制器】任务中。2022/12/29916.2.4将系统构造成多个模块 2022/12/26276.2.5集成任务与模块视图 既然已经定义了任务和信息隐藏模块,下一步就要确定任务和模块之间的关系。在开发的软件构架图(图6-44)中显示了这些关系。每个定义过的信息隐藏模块都明确地显示在图中,并包括它们的操作。2022/12/29926.2.5集成任务与模块视图 既然已经定义了任务和信息6.2.5集成任务与模块视图多电梯控制系统的软件构架,如图6-45所示2022/12/29936.2.5集成任务与模块视图多电梯控制系统的软件构架,如6.2.6开发基于Ada的构架设计

在ADARTS的下一个步骤中,要使用Ada来实现设计方案。在Ada构架图中,要首先引入Ada支持任务。我们首先考虑单电梯的情况。每个松散耦合的消息队列都要对应与一个消息缓冲任务。因此要引入两个消息缓冲任务(图6-46):一个用于缓冲【电梯和调度器请求】消息队列的【电梯和调度器请求缓冲】,另一个任务是用于缓冲【服务请求】消息队列的【服务请求缓冲】。

2022/12/29946.2.6开发基于Ada的构架设计 在ADARTS的6.2.6开发基于Ada的构架设计 【监视到达传感器】和【电梯控制器】之间的紧密耦合消息接口要直接映射为一个Ada会合。【电梯管理器】和【电梯控制器】之间的紧密耦合消息接口也要映射成一个Ada会合。因此,【电梯控制器】可以支持两个入口,一个是由【电梯管理器】调用的【新请求】;另一个是由【监视到达传感器】调用的【未确定的楼层到达】。2022/12/29956.2.6开发基于Ada的构架设计 【监视到达传感器】6.2.6开发基于Ada的构架设计 在【电梯状态和计划】数据抽象模块中要放置一个同步任务,用于确保对模块中保存的数据进行互斥访问。该任务有5个接口,在5个由数据抽象模块所提供的操作中,每个操作要使用一个入口。【电梯状态和计划数据存储要嵌套在同步任务中 有3个异步设备输入任务拥有由硬件调用的入口。这些任务就是【电梯按钮中断】、【楼层按钮中断】和【到达传感器中断】。 在多个电梯控制系统中,为了避免产生过多的任务开销,要通过使用任务调换技术,将【电梯控制器】的多个实例映射到一个任务中,即【电梯控制器任务】(图6-46)2022/12/29966.2.6开发基于Ada的构架设计 在【电梯状态和计划6.2.6开发基于Ada的构架设计2022/12/29976.2.6开发基于Ada的构架设计2022/12/2636.2.7分布式电梯控制系统

6.2.7.1总体系统构架 在分布式配置中,必须保证在分布式子系统之间进行的所有通信都是使用消息进行的。总体系统构架(图6-47)显示了多个电梯子系统的实例、多个楼层子系统的实例和调度器子系统的一个实例。2022/12/29986.2.7分布式电梯控制系统 6.2.7.1总体系统6.2.7分布式电梯控制系统

6.2.7.2电梯子系统的结构 在解决这个问题的分布式方案中,电梯子系统的每个实例都是由各个【电梯控制器】、【监视电梯按钮】、【监视到达传感器】和【电梯管理器】任务的实例组成的。电梯子系统的任务构架图如6-48所示2022/12/29996.2.7分布式电梯控制系统 6.2.7.2电梯子系6.2.7分布式电梯控制系统 子系统软件构架图(图6-49)中显示了信息隐藏模块以及各个任务对其访问的方式。信息隐藏模块的设计类似于非分布式方案。唯一的区别就是【本地电梯状态和计划】数据抽象模块比集中式方案更简单。2022/12/291006.2.7分布式电梯控制系统 子系统软件构架图(图6-6.2.7分布式电梯控制系统

6.2.7.3楼层子系统结构 【楼层】子系统的每个实例都拥有【监视楼层按钮】、【楼层灯监视】和【方向灯】监视任务的一个实例(图6-50)。【楼层】子系统中的任务类似于非分步式方案,区别是楼层子系统中具有多个电梯实例。2022/12/291016.2.7分布式电梯控制系统 6.2.7.3楼层子系6.2.7分布式电梯控制系统 在子系统软件构架图中(图6-51)中,每个楼层都使用了一个设备接口模块的实例。2022/12/291026.2.7分布式电梯控制系统 在子系统软件构架图中(图6.2.7分布式电梯控制系统

6.2.7.4调度器子系统的结构 系统中使用了一个调度器子系统的实例,该子系统由两个任务和一个信息隐藏模块组成(图6-52)。2022/12/291036.2.7分布式电梯控制系统 6.2.7.4调度器子6.2.7分布式电梯控制系统

【总体状态和计划】数据模块所拥有的操作是【更新状态】和【更新计划】,还提供了【选择电梯】的操作(图6-53)。2022/12/291046.2.7分布式电梯控制系统 【总体状态和计划】数据模6.2.7分布式电梯控制系统

6.2.7.5目标系统配置 在对目标系统进行配置的过程中,子系统(图6-47)要映射到物理节点中,一种可行的物理配置是在每一个节点使用各个电梯子系统的实例,在每一个节点上使用各个楼层子系统的实例,在一个节点上使用调度器子系统。因此如果有n部电梯和m个楼层的话,那么物理配置就需要n+m+1个物理节点。

2022/12/291056.2.7分布式电梯控制系统 6.2.7.5目标系统6.2.7分布式电梯控制系统 另一种可行配置是楼层子系统的所有实例都映射到一个节点中。在这种情况中,有一种可行的优化方案就是让每个任务来处理所有楼层的I/O设备,而不是一个楼层的I/O设备。这种配置不需要修改楼层子系统的任务构架。调度子系统可以继续映射到一个单独的节点中,或者可以映射到与楼层子系统相同的物理节点中。在后一种情况中,这种物理配置需要使用n+1个物理节点。2022/12/291066.2.7分布式电梯控制系统 另一种可行配置是楼层子系6.2.8非分布式电梯控制系统的性能分析 6.2.8.1性能分析场景 这一节要介绍应用实时调度理论来对非分布式电梯控制系统进行性能分析的问题。我们必须要研究一种电梯控制系统的指定配置,然后通过应用实时调度理论来分析最坏情况。

a.电梯按钮中断到达的最高频率是每秒钟10次,也就是最小时间间隔是100毫秒。

b.楼层按钮中断到达的最高频率是每秒钟5次,这就表示最小时间间隔是200毫秒。 c.3部电梯都处于运动状态中,并且同时到达楼层。这种情况可以解释为3部电梯的到达中断要在50毫秒之内到达。因为当接收到一个楼层中断时,【电梯控制器】必须确定电梯是否应该停在这个楼层。2022/12/291076.2.8非分布式电梯控制系统的性能分析 6.2.8.16.2.8非分布式电梯控制系统的性能分析

6.2.8.2事件序列

我们首先来研究下列用于非分布式系统的事件序列,如图6-54所示:2022/12/291086.2.8非分布式电梯控制系统的性能分析 6.2.8.6.2.8非分布式电梯控制系统的性能分析 a.楼层到达事件序列(周期=Ta) b.按下电梯按钮的事件序列(周期=Tb) c.按下楼层按钮的事件序列(周期=Tc) 虽然电梯控制系统中没有任何一个任务是定期任务,但是在使用的周期等于最小事件间隔时间的情况下,非定期任务也可以作为定期任务来处理。2022/12/291096.2.8非分布式电梯控制系统的性能分析 a.楼层到达事6.2.8非分布式电梯控制系统的性能分析

6.2.8.3优先级分配 表6-3中列出了非分布式电梯控制系统的任务参数。 中断驱动的任务在执行时比事件序列中其他任务的优先级更高。 根据速度单调优先级的分配原则,任务周期最短的得到最高的优先级。2022/12/291106.2.8非分布式电梯控制系统的性能分析 2022/16.2.8非分布式电梯控制系统的性能分析2022/12/291116.2.8非分布式电梯控制系统的性能分析2022/12/6.2.8非分布式电梯控制系统的性能分析

6.2.8.4非分布式环境实时调度

将表6-3中的任务使用率加在一起,可以得到一个总计使用率为0.4,这个值低于使用率限定定理中最坏情况上限0.69。然而,由于它违反了速度单调优先级的假设,所以必须进行更为详细的实时分析。 在分析过程中,必须考虑被高优先级任务抢占的情况,也要考虑被低优先级任务阻塞的情况。 在进行分析是可以使用泛化使用率限定定理和泛化完成时间定理。后者还可以通过使用图6-55中的时间图来说明,其中假设最坏情况是3个外部中断会同时到达。2022/12/291126.2.8非分布式电梯控制系统的性能分析 6.2.8.6.2.8非分布式电梯控制系统的性能分析

a.楼层到达事件序列——从表6-3中可以看出,事件序列的周期=Ta=50毫秒。

事件序列中任务的执行时间:总计执行时间Ca为7毫秒。执行使用率Ue=Ca/Ta=7/50=0.14。2022/12/291136.2.8非分布式电梯控制系统的性能分析2022/126.2.8非分布式电梯控制系统的性能分析 ●具有较长周期的高优先级任务抢占时间: 总计抢占时间Pa=3+4=7毫秒。抢占使用率Up=Pa/Ta=7/50=0.14。 ● 低优先级任务阻塞时间: 总计最坏情况阻塞时间Ba=20毫秒 最坏情况阻塞使用率Ub=Ba/Ta=20/50=0.40 总计逝去时间=Ca+Pa+Ba=7+7+20=34毫秒<50毫秒的周期。 总计使用率==Ue+Up+Ub=0.14+0.14+0.40=0.68<最坏情况上限0.69。2022/12/291146.2.8非分布式电梯控制系统的性能分析 ●具有较6.2.8非分布式电梯控制系统的性能分析 b.电梯按钮按下事件序列——从表6-3中可以看出,这个事件序列的周期Tb=100毫秒。 ●事件序列中任务的执行时间:总计执行时间Cb=3+6=9毫秒。Ue=Cb/Tb=0.09。 ● 具有较短周期的高优先级任务抢占时间:抢占 时间为14毫秒。 ●具有较长周期的高优先级任务抢占的时间: 总计抢占时间Cp=14+4=18毫秒。 抢占使用率Up=Cp/Tp

=18/100=0.18。 ● 低优先级任务阻塞时间: 总计最坏情况阻塞时间Bb=20毫秒 最坏情况阻塞使用率Ub=Bb/Tb=20/100=0.202022/12/291156.2.8非分布式电梯控制系统的性能分析 b.电梯按钮6.2.8非分布式电梯控制系统的性能分析 总计逝去时间=9+18+20=47毫秒<100毫秒的周期。 总计使用率=Ue+Up+Ub=0.09+0.18+0.20=0.47<最坏情况上限0.69。

c.楼层按钮按下事件序列——从表6-3中可以得出,这个事件序列的周期=Tc=200毫秒。 ● 事件序列中任务的执行时间: 总计执行时 间Cc=4+20+6=30毫秒。 Uc=Cc/Tc=0.15。

2022/12/291166.2.8非分布式电梯控制系统的性能分析 总计逝去时间6.2.8非分布式电梯控制系统的性能分析 ● 具有较短周期的高优先级任务抢占时间: 总计抢占时间Cp=28+18=46毫秒。 抢占使用率Up=Cp/Tp=0.23。 ●阻塞时间:由于其他任务访问数据存储所造成的阻塞时间已经考虑在内,所以这里不再累加阻塞时间。 总计逝去时间=30+46+0=76毫秒<200毫秒的周期。 总计使用率=Ue+Up=0.15+0.23=0.38<最坏情况上限0.69。2022/12/291176.2.8非分布式电梯控制系统的性能分析 ● 具有较短周6.2.9分布式电梯控制系统的性能分析 6.2.9.1性能分析场景 以上的例子表明,单处理器系统完全可以处理3个电梯、10个楼层的情况。当然当电梯和楼层的数量增加时,CPU负载会增加,系统最终将会超负荷运转。 我们再来考虑分布式方案的情况(图6-56)2022/12/291186.2.9分布式电梯控制系统的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论