计算机控制第3章解读

上传人:我** 文档编号:114996093 上传时间:2019-11-12 格式:PPT 页数:68 大小:240KB
返回 下载 相关 举报
计算机控制第3章解读_第1页
第1页 / 共68页
计算机控制第3章解读_第2页
第2页 / 共68页
计算机控制第3章解读_第3页
第3页 / 共68页
计算机控制第3章解读_第4页
第4页 / 共68页
计算机控制第3章解读_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《计算机控制第3章解读》由会员分享,可在线阅读,更多相关《计算机控制第3章解读(68页珍藏版)》请在金锄头文库上搜索。

1、第3章 实时多任务系统,3.1 概要 在控制系统中,一个实时应用(Application)通常包括若干控制流。为了有效地运行有多个控制流的复杂的应用,应该将应用分解为若干个与控制流相对应的任务(task)加以处理。现代控制系统广泛使用实时操作系统(Real Time Kernel)的基本功能为主线,介绍实时多任务系统的基本问题,包括以下内容: 实时系统中的多任务调度。 实时系统中的基本问题,如同步与互斥,优先级反转等等。,分布式控制系统中的实时通信。 此外,本章也介绍两种不使用实时操作系统的多任务方法,前台/后台系统和循环调度系统,它们由于简单可靠,至今仍在控制系统中广泛使用。,3.2、实时系

2、统和实时操作系统 1、实时系统 实时计算机系统的定义是:能够在确定的时间内运行其功能并对外部的异步事件作出响应的计算机系统。应注意到,“确定的时间”是对实时系统的最根本的要求,实时系统处理的正确性不仅取决于处理结果的逻辑上的正确性,更取决于获得该结果所需的时间。例如,一个在大多数情况下能在20us作出响应,但是偶然需要100us响应时间的系统,它的实时性能要劣于一个能在任何情况下以500us作出响应的系统。,高性能的实时系统,其硬件结构应该具有高的计算速度、高速中断处理和高的I/O通过能力。但是应该认识到,“实时”和“快速”是两个不同的概念。计算机系统处理速度的快慢,主要取决于它的硬件系统,尤

3、其是所采用的处理器的性能。对一个特定的计算机系统,它的处理速度无论怎样高,如果采用的是普通操作系统,就没有实时性可言。在现代控制系统中,实时操作系统是实时系统的核心。,在控制系统中广泛采用实时计算机组成应用系统,实时系统通常运行两类典型的工作。 一类是在预期的时间限制内,确认和响应外部的事件; 另一类处理和储存大量的来自被控系统的数据。对于第1类工作,任务响应时间、中断等待时间和中断处理能力是最重要的,将它称为中断型的。第2类是计算型的工作,要求很好的处理速度和吞吐能力。在实际应用中,经常遇到的是兼具两种要求的中断/计算混合型的实时系统。,不同的实时应用,对任务响应时间、中断等待时间、计算和吞

4、吐能力是有不同的要求。 限定时间(deadline)是指一个任务不被处理的最长时间。 根据对限定时间的不同要求,实时系统可以分为硬实时系统、强实时系统和弱实时系统。而在一般的实时应用中,往往既包含强实时性任务也包含弱实时性任务。,弱实时(soft real time)系统的基本特征是:要求的响应时间和处理时间既短又要确定,如果超出限定时间,所产生的结果就不可用。 硬实时(hard real time)系统,如果超出限定时间,就会造成灾难性后果。例如一个核电站,它对数据采集和处理的要求就高的多,必须密切地、连续地监测和控制电站设备的各项功能,以防止核事故或者突然的停电或关机,响应时间稍有超出,就

5、可能造成灾难性后果,或者对安全生产或发电成本有很大影响。从总体性能来说强实时和硬实时更注重峰值(I/O)负载下的性能。,在单处理器的嵌入式应用中,可以s要求,通常是在设备控制级实现;对前端计算机(IOC)的实时要求通常低于设备控制器;而操作员接口计算机(OPI)则往往是弱实时或者非实时的,它们运行通用的桌面操作系统。,2、实时操作系统 操作系统是计算机运行以及所有资源的管理者,包括任务管理、任务间的信息传递、I/O设备管理、内存管理和文件系统的管理等等。从外部来看,操作系统提供了与使用者、程序及硬件的接口,操作系统与计算机I/O硬件设备的接口是设备驱动器,应用程序与操作系统之间的接口是系统调用

