1、第第1818章章 实时系统实时系统 18.1 18.1 实时系统的简介及其分类实时系统的简介及其分类 18.2 18.2 实时系统的相关概念实时系统的相关概念 18.3 18.3 实时系统与通用系统的区别实时系统与通用系统的区别 18.4 18.4 多种实时系统的比较多种实时系统的比较 18.5 18.5 实时系统与面向对象实时系统与面向对象 实时系统(实时系统(Real Time SystemReal Time System)是一个对时间)是一个对时间非常重要的系统,必须在有限的时间内,处理非常重要的系统,必须在有限的时间内,处理外部事件,以并行方式执行,而且系统效率经外部事件,以并行方式执
2、行,而且系统效率经常保持最佳状况。常保持最佳状况。18.1 18.1 实时系统的简介及其分类实时系统的简介及其分类 实时系统在工业、商业和军事等领域都有非常实时系统在工业、商业和军事等领域都有非常广泛的用途,并且已经有很多实际的应用。一广泛的用途,并且已经有很多实际的应用。一般来说,实时系统通常是比较复杂的。般来说,实时系统通常是比较复杂的。18.1.1 18.1.1 实时系统简介实时系统简介 实时计算任务与常见的只要求逻辑正确性的计实时计算任务与常见的只要求逻辑正确性的计算任务之间的最大不同之处就是要满足处理与算任务之间的最大不同之处就是要满足处理与时间的关系。它经常要处理很多并发事件的输时
3、间的关系。它经常要处理很多并发事件的输入数据流,这些事件的到来次序和几率通常是入数据流,这些事件的到来次序和几率通常是不可预测的,而且还要求系统必须在事先设定不可预测的,而且还要求系统必须在事先设定好的时限内做出相应的响应。好的时限内做出相应的响应。实时系统的软硬件结构需要满足以下要求:实时系统的软硬件结构需要满足以下要求:(1 1)可满足系统中实时任务负载的运算速度。)可满足系统中实时任务负载的运算速度。(2 2)延迟时间可预测并可满足响应时间要求的)延迟时间可预测并可满足响应时间要求的中断处理机制。中断处理机制。(3 3)具有时间指标保障能力的)具有时间指标保障能力的I/OI/O处理。处理
4、。(4 4)合理的处理器和)合理的处理器和I/OI/O设备的拓扑连接。设备的拓扑连接。(5 5)高速可靠的和有时间约束的通信。)高速可靠的和有时间约束的通信。(6 6)实时的出错处理。)实时的出错处理。(7 7)实时任务调度和并发处理,主要要求是满)实时任务调度和并发处理,主要要求是满足时间指标的正确性要求,并提供满足运行时足时间指标的正确性要求,并提供满足运行时需求的。需求的。(8 8)实时多任务操作系统,这是现代实时系统)实时多任务操作系统,这是现代实时系统所主要依赖的基础平台,提供实时应用的开发所主要依赖的基础平台,提供实时应用的开发环境。环境。18.1.2 18.1.2 实时系统的分类
5、实时系统的分类 分为周期性的和非周期性的分为周期性的和非周期性的 分为硬实时和软实时分为硬实时和软实时 18.2 18.2 实时系统的相关概念实时系统的相关概念 实时系统的特点是,如果逻辑和时序出现偏差实时系统的特点是,如果逻辑和时序出现偏差将会引起严重后果。有两种类型的实时系统:将会引起严重后果。有两种类型的实时系统:软实时系统和硬实时系统。软实时系统和硬实时系统。在软实时系统中系统的宗旨是使各个任务运行在软实时系统中系统的宗旨是使各个任务运行得越快越好,并不限定某一任务必须在多长时得越快越好,并不限定某一任务必须在多长时间内完成。间内完成。在硬实时系统中,各任务不仅要执行无误而且在硬实时系
6、统中,各任务不仅要执行无误而且要做到准时。要做到准时。18.2.1 18.2.1 实时系统的概念实时系统的概念 实时系统是指:其正确性不仅依赖于计算结果实时系统是指:其正确性不仅依赖于计算结果逻辑上的正确,还依赖于计算结果产生的时机逻辑上的正确,还依赖于计算结果产生的时机是否正确。所以对实时系统的要求是其行为的是否正确。所以对实时系统的要求是其行为的可预测并且能够满足系统的时间约束。可预测并且能够满足系统的时间约束。18.2.2 18.2.2 前后台系统前后台系统 不复杂的小系统一般设计成如图不复杂的小系统一般设计成如图18-118-1所示。这所示。这种系统可称为前后台系统或超循环系统。种系统
7、可称为前后台系统或超循环系统。图图18-118-1 18.2.3 18.2.3 任务与多任务任务与多任务 多任务运行的实现实际上是靠多任务运行的实现实际上是靠CPUCPU(中央处理(中央处理单元)在许多任务之间转换、调度。多任务运单元)在许多任务之间转换、调度。多任务运行很像前后台系统,但后台任务有多个。多任行很像前后台系统,但后台任务有多个。多任务运行使务运行使CPUCPU的利用率得到最大的发挥,并使的利用率得到最大的发挥,并使应用程序模块化。应用程序模块化。在实时应用中,多任务化的最大特点是,开发在实时应用中,多任务化的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多人员可以将很复
8、杂的应用程序层次化。使用多任务应用程序将更容易设计与维护,如图任务应用程序将更容易设计与维护,如图18-218-2所示。所示。图图18-218-2 典型的、每个任务都是一个无限的循环、每个典型的、每个任务都是一个无限的循环、每个任务都处在以下任务都处在以下5 5种状态之一的状态下,这种状态之一的状态下,这5 5种种状态是:休眠态、就绪态、运行态、挂起态和状态是:休眠态、就绪态、运行态、挂起态和被中断态:被中断态:(1 1)休眠态相当于该任务驻留在内存中,但并)休眠态相当于该任务驻留在内存中,但并不被多任务内核所调度。不被多任务内核所调度。(2 2)就绪意味着该任务已经准备好,可以运行)就绪意味
9、着该任务已经准备好,可以运行了,但由于该任务的优先级比正在运行的任务了,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行。的优先级低,还暂时不能运行。(3 3)运行态的任务是指该任务掌握了)运行态的任务是指该任务掌握了CPUCPU的控制的控制权,正在运行中。权,正在运行中。(4 4)挂起状态也可以叫做等待事件态)挂起状态也可以叫做等待事件态WAITINGWAITING,指该任务在等待,等待某一事件的发生。指该任务在等待,等待某一事件的发生。(5 5)发生中断时,)发生中断时,CPUCPU提供相应的中断服务,提供相应的中断服务,原来正在运行的任务暂不能运行,就进入了被原来正在运行的
10、任务暂不能运行,就进入了被中断状态。中断状态。图图18-318-3表示表示CC/OS-/OS-中一些函数提供的服务,中一些函数提供的服务,这些函数使任务从一种状态变到另一种状态。这些函数使任务从一种状态变到另一种状态。图图18-318-318.2.4 18.2.4 共享资源与临界区共享资源与临界区 可以被一个以上任务使用的资源叫做共享资源。可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥。打交道时,必须独占该资源,这叫做互斥。临界区指处理时不可分割的代码。一旦这部分临界区指处理时不可分
11、割的代码。一旦这部分代码开始执行,则不允许任何中断打入。为确代码开始执行,则不允许任何中断打入。为确保临界段代码的执行,在进入临界段之前要关保临界段代码的执行,在进入临界段之前要关中断,而临界段代码执行完以后要立即开中断。中断,而临界段代码执行完以后要立即开中断。18.2.5 18.2.5 内核内核 不可剥夺型内核。不可剥夺型内核要求每个任不可剥夺型内核。不可剥夺型内核要求每个任务自我放弃务自我放弃CPUCPU的所有权,各个任务彼此合作的所有权,各个任务彼此合作共享一个共享一个CPUCPU。异步事件还是由中断服务来处。异步事件还是由中断服务来处理。不可剥夺型内核的一个优点是响应中断快。理。不可
12、剥夺型内核的一个优点是响应中断快。不可剥夺型内核的另一个优点是,几乎不需要不可剥夺型内核的另一个优点是,几乎不需要使用信号量保护共享数据。图使用信号量保护共享数据。图18-418-4示意不可剥示意不可剥夺型内核的运行情况。夺型内核的运行情况。图图18-418-4 可剥夺型内核。当系统响应时间很重要时,要可剥夺型内核。当系统响应时间很重要时,要使用可剥夺型内核。如果是中断服务子程序使使用可剥夺型内核。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开中断了的任务被挂起,优先级高的那个任务开始运行。如图
13、始运行。如图18-518-5所示。所示。图图18-518-518.2.6 18.2.6 调度调度 调度(调度(SchedulerScheduler)是内核的主要职责之一,)是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。重要程度的不同被赋予一定的优先级。静态优先级。应用程序执行过程中诸任务优先静态优先级。应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及
14、它们的时间约束在程序编系统中,诸任务以及它们的时间约束在程序编译时是已知的。译时是已知的。动态优先级。应用程序执行过程中,任务的优动态优先级。应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转问题。核应当避免出现优先级反转问题。优先级反转。使用实时内核,优先级反转问题优先级反转。使用实时内核,优先级反转问题是实时系统中出现得最多的问题。如图是实时系统中出现得最多的问题。如图18-618-6所所示是解释优先级反转是如何出现的。示是解释优先级反转是如何出现的。图图18-618-6 图图18-718-7解释如果内核支持
15、优先级继承在上述例解释如果内核支持优先级继承在上述例子中会是怎样一个过程。子中会是怎样一个过程。图图18-718-718.2.7 18.2.7 同步同步 可以利用信号量使某任务与中断服务同步,如可以利用信号量使某任务与中断服务同步,如图图18-818-8所示。所示。图图18-818-8 两个任务可以用两个信号量同步它们的行为,两个任务可以用两个信号量同步它们的行为,如图如图18-918-9所示。这叫做双向同步(所示。这叫做双向同步(bilateral bilateral rendezvousrendezvous)。双向同步同单向同步类似,只)。双向同步同单向同步类似,只是两个任务要相互同步。是
16、两个任务要相互同步。图图18-918-918.2.8 18.2.8 互斥互斥 关中断关中断 处理共享数据时保证互斥,最简便快捷的办法处理共享数据时保证互斥,最简便快捷的办法是关中断和开中断。是关中断和开中断。测试并置位测试并置位 如果不使用实时内核,当两个任务共享一个资如果不使用实时内核,当两个任务共享一个资源时,一定要约定好,先测试某一全程变量,源时,一定要约定好,先测试某一全程变量,如果该变量是如果该变量是0 0,允许该任务与共享资源打交,允许该任务与共享资源打交道。为防止另一任务也要使用该资源,前者只道。为防止另一任务也要使用该资源,前者只要简单地将全程变量置为要简单地将全程变量置为1
17、1,这通常称作测试,这通常称作测试并置位(并置位(Test-And-SetTest-And-Set),或称作),或称作TASTAS。禁止做任务切换禁止做任务切换 如果任务不与中断服务子程序共享变量或数据如果任务不与中断服务子程序共享变量或数据结构,可以使用禁止、然后允许任务切换。结构,可以使用禁止、然后允许任务切换。信号量。信号量是信号量。信号量是2020世纪世纪6060年代中期年代中期EdgserEdgser DijkstraDijkstra发明的。信号量实际上是一种约定机发明的。信号量实际上是一种约定机制,在多任务内核中普遍使用。信号量用于:制,在多任务内核中普遍使用。信号量用于:(1 1
18、)控制共享资源的使用权)控制共享资源的使用权 (2 2)标志某事件的发生)标志某事件的发生 (3 3)使两个任务的行为同步)使两个任务的行为同步 如图如图18-1018-10所示中的两个任务竞争得到排它性所示中的两个任务竞争得到排它性打印机使用权,图中信号量用一把钥匙表示,打印机使用权,图中信号量用一把钥匙表示,想使用打印机先要得到这把钥匙。想使用打印机先要得到这把钥匙。图图18-1018-10 多任务共享一个多任务共享一个RS-232CRS-232C外设接口,各任务要外设接口,各任务要送命令给接口另一端的设备并接收该设备的回送命令给接口另一端的设备并接收该设备的回应。如图应。如图18-111
19、8-11所示。所示。图图18-1118-11 计数式信号量用于某资源可以同时为几个任务计数式信号量用于某资源可以同时为几个任务所用。例如,用信号量管理缓冲区阵列所用。例如,用信号量管理缓冲区阵列(buffer poolbuffer pool),如图),如图18-1218-12所示。所示。图图18-1218-1218.2.9 18.2.9 中断中断 中断是一种硬件机制,用于通知中断是一种硬件机制,用于通知CPUCPU有个异步有个异步事件发生了。中断一旦被识别,事件发生了。中断一旦被识别,CPUCPU保存部分保存部分(或全部)现场即部分或全部寄存器的值,跳(或全部)现场即部分或全部寄存器的值,跳转
20、到专门的子程序,称为中断服务子程序转到专门的子程序,称为中断服务子程序(ISRISR)。中断服务子程序做事件处理,处理)。中断服务子程序做事件处理,处理完成后:完成后:(1 1)在前后台系统中,程序回到后台程序。)在前后台系统中,程序回到后台程序。(2 2)对不可剥夺型内核而言,程序回到被中断)对不可剥夺型内核而言,程序回到被中断了的任务。了的任务。(3 3)对可剥夺型内核而言,让进入就绪态的优)对可剥夺型内核而言,让进入就绪态的优先级最高的任务开始运行。先级最高的任务开始运行。微处理器一般允许中断嵌套,也就是说在中断微处理器一般允许中断嵌套,也就是说在中断服务期间,微处理器可以识别另一个更重
21、要的服务期间,微处理器可以识别另一个更重要的中断,并服务于那个更重要的中断,如图中断,并服务于那个更重要的中断,如图18-18-1313所示。所示。图图18-1318-13 中断延迟中断延迟 中断延迟中断延迟=关中断的最长时间关中断的最长时间+开始执行中断服开始执行中断服务子程序的第一条指令的时间务子程序的第一条指令的时间 中断响应。中断响应定义为从中断发生到开始中断响应。中断响应定义为从中断发生到开始执行用户的中断服务子程序代码来处理这个中执行用户的中断服务子程序代码来处理这个中断的时间。中断响应时间包括开始处理这个中断的时间。中断响应时间包括开始处理这个中断前的全部开销。断前的全部开销。中
22、断恢复时间。中断恢复时间定义为微处理器中断恢复时间。中断恢复时间定义为微处理器返回到被中断了的程序代码所需要的时间。返回到被中断了的程序代码所需要的时间。中断处理时间。虽然中断服务的处理时间应该中断处理时间。虽然中断服务的处理时间应该尽可能的短,但是对处理时间并没有绝对的限尽可能的短,但是对处理时间并没有绝对的限制。制。中断延迟、响应和恢复。图中断延迟、响应和恢复。图18-1418-14到图到图18-1618-16分分别示意前后台系统、不可剥夺型内核、可剥夺别示意前后台系统、不可剥夺型内核、可剥夺型内核相应的中断延迟、响应和恢复过程。型内核相应的中断延迟、响应和恢复过程。图图18-1418-1
23、4图图18-1518-15图图18-1618-16 非屏蔽中断。有时,中断服务必须来得尽可能非屏蔽中断。有时,中断服务必须来得尽可能地快,内核引起的延时变得不可忍受,在这种地快,内核引起的延时变得不可忍受,在这种情况下可以使用非屏蔽中断。非屏蔽中断可以情况下可以使用非屏蔽中断。非屏蔽中断可以用增加外部电路的方法禁止掉,如图用增加外部电路的方法禁止掉,如图18-1718-17所所示。在非屏蔽中断服务子程序中,不能使用内示。在非屏蔽中断服务子程序中,不能使用内核服务给任务发信号,但可以使用如图核服务给任务发信号,但可以使用如图18-1818-18所示的中断机制。所示的中断机制。图图18-1718-
24、17图图18-1818-1818.2.10 18.2.10 使用实时内核的优缺点使用实时内核的优缺点 实时内核的使用使得实时应用程序的设计和扩实时内核的使用使得实时应用程序的设计和扩展变得容易;展变得容易;RTOSRTOS使得应用程序的设计过程大使得应用程序的设计过程大为简化;使用可剥夺性内核时,所有时间要求为简化;使用可剥夺性内核时,所有时间要求苛刻的事件都得到了尽可能快捷、有效地处理;苛刻的事件都得到了尽可能快捷、有效地处理;通过有效的服务,通过有效的服务,RTOSRTOS使得资源得到更好的利使得资源得到更好的利用。用。如果应用项目对额外的需求可以承受,应该考如果应用项目对额外的需求可以承
25、受,应该考虑使用实时内核。这些额外的需求是:内核的虑使用实时内核。这些额外的需求是:内核的价格,额外的价格,额外的ROM/RAMROM/RAM开销,开销,2 2到到4 4个百分点的个百分点的CPUCPU额外负荷。额外负荷。18.3 18.3 实时系统与通用系统的区别实时系统与通用系统的区别 实时系统与其他普通的系统之间的最大的不同实时系统与其他普通的系统之间的最大的不同之处就是要满足处理与时间的关系。在实时计之处就是要满足处理与时间的关系。在实时计算中,系统的正确性不仅仅依赖于计算的逻辑算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间。结果而且依赖于结果产生的时间。对于实时
26、系统来说最重要的要求就是它必须有对于实时系统来说最重要的要求就是它必须有满足在一个事先定义好的时间限制中对外部或满足在一个事先定义好的时间限制中对外部或内部的事件进行响应和处理的能力。内部的事件进行响应和处理的能力。实时操作系统还需要有效的中断处理能力来处实时操作系统还需要有效的中断处理能力来处理异步事件和高效的理异步事件和高效的I/OI/O能力来处理有严格时能力来处理有严格时间限制的数据收发应用。间限制的数据收发应用。实时系统所遵循的最重要的设计原则是:采用实时系统所遵循的最重要的设计原则是:采用各种算法和策略,始终保证系统行为的可预测各种算法和策略,始终保证系统行为的可预测性。性。18.4
27、 18.4 多种实时系统的比较多种实时系统的比较 本节对四种实时操作系统(本节对四种实时操作系统(RTOSRTOS)特性进行分)特性进行分析和比较。它们是:析和比较。它们是:LynxLynx实时系统公司的实时系统公司的LynxOSLynxOS、QNXQNX软件系统有限公司的软件系统有限公司的QNXQNX以及两种以及两种具有代表性的实时具有代表性的实时LinuxLinux新墨西哥工学院新墨西哥工学院的的RTRTLinuxLinux和堪萨斯大学的和堪萨斯大学的KURTKURTLinuxLinux。18.4.1 18.4.1 基本特征概述基本特征概述 QNXQNX是一个分布式、嵌入式、可规模扩展的实
28、是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循时操作系统。它遵循POSIX.1POSIX.1(程序接口)和(程序接口)和POSIX.2POSIX.2(ShellShell和工具)、部分遵循和工具)、部分遵循POSIX.1bPOSIX.1b(实时扩展)。它最早开发于(实时扩展)。它最早开发于19801980年,到现在年,到现在已相当成熟。已相当成熟。LynxOSLynxOS是一个分布式、嵌入式、可扩展的实时是一个分布式、嵌入式、可扩展的实时操作系统,它遵循操作系统,它遵循POSIX.1aPOSIX.1a、POSIX.1bPOSIX.1b和和POSIX.1cPOSIX.1c标准。它最早开发
29、于标准。它最早开发于19881988年。年。RTRTLinuxLinux是一个嵌入式硬实时操作系统,它是一个嵌入式硬实时操作系统,它部分支持部分支持POSIX.1bPOSIX.1b标准。标准。KURTKURTLinuxLinux不是为嵌入式应用设计的,不同不是为嵌入式应用设计的,不同于硬(于硬(hardhard)实时)实时/软(软(softsoft)实时应用,他)实时应用,他们提出们提出“严格(严格(firmfirm)”实时应用的概念,如实时应用的概念,如一些多媒体应用和一些多媒体应用和ATMATM网络应用,网络应用,KURTKURT是为这是为这样一些应用设计的样一些应用设计的“严格的严格的”
30、实时系统。实时系统。18.4.2 18.4.2 体系结构异同体系结构异同 QNXQNX是一个微内核实时操作系统,其核心仅提是一个微内核实时操作系统,其核心仅提供供4 4种服务:进程调度、进程间通信、底层网种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间络通信和中断处理,其进程在独立的地址空间运行。所有其他运行。所有其他OSOS服务,都实现为协作的用户服务,都实现为协作的用户进程,因此进程,因此QNXQNX核心非常小巧(核心非常小巧(QNX4.xQNX4.x大约为大约为12Kb12Kb)而且运行速度极快。)而且运行速度极快。LynxOSLynxOS目前还不是一个微内核
31、结构的操作系统,目前还不是一个微内核结构的操作系统,但它计划使用所谓的但它计划使用所谓的“Galaxy”Galaxy”技术将其从大技术将其从大型集成化内核改造成微内核,这一技术将在型集成化内核改造成微内核,这一技术将在LynxOS3.0LynxOS3.0中引入。新的中引入。新的28Kb28Kb微内核提供以下微内核提供以下服务:核心启动和停止、底层内存管理、出错服务:核心启动和停止、底层内存管理、出错处理、中断处理、多任务、底层同步和互斥支处理、中断处理、多任务、底层同步和互斥支持。持。RTRTLinuxLinux实现了一个小的实时核心,仅支持实现了一个小的实时核心,仅支持底层任务创建、中断服务
32、例程的装入、底层任底层任务创建、中断服务例程的装入、底层任务通信队列、中断服务例程(务通信队列、中断服务例程(ISRISR)和)和LinuxLinux进进程。原来的非实时程。原来的非实时LinuxLinux核心作为一个可抢先核心作为一个可抢先的任务运行于这个小核心之上,所有的任务都的任务运行于这个小核心之上,所有的任务都在核心地址空间运行。它不同于微内核和大型在核心地址空间运行。它不同于微内核和大型内核,属于实时内核,属于实时EXEEXE(realtimerealtime excutiveexcutive)体)体系结构。其可靠性和可维护性对电信服务系统系结构。其可靠性和可维护性对电信服务系统来
33、说都不够理想。来说都不够理想。KURTKURTLinuxLinux核心包括两个部分:内核和实时核心包括两个部分:内核和实时模块。内核负责实时事件的调度,实时模块为模块。内核负责实时事件的调度,实时模块为用户进程提供特定的实时服务。它不属于微内用户进程提供特定的实时服务。它不属于微内核结构。核结构。18.4.3 18.4.3 调度策略分析调度策略分析 QNXQNX提供提供POSIX.1bPOSIX.1b标准进程调度:标准进程调度:(1 1)3232个进程优先级。个进程优先级。(2 2)抢占式的、基于优先级的正文切换。)抢占式的、基于优先级的正文切换。(3 3)可选调度策略:)可选调度策略:FIF
34、OFIFO、轮转策略、适应性、轮转策略、适应性策略。策略。LynxOSLynxOS其调度策略为:其调度策略为:(1 1)LynxOSLynxOS支持线程概念,提供支持线程概念,提供256256个全局用个全局用户线程优先级。户线程优先级。(2 2)硬实时优先级调度:在每个优先级上实现)硬实时优先级调度:在每个优先级上实现了轮转调度、定量调度和了轮转调度、定量调度和FIFOFIFO调度策略。调度策略。(3 3)快速正文切换和阻塞时间短。)快速正文切换和阻塞时间短。(4 4)抢占式的)抢占式的RTOSRTOS核心。核心。RTRTLinuxLinux在操作系统之下实现了一个简单的在操作系统之下实现了一
35、个简单的实时核心,实时核心,LinuxLinux本身作为一个可抢占的任务本身作为一个可抢占的任务在核内运行,优先级最低。在核内运行,优先级最低。(1 1)用户可自行编写调度程序,它们可实现为)用户可自行编写调度程序,它们可实现为可加载的核心模块。可加载的核心模块。(2 2)已实现的调度程序有:基于优先级的抢占)已实现的调度程序有:基于优先级的抢占式调度和式调度和EDFEDF调度。调度。(3 3)基于优先级的调度使用)基于优先级的调度使用“单调率算法单调率算法”,它直接支持周期任务。它直接支持周期任务。KURTKURTLinuxLinux可运行在两种状态之下:通常状可运行在两种状态之下:通常状态
36、和实时状态。态和实时状态。(1 1)支持)支持FIFOFIFO调度策略、轮转调度策略和调度策略、轮转调度策略和UNIXUNIX分时调度策略。分时调度策略。(2 2)增加了)增加了SCHED-KURTSCHED-KURT调度策略,这是一种静调度策略,这是一种静态调度策略,使用一个特殊的调度文件记录预态调度策略,使用一个特殊的调度文件记录预先定义好的待调度进程的参数。先定义好的待调度进程的参数。18.4.4 18.4.4 系统开放性对比系统开放性对比 QNXQNX的开放性:的开放性:(1 1)QNXQNX的的POSIXPOSIX兼容性和其提供的兼容性和其提供的UNIXUNIX特色的特色的编译器、调
37、试器、编译器、调试器、XWindowXWindow和和TCP/IPTCP/IP都是都是UNIXUNIX程序员所熟悉的程序员所熟悉的 (2 2)支持多种)支持多种CPUCPU (3 3)多种总线)多种总线 (4 4)各种外设)各种外设 LynxOSLynxOS的开放性的开放性 (1 1)POSIX.1aPOSIX.1a、1b1b、1c1c及及BSD4.4BSD4.4等兼容性,使等兼容性,使得遵循得遵循POSIX1003POSIX1003或用于或用于UNIXUNIX的程序很容易移的程序很容易移植到植到LynxOSLynxOS上上 (2 2)支持多种)支持多种CPUCPU主板主板 (3 3)各种外设
38、适配器)各种外设适配器 LinuxLinux的开放性:的开放性:(1 1)用户可得到)用户可得到UNIXUNIX的全部开发工具。的全部开发工具。(2 2)可使用市场上便宜又常见的硬件。)可使用市场上便宜又常见的硬件。18.4.5 18.4.5 系统服务比较系统服务比较 QNXQNX的系统服务包括:的系统服务包括:(1 1)多种资源管理器)多种资源管理器 (2 2)设备管理)设备管理 (3 3)图形窗口支持)图形窗口支持 (4 4)TCP/IP for QNXTCP/IP for QNX (5 5)高性能、容错型)高性能、容错型QNXQNX网络网络FLEETFLEET (6 6)透明的分布式处理
39、)透明的分布式处理 LynxOSLynxOS的系统服务:的系统服务:(1 1)网络和通信)网络和通信 (2 2)TCP/IPTCP/IP协议栈协议栈 (3 3)InternetInternet工具工具 (4 4)SVR3SVR3流流 (5 5)文件系统)文件系统 (6 6)基于)基于MotifMotif的图形用户接口的图形用户接口 (7 7)分布式计算资源)分布式计算资源 RTRTLinuxLinux与与KURTKURTLinuxLinux都基于都基于LinuxLinux,故只,故只介绍介绍LinuxLinux。LinuxLinux的系统服务:的系统服务:(1 1)UNIXUNIX用户的开发工
40、具和应用软件都被移植用户的开发工具和应用软件都被移植到到LinuxLinux上。上。(2 2)TCP/IPTCP/IP网络协议。网络协议。(3 3)各种)各种InternetInternet客户客户/服务端软件。服务端软件。(4 4)X WindowX Window。(5 5)C/C+C/C+、JavaJava等语言编译器。等语言编译器。18.5 18.5 实时系统与面向对象实时系统与面向对象 当前的面向对象分析与设计方法主要集中于系当前的面向对象分析与设计方法主要集中于系统中软件部分,对于实时系统市场来说是不可统中软件部分,对于实时系统市场来说是不可接收的,实时系统开发要求实用地完整地述整接
41、收的,实时系统开发要求实用地完整地述整个系统而并非只是软件部分。这里简介一下个系统而并非只是软件部分。这里简介一下ARTiSANARTiSAN公司提供的基于公司提供的基于UMLUML的面向对象的建模的面向对象的建模方法,它专门针对实时系统,是实际可行的实方法,它专门针对实时系统,是实际可行的实时系统与软件分析、设计方法与工具。时系统与软件分析、设计方法与工具。RealtimeRealtime Studio Professional Studio Professional AdaAda Synchronizer for Synchronizer for ARTiSANARTiSAN Real-time Real-time Studio Studio AltiaAltia FacePlateFacePlate for Real-time Studio for Real-time Studio 小结小结 本章简介了实时系统的相关概念,介绍了实时本章简介了实时系统的相关概念,介绍了实时系统作为一种操作系统与其他操作系统的区别。系统作为一种操作系统与其他操作系统的区别。并且介绍了几种常见的实时操作系统。并且介绍了几种常见的实时操作系统。