UML第18章实时系统.ppt_第1页
UML第18章实时系统.ppt_第2页
UML第18章实时系统.ppt_第3页
UML第18章实时系统.ppt_第4页
UML第18章实时系统.ppt_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

1、第18章,实时系统,18.1实时系统的介绍和分类18.2实时系统的相关概念18.3实时系统和一般系统的区别18.4多实时系统的比较18.5实时系统和面向对象系统是一个非常重要的时间系统,必须在有限的时间内处理外部事件并并行执行,系统效率始终保持最佳状态。18.1实时系统的介绍和分类。实时系统广泛应用于工业、商业和军事领域,并有许多实际应用。一般来说,实时系统通常是复杂的。18.1.1实时系统简介实时计算任务和只要求逻辑正确性的普通计算任务的最大区别是满足处理和时间之间的关系。它经常需要处理许多并发事件的输入数据流,这些事件的到达顺序和概率通常是不可预测的,它还要求系统在预设的时限内做出相应的响

2、应。实时系统的硬件和软件结构需要满足以下要求:(1)能够满足系统中实时任务负载的运行速度。(2)具有可预测延迟时间和满足响应时间要求的中断处理机制。(3)具有时间指标保证能力的输入输出处理。(4)处理器和输入输出设备之间合理的拓扑连接。(5)有时间限制的高速可靠通信。(6)实时错误处理。(7)实时任务调度和并发处理,主要要求是满足时间索引的准确性要求和提供满足运行时要求的信息。(8)实时多任务操作系统是现代实时系统主要依赖的基础平台,为实时应用提供了开发环境。18.1.2实时系统的分类,包括周期性和非周期性、硬实时和软实时,18.2实时系统的相关概念,实时系统的特点是如果逻辑和时序发生偏差,将

3、会造成严重的后果。实时系统有两种类型:软实时系统和硬实时系统。在软实时系统中,系统的目标是使每个任务尽可能快地运行,并且任务必须完成的时间不受限制。在硬实时系统中,每项任务都必须正确、及时地执行。18.2.1实时系统的概念意味着其正确性不仅取决于计算结果的逻辑正确性,还取决于计算结果的时序是否正确。因此,实时系统的要求是能够预测其行为,满足系统的时间约束。18.2.2前台和后台系统,简单的小型系统通常如图18-1所示设计。这种系统可以称为前台和后台系统或超循环系统。图18-1,18.2.3任务和多任务多任务操作的实现实际上依赖于中央处理器在许多任务之间进行切换和调度。多任务处理与前台和后台系统

4、非常相似,但有许多后台任务。多任务可以最大限度地利用中央处理器和模块化应用程序。在实时应用程序中,多任务处理的最大特点是开发人员可以将复杂的应用程序分层。使用多任务应用程序将更容易设计和维护,如图18-2所示。通常,每个任务都是一个无限循环,每个任务都处于以下五种状态之一:休眠状态、就绪状态、运行状态、挂起状态和中断状态:(1)休眠状态意味着任务驻留在内存中,但它不是由多任务内核调度的。(2)就绪意味着任务已准备好运行,但由于任务的优先级低于正在运行的任务,因此暂时无法运行。(3)任务处于运行状态意味着任务已经掌握了中央处理器的控制,正在运行。(4)挂起状态也可以称为等待事件状态,这意味着任务

5、正在等待事件发生。(5)发生中断时,中央处理器提供相应的中断服务,原运行任务暂时无法运行,进入中断状态。图18-3显示了由C/OS中的一些函数提供的服务这些函数使任务从一种状态变为另一种状态。,图18-3,18.2.4共享资源和关键区域可由多个任务使用的资源称为共享资源。为了防止数据被破坏,每个任务在处理数据时必须独占共享资源,这就是所谓的互斥。关键部分是指处理中不可分割的代码。一旦这部分代码开始执行,就不允许中断。为了确保关键部分代码的执行,中断应该在进入关键部分之前关闭,并且中断应该在关键部分代码执行之后立即打开。18.2.5内核,不可分割的内核。不可分割的内核要求每个任务放弃自己对中央处

