软件工程:实践者的研究方法第15章实时系统的设计

软件工程:实践者的研究方法第15章实时系统的设计,第1张

软件工程:实践者的研究方法第15章实时系统的设计,第2张

第15章 实时系统的设计

  实时计算系统的设计是一个软件工程师所能从事的最有挑战性和最为复杂的任务。由于这个特点,用于实时系统的软件需要其他应用领域没有涉及到的分析、设计和测试技术。

  实时软件是外部世界高度耦合的,也就是说,实时软件必须在问题域规定的时间框架内对该问题域(现实世界)作出响应。由于实时软件必须在严格的性能约束下操作,因此软件的设计常常是被硬件及软件体系结构、操作系统特性、应用需求和编程语言的变化所驱动的。

  Robert Glass[GLA83]在他关于实时软件的书中,对实时系统主题给出了一段很有帮助的介绍:

  数字计算机在我们所有人的日常生活中正变得日益普及。计算机不但可以让我们玩游戏,还可以报时、优化最新一代汽车的汽油里程以及控制我们的家用电器……[在工业上,计算机可以控制机器、协调过程,并逐渐用自动化系统和“人工智能”来代替手工操作和人的参与。]

  所有上述的计算——不论是有帮助的还是强行引入的——都是实时计算的例子。计算机正在控制着某些东西与外部世界的实时交互,事实上,时间是交互的核心……反应迟钝的实时系统比完全没有系统还要糟糕。

  就在十年前,实时软件开发还被认为是一种黑色的艺术,它的从事者是那些充满嫉妒地保卫着他们封闭世界的巫师们。如今,巫师们已经供不应求了!然而,实时软件的开发毫无疑问需要特殊的技能。在本章里我们将对实时软件进行研究,并讨论建造实时软件所需的某些开发技能。

15.1系统考虑

  与其他任何基于计算机的系统一样,一个实时系统必须将硬件、软件、人力和数据库元素集成起来,以恰当地实现一组功能和性能需求。在第10章中,我们探讨了基于计算机的系统任务分配,并指出,系统工程师必须对系统元素分配功能和性能。实时系统的问题在于恰当的分配。实时性能常常与功能一样重要,但却很难有把握地作出与性能相关的分配决策。一个处理算法能满足严格的时间约束吗,或者说我们应该建造特殊的硬件来完成这个工作?一个购买来的操作系统能够满足我们进行高效的中断处理、多任务和通信的需求吗,或者说我们应该使用自定义的执行程序?与推荐的软件配对的特定硬件能够满足性能标准吗?所有这些以及其他许多问题都需要由实时系统工程师来回答。

  对实时系统所有成分的详细讨论已经超出了本书的范围,在[SAV85]、[ELL94]和[SEL94]等文献中有大量好的有关这方面的信息,但是,在讨论软件分析和设计问题前我们对实时系统的各个元素能有所理解还是非常重要的。

  Everett[EVE95]定义了实时软件开发不同于其他软件工程的三个特征:

  ·实时系统的设计是受资源约束的。时间是实时系统的首要资源,关键是要在指定数目的CPU周期内完成一个定义好的任务,除此以外,其他系统资源,如内存大小等,在实现系统目标时都有可能和时间进行折衷。

  ·实时系统是紧凑而复杂的。尽管一个复杂的实时系统可能包含上百万行的代码,但软件中有关时间标准的代码一般只占很小一部分。这一小部分代码是最为复杂的(从算法的角度来说)。

  ·实时系统的运行常常不需要用户的参与。因此,实时软件必须能检测到导致故障的问题,并在对数据和控制环境造成破坏前改正这些问题。

  在下面一节中,我们将探讨一下实时系统不同于其他类型计算机软件的一些关键性属性。

15.2 实时系统

  实时系统产生某种动作以响应外部世界。为了完成这个功能,它们能高速地获取数据,并在严格的时间和可靠性约束控制下。由于这些约束是如此苛刻,实时系统通常只用于满足单个的应用。

  实时系统广泛地用于各种应用领域,包括军用的命令与控制系统、消费者电器、过程控制、工业自动化、医疗和科学研究、计算机图形、局域和广域通信、航天系统、计算机辅助测试以及大量的工业仪器。

15.2.1集成和性能问题

  为了将一个实时系统组织在一起,系统工程师需要作出困难的硬件和软件决策。(实时系统与硬件相关的分配问题超出了本书的范围;更多的信息请参阅文献[SAV85]。)一旦分配好软件成分,就要建立详细的软件需求,并必须开发出一个基本的软件设计。许多实时设计关心的是实时任务间的协调、系统中断的处理、保证不丢失数据的I/O处理、指定系统的内部和外部时间约束、以及确保数据库的准确度等。

  实时设计关注的每个部分都必须应用到系统性能这个语境中。在大多数情况下,一个实时系统的性能是由一个或多个与时间相关的特征来测度的,但也可能用容错性之类的指标来测度。

  某些实时系统是设计来用于那些只关注反应时间或数据传输率的应用中,其他实时应用还需要对峰值负载条件下的这两个参数进行优化,而且,实时系统必须在执行一系列并发任务时处理它们的峰值负载。

  由于一个实时系统的性能主要由系统响应时间和它的数据传输率决定,所以理解这两个参数是很重要的。系统的响应时间是从系统检测到一个内部或外部事件到发出响应动作这段时间,事件检测和反应生成常常是很简单的,对事件信息进行处理以判断合适的反应往往会涉及到复杂耗时的算法。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 软件工程:实践者的研究方法第15章实时系统的设计

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情