嵌入式系统中的实时操作系统
- 格式:pdf
- 大小:79.79 KB
- 文档页数:3
嵌入式实时操作系统第一点:嵌入式实时操作系统的定义与特点嵌入式实时操作系统(Embedded Real-Time Operating System,简称ERTOS)是一种专门为嵌入式系统设计的操作系统,它具有实时性、可靠性和高效性等特点。
嵌入式实时操作系统主要用于控制和管理嵌入式系统中的硬件资源和软件任务,以实现对系统的实时控制和高效运行。
嵌入式实时操作系统的定义可以从以下几个方面来理解:1.嵌入式系统:嵌入式系统是指将计算机技术应用于特定领域,以完成特定任务的计算机系统。
它通常包括嵌入式处理器、存储器、输入输出接口等硬件部分,以及运行在处理器上的软件部分。
嵌入式系统具有体积小、功耗低、成本低、性能高等特点。
2.实时性:实时性是嵌入式实时操作系统最核心的特点之一。
它要求系统在规定的时间内完成任务,并对任务的响应时间有严格的要求。
实时性可以分为硬实时和软实时。
硬实时要求任务在规定的时间范围内完成,不允许有任何的延迟;软实时则允许任务在规定的时间范围内完成,但延迟尽量最小。
3.可靠性:嵌入式实时操作系统需要具备很高的可靠性,因为它们通常应用于对安全性和稳定性要求较高的领域,如航空航天、汽车电子、工业控制等。
可靠性主要包括系统的正确性、稳定性和抗干扰能力等方面。
4.高效性:嵌入式实时操作系统需要高效地利用硬件资源,以实现对系统的实时控制。
高效性主要包括系统资源的利用率、任务的调度算法、内存管理等方面。
第二点:嵌入式实时操作系统的应用领域与发展趋势嵌入式实时操作系统在众多领域都有广泛的应用,下面列举几个典型的应用领域:1.工业控制:嵌入式实时操作系统在工业控制领域具有广泛的应用,如PLC(可编程逻辑控制器)、机器人控制器、工业现场仪表等。
实时操作系统可以实现对工业过程的实时监控和控制,提高生产效率和产品质量。
2.汽车电子:汽车电子领域是嵌入式实时操作系统的另一个重要应用领域。
现代汽车中的电子控制系统,如发动机控制、底盘控制、车身控制等,都需要实时操作系统来保证系统的实时性和稳定性。
嵌入式系统实时操作系统技术手册嵌入式系统实时操作系统(Real-Time Operating System,RTOS)是一种特殊的操作系统,具有高度可预测性和实时性。
在越来越多的嵌入式系统应用场景中,RTOS发挥着至关重要的作用。
本技术手册将介绍RTOS的基本概念、设计原理以及常用的实时操作系统技术。
1. RTOS概述RTOS是用于实时嵌入式系统的操作系统,其最主要的特点是具备实时性和可预测性。
实时性是指操作系统能够在规定的时间范围内完成任务响应和处理,可预测性则是指操作系统的行为是可预测和可控的。
RTOS广泛应用于航空航天、汽车电子、医疗设备等高可靠性和实时性要求较高的领域。
2. RTOS设计原理实时操作系统的设计原理主要包括任务调度、中断处理和内存管理。
任务调度是RTOS的核心,通过合理的任务调度算法,实现对任务的调度和分配,保证任务按照预定的优先级和时序得以执行。
中断处理是实时系统中重要的机制,用于处理外部中断和定时器中断等。
内存管理则负责对任务之间的内存空间进行分配和管理,确保任务间内存空间的隔离和资源的合理利用。
3. 实时任务管理实时任务管理是RTOS中的关键功能,主要包括任务创建、任务删除和任务切换。
任务创建是指通过系统调用接口,在RTOS中创建需要执行的任务,并为其分配系统资源。
任务删除则是指在任务完成后,释放其占用的系统资源。
任务切换是RTOS中的核心机制,通过合理的任务切换算法,实现对任务的切换和调度。
4. 中断处理与任务调度中断处理是实时系统中常见的机制,用于处理外部中断和定时器中断等。
中断处理需要快速响应,并在规定的时间内完成相应的处理。
任务调度则负责根据任务的优先级和时序,合理地进行任务调度和切换,确保高优先级任务能够及时得到执行。
5. 实时性保证实时性保证是RTOS设计的关键目标之一。
实时性的保证主要包括硬实时和软实时两种方式。
硬实时要求任务必须在规定的时间内完成执行,否则会导致系统故障。
嵌入式系统中的实时操作系统研究与应用嵌入式系统是指被嵌入在其他设备中的电子计算系统。
这种系统通常具有小巧、低功耗、低成本等特点。
嵌入式系统被广泛运用于智能家居、智能交通、医疗器械、工业控制等领域。
嵌入式系统最重要的特点之一就是实时性。
实时性是指系统能够在预定的时间内,按照既定的要求完成任务。
因此,在嵌入式系统中,实时操作系统是非常重要的。
本文将围绕嵌入式系统中的实时操作系统进行研究探讨。
一、实时操作系统概述实时操作系统(RTOS)是嵌入式系统中最常见的操作系统类型之一。
RTOS是一种使得系统能够及时响应外部事件,按时完成任务的操作系统。
它具有高度的可预测性和可靠性。
RTOS常被运用于需要实时响应的设备中,如航空飞行控制系统、医疗监测设备、智能交通系统等。
与一般的操作系统不同,RTOS需要具备以下特点:1.响应速度快:实时操作系统需要及时响应任务,而且响应时间必须小于任务的时间限制。
2.可预测性:实时操作系统需要保证任务在规定时间内完成,因此必须具有可预测性。
3.可靠性:RTOS需要保证任务的可靠性,确保任务能够按时完成,不出错。
4.实时性:RTOS需要保证系统实时性,能够在规定时间内完成任务。
二、实时系统的分类按照实时性的要求,实时系统可以分为硬实时系统和软实时系统。
硬实时系统:硬实时系统对任务的响应时间有极高的要求,任务必须在严格的时间限制内完成。
举例来说,发生在航空飞行控制系统中的事件必须在极短的时间内得到响应,否则将带来灾难性的后果。
软实时系统:软实时系统对任务的响应时间要求有所放宽,任务可以在更广泛的时间范围内完成。
虽然并不是所有任务都必须在规定时间内得到响应,但是任务响应的时间超出一定的范围,也会对系统造成灾难性的后果。
通常,软实时系统和硬实时系统一同出现在一个复杂的嵌入式系统中。
三、实时操作系统的调度机制实时操作系统可以采用不同的调度策略。
常见的调度策略如下:1.先进先出调度(FIFO):按照任务的到来顺序进行调度。
嵌入式系统中的实时操作系统调度算法嵌入式系统是一种特殊的计算机系统,其设计目标是在特定的应用领域内提供高度可靠和实时的性能。
实时操作系统(RTOS)是嵌入式系统中常用的操作系统类型,它以管理任务和资源的方式为应用程序提供服务。
实时操作系统中的任务调度算法起着至关重要的作用,它们决定了任务执行的顺序和优先级,直接影响系统的实时性能和稳定性。
实时操作系统中常用的任务调度算法包括时间片轮转调度(Round-Robin Scheduling)、优先级调度(Priority Scheduling)、最早截止时间优先调度(Earliest Deadline First Scheduling)等。
每种调度算法都有其自身的特点和适用场景,下面将逐一进行介绍。
1. 时间片轮转调度算法时间片轮转调度算法是实时操作系统中最常见的调度算法之一。
它基于任务的优先级,为每个任务分配一个固定长度的时间片,并按顺序轮流执行任务,每个任务在一个时间片内执行完毕后转移到下一个任务。
当时间片用尽时,下一个任务将获得执行机会。
这种调度算法保证了每个任务的执行时间相对均匀,避免了某个任务霸占资源而导致其他任务无法运行的情况。
时间片轮转调度算法适用于任务的执行时间相对较短和相对平衡的场景,对于响应时间要求较高的实时系统非常有效。
然而,当任务的执行时间差异较大或任务的数量过多时,时间片轮转调度算法可能会导致任务响应时间的不确定性,不适用于要求确定性响应时间的实时系统。
2. 优先级调度算法优先级调度算法是一种简单而直观的调度算法,它为每个任务分配一个优先级,并按照优先级顺序进行调度,具有较高优先级的任务将优先执行。
在实时操作系统中,任务的优先级通常由开发者根据任务的重要性、对实时性的要求和资源的需求等因素进行设定。
优先级调度算法适用于对任务执行时间要求相对灵活的实时系统。
这种调度算法在任务完成时间较长的情况下可以保证重要任务先执行,但是如果任务的数量过多或优先级设置不当,可能会导致低优先级任务长时间等待的情况,从而影响系统的实时性。
嵌入式系统中的实时操作系统应用方法嵌入式系统已经成为现代科技应用中不可或缺的一部分,从家电到汽车,从智能手机到工业自动化,几乎所有领域都离不开嵌入式系统的支持。
而实时操作系统(RTOS)在嵌入式系统中的应用则是保证系统任务实时性和可靠性的关键。
实时操作系统是一种能够按照严格的时间要求来处理任务的操作系统。
它的设计目标是保证任务能在预定的时间内得到执行,并且能够及时响应外部事件。
在嵌入式系统中,实时操作系统的应用方法可以大致分为以下几个方面:1. 任务调度嵌入式系统通常有多个任务需要同时进行,这些任务可能具有不同的优先级和时间要求。
实时操作系统通过任务调度算法来确定哪个任务可以得到执行,如何分配处理器资源以及任务的优先级。
常用的任务调度算法包括先来先服务(FCFS)和优先级调度算法。
开发人员可以根据任务的特点选择合适的调度算法,以满足系统的实时要求。
2. 中断处理嵌入式系统中,中断是一种常见的外部事件,如传感器输入、通信数据接收等。
实时操作系统通过中断处理机制来及时响应这些外部事件,并且保证任务能够在正确的时刻被中断执行。
中断处理的方法包括设置中断向量表、中断服务例程的编写和中断处理的优先级管理等。
3. 任务通信与同步在嵌入式系统中,任务之间往往需要进行通信和同步。
实时操作系统提供了一系列的通信与同步机制,如事件标志、消息队列、信号量和互斥锁等。
这些机制可以保证任务之间的有序交互和数据的正确共享,提高系统的实时性和可靠性。
4. 内存管理嵌入式系统通常具有有限的内存资源,因此需要进行有效的内存管理。
实时操作系统提供了内存管理的机制,如静态内存分配和动态内存分配。
开发人员可以根据系统的需求选择合适的内存管理方式,并进行内存分配和回收操作,以提高系统的性能和稳定性。
5. 设备驱动程序开发嵌入式系统通常需要与各种外部设备进行交互,如传感器、执行器、通信模块等。
实时操作系统通过设备驱动程序的开发来实现与外部设备的连接和控制。
单片机在嵌入式系统中的实时操作系统应用嵌入式系统是指在一定范围内执行特定功能,具有实时性、可靠性、可控性、成本低、功耗低的设备。
嵌入式系统使用的核心部件是单片机,在其中,实时操作系统(RTOS)又是至关重要的部分。
本文将讨论单片机在嵌入式系统中运用实时操作系统的应用。
第一部分:什么是实时操作系统?实时操作系统(RTOS)是一种多任务嵌入式操作系统,它旨在为实时应用程序提供一种高效稳定、预测性强的任务处理方式。
RTOS通常需对处理器进行裁剪化,以实现高效的,有限的任务数处理能力[1]。
RTOS对于诸如机器人控制、无人机或自动驾驶汽车等实时应用程序而言特别重要。
第二部分:实时操作系统的分类有两种常见的RTOS分类:硬实时系统和软实时系统。
硬实时系统必须在特定的时间限制内执行任务,如果任务在其规定的时间内无法得到完成,则系统将会无法正常工作。
软实时系统不是特定的时间限制内执行任务,但也需要保证任务在其规定的时间内完成,否则系统可能会在一定程度上失真。
第三部分:单片机在嵌入式系统中的应用在嵌入式系统中,单片机广泛运用RTOS。
这种应用通常被用于需要高度可靠且时间预测能力的系统,如工业、航空航天及医疗设备。
由于单片机本身体积较小,成本低,功耗低等特点,员处理器设计使用RTOS可以有效的节省开发成本。
单片机所运行的实时操作系统可提高系统稳定性和性能,满足模糊控制,遥控控制等受时间和精度要求高的任务。
第四部分:如何选择RTOSRTOS在系统中的选择是由工程师依据应用程序的特点而决定的。
在选择RTOS时应充分考虑设备成本和性能需求。
对于非常受时间限制任务的系统,通常需要硬实时系统,而对于不需要特定时间限制但需要高度稳定性的系统,软实时系统则更加适合[2]。
结论本文介绍了单片机在嵌入式系统中运用实时操作系统的应用。
实时操作系统使单片机能够更好地实现机器人控制、无人机、自动驾驶汽车等实时应用程序。
在选择合适的RTOS时需要充分考虑应用程序的特点,以确保实时计算和正确性。
嵌入式实时操作系统简介嵌入式实时操作系统简介一:引言嵌入式实时操作系统(RTOS)是一类特殊的操作系统,用于控制和管理嵌入式系统中的实时任务。
本文将介绍嵌入式实时操作系统的基本概念、特点和应用领域。
二:嵌入式实时操作系统的定义1. 实时操作系统的概念实时操作系统是一种能够处理实时任务的操作系统。
实时任务是指必须在严格的时间约束内完成的任务,例如航空航天、工业自动化和医疗设备等领域的应用。
2. 嵌入式实时操作系统的特点嵌入式实时操作系统相比于通用操作系统具有以下特点:- 实时性:能够满足严格的时间要求,保证实时任务的及时响应。
- 可靠性:具备高可用性和容错能力,能够保证系统的稳定运行。
- 精简性:占用资源少,适应嵌入式系统的有限硬件资源。
- 可定制性:能够根据具体应用需求进行定制和优化。
三:嵌入式实时操作系统的体系结构1. 内核嵌入式实时操作系统的核心部分,负责任务和资源管理、中断处理和调度算法等。
- 任务管理:包括任务的创建、删除、挂起和恢复等。
- 资源管理:包括内存、文件系统、网络资源等的管理。
- 中断处理:负责中断的响应和处理。
- 调度算法:根据任务的优先级和调度策略进行任务的调度。
2. 设备管理嵌入式实时操作系统需要与各种外设进行通信和交互,设备管理模块负责管理设备驱动、中断处理和设备的抽象接口等。
3. 系统服务提供一系列系统服务,例如时钟管理、内存管理和文件系统等,以支持应用程序的运行。
四:嵌入式实时操作系统的应用领域嵌入式实时操作系统广泛应用于以下领域:1. 工业自动化:用于控制和监控工业设备和生产过程。
2. 航空航天:用于飞行控制、导航和通信系统。
3. 交通运输:用于车辆控制和交通管理。
4. 医疗设备:用于医疗仪器和设备控制和数据处理。
附件:本文档附带示例代码和案例分析供参考。
注释:1. 实时任务:Real-Time Task,简称RTT。
2. 嵌入式系统:Embedded System,简称ES。
嵌入式系统中的实时操作系统嵌入式系统是一种特殊的计算机系统,通常嵌入在其他设备中,用于控制和管理设备的功能。
在嵌入式系统中,实时操作系统(RTOS)起着至关重要的作用。
本文将介绍嵌入式系统中的实时操作系统的概念、特点以及在嵌入式开发中的应用。
一、实时操作系统的概念实时操作系统是一种专为嵌入式系统设计的操作系统,具有高度可预测性和响应性能。
它的主要特点是能够在严格的时间约束下处理任务,并能够及时响应外部事件。
实时操作系统分为硬实时系统和软实时系统两种类型。
硬实时系统要求任务必须在预定的时间内完成,不能有任何延迟。
这种系统广泛应用于一些对时间要求非常严格的领域,例如航空航天和医疗设备。
软实时系统对任务的时间要求相对较轻松,任务可以在一定范围内有一定的延迟。
这种系统适用于一些对时间要求较为宽松的场景,例如智能家居和工业控制。
二、实时操作系统的特点1.提供任务调度和管理:实时操作系统能够根据任务的优先级和时间要求进行任务的调度和管理,确保高优先级任务能够及时得到处理。
2.保证任务的及时响应:实时操作系统能够在严格的时间约束下响应任务,确保任务按时完成,并能够实时处理外部事件。
3.可靠性和稳定性:实时操作系统需要具备高度的可靠性和稳定性,以确保嵌入式系统的正常运行。
4.低内存占用和低功耗:嵌入式系统通常具有资源有限的特点,实时操作系统需要占用较少的内存,并尽量降低功耗,以提高系统的效率和续航时间。
三、实时操作系统在嵌入式开发中的应用实时操作系统在嵌入式开发中有广泛的应用,以下是一些常见的应用场景:1.工业控制:实时操作系统可以用于工业自动化系统中,例如控制生产线上的机器人进行精确的动作控制,保证生产线的高效运行。
2.汽车电子:实时操作系统在汽车电子系统中发挥着重要作用。
例如,车载信息娱乐系统需要及时响应驾驶员的指令,并能够处理导航和娱乐功能。
3.医疗设备:医疗设备通常对时间要求非常严格,实时操作系统可以保证医疗设备准确地进行数据采集和处理,并及时响应医生的指令。
操作系统的实时系统与嵌入式实时操作系统操作系统是计算机系统中的核心组成部分。
它负责管理和协调计算机硬件与软件资源,为用户和应用程序提供良好的使用环境。
操作系统又可分为实时系统和非实时系统,其中实时系统又可以进一步分为普通实时系统和嵌入式实时系统。
本文将着重探讨实时系统和嵌入式实时操作系统的概念、特点以及应用领域。
一、实时系统实时系统是指能够在规定的时间范围内对于事件进行产生、处理和响应的计算机系统。
它的特点是对时间要求极为严格,要求系统能够在给定的时间限制内完成任务的响应。
根据实时性能要求的不同,实时系统可以分为硬实时系统和软实时系统。
硬实时系统是指必须严格按照预定时间完成任务的实时系统。
在硬实时系统中,任务的延迟必须小于预定的数值,否则会导致系统失效。
这类系统通常应用于航空航天、核电站等对安全性要求极高的领域。
软实时系统则对于任务完成的时间要求相对宽松一些。
在软实时系统中,任务的延迟可以超过预定时间,但是超过的延迟应该尽量减小,以达到更好的系统性能和用户体验。
例如,在多媒体应用中,要求视频播放的延迟尽可能小,以免出现卡顿的情况。
二、嵌入式实时操作系统嵌入式实时操作系统是一种运行在嵌入式计算机系统上的实时操作系统。
它通常被嵌入在具有特定功能的设备或系统中,以实时地完成特定的任务。
嵌入式实时操作系统的特点是高度可靠、实时性强、功耗低以及对硬件资源的优化利用。
与通用操作系统相比,嵌入式实时操作系统更加注重对实时任务的管理和调度。
它可以根据任务的优先级和时间要求,合理分配系统资源,确保任务在规定时间内得到处理和响应。
此外,嵌入式实时操作系统还通常具有小内核、快速启动和低资源消耗等特点,以满足对于设备功耗和响应速度的要求。
嵌入式实时操作系统被广泛应用于各个领域,如交通系统、医疗设备、工业自动化等。
例如,在交通系统中,嵌入式实时操作系统可以实时处理交通信号灯的状态,以确保交通流畅和安全。
在医疗设备中,嵌入式实时操作系统可以实时监测患者的生命体征,并根据需要发出相应的指令。
嵌入式系统的实时操作和嵌入式软件开发嵌入式系统的实时操作和嵌入式软件开发是嵌入式系统设计和开发中非常重要的两个方面。
实时操作系统(RTOS)和嵌入式软件开发技术可以有效地提高嵌入式系统的性能、可靠性和可维护性。
本文将详细介绍实时操作系统和嵌入式软件开发的概念、特点和应用。
一、实时操作系统(RTOS)实时操作系统是一种专门用于处理实时任务的操作系统。
实时任务是指具有时间限制和严格的响应要求的任务。
实时操作系统通过提供任务调度、中断处理和通信机制等功能,来满足实时任务的要求。
实时操作系统有两种类型:硬实时操作系统和软实时操作系统。
硬实时操作系统要求任务必须在特定的时间限制内完成,否则会导致系统故障。
软实时操作系统对任务的时间要求没有硬性的限制,但任务在规定的时间内完成可以提高系统的可靠性和性能。
实时操作系统的特点包括:1.快速响应:实时操作系统能够迅速地响应任务的请求,并且能够按照任务的优先级进行任务调度。
2.可预测性:实时操作系统可以根据任务的优先级和时间要求进行任务调度,从而保证任务的响应时间可预测。
3.稳定性:实时操作系统具有强大的任务调度和资源管理机制,可以保证系统的稳定性和可靠性。
4.可扩展性:实时操作系统可以根据系统需求进行灵活的配置和扩展,从而满足不同应用的需求。
实时操作系统的应用非常广泛,包括航空航天、汽车、医疗设备、工业自动化等领域。
例如,在航空航天领域,实时操作系统可以用于飞控系统和导航系统,保证飞行器的安全和可靠性。
嵌入式软件开发是指开发嵌入式系统所使用的软件。
嵌入式系统的软件开发包括嵌入式系统的设计、编码、调试和测试等过程。
嵌入式软件开发的特点包括:1.硬件依赖性:嵌入式软件开发需要充分理解嵌入式系统的硬件架构和特点,以保证软件能够与硬件正常交互。
2.资源受限性:嵌入式系统的资源包括处理器、内存和外设等,嵌入式软件在开发过程中需要充分考虑资源的限制,以优化软件的性能和可靠性。
嵌入式系统中的实时操作系统Real T ime Operating System for Embedded System中国科学院软件研究所(100080) 叶以民 赵会斌 耿增强李小群 郑良辰 罗从难【摘要】简要介绍了实时操作系统的实现方法,例举了基于Linux 核心的实时操作系统。
关键词:嵌入式系统,实时操作系统Abstract :An im plementation of real time operating system is briefly introduced ,and tw o exam ples of real time operating system based on Linux are given.K ey w ords :embedded system ,real time operating system 所谓“实时”,对于计算机系统而言意味着不但要求逻辑结果正确,而且有时间的要求,即这个结果必须产生截止期限之前。
对于实时而言,时间期限的要求是必须得到满足的,但是区分具体应用场合,这种要求的严格程度又有所不同。
如果这种要求是绝对的,任何一次不满足就能造成实难性后果,那就称之为强实时;否则,偶尔的不满足并不足以造成严重后果,是可以接受的,则称为弱实时。
相应的,具有这两种特性的操作系统就分别被称为强实时及弱实时操作系统。
在操作系统领域,实时操作系统属于一个很特别的“另类”,绝大多数的人们对此较为陌生。
人们常见的是所谓分时系统。
最为经典的分时系统当推UNIX 操作系统,已经具有近百年的历史,广泛应用于研究、教育及商业领域。
UNIX 系统的优点在于它的高效率及开放性,在这方面,同为分时系统的W ind ows 是望尘莫及的。
由于其开放性,人们依托UNIX 制定了一系列关于开放系统的标准,UNIX 系统逐渐成为开放系统的代名词。
近来“窜红”的Linux 操作系统[2]是UNIX 的诸多变种之一,它是“自由软件”,更把UNIX 的开放性发扬到了极致。
分时操作系统的设计目标在于通过对最一般情形的优化,最大限度地有效利用硬件资源,从而达到最大的处理能力,即“吞吐率”;而实时操作系统的设计思想,则与此大相径庭,对于实时系统而言,更重要的是响应时间,而且要保障最坏的情形下的响应时间。
1 实时操作系统的实现方法由于指导思想南辕北辙,因而,分时系统与实时系统是很难“整合”的。
不过,由于分时系统应用广泛,被称为通用系统,在它上面有很好的开发环境、调试工具,并且这些环境与工具为开发者所熟悉,所以人们还是在进行着这种努力。
这方面,几乎所有的工作都集中在依托UNIX 系统对它进行改造,从而实现实时系统上面。
增强UNIX 系统实时性,是一个很早就有的想法,为此,90年代初人们就制定了相关标准,即POSIX1003.1b 。
这个标准规定了“开放系统”对实时应用提供的服务,包括较高精度的时钟,实时调度策略,进程页面驻留等。
目前几乎所有UNIX 类操作系统都实现了这个标准所规定的大部分内容[5]。
然而,仅仅实现了POSIX1003.1b ,通用分时系统所获得的实时性是很“弱”的,弱到对很多应用而言几乎没有任何实际意义。
通用分时系统,简单地说就是UNIX 系统成为实时系统的重要障碍大致有以几点[4]:①UNIX 的核心是不可切换的。
当一个进程运行于核心态,例如执行系统调用的时候,它将不被换出,直到退出核心态,即从系统调用返回,或因某种原因而阻塞,如等待I/O 设备完成动作。
就是说,这段时间之内是不能进行进程切换的,这样,实时事件的即时响应自然也就无从谈起了。
②UNIX 核心中为了保证核心数据的完整性,在进入对关键核心数据结构进行修改的所谓“临界区”时惯常采用“关中断”的办法。
此时系统无法对中断做出响应。
我们知道,非周期的实时进程大多是由中断触发的;对于周期性实时进程而言,也需要调度模块来调度运行,而调度模块的执行恰恰是由时钟中断所触发的。
所以频繁的关中断导致实时任务不能被及时调度执行。
③分时系统针对一般情形,为提高资源利用率,提高系统整体处理能力所做的优化,也在响应时间上带来了很多不确定性。
如请求分页的内存管理机制使得代码、数据被调入的时间成为不确定的;而磁盘操作的缓冲机制又给读取文件的时间带来不确定性。
而在实时系统中,这些不确定因素是不能容忍的。
若基于分时系统建立实时操作系统,必须要解决上述问题。
事实上,这方面的工作也是按照这个思路・6・《测控技术》2000年19卷第4期进行的,已有一些比较成功的例子。
不过,一般而言,彻底的改造很困难,绝大多数情形是在一个方面,或者几个方面做了不同程度的改造,从而获得不同程度的实时性。
但是,这只能得到弱实时性。
实际情况也是如此,通过改造通用分时操作系统得到的实时操作系统几乎不可能取得强实时特性。
由于上述方法虽然相对简单易行,但存在相应的局限性。
于是人们就想到另一种方法,即从头开始设计一个全新的实时操作系统。
目前,林林总总已经出现了不少产品。
依据这种设计思想生成的实时操作系统,在达到强实时性方面不存在问题,但通用性差,开发环境简陋。
不难看出,两种设计思路各有千秋,使用者应当根据具体需求,做出合理选择。
2 基于Linux核心的实时操作系统实例人们对于实时操作系统的研究几乎与操作系统的出现同时起步,迄今已经取得了长足进步,其应用领域不如分时系统广泛,但也早已有了各种各样的不同产品。
有商业化产品,也有非商业化产品。
一般而言商品化产品功能比较完善,大多伴随有一整套开发、调试的工具、手段;缺点是“二次开发”的潜力有限,而且价格大多不菲。
非商业化产品一般是由大学或其他研究机构研制出来的,没有盈利目的,因而很多源码开放,其优点是可以免费得到,并且可以此为基础进行更深入的研究开发;其缺点是比较简陋、不够完善等。
在商业化产品方面,较有代表性的当推QNX,VxW orks及LynxOS等,本文将着重介绍非商业化的实时操作系统。
Linux操作系统近年来突然流行起来,成为UNIX类操作系统抗拒MS W ind ows的中坚力量;事实上,Linux 也已经对MS W ind ows构成了威胁,特别是在服务器方面,已经对W in NT形成了冲击。
随着Linux的风行,很多大学、研究机构开始基于Linux构建实时操作系统。
这样做的好处是:Linux源码开放,是完全自由的。
所以,可以预料,基于Linux构建实时操作系统将会成为一种越来越流行的趋向。
这里,准备对两个有代表性的基于Linux建立的实时操作系统作简单介绍。
2.1 K URT[6]首先是University of K ansas计算机及电子工程系信息及远程通信技术中心的K URT(K ansas University Realtime OS)。
该技术中心研制K URT的目的在于满足他们在AT M及多媒体方面的研究工作需求。
这些研究工作对操作系统提出了特殊要求,其特殊性在于:既要求有很高的实时性,如与时间相关的QoS(服务质量)保证,又要求全面的操作系统服务。
分时系统无疑可以满足后者,但无法满足前者,即便实现了POSIX1003.1b,其实时性依然显得太弱;而专用实时系统可以满足前者,对于后者却又无能为力。
因而K URT的研制者认为,弱实时或强实时操作系统均不符合他们的要求,而他们的要求兼具两方面的特性,为此专门提出了一个新概念:firm realtime。
K URT的研制者是通过对Linux核心进行改造来实现他们这个所谓的firm realtime操作系统的。
他们采用的方法比较简洁,没有大动干戈,却基本达到了目的。
K URT对Linux核心做了如下两点改动:①修改了时钟中断机制,在以X86为处理器的PC上,系统时钟可以提供的最高频率超过了1MH z,但Linux通过对它的编程,将时钟频率设定为100H z,即时钟中断间隔为10ms。
对于实时操作系统而言,这种时钟粒度太粗,无法满足实时响应的需求。
如何解决这个问题呢?最容易想到的莫过于提高时钟频率了。
然而简单地提高时钟频率意味着时钟中断的相应处理过程将占用更多的处理器时间,从而使得整个系统的有效利用率急剧下降,所以这不是一个好办法。
K URT 的办法非常巧妙,它改变了时钟中断的固定频率模式,通过重新设定使得时钟得以μs为单位在任何需要的时候产生中断。
这样,既保证了响应时间,又避免了不必要的开销。
②增加了新的实时调度模块。
K URT核心可以有3种调度状态:正常态、实时态及混合态。
当处于正常态时,K URT核心的进程调度机制与常规Linux核心无异;实时态时则只有K URT实时进程可以被调度;混合态是二者的折衷:当没有实时任务可以被调度时将允许一般进程被调度。
表面看来混合态似乎也能保证实时任务被优先调度,其实不然,因为此时核心不可切换的性质依然没有改变,所有一个运行中的一般任务一旦进入核心,则很可能妨碍实时任务的及时调度,所以混合态引入了很大的风险。
经改动之后,K URT获得了很强的实时性能。
这时原则上说调度可以精确到μs。
但考虑到核心内部的开销如时钟管理、进程切换等所耗时间约为200μs,所以,真正有意义的最小实时任务周期约为500μs。
显然,随着处理器能力的提高,这个周期会因之缩短。
此外,K URT并没有对核心做更多的改动,所以不难看出这个标称firm realtime的操作系统实质上依然是弱实时操作系统。
不过,K URT的设计者通过精巧的方法,以不大的代价达到了设计目的。
2.2 RT Linux[1]既然K URT是一个弱实时操作系统,这样在强实时应用方面,它是无能为力的。
而另一个基于Linux 核心的实时操作系统RT Linux恰恰填补了这个空白。
基于通用分时系统核心构造强实时操作系统,这听起来不可思议;那么RT Linux又是如何实现这一点的呢?・7・嵌入式系统中的实时操作系统RT Linux(realtime Linux)是由New Mexico Institute of T echnology计算机系研制开发的。
RT Linux的设计别有机杼。
其设计者充分意识到通过改造通用分时系统以实现强实时操作系统困难重重,几乎是不可能;这也就意味着强实时操作系统很难提供通用分时操作系统所能提供的丰富的系统服务和完善的开发环境及调试手段等,而这些都是实时应用本身及其开发工作所希望获得的支持。
RT Linux的设计者认真分析了实时应用的整体特征后发现,绝大多实时应用其实都可以分成实时和非实时两部分。
例如:对于实时数据采样分析而言,其数据采样过程必须是实时的,而分析之后的图表显示却可以是非实时的。
而且这两部分分别具有如下特性:实时部分较少需要操作系统支持,甚至可以不需要这样的支持,至少应用程序的设计者可以做到这一点;而非实时部分一般则需用相应的操作系统支持,有这样的支持将会极大地方便应用的开发。