6、理器的所有权,并且每个任务相互协作共享一个中央处理器。异步事件仍然由中断服务处理。不可分割内核的一个优点是它对中断的快速响应。不可分割内核的另一个优点是几乎不需要使用信号量来保护共享数据。图18-4展示了一个不可分割的内核的操作。图18-4,可剥夺内核。当系统响应时间很重要时,使用可移动内核。如果中断服务子程序使高优先级任务进入就绪状态,当中断完成时,被中断的任务被暂停,高优先级任务开始运行。如图18-5所示。18-5,18.2.6调度程序是内核的主要职责之一,它决定运行哪个任务。大多数实时内核都基于优先级调度。每项任务根据其重要性被赋予一定的优先级。静态优先级。当任务的优先级在应用程序执行期

7、间不变时,它们被称为静态优先级。在静态优先级系统中,任务及其时间限制在程序编译时是已知的。动态优先级。在应用程序执行过程中,任务的优先级是可变的,称为动态优先级。实时内核应该避免优先级反转的问题。优先级颠倒了。利用实时内核,优先级反转是实时系统中最常见的问题。图18-6说明了优先级反转是如何发生的。图18-6和18-7解释了在上面的例子中内核如何支持优先级继承。图18-7,18.2.7同步,您可以使用信号量来同步带有中断服务的任务,如图18-8所示。两个任务可以用两个信号量同步它们的行为,如图18-9所示。这叫做双边会合。双向同步类似于单向同步,只是两个任务相互同步。图18-9,18.2.8互

8、斥。在处理共享数据时,确保互斥的最简单、最快的方法是关闭中断并打开中断。如果不使用实时内核,当两个任务共享一个资源时,必须同意先测试整个变量。如果变量为0,则允许任务处理共享资源。为了防止另一个任务使用这个资源,前者简单地将整个变量设置为1,这通常被称为测试集或TAS。禁止任务切换如果任务不与中断服务子程序共享变量或数据结构,您可以使用禁止,然后允许任务切换。信号量。旗语是由埃德加迪克斯特拉在20世纪60年代中期发明的。信号量实际上是一种约定机制,广泛用于多任务内核。信号量用于:(1)控制共享资源的使用权;(2)标记事件的发生;(3)同步两个任务的行为。如图18-10所示,这两个任务争夺专有的

9、打印机使用权。图中的信号量用一个键来表示,这个键必须在使用打印机之前获得。图18-10,多任务共享一个RS-232C外围接口,每个任务应该向接口另一端的设备发送命令,并从设备接收响应。如图18-11所示。图18-11计数信号量可以被一个资源的几个任务同时使用。例如,使用信号量来管理缓冲池,如图18-12所示。图18-12,18.2.9中断是一种用于通知中央处理器异步事件的硬件机制。一旦识别出中断,中央处理器保存部分(或全部)字段,即部分或全部寄存器值,并跳转到一个称为中断服务子程序(ISR)的特殊子程序。中断服务子例程来处理事件。处理完成后:(1)在前台和后台系统中,程序返回后台程序。(2)对

10、于不可分割的内核,程序返回到中断的任务。(3)对于不可访问的内核,让进入就绪状态的优先级最高的任务开始运行。微处理器通常允许中断嵌套,这意味着在中断服务期间,微处理器可以识别另一个更重要的中断,并服务于那个更重要的中断,如图18-13所示。图18-13,中断延迟中断延迟=关闭中断的最长时间,开始执行中断服务子程序的第一条指令的时间,以及中断响应。中断响应定义为从中断发生到开始执行用户的中断服务子程序代码以处理中断的时间。中断响应时间包括开始处理该中断之前的所有开销。中断恢复时间。中断恢复时间被定义为微处理器返回中断的程序代码所需的时间。中断处理时间。尽管中断服务的处理时间应该尽可能短,但是对处

11、理时间没有绝对的限制。中断延迟、响应和恢复。图18-14至图18-16分别示出了前台和后台系统、不可分割内核和不可分割内核的中断延迟、响应和恢复过程。图18-14,图18-15,图18-16,非屏蔽中断。有时,中断服务必须尽可能快地到来,由内核引起的延迟变得无法忍受。在这种情况下,可以使用无屏蔽中断。如图18-17所示,可以通过增加外部电路来禁止非屏蔽中断。在未屏蔽的中断服务子例程中,内核服务不能用于发送任务信号,但是可以使用如图18-18所示的中断机制。图18-17,图18-18,18.2.10使用实时内核的优缺点,实时内核的使用使得实时应用程序的设计和扩展变得容易;RTOS大大简化了应用程

