UML第18章实时系统.ppt

上传人:本田雅阁 文档编号:2894996 上传时间:2019-06-02 格式:PPT 页数:93 大小:446.02KB
返回 下载 相关 举报
UML第18章实时系统.ppt_第1页
第1页 / 共93页
UML第18章实时系统.ppt_第2页
第2页 / 共93页
UML第18章实时系统.ppt_第3页
第3页 / 共93页
UML第18章实时系统.ppt_第4页
第4页 / 共93页
UML第18章实时系统.ppt_第5页
第5页 / 共93页
点击查看更多>>
资源描述

《UML第18章实时系统.ppt》由会员分享,可在线阅读,更多相关《UML第18章实时系统.ppt(93页珍藏版)》请在三一文库上搜索。

1、第18章 实时系统,18.1 实时系统的简介及其分类 18.2 实时系统的相关概念 18.3 实时系统与通用系统的区别 18.4 多种实时系统的比较 18.5 实时系统与面向对象,实时系统(Real Time System)是一个对时间非常重要的系统,必须在有限的时间内,处理外部事件,以并行方式执行,而且系统效率经常保持最佳状况。,18.1 实时系统的简介及其分类,实时系统在工业、商业和军事等领域都有非常广泛的用途,并且已经有很多实际的应用。一般来说,实时系统通常是比较复杂的。,18.1.1 实时系统简介,实时计算任务与常见的只要求逻辑正确性的计算任务之间的最大不同之处就是要满足处理与时间的关

2、系。它经常要处理很多并发事件的输入数据流,这些事件的到来次序和几率通常是不可预测的,而且还要求系统必须在事先设定好的时限内做出相应的响应。,实时系统的软硬件结构需要满足以下要求: (1)可满足系统中实时任务负载的运算速度。 (2)延迟时间可预测并可满足响应时间要求的中断处理机制。 (3)具有时间指标保障能力的I/O处理。 (4)合理的处理器和I/O设备的拓扑连接。 (5)高速可靠的和有时间约束的通信。,(6)实时的出错处理。 (7)实时任务调度和并发处理,主要要求是满足时间指标的正确性要求,并提供满足运行时需求的。 (8)实时多任务操作系统,这是现代实时系统所主要依赖的基础平台,提供实时应用的

3、开发环境。,18.1.2 实时系统的分类,分为周期性的和非周期性的 分为硬实时和软实时,18.2 实时系统的相关概念,实时系统的特点是,如果逻辑和时序出现偏差将会引起严重后果。有两种类型的实时系统:软实时系统和硬实时系统。,在软实时系统中系统的宗旨是使各个任务运行得越快越好,并不限定某一任务必须在多长时间内完成。 在硬实时系统中,各任务不仅要执行无误而且要做到准时。,18.2.1 实时系统的概念,实时系统是指:其正确性不仅依赖于计算结果逻辑上的正确,还依赖于计算结果产生的时机是否正确。所以对实时系统的要求是其行为的可预测并且能够满足系统的时间约束。,18.2.2 前后台系统,不复杂的小系统一般

4、设计成如图18-1所示。这种系统可称为前后台系统或超循环系统。,图18-1,18.2.3 任务与多任务,多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。多任务运行很像前后台系统,但后台任务有多个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。,在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务应用程序将更容易设计与维护,如图18-2所示。,图18-2,典型的、每个任务都是一个无限的循环、每个任务都处在以下5种状态之一的状态下,这5种状态是:休眠态、就绪态、运行态、挂起态和被中断态:,(1)休眠态相当于该任务驻留在内存中

5、,但并不被多任务内核所调度。 (2)就绪意味着该任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行。,(3)运行态的任务是指该任务掌握了CPU的控制权,正在运行中。 (4)挂起状态也可以叫做等待事件态WAITING,指该任务在等待,等待某一事件的发生。 (5)发生中断时,CPU提供相应的中断服务,原来正在运行的任务暂不能运行,就进入了被中断状态。,图18-3表示C/OS-中一些函数提供的服务,这些函数使任务从一种状态变到另一种状态。,图18-3,18.2.4 共享资源与临界区,可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享

6、资源打交道时,必须独占该资源,这叫做互斥。,临界区指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。为确保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执行完以后要立即开中断。,18.2.5 内核,不可剥夺型内核。不可剥夺型内核要求每个任务自我放弃CPU的所有权,各个任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。不可剥夺型内核的一个优点是响应中断快。不可剥夺型内核的另一个优点是,几乎不需要使用信号量保护共享数据。图18-4示意不可剥夺型内核的运行情况。,图18-4,可剥夺型内核。当系统响应时间很重要时,要使用可剥夺型内核。如果是中断服务子程序使一个高优

7、先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。如图18-5所示。,图18-5,18.2.6 调度,调度(Scheduler)是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。,静态优先级。应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的。,动态优先级。应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转问题。,优先级反转。使用实时内核,优先级反转问题是实时系统中出

