1、第第1讲讲 实时系统引论实时系统引论主讲:黎忠文 目录目录引言引言1.1 1.1 实时系统的定义实时系统的定义1.2 1.2 实时系统的例子实时系统的例子1.3 1.3 实时系统的特征实时系统的特征小结小结引言引言 随着计算机变得更小、更快、更可靠和更便宜,其应用范围更宽了。最初制造的计算机只是作为方程求解装置,现在,其影响已经拓展到生活的各个方面,从洗衣机到空中交通管制。扩展最快的一个计算机应用领域所涉及的各种应用,其主要功能不是信息处理,然而需要信息处理以实现其主要功能。微处理器控制的洗衣机是这种系统的一个好例子。这里,基本功能是洗衣机,然而,为了洗不同种类的衣服,要执行不同的“洗衣程序”
2、。这种类型的计算机应用通常被称为实时应用或嵌入应用。估计世界上有99%的处理器是用于嵌入式系统的。这些嵌入式应用的编程对计算机语言提出了特别的要求,因为它们同传统的信息处理系统有不同的特征。1.1 1.1 实时系统的定义实时系统的定义 牛津计算词典(Oxford Dictionary of Computing)对实时系统给出下列定义:实时系统是指那些产生输出的时间至关重要的系统,这通常是因为输入对应于外界的某个运动,而输出又必须与同一运动相关。自输入时刻到输出时刻的时间滞后必须充分小,以达到可接受的及时性。PDCS(Predictably Dependable Computer Systems
3、)工程给出如下定义:实时系统是这样的系统:需要在环境限定的时间间隔里对来自环境的激励做出反应(包括实际时间的推移)。1.2 1.2 实时系统的例子实时系统的例子 上一节中我们介绍了实时系统和嵌入式系统的含义之后,这一节中介绍使用它们的例子,主要包括:过程控制制造业通信、指挥与控制广义嵌入式计算机系统1.2.1 1.2.1 过程控制过程控制 考察图1-1所示的简单例子,计算机完成单一的活动:通过控制阀门确保管道中液体的均匀流动。当检测到流量增加时,计算机必须通过改变阀门角度给予响应,该响应必须在一个有限时间段里发生以使管道接收端的设备不致过载。注意,实际响应可能涉及复杂的计算,以算出新的阀门角度
4、。1.2 1.2 实时系统的例子实时系统的例子计算机的作用。此计算机同使用传感器和致动器的设备进行交互。阀门是致动器的一个例子,而温度和压力转换器是传感器的例子。计算机控制传感器和致动器的动作以确保在当时的时间执行正确的设备操作。需要时,要在受控过程和计算机之间插入模数和数模转换器。上面的例子只展示了更大控制系统的一个部件。图1-2说明了嵌入到一个完整过程控制环境中的实时1.2.2 1.2.2 制造业制造业 图1-3图解说明生产控制计算机在制造过程中的作用。实际系统由诸如机床、操作装置和传送带等各种机械装置组成。它们都需要由计算机控制和协调。1.2 1.2 实时系统的例子实时系统的例子1.2.
5、3 1.2.3 通信、指挥与控制通信、指挥与控制 图1-4表示了一个指挥控制系统。1.2 1.2 实时系统的例子实时系统的例子1.2.4 1.2.4 广义嵌入式计算机系统广义嵌入式计算机系统的外部特性。通常有一个模块包含实际控制这些装置所必需的算法,一个模块负责记录系统状态的变化,一个模块检索并显示这些变化,还有一个模块同操作员进行交互。一个典型的嵌入式计算机系统可用图1-5表示,控制系统操作的软件可以被编制成若干模块,它们反映环境1.2 1.2 实时系统的例子实时系统的例子1.3 1.3 实时系统的特征实时系统的特征 实时系统具有许多特征(固有的或强加的),以下几小节将阐明。显然,并非所有实
6、时系统都具有所有这些特征,然而,用于实时系统有效编程的任何通用语言(和操作系统)都必须有支持这些特征的设施,实时系统的特征有:大且复杂 实数处理 极其可靠和安全 独立系统部件的并发控制1.3.1 1.3.1 大且复杂大且复杂 通常人们认为同开发软件相关联的大多数问题都是同大小和复杂性有关的问题。编写小程序不出现重大问题,因为设计、编码、维护和理解都由一个人完成。如果使用这个软件的人离开了公司或机构,另一个人能够在相对短的时间里学会这个程序,确实,有一种构建这种程序的艺术或技巧,而且小就是美。令人遗憾的是,不是所有软件都有这种理想的“小巧”特征。Lehman和Belady(1985)在试图描述大
7、系统的特征时,拒绝了那种认为庞大就是同指令数目、代码行数或组成一个程序的模块数目成正比的简单而且或许是直观的概念。他们将庞大同多样性联系起来,将庞大的程度同多样性的数量联系起来,诸如指令数目和开发工作量这样的传统指标,就只是多样性的特征。1.3 1.3 实时系统的特征实时系统的特征1.3.2 1.3.2 实数处理实数处理 图1-6举例说明了一个反馈控制器,这是最普通的形式,但也使用前馈控制器。为了计算出如何改变输入变量向量才能在输出向量上产生理想效果,该设备必须有一个数学模型。这些模型的推导属于另一个学科控制论。设备的模型常常是一个一阶常微分方程组,这些微分方程建立了系统的输出同设备的内部状态
8、和其输入变量之间的联系。改变设备的输出涉及求解这些微分方程,以得到所需的输入值。大多数物理系统都有惯性,所以改变不是瞬时的。在一个固定时间段里使系统移动到一个新的设置点上的实时需求,将增加数学模型和物理系统所需处理的复杂性。1.3 1.3 实时系统的特征实时系统的特征 由于这些困难、模型的复杂性、不同输入和输出的数目,大多数控制器都用计算机实现。将数字部件引入到系统里面改变了控制循环的性质。图1-7是对较早模型的修改。标记了*的项目现在是离散值,采样和保存操作由一个模拟/数字转换器进行,两个转换器都在计算机的直接控制之下。1.3.3 1.3.3 极其可靠和安全极其可靠和安全 社会越是把要害功能
9、的控制让位给计算机,就迫使计算机越是不能失效。银行之间的自动资金转移系统的失效会导致无法挽回的数百万美元的损失,发电厂的一个有故障部件可能导致重症监护室的一个关键的生命支持系统的失效,等等,这些颇为惊人的例子说明计算机硬件和软件必须是可靠的和安全的。实时系统的大块头和复杂性加重了可靠性问题。不仅必须考虑到应用中固有的、可预见的困难,还要考虑到有差错的软件设计引入的困难。1.3 1.3 实时系统的特征实时系统的特征1.3.4 1.3.4 独立系统部件的并发控制独立系统部件的并发控制 嵌入式系统通常由计算机和若干共存的外部构件组成,计算机程序必须同它们同时交互。并行地存在是这些外部现实世界构件的本
10、性。对表现出并发性的系统而言,同它的软件生产相关的一个主要问题是如何在程序结构中表达并发性,一种方法是把它完全留给程序员,这时,程序员就必须构造系统以循环执行一个处理各种并发任务的程序序列。1.3 1.3 实时系统的特征实时系统的特征1.3.5 1.3.5 实时设施实时设施 在任何实时系统中,响应时间都是决定性的,但是,要设计和实现保证在所有可能条件下都能在适当的时候产生适当的输出是非常困难的,为此,在所有时刻充分地利用计算资源常常是不可能的。由于这个原因,实时系统通常被构建成处理器的使用都有可观的空闲能力,以保证“最坏情况行为”不致在系统操作的关键阶段产生任何不希望的延迟。有了适当的处理能力
11、,需要语言和运行时的支持使程序员能够:规定动作进行的时间。规定动作完成的时间。对所有时间需求都不能满足的情况做出响应。对时间需求动态改变的情况做出响应。1.3 1.3 实时系统的特征实时系统的特征1.3.6 1.3.6 同硬件接口的交互同硬件接口的交互 嵌入式系统的特性要求计算机部件同外部世界交互。它们需要为现实里种类繁多的设备监视传感器和控制致动器。这些设备经由输入和输出寄存器同计算机交互,它们的操作需求是依赖于设备和依赖于计算机的。这些设备还产生中断,以通知处理器某些操作已经完成或引发了出错状态。过去,同设备的对接要么是留给操作系统去控制,要么需要程序员使用汇编语言插入对寄存器和中断的控制
12、和操纵。现在,因为设备多种多样,而且和它们相关的交互具有时间紧迫的本性,所以对它们的控制经常必须是直接的,不再经过操作系统的功能层次。此外,可靠性需求也反对使用低级编程技术。1.3 1.3 实时系统的特征实时系统的特征1.3.7 1.3.7 高效的实现和执行环境高效的实现和执行环境 由于实时系统对时间的要求极为苛刻,实现效率要比在其他系统中更重要。有趣的是,使用高级语言的主要好处是使程序员能将实现细节抽象掉,集中精力去解决手头的问题,但是,嵌入式计算机系统程序员不能享受这种好处。他或她必须不断地关心使用特定语言功能的代价。例如,对某个输入的响应需要在一毫秒之内,那么就没有必要使用一个执行时间为一微妙的语言功能!1.3 1.3 实时系统的特征实时系统的特征本讲小结 本章中,实时系统被定义为:任何必须在有限、指定的周期内对外部发生的输入激励做出响应的信息处理活动或系统。这种系统分为两类:硬实时系统:是那些在规定的时限前做出响应是绝对强制性要求的系统;软实时系统:是那些响应时间虽然重要但如果时限偶尔错过,系统功能依然正常运行的系统。