12、序的设计过程。当使用剥夺内核时,所有时间关键的事件都被尽可能快速有效地处理;通过有效的服务,RTOS更好地利用资源。如果应用程序能够承受额外的需求,我们应该考虑使用实时内核。这些额外的要求是:内核的价格,额外的内存开销,以及2到4个百分点的额外的中央处理器负载。18.3、实时系统和一般系统的区别,实时系统和其他一般系统的最大区别是满足处理和时间的关系。在实时计算中,系统的正确性不仅取决于逻辑结果,还取决于产生结果的时间。实时系统最重要的要求是,它必须能够在预定的时间限制内响应和处理外部或内部事件。实时操作系统还需要有效的中断处理能力来处理异步事件,以及有效的输入/输出能力来处理具有严格时间限制

13、的数据发送和接收应用程序。实时系统最重要的设计原则是采用各种算法和策略来保证系统行为的可预测性。18.4各种实时系统的比较。本节分析和比较了四种实时操作系统(RTOS)的特性。他们是lynx实时系统公司的Lynx、QNX软件系统有限公司的QNX、新墨西哥理工学院的RTLinux和堪萨斯大学的KURTLinux。18.4.1基本功能概述,QNX是一个分布式、嵌入式和可扩展的实时操作系统。它符合POSIX.1(程序接口)和POSIX.2(外壳和工具),并且部分符合POSIX.1b(实时扩展)。它最初是在1980年开发的,现在已经相当成熟了。LynxOS是一个分布式、嵌入式和可扩展的实时操作系统,遵

14、循POSIX.1a、POSIX.1b和POSIX.1c标准。它最初是在1988年开发的。RTLinux是一个嵌入式硬实时操作系统,部分支持POSIX.1b标准。KURTLinux不是为嵌入式应用设计的,它不同于硬/软实时应用。他们提出了“企业”实时应用的概念,如一些多媒体应用和自动柜员机网络应用。KURT是一个“严格”的实时系统,是为这类应用而设计的。,18.4.2架构的异同,QNX是一个微内核实时操作系统,其核心只提供四种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程运行在独立的地址空间。所有其他操作系统服务都是作为协作用户进程实现的,因此QNX核心非常小(QNX4.x约为12K

15、b),运行速度非常快。LynxOS目前还不是一个微内核操作系统,但是它计划通过使用所谓的Galaxy技术将它从一个大型的集成内核转变为一个微内核,这将在LynxOS3.0中引入。新的28Kb微内核提供以下服务:内核启动和停止、底层内存管理、错误处理、中断处理、多任务处理、底层同步和互斥支持。RTLinux实现了一个小型实时内核,它只支持底层任务的创建、中断服务例程的加载、底层任务的通信队列、中断服务例程(ISR)和Linux进程。最初的非实时Linux内核在这个小内核上作为一个抢占式任务运行,所有任务都在内核地址空间中运行。它不同于微内核和大内核,属于实时执行架构。其可靠性和可维护性对于电信服

16、务系统来说并不理想。KURTLinux内核由两部分组成:内核和实时模块。内核负责调度实时事件,实时模块为用户进程提供特定的实时服务。它不属于微内核结构。18.4.3调度策略分析,QNX提供POSIX.1b标准进程调度:(1)32个进程优先级。(2)基于优先级的抢占式文本切换。(3)可选调度策略:先进先出、轮换策略和自适应策略。LynxOS的调度策略如下:(1)LynxOS支持线程概念,提供256个全局用户线程优先级。(2)硬实时优先级调度:对每个优先级实施循环调度、定量调度和先进先出调度策略。(3)文本切换快,阻断时间短。(4)抢占RTOS核心。实时Linux在操作系统下实现了一个简单的实时内

17、核,而Linux本身作为一个优先级最低的可抢占任务在内核中运行。(1)用户可以编写自己的调度器,它可以作为可加载的核心模块来实现。(2)实现的调度程序是基于优先级的抢占式调度和EDF调度。(3)基于优先级的调度使用“单调速率算法”,直接支持周期性任务。KURTLinux可以在两种状态下运行:正常状态和实时状态。(1)支持先进先出调度策略、循环调度策略和UNIX分时调度策略。(2)增加了SCHED-KURT调度策略,这是一种静态调度策略。一个特殊的调度文件被用来记录要调度的预定义过程的参数。18.4.4系统开放度的比较,QNX的开放度:(1)QNX的POSIX兼容性及其UNIX专用编译器、调试器、XWindow和TCP/IP为UNIX程序员所熟悉;(2)支持多个中央处理器;(3)支持多条总线;(4)它提供各种外设。Lyn

温馨提示

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

最新文档

评论

0/150

提交评论