软件工程
电子教案
王树林
第 15章 实时系统的设计
实时计算系统的设计通常是复杂的,与外
部世界是高度耦合的,必须在问题域规
定的时间框架内对该问题域作出响应。
15.1 系统考虑
一个实时系统必须将硬件、软件、
人力和数据库元素集成起来,以恰当地
实现一组功能和性能需求。实时系统的
性能与功能一样重要。
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
实时软件的开发不同于其他软件工程的三个特
征:
( 1)实时系统的设计是受资源约束的。时间是
实时系统的首要资源。
( 2)实时系统是紧凑而复杂的。
( 3)实时系统的运行常常不需要用户的参与。
因此,实时软件必须能检测到导致故障的问
题,并在对数据和控制环境造成破坏前改正
这些问题。
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
15.2 实时系统
实时系统产生某种动作以响应外部世
界,为了完成这个功能,他们能高速地
采集数据,并在严格的时间和可靠性的
约束控制下。如军用的命令与控制系统、
消费者电器、过程控制、工业自动化、
医疗和科学研究、计算机图形等等。
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
系统响应时间
语境切换:包括在任务间
切换的时间和系统开销。
中断等待时间,是实际的
切换发生之前的延迟时间。
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
15.2.1 集成和性能问题
许多实时设计关心的是实时任务间的协调、
系统中断处理、保证不丢失数据的 I/O处理、
指定系统的内部和外部时间约束、以及确保
数据库的准确度等。
实时系统的性能主要由系统响应时间和他
的数据传输率决定。系统响应时间是系统检
测到一个内部或外部事件到发出响应动作这
段时间,事件检测和反映生成常常是简单的,
对事件信息进行处理以判断合适的反映往往
涉及到复杂耗时的算法。
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
数据传输率指的是串行 /并行数据以及模拟 /数字
信号进出系统的速度。
实时系统常常被用来处理一个连续的输入数据
流,设计必须保证数据不会丢失。必须能够
响应异步事件,因为到达序列和数据是很难
事先预测的。
实时系统对可靠性的要求极为严格,一旦发生
故障,系统能够进行故障自动恢复和重新启
动的功能。
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
15.2.2 中断出理
中断处理是实时系统不同于其他任
何类型系统的一大特性。实时系统在外
部世界规定的时间框架内响应外部事
件 — 中断。由于在同一时间有可能有多
个中断,所以还必须建立优先级中断。
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
中断处理
?保存被中断程序的状态
?判断中断的性质
?中断服务
?恢复被中断程序的状态
?返回被中断的程序
正常的
处理流
中断
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
在许多情况下,一个事件的中断服务自身可
能会被另一个更高优先级的事件中断,可以
建立中断优先级。
15.2.3 实时数据库
实时系统常常具有数据库管理的功能,统
称是分布式数据库。
使用分布式数据库可以提高性能。但也有数
据分区和复制造成的潜在的问题。
数据冗余可以提高系统的响应时间,但复制
也增加了系统的开销,此外使用分布式数据
库还引入了并发控制问题,并发控制涉及到
数据库的同步。
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
并发控制的传统方法是基于锁和时间戳。
15.2.4 实时操作系统
在实时应用中有两大类操作系统, (1)专为实
时应用设计的专用操作系统;( 2) 增加了实
时功能的通用操作系统。实时执行程序的使
用使得通用操作系统的实时性能变得可行,
他负责执行大量的操作系统功能。
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
15.2.5 实时语言
由于实时系统对性能和可靠性的特殊需
求,程序设计语言的选择也是很重要的。
通用程序设计语言,如 c语言,Fortran语
言等
军事实时语言:如 Ada,jovial,chill等。
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
15.2.6 任务同步和通信
一个多任务系统必须具有在任务间传递消
息和保证任务同步的机制,为此,操作系统
和具有支持运行时刻的语言,一般使用信号
队列、邮箱或消息系统来完成同步。信号量
使得并发任务能够同步。
信号量排队是帮助管理通信的软件原语。
信号量负责协调正在等待的任务。
在实时系统中,信号量常用来实现和管理
邮箱,邮箱用于暂时存放一个进程发送给另
一个进程的消息,进程产生一条消息后,将
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
他放入邮箱中,接着用信号通知一个要用
消息的进程:邮箱中有一条消息可供使
用。
进程间通信和同步的第三种方法是消息系
统,一个进程可以利用消息系统给另一
个进程发送消息。
15.3 实时系统的分析和仿真
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
实时系统的几个特性:
( 1)中断处理和语境切换;
( 2)响应时间;
( 3)数据传输率和吞吐量;
( 4)资源分配和优先级处理;
( 5)任务同步和任务间通信。
对这几个特性都可以进行详尽的说明,但是要
想验证是否系统成分会达到满意的响应时间、
是否有足够的系统资源来满足计算需求、或
处理的算法是否足够快,是极为困难的。
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
15.3.1 实时系统分析的数学工具
CHAPTER 15 DESIGN FOR
REAL-TIME SYSTEMS
15.3.2 仿真和建摸技术
Logix 方法使用了一种组合系统三种不同
视图符号的符号体系:活动图,模块图和状
态图。
功能问题是用表示系统处理能力的活动来
体现的。活动图体现了系统的功能视图,它
类似于传统的数据流图。
动态行为问题,通常涉及控制方面,是用
状态图来体现的,
15.4 实时设计
实时软件设计必须具体体现高质量软件所
具有的所有基本概念和原则。
在过去的二十年里,出现了大量的实时软
件设计方法。这些方法包括,
( 1)扩展了的数据流图方法;
( 2)扩展了的数据结构;
( 3)面向对象方法;
( 4)有限状态机模型;
( 5)消息传递系统;
( 6) Perti网模型
( 7)专门用于实时系统设计的语言。
小结
实时软件的设计不仅包含了传统软件设计的
所有方面,还引入了一套新的设计标准和关
注点。由于实时软件必须在外部事件规定的
时间范围内对事件作出响应,因此各种类型
的设计将变得更为复杂。
实时软件设计者必须考虑硬件和软件的功
能和性能,因为实时软件要么是时钟驱动、
要么是事件驱动。同时还必须关注中断处理、
数据传输率、分布式数据库和操作系统、专
门的程序设计语言。