8、现得最多的问题。如图18-6所示是解释优先级反转是如何出现的。,图18-6,图18-7解释如果内核支持优先级继承在上述例子中会是怎样一个过程。,图18-7,18.2.7 同步,可以利用信号量使某任务与中断服务同步,如图18-8所示。,图18-8,两个任务可以用两个信号量同步它们的行为,如图18-9所示。这叫做双向同步(bilateral rendezvous)。双向同步同单向同步类似,只是两个任务要相互同步。,图18-9,18.2.8 互斥,关中断 处理共享数据时保证互斥,最简便快捷的办法是关中断和开中断。,测试并置位 如果不使用实时内核,当两个任务共享一个资源时,一定要约定好,先测试某一全程

9、变量,如果该变量是0,允许该任务与共享资源打交道。为防止另一任务也要使用该资源,前者只要简单地将全程变量置为1,这通常称作测试并置位(Test-And-Set),或称作TAS。,禁止做任务切换 如果任务不与中断服务子程序共享变量或数据结构,可以使用禁止、然后允许任务切换。,信号量。信号量是20世纪60年代中期Edgser Dijkstra发明的。信号量实际上是一种约定机制,在多任务内核中普遍使用。信号量用于:,(1)控制共享资源的使用权 (2)标志某事件的发生 (3)使两个任务的行为同步,如图18-10所示中的两个任务竞争得到排它性打印机使用权,图中信号量用一把钥匙表示,想使用打印机先要得到这

10、把钥匙。,图18-10,多任务共享一个RS-232C外设接口,各任务要送命令给接口另一端的设备并接收该设备的回应。如图18-11所示。,图18-11,计数式信号量用于某资源可以同时为几个任务所用。例如,用信号量管理缓冲区阵列(buffer pool),如图18-12所示。,图18-12,18.2.9 中断,中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分(或全部)现场即部分或全部寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后:,(1)在前后台系统中,程序回到后台程序。 (2)对不可剥夺型内核而言,程序回到被

11、中断了的任务。 (3)对可剥夺型内核而言,让进入就绪态的优先级最高的任务开始运行。,微处理器一般允许中断嵌套,也就是说在中断服务期间,微处理器可以识别另一个更重要的中断,并服务于那个更重要的中断,如图18-13所示。,图18-13,中断延迟 中断延迟=关中断的最长时间+开始执行中断服务子程序的第一条指令的时间,中断响应。中断响应定义为从中断发生到开始执行用户的中断服务子程序代码来处理这个中断的时间。中断响应时间包括开始处理这个中断前的全部开销。,中断恢复时间。中断恢复时间定义为微处理器返回到被中断了的程序代码所需要的时间。,中断处理时间。虽然中断服务的处理时间应该尽可能的短,但是对处理时间并没

12、有绝对的限制。,中断延迟、响应和恢复。图18-14到图18-16分别示意前后台系统、不可剥夺型内核、可剥夺型内核相应的中断延迟、响应和恢复过程。,图18-14,图18-15,图18-16,非屏蔽中断。有时,中断服务必须来得尽可能地快,内核引起的延时变得不可忍受,在这种情况下可以使用非屏蔽中断。非屏蔽中断可以用增加外部电路的方法禁止掉,如图18-17所示。在非屏蔽中断服务子程序中,不能使用内核服务给任务发信号,但可以使用如图18-18所示的中断机制。,图18-17,图18-18,18.2.10 使用实时内核的优缺点,实时内核的使用使得实时应用程序的设计和扩展变得容易;RTOS使得应用程序的设计过

13、程大为简化;使用可剥夺性内核时,所有时间要求苛刻的事件都得到了尽可能快捷、有效地处理;通过有效的服务,RTOS使得资源得到更好的利用。,如果应用项目对额外的需求可以承受,应该考虑使用实时内核。这些额外的需求是:内核的价格,额外的ROM/RAM开销,2到4个百分点的CPU额外负荷。,18.3 实时系统与通用系统的区别,实时系统与其他普通的系统之间的最大的不同之处就是要满足处理与时间的关系。在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间。,对于实时系统来说最重要的要求就是它必须有满足在一个事先定义好的时间限制中对外部或内部的事件进行响应和处理的能力。,实时操作系统还需

14、要有效的中断处理能力来处理异步事件和高效的I/O能力来处理有严格时间限制的数据收发应用。,实时系统所遵循的最重要的设计原则是:采用各种算法和策略,始终保证系统行为的可预测性。,18.4 多种实时系统的比较,本节对四种实时操作系统(RTOS)特性进行分析和比较。它们是:Lynx实时系统公司的LynxOS、QNX软件系统有限公司的QNX以及两种具有代表性的实时Linux新墨西哥工学院的RTLinux和堪萨斯大学的KURTLinux。,18.4.1 基本特征概述,QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1(程序接口)和POSIX.2(Shell和工具)、部分遵循POS