6、。 通用计算机系统中运行的桌面操作系统,Windows和UNIX(Linux)。控制系统主要使用实时操作系统。大多数实时操作系统的结构依照UNIX操作系统的风格,所以它们又称为“类UNIX”操作系统。,3.3微内核 现代的实时操作系统的内核(kernel)通常采用客户/服务者方式,或称为微内核(microkernel)方式,微内核通常只保留任务调度和任务间通讯等几项功能,它依据客户报务者模型概念,把所有其他的操作系统功能都变成一个个用户态的服务器,而用户任务则被当做客户。客户要用到操作系统时,其实就是通过微内核与服务器通讯而已,微内核验证消息的有效性,在客户和服务器之间传递它们并核准对硬件的存

7、取,这样,微内核仅仅成为传递消息的工具。,微内核将与CPU有关的硬件细节都包含在很小的内核里,其他部分与硬件无关,这样,整个操作系统就很容易移植。如果要扩展功能,仅只是增加相应的服务器而已。在微内核方式下,各个服务器都是独立的用户态任务,有自己的内存保护空间,以标准的方式通讯,一个服务器出错,不会导致整个系统崩溃。此外,微内核操作系统的各种服务器可以分别在不同的处理机上运行,适合分布式系统。,计算机系统里的所有活动,被分解为一个个任务(task)运行。简单地说,任务就是装入计算机内正在运行的程序。程序是由指令和数据集所组成的可运行文件,而任务则是运行中的程序,它包括程序和与这个程序有关的数据及

8、计算机资源等,每个任务都占有自己的地址空间,包括堆栈区、代码区和数据区。 UNIX操作系统与实时操作系统的核心区别是它们任务调度方式的不同,UNIX公平地对待所有的任务,采用轮转调度等方法来调度任务。实时操作系统采用基于优先级的抢先方式来调度任务,调度器可以打断正在运行的任务,让优先级更高的任务优先运行,从而保证对高优级的事件在确定的时间里作出响应。,3.4内核态和用户态 操作系统内核的任务(服务器)称为内核任务,它们运行在内核态,又称内核空间。内核作为计算机系统资源的管理者,必须对CPU具有超过一般用户的控制权,内核任务工作在CPU的管态(Supervisor State),可以访问所有资源

9、,执行所有CPU指令。 工作在用户态(用户空间)的服务器和应用任务无法执行CPU的特权指令,它们对系统资源的访问以及对系统其他部分的影响是受到限制的,它们只能通过执行系统调用来访问系统资源。在不特别指明情况下,本章把应用任务简称为任务。,3.5实时执行器 不包括文件管理功能的实时操作系统称为实时执行器(Real Time Executive,RTEX)或实时内核(Real Time Kernel),事实上,实时执行器在控制系统得到更广泛的应用。在本章以下的内容,如不特别指出,谈到实时操作系统,即是指实时执行器。 实时操作系统的多任务方式也带来了一系列需要解决的问题,例如任务之间的同步和互斥、生

10、产和消费、死锁、饥饿和优先级反转问题。,3.6、运行多任务的简单系统 对于较为简单的控制应用,并不一定需要实时操作系统的管理。方法之一是采用前台/后台方式运行多个控制流,这种方法适合用来实现功能比较简单的应用,但是不具有实时性。另一个行之有效的、简单的实时控制的方法称为循环调度方式,它适用于控制周期性任务。,1、前台/后台系统 控制系统中,最简单的运行多个控制流的方法是前台/后台(foreground/background)方式,又称为超循环方式。前台/后台系统包含一个称为“后台”的无限循环程序,在C语言程序中就是main(),它顺序地调用各个应用模块,运行所设计的操作(例如I/O操作);同时

11、, 中断服务程序(ISR)用来处理异步事件,称为“前台”程序,显然前台的ISR是抢先后台程序运行的。前台/后台系统是一种事件驱动(event-driven)的系统。,在通常的程序设计中,要求中断处理尽快完成,以免影响其他中断处理或者任务的执行。ISR在取得中断设备传来的数据和状态信息之后就应该立即退出,将处理工作交由一般任务来完成。而在前台/后台系统中,为了及时处理异步事件,必须在ISR中完成全部处理,这样,中断服务程序就比通常的中断处理占用较长的时间。 可编程逻辑控制器(PLC)是使用前台/后台方式的典型例子。PLC的前台用来处理网络通信和时钟管理等异步事件,而所有I/O操作都在后台以“扫描

12、”方式顺序运行。,前台/后台方式无法满足实时性要求。首先,由中断服务程序而引入到后台处理的信息,并不能立即得到处理,必须等到后台循环轮到之后才得到处理,这样,异步事件在最坏情况下的响应时间,取决于运行一轮后台循环所需要的时间。以PLC为例,由前台通信取得的对某个I/O通道的开头命令,如果恰好发生在该通道刚被扫描之后(最坏情况),则后台必须循环整整一轮之后才能再次查询到并执行这个I/O开头命令。而且由于前台异步事件的插入,后台扫描循环一周所需的时间是不能准确预测的。,其次,后台扫描循环一周所需的时间还会随着新加入的应用模块(I/O操作)而增加。仍以PLC为例,如果扫描器(处理机)最初只处理1个3

13、2通道的I/O模块,后来新增加一个16通道的I/O模块,则所用的循环扫描时间就会增加许多。以上这些因素,造成前台/后台方式不能在预定的时间内响应异步事件,因而它不具有实时性。,前台/后台方式简单可靠而且易于实现,无需实时操作系统支持。采用前台/后台方式的PLC虽然不够实时,但只要所扫描的I/O模块不是特别多(至多装满一个机箱),却也足够“快”,响应时间在10100ms量级,可以满足许多场合的控制需要,加之PLC的编程极为简单(称为lad logic),因此在工业控制领域得到广泛应用。,2、循环调度系统 对于周期性的、顺序执行的若干任务,可以采用循环执行(Cyclic Executive)的方法

14、来运行,又称为时间线(Timeline)方法。它将各个不同频率的任务按静态设计好的顺序排列,由定时器中断产生的定时节拍(tick)所驱动,定时节拍的频率是各个任务运行频率的最小公倍数,任务在分割的时间片中运行,一个任务运行结束之后,另一个任务开始运行。,设计循环执行系统,要保证每个时间片内任务运行的总时间小于时间片长度,在上述例子中,即是要求Ca+Cb,Ca+Cc,如果不能满足这个要求,就需要把执行时间过长的任务分割为较短的子任务来设计。 循环执行方法的不足之处首先是它只能用于调度周期性任务。其次,它通常只有采用查询的方式。如果要在其中加入I/O事件驱动(外部中断驱动),则系统设计就比较复杂。

15、加入中断处理的主要困难在于如何将中断服务程序ISR的数据可靠传递给任务。一个方法是分别为ISR和任务开设互相分隔的缓冲区,ISR的数据写入自己的缓冲区,在进入定时器节拍中断时,屏蔽所有中断,将ISR缓冲区的数据拷贝到任务缓冲区,然后开中断,进行任务调度。这种方法的缺点是,通过中断所取得的I/O数据,不能立即传递给任务,会有一段延迟。,循环执行方法中,往往只有一个任务能保证强实时性。在一个时间片里,只有第一个任务是准确地被时钟节拍中断所启动,后续的任务可能因前一个任务运行时间的不确定性(例如,存在与数据有关的循环)而出现时间晃动。 由于循环执行方法的任务调度模块与应用模块之间存在强耦合,当应用模

16、块需要改动时,任务调度模块也必须改动(事实上一旦设计完成,很难进行扩充或改动)。例如,初始设计A、B和C个任务的周期分别为250ms、50ms和100ms,则主循环T=100ms,次循环(时间片)=25ms。如果将B任务运行周期改为40ms,则主循环T=200ms,次循环=5ms,前后两个设计的差别十分之大。,循环执行方法是一种时间驱动(time-driven)的方法。尽管有以上缺点,但这个方法简单,可靠性高,运行开销小而又具有实时性,而且由于任务之间共享数据,很容易保证任务间数据交换的完整性。因此这种方法很长时间里一直被用于空中交通管制、空间飞船和飞机(例如波音777)等生命安全级(safety-critical)高的可靠控制系统中。,3.7、实时多任务系统 处理多任务的理想方法之一是采用紧耦合多处理机(multi-processor)系统,让每个处理机各处理一个任务。这种方法真正做到了在同一时刻运行多个任务,称为并行处理。这种处理复杂应用的紧耦合多处理机系统,在分布式控制系统中应用并不普遍,不是本章研究的内容。,分布式控制系统中的各个节点普遍使用单处理机系统。单

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号