15、IX.1b(实时扩展)。它最早开发于1980年,到现在已相当成熟。,LynxOS是一个分布式、嵌入式、可扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。它最早开发于1988年。,RTLinux是一个嵌入式硬实时操作系统,它部分支持POSIX.1b标准。,KURTLinux不是为嵌入式应用设计的,不同于硬(hard)实时/软(soft)实时应用,他们提出“严格(firm)”实时应用的概念,如一些多媒体应用和ATM网络应用,KURT是为这样一些应用设计的“严格的”实时系统。,18.4.2 体系结构异同,QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调

16、度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其他OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。,LynxOS目前还不是一个微内核结构的操作系统,但它计划使用所谓的“Galaxy”技术将其从大型集成化内核改造成微内核,这一技术将在LynxOS3.0中引入。新的28Kb微内核提供以下服务:核心启动和停止、底层内存管理、出错处理、中断处理、多任务、底层同步和互斥支持。,RTLinux实现了一个小的实时核心,仅支持底层任务创建、中断服务例程的装入、底层任务通信队列、中断服务例程(ISR)和Linux进程。原来的非实时

17、Linux核心作为一个可抢先的任务运行于这个小核心之上,所有的任务都在核心地址空间运行。它不同于微内核和大型内核,属于实时EXE(realtime excutive)体系结构。其可靠性和可维护性对电信服务系统来说都不够理想。,KURTLinux核心包括两个部分:内核和实时模块。内核负责实时事件的调度,实时模块为用户进程提供特定的实时服务。它不属于微内核结构。,18.4.3 调度策略分析,QNX提供POSIX.1b标准进程调度: (1)32个进程优先级。 (2)抢占式的、基于优先级的正文切换。 (3)可选调度策略:FIFO、轮转策略、适应性策略。,LynxOS其调度策略为: (1)LynxOS支

18、持线程概念,提供256个全局用户线程优先级。 (2)硬实时优先级调度:在每个优先级上实现了轮转调度、定量调度和FIFO调度策略。 (3)快速正文切换和阻塞时间短。 (4)抢占式的RTOS核心。,RTLinux在操作系统之下实现了一个简单的实时核心,Linux本身作为一个可抢占的任务在核内运行,优先级最低。 (1)用户可自行编写调度程序,它们可实现为可加载的核心模块。 (2)已实现的调度程序有:基于优先级的抢占式调度和EDF调度。 (3)基于优先级的调度使用“单调率算法”,它直接支持周期任务。,KURTLinux可运行在两种状态之下:通常状态和实时状态。 (1)支持FIFO调度策略、轮转调度策略

19、和UNIX分时调度策略。 (2)增加了SCHED-KURT调度策略,这是一种静态调度策略,使用一个特殊的调度文件记录预先定义好的待调度进程的参数。,18.4.4 系统开放性对比,QNX的开放性: (1)QNX的POSIX兼容性和其提供的UNIX特色的编译器、调试器、XWindow和TCP/IP都是UNIX程序员所熟悉的 (2)支持多种CPU (3)多种总线 (4)各种外设,LynxOS的开放性 (1)POSIX.1a、1b、1c及BSD4.4等兼容性,使得遵循POSIX1003或用于UNIX的程序很容易移植到LynxOS上 (2)支持多种CPU主板 (3)各种外设适配器,Linux的开放性:

20、(1)用户可得到UNIX的全部开发工具。 (2)可使用市场上便宜又常见的硬件。,18.4.5 系统服务比较,QNX的系统服务包括: (1)多种资源管理器 (2)设备管理 (3)图形窗口支持,(4)TCP/IP for QNX (5)高性能、容错型QNX网络FLEET (6)透明的分布式处理,LynxOS的系统服务: (1)网络和通信 (2)TCP/IP协议栈 (3)Internet工具,(4)SVR3流 (5)文件系统 (6)基于Motif的图形用户接口 (7)分布式计算资源,RTLinux与KURTLinux都基于Linux,故只介绍Linux。Linux的系统服务: (1)UNIX用户的开

21、发工具和应用软件都被移植到Linux上。 (2)TCP/IP网络协议。 (3)各种Internet客户/服务端软件。 (4)X Window。 (5)C/C+、Java等语言编译器。,18.5 实时系统与面向对象,当前的面向对象分析与设计方法主要集中于系统中软件部分,对于实时系统市场来说是不可接收的,实时系统开发要求实用地完整地述整个系统而并非只是软件部分。这里简介一下ARTiSAN公司提供的基于UML的面向对象的建模方法,它专门针对实时系统,是实际可行的实时系统与软件分析、设计方法与工具。,Realtime Studio Professional Ada Synchronizer for ARTiSAN Real-time Studio Altia FacePlate for Real-time Studio,小结,本章简介了实时系统的相关概念,介绍了实时系统作为一种操作系统与其他操作系统的区别。并且介绍了几种常见的实时操作系统。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1