当前位置:文档之家› 一种实时嵌入式操作系统内核DeltaCORE的设计与实现

一种实时嵌入式操作系统内核DeltaCORE的设计与实现

电子科技大学

硕士学位论文

一种实时嵌入式操作系统内核DeltaCORE的设计与实现

姓名:程红蓉

申请学位级别:硕士

专业:计算机软件与理论

指导教师:熊光泽

2001.3.1

丝坐!!——一———————————————!!—竺

学科专业:汁;々:机软件与理论论文题目:摘要

363831

一种实时、嵌入式操作系统内核DeltaCORE的设计与实现硕士生:程红蓉导师:熊光泽教授

”’f随着网络、通信的普及,并向家庭领域不断扩展,嵌入式系统再度成为研究与应用的热点。目前,国内广为使用的商用实时、嵌入式操作系统几乎都来自国外。由于系统在安全保密方面没有保障,加上价格高、技术服务差,我们教研室决一fi,以十年从事实时、嵌入式系统软件设计所积累的经验,致力于具有自主产权的商用实时、嵌入式操作系统的研发。

一个实时、嵌入式操作系统一般由几部分组成。有些部分,例如网络、文件系统可以根据需求剪裁掉,但是其内核必不可少。内核的质量和性能对于整个实时、嵌入式操作系统来说至关重要,其体系结构的设计决定了实时操作系统其它部分与内核的衔接关系。y本课题就是在对几个主流商业实时操作系统内核机制细致分析的基础上,扬长避短、加入自己的技术特色,设计并实现~种在功能、性能上与之都具可比性的实时、嵌入式内核DeltaCOrE。

关键词:嵌入式系统\实时/嵌入式操作系统\实时、嵌入式操作系统内矽’/DeltaCORE

丝!箜!.一——————————————丝——塾

ABSTRACT

SPECIALI’【Y:ComputcrSofB'?’are&Theory

TheDesign&ImplementationofanReal-Time

EmbeddedOperatingSystemKernelDeltaCORE

、MASTER:ChengHongrongAdvisor:Prof.XiongGuangze

WiththepopularizationofInternetandCommunication,itispeneUatingthefieldoffamilyEmbeddedSystembecomesthefocusofresearchandapplication

again.Nowadays.thesecommercialReal-TimeEmbeddedOperatingSystems(RTEOS)

weusedahnostlyproducedbyoverseascorporations.Becauseofthehighprice,poor

technologyserviceandtheneedofsystemsecurity,wededicateourten?year

experienceinRTEOStodevelopingthehigIl-performanceRTEOSwiththeproperity

right.

RTEOSisgenerallycomposedofsomecomponents,suchaskernel,filesystemandnetworkingetcExceptforkernel,theothercomponetsCallbescaledtosatisfy

differentapplicationsToRTEOS,thequalityandperformanceofkernelisvery

important.Thearchitectureofkerneldecidestherelationshipbetweenkernelandother

componetsOurtaskistodesignandimplementacomparableRTEOSkemel

DeltaCOREafterwecarefullyanalyzesomepopularcommercialRTOS.Inthedesign

andimplementationofDeltaCORE,wecarrytheexcellenceforwardandlimitethe

shortageandaddsomefeature.

KeyWords:EmbeddedSystemiPeal—TimeEmbeddedOperatingSystem|

It.eal—FimeEmbeddedOperatingSystemKernel\DeltaCORE

.【I-

第一章绪论

1.1课题背景

计算机技术随糟时代的发展在各行各业中得到了广泛的应用。操作系统作为各种应用软件的底层平台,有着十分重要的作用和地位。自六十年代中期操作系统(Operatingsystem)形成发展到现在.广泛使用的有三种操作系统,即多道批处理操作系统、分时操作系统以及实时操作系统。

随着实H%-t"算(real.timecomputing)渗透到越来越多的领域,包括过程控制、核电站、智能车辆公路系统、航空、飞行控制、通信、多媒体、办公自动化、自动化控制、计算机外设、消费电子、实时模拟、虚拟现实、医疗应用、军事等等,实时操作系统得到了广泛地应用和发展。

伴随着网络、通讯技术的发展,国内外的IT界提出了信息智能家电的概念。从对机顶盒、能上网的微波炉、多功能DVD,到微软的维纳斯计划、女娲计划等的报道,我们可以看到实时,嵌入式这一领域的发展前途十分巨大。

目前流行的商业实时操作系统有WindRiverSystem公司(wRs)的VxWorks、pSOSystem,MentorGraphics公司的VRTX,Microsoft公司支持Win32API编程接口的WindowsCE。这些操作系统都是比较成熟的产品,稳定性都有保证,但是它们都是国外的产品,我们国家不了解产品的技术细节。当使用这些操作系统,特别是系统连接了Intemet时,我们不能保证操作系统是否会泄露一些重要信息,也不能保证系统是否存在安全漏洞。这些国外的商业实时操作系统对我们来说就像一个庞大的黑箱子。

我们教研室作为实时嵌入式系统软件设计中心,有十年从事实时、嵌入式系统软件研发的经验。而对国外市场中的技术垄断,和国内高、精、尖领域对实时操作系统安全性的需求,我们教研室迈出了“产、学、研”三结合的步伐,致力于』=}有自主产权的实时、嵌入式操作系统的研发。

一个实时操作系统可能出几部分组成,有些部分.例如网络、文件系统可以根据应用的需求蜉裁掉,但是其核心,又称内核却是必不可少的。内核的质

研,越|j2绪论

量和性能对于整个实if,J操作系统来说至关重要,其体系结构的设计决定了实时操作系统』£它部分与内核的衔接关系。本课题的目的就是在对几个主流商业实时操作系统内核工作机制仔细分析的基础上,扬长避短、加入自己的技术特色,设计并实现一种在功能、性能上与这几个主流商业实时操作系统内核都具可比性的实¨寸内核DeltaCORE。DeltaCORE是实时操作系统Delta的核心。目前,除了DeltaCORE以外,Delta还包括文件系统、网络、窗口图形系统和浏览器。

1.2进入课题的准备

进入本课题前,我对实时、嵌入式的基本概念和内核的工作机制已有清楚和深刻的理解。已圆满完成“八五”军事预研成果——CRTosPx86/sr)m的技术支持工作和“九五”军事预研项目——超微内核实时、嵌入式操作系统CRTOSMicrox86/spm内核的研发工作。在这些工作经验的基础上,展开了本课题的研究,并取得预期结果。

1.3本文章节安排

第一章简要介绍本课题的一些背景情况。第二章对实时系统、实时操作系统、实时嵌入式操作系统的基本概念进行简单地阐述。第三章深入分析了几种主流商业实时操作系统内核的工作机理。内核技术发展到今天,已经形成一套成熟的理论体系。所以,第三章阐述的大多数概念和算法思想是第四章讨论DeltaCORE的理论依据。第四章在第三章分析工作的基础上,提出一种实时、嵌入式操作系统内核DeItaCORE的设计方案.并详细阐述了其实现的技术细节。第五章对DeItaCORE进行时间性能的测试。在相同测试标准下对Vxworksv5.4的内核Wind的部分系统调用也进行了测试,并针对测试结果做了分析。第六章对全文进行总结。

丝丝!——塑墅咝堂第二章实时系统概论

2.1实时应用概述

实时计算(real.timecomputing)是许多重要应用领域中的关键技术。这些领域包括:过程控制、核电站、智能车辆公路系统、航空、飞行控制、通信、多媒体、办公自动化、自动化控制、计算机外设、消费电子、实时模拟、虚拟现实、医疗应用和军事等。几乎所有的安全关键(safetycritical)系统和许多嵌入式计算机系统都是实时系统。实时计算正变得越来越重要和普遍。

实时系统对响应时间的要求依赖于特定的实时应用。图2-1显示了一些典型实时应用对响应时间的不同需求。

_呈

¨

图2.1实时应用对响应时间的需求

2.2实时系统的定义

实时系统是对外来事件在限定时间内能做出反应的系统。限定时间的范围很广可以从微秒级(如信号处理)到分级(如联机查询系统)。

实时系统的正确性不仅依赖于系统计算的逻辑结果。还依赖于产生这个结

型丝苎一型型苎笙果的时M。实时系统这.?领域的基本特征是实时操作模式。实时操作模式是指:在计算机系统内部,JfJ于处fl!从外部到达的数据的程序总处于就绪状态,而这些程序的运行结果只在确定的时问范围内有效。

按实时性的强弱(即根据系统响应时间的长短)可将实时系统大致分为以下几种:

1.强实uj系统,其系统11向应时间在毫秒或微秒级。

2.一般实时系统,其系统响应时间在几秒数量级,对实时性的要求比强实时系统要差一些。

3.弱实时系统,其系统响应时间约为数十秒或更长。这种系统的响应时间可能随系统负载的轻重而变化,即负载轻时系统响应时间可能较短,实

时性好一些,反之系统响应时间可能加长。

实时系统通常作为一种智能部件被嵌入到~个较大的环境中。这种情况下的实时系统称为嵌入式、实时系统。

-;frit错误的观点认为:如果某种应用没有用户界面,从而用户不能直接地和它交互,那么它就是嵌入式系统。举个反例,电梯控制系统是嵌入式系统,但它却有一个用户界面:选择楼层的按钮和显示电梯正到达几层的指示器。

2.3实时系统的要求

实时操作引入明确的时间特性,因此有别于其他数据处理形式。这从用户的两个基本要求中可以看出来:及时性(timeliness)和并发特性(simultaneousness)。即使在极限负载条件下,实时系统也必须实现这两个要求。另外还有两个同等重要的特性:可预测性(predictability)和可靠性(dependability),来补充说明这两个要求。’

遵照从外部过程来的请求,数据采集、处理和恰当的反应必须按时完成,这是实时系统的第一个要求,而这不仅仅是处理速度能决定的。在预先确定和可预测的时nlj界限内反应的及时性也必须加以考虑。因此,实时系统的特征是.其功能n々矿确性不仅依赖于处理结果,还依赖于这些实例什么时候有效,而不是象批处删羽j分时系统巾的那样,被动服从计算机的处理速度。

硬}?论证实时暴缝概论根据外部过程,环境ir以分为两类:硬时间约束的环境和软时蒯约束的环境。它们I【i墟反时『ⅡJ要求而造成的后果来区分。对于软实时环境,当产生的结果延迟,延久时,付出的代价也在逐渐增长,而这样的延迟在硬实时环境中的任何情况F那1i允许:。因为迟到的反应要么已经无,用要么是危险的。换句话说,硬实时坷、境中的死限(deadline)丢失的代价是无限高的。

第二个要求(同时处理外部过程请求)意味着实时系统本质上必须是分布的,并且必须提供并行处理能力。

可预测性和确定性(determinism)的含义可以通过下面一个例子来理解:我们不知道火灾什么时候发生,但是我们期望消防队在接到报警后能在较短的时间内到达火灾现场。系统行为的可预测性对实时操作模式来说非常重要。可预测性是系统时间要求的补充,因为只有当系统行为在时间和对外部事件的反应上都是精确可预测时,时问要求才能得到保证。

2.4实时操作系统

实时操作系统是事件驱动的(evenLdrivcn),能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是实时性、可靠性,为应用软件提供良好的软件运行环境。

IEEE的实时UNIX分委会认为实时操作系统应具备以下几点:

1.刑异步事件的响应

为了能在限定时间内响应异步事件,实时操作系统需要具有中断处理能力。

2.任务切换时间和中断延迟时间确定

3.优先级任务

必须允许用户定义任务的优先级。

4.抢占式调度

为确保响应时问,必须允许高优先级任务一旦准备好就可马上抢占低优先级仃务的运行。

5.内存锁定

必须具有将程序或部分程序锁定在内存的能力,锁定在内存的程序减少了为获取该程序而访问盘的时问,从而确保了及时、确定的响应时间。

鼬tj沁立实对最统概论

6.连续文件

应捉"I存取舭上数据的优化方法,使得存取数据时查找时间最少。通常要求把数据存储在连续文件上。

7.同步与互斥

提供州步与m调共享数掘使用的手段。

根拼}实时系统的场合嗣I^丌发过程,实时操作系统可分为两种:一般实时操作系统和嵌入式实时操作系统。一般实时操作系统应用于实时查询等实时性较弱的系统,并且开发、调试、运用环境一致。而嵌入式实时操作系统应用于实时性要求高的控制系统,采用交叉开发环境,即开发环境与调试、运行环境不一致。嵌入式实时操作系统具有规模小(一般在几十K内)、实时性强(在毫秒或微秒数量级上)、可固化等特点。

2.5实时、嵌入式操作系统的发展

近十年来,实时操作系统得到飞速的发展,从支持8位微处理器到16位、32位甚至64位,从支持单一品种的微处理器芯片到支持多品种微处理器芯片,从只有实时内核到除了内核外还提供其他功能模块,如高速文件系统,TCP/IP网络系统,窗口系统等等。

据嵌入式系统杂志(EmbeddedSystemsProgramming)报告,世界各国有四十多家公司,已成功推出200余种可供嵌入式应用的实时操作系统。其中几个著名的实时、嵌入式操作系统是WindRiverSystem公司(WRS)的VxWorks、pSOS,MentorGraphics公司的VRTX,Microsoft公司支持Win32API编程接口的WindowsCE,Microware公司的OS.9,3COM公司的PalmOS。

实时、嵌入式操作系统及其应用开发环境的发展动向是:

1.提供丌放的操作系统应用程序接口(API)

商用实时、嵌入式操作系统为了支持开发商根据需要自行开发所需的应用程序,除了提供自身的~套API以外,还要提供支持POSIX标准、ITRON标H^的APf。

2.丽向Internet、面向特定应用是实时、嵌入式操作系统的重要发展趋势。

伴随衍通_r|jJ型实时、嵌入式操作系统的发展,一个面向Intemet网络、面向

姿时系境概论拙t‘论k

特定应用的实时、嵌入式操作系统正日益引起人们的重视。嵌入式系统与Intenlct的结合、嵌入式操作系统与应用设备的无缝结合代表着嵌入式操作系统发展的真一未来。

3.实||、f、嵌入式Linux成为实时、嵌入式操作系统领域的新热点。

实时、嵌入式Linux操作系统的迅速崛起,主要由于人们对自由软件的渴望和嵌入式应用的特制性对系统源代码的需求。实时、嵌入式Linux正适应了这一需求。它具有开放的源代码、精巧,高效的内核、完整的网络功能、良好的可剪裁性,非常适合信息家电一类的嵌入式系统的开发。

4.丌发环境向开放的、集成化的方向发展

由于嵌入式应用软件的特殊性,往往要求应用程序的设计者具有~定实时操作系统的专门知识,能合理划分任务,合理配置系统以及目标联机的调试。因此,要设计实现一个高性能的实时应用软件,需要强有力的交叉开发工具的支持。国外十分重视发展与实时操作系统配合的嵌入式应用的集成开发环境,现已发展到第三代,它以客户一服务器的系统结构为基础,具有运行系统的无关性、连接的无关性、开放的软件接口(与实时、嵌入式操作系统的接口、与开发工具的接口、与目标环境的接口)、环境的一致性、宿主机上目标仿真等特点。

硝,?越<吨种畦凡戒操佧最镜内{蛊的分析第三章几种嵌入式操作系统内核的分析

实II、J操作系统发展到今天,有关内核设计、实现的关键技术已经非常成熟。本课题就是在深入分析了几种目前主流的商业实时操作系统内核机制(WindRiverSystein公司的Wind,pSOS+、MentorGraphics公司的VRTXsa)的基础上,扬长避短,加入自己的技术特色,完成了实时操作系统Delta的内核DeltaCOP.E的设计与实现。本章阐述的大多数概念和算法思想是第四章讨论DeltaCORE的理论依据。

3.1VRTXsa、pSOS+、Wind的简介

VRTXsa(scalablearchitecure)是MentorGraphics公司的实时操作系统VRTX的实时、多任务内核,具有良好的可配置性。它是一个可抢占内核(有关可抢占内核的概念参见3.5节),能获得理想的实时性能。VRTXsa提供以下管理模块:任务管理、任务问通信管理(信号量、邮箱、队列、事件)、内存管理(分区和堆)、中断管理、定时管理、用户扩展处理、字符I/O管理、系统配置管理和一定的出错处理。VRTXsa采用优先级继承算法解决互斥信号量中的优先级反转问题。

pSOS’是WindRiverSystem公司的实时操作系统pSOSymem的实时、多任务内核,采用模块化结构,具有良好的可剪裁性、可配置性。它是一个不可抢占内核(有关不可抢占内核的概念参见3.5节),这一点会降低内核的实时性能。pSOS+提供以下管理模块:任务管理、任务间通信管理(信号量、消息队列、事件、异步信号)、内存管理(分区和堆)、中断管理、定时管理、I/O管理、系统配置管理和一定的出错处理。pSOS+采用优先级继承算法解决互斥信号量中的优先级反转问题。

Wind是WindRiverSystem公司的实时操作系统Vxworks的实时、多任务内核,采川模块化结构,具有良好的可剪裁性、可配罱性。Wind提供以下管理模块:fn务倍理、任务问_l{]i信管理(信号量、消息队列、事件、异步信号、管道)、|^J存管理(分区和堆)、中断管理、定时管理、任务扩展处理、系统配置

生堂些巡竺墨塑堕堡!!!鉴丝.!丝墨:

图3-IVRTX的体系结构

VRTX的最低层是具体硬件的驱动程序,称为板级支持包(BSP)。它通过硬件抽象层(HAL)隔离了VRTXsa和具体的硬件。这样做的好处是尽量让操作系统独立于具体的硬件,提高了系统的可移植性。VRTXsa向上层应用(从内核的角度看,其上的所有软件都可视为它的应用,包括操作系统的其它组件)提供两套接口:vI玎xAPI和POSIx(POSIX1003.Ic、POSIX1003.1d)API。其中VRTX的网络和文件系统建立在内核的基础上。它还提供一套基于自身内核、网络、文件系统的C和c++库。VRTX采用模块化、分层的体系结构使得操作系统各个组件能有机地组织起来,保证了系统的可扩展性、可移植性、可剪裁性和易维护性,为设计实时操作系统Delta的体系结构提供了可借鉴之处。

VRTX的内核VRTXsa的体系结构如图3—2所示。

研,趟卫n种嗽八l弋操作蘸境内拽曲让斩

|冬|3-2VRTXsa的体系结构

VR'I、Xsa的管耻馍块包括任务管理、任务间通信、同步管理、内存分配管理、扩展管到!和中断处理。它对埂件资源的需求仅限PROM、RAM、CPU、Clock和ICU(中断控制器)。VRTXsa向用户提供VRTX自身的和支持POSIX的两套API。另外,用户可以通过内核的扩展管理,扩充现有的API。VRTXsa采用模块化、分层的体系结构确保了内核良好的扩展性、移植性、剪裁性和易维护性,为设计DeltaCORE的体系结构提供了可借鉴之处。

3.3任务管理机制的分析

3.3.1任务的定义和多任务

任务的定义有多种提法,常用的有以下几种:

一一个可调度的单元

一司获得处理器的实体

一并发系统中互相竞争资源的单个执行体

一可以与其它计算序列并发执行的计算序列。

虽然任务的定义由于所站的角度不同(比如站在处理器分配的角度、站在参与资源竞争的角度、站在并发计算的角度)有不同的内容,但是其根本含义是一致的。

从任务的定义可以看出,一个任务只是组成系统的一个元素,还需要与承担其它功能的任务一起协同工作,形成一个有机的整体,称为多任务系统。多任务系统涉及到任务调度和任务切换。对于单处理器上的多任务系统属于伪并发模式,从宏观上看是一段时间内若干任务的并发处理,微观上的本质是这些任务的串行执行。对于多处理器上的多任务系统从宏观和微观上看都是真正的并发执行。

3.3.2任务的状态

多任务系统中任务参与资源竞争,处理器资源在任务之间分配,任务状态在不断的变化。不同的内核实现对任务状态的定义不尽相同,但是都可以概括为以下三种状态:

一执行态——当前占有CPU的任务状态

一就绪忿——一旦获得CPU就能执行的任务状态

一阻塞态——由于资源条件未满足,没有资格竞争CPU的任务状态

三种状态的变迁图如图3-3所示:

图3-3任务状态的变迁图

其中E(Executjng)代表执行态

R(Ready)代表就绪态

B(Block)代表阻塞态

3.3.3任务的上下文和上下文切换

任务的上下文记录了该任务的执行环境(如,寄存器的内容)。针对不同体系结构的处理器,任务的上下文有不同的定义。

任务的上下文切换表示当前执行任务在将处理器的控制权交给即将运行的任务之前,把它的执行环境(该任务的上下文)保存到相应的数据结构中,用即将运行任务的上下文重新布置执行环境。

3.3.4任务响应(taskresponse)

任务11¨应是指从任务就绪到它真正开始运行这一过程。任务响应时间又称调度延迟(schedulinglatency),表示完成这一过程需要的时间。

图3。4一个不可抢占调度的示例

系统中有任务1、任务2、任务3三个任务。其中任务1的优先级最低,任务3的优先缴最高。系统开始时只有任务l就绪,任务1运行。任务1运行一段时间后任务2就绪。虽然任务2具有更高的优先级,但是任务1的执行不能被打断(抢占),所以任务l继续运行,直到主动放弃处理器。任务2虽然早已就绪,但只有任务1主动放弃处理器后才能开始运行。同理,任务3要等任务2主动放弃处理器后才能开始运行。

不可抢占调度由于任务的独占性,其优点是对共享数据的保护需求较低,缺点是系统的响应时间得不到保证。对于实时性要求较高的系统不可选择这种调度方式。

2.可抢占调度(preemptivescheduling)

任何时刻都严格按照高优先级任务在处理器上运行的原则进行任务调度,或者说,在处理器上运行的任务永远是就绪任务中优先级最高的任务。当优先级高的任务能运行时.保证其执行时间,让其尽快运行完成。如果优先级高的任务因故(如等待事件)暂停运行,则让次高优先级的任务运行,一旦高优先缴的任务又就绪(冈等待的事件到来而成为就绪),任务调度器迫使原运行任务马上让出处理器给“优先级的任务使用或称该任务被抢占。图3.5为可抢占调度的一个示例:

垒丝!坠:塑竖生墅塑型丝!!监丝!鲨!:

图3-5可抢占调度的一个示例

符号晚明:夕任务被抢占任务完成

系统中有任务1、任务2、任务3三个任务,其中任务1的优先级最低,任务3的优先级最高。系统开始时只有任务I就绪,所以任务l运行。任务1执行一段时削后任务2就绪。由于任务2具有更高的优先级,任务1被打断(抢占),任务2开始运行。同理任务2被打断(抢占),任务3开始运行。任务3运行完毕后放弃处理器,这时任务2从打断处接着运行。同理,任务2运行完毕后任务】才能接着运行。

可抢占调度由于需要进行额外的任务调度和任务切换,因而带来~定的时

间开销。

3.4.2.2同优先级任务的时间片轮转调度算法(round-robin)同优先纵任务的时间片轮转调度是轮转调度的一种,目的是使实时系统中优先级相|司的任务具有平等的运行权利。

时叫.H轮转凋度算法是指当有两个或多个就绪任务具有相同的优先级且它们是就绪任务lp优先级最高的任务时,任务调度程序按照这组任务就绪的先后次序调度笫一个任务,让它运行一段时问。运行的这段时间称为时间片(timeslicing)。当任务运行完~个时M片后,该任务即使还没有停止运行,也必须释

生竺塑:丛!.燮笙墨釜竺丝i鲨丝!堂!

放处州擀汁】、个lj它州J¨:J优先绒的任务运行(假设这时没有更高优先绒的任务就绪),释放处川"§的任务被排到嗣优先级就绪任务链的链尾,等待再次运行。

采川II,仆{川1轮转州度£7:法时,任务的时间片大小要是适当选择。时问片大小的选择会影Ilm系统的性能和效率。时问片太大,时问片轮转调度就没有意义:时『白j片太小,任务切换过于频繁,处理器丌销大,真正用于运行应用程序的时问将会减小。

不同的内核芷实现时川片轮转调度算法上可能有一些差异。有的内核允许同优先级的各个任务有不一致的时间片;有的内核要求相同优先级的任务具有一致的时间片。图3-6为可抢占调度和时间片轮转调度并存的一个示例:

图3-6可抢占调度和时间片轮转调度并存的一个示例符号说明:夕任务被抢占任务完成

系统中有任务1、任务2、任务3三个任务,其中任务l和任务2的优先级相同,且都比任务3的优先级低。系统开始时只有任务1和任务2就绪。任务1和任务2按照时间片循环调度运行。执行一段时间后任务3就绪。由于任务3具有更高的优先级,任务2被打断(抢占),任务3开始运行。任务3运行完毕后放弃处理器,这时任务2把剩余的时间片运行完,任务1和任务2又开始轮循调度运行。

3.4.3引起任务调度的原因

有以r儿种原因会引起任务调度

1.上耋{r任务J圈缺乏资211:i被阻塞

丝!堂!生丝竺尘:盟!丝重型型生塑竺i鲨2.时J'lfJ片轮转凋皮下,运行任务耗尽其时间片

3.-个虹『铘优先级的{t务就绪

4.巡i舭p断处Fl!程序时

3.4.4vl订xsa、pSOS+、Wind调度机制的比较

VRTXsa、pSOS+和Wind都采用将优先级可抢占调度做为必选的调度机制,配以同优先级任务的时问片轮循调度作为可选机制。

3.5可抢占内核与不可抢占内核

可抢占内核、不可抢占内核与任务调度机制中的可抢占调度、不可抢占调度是两个概念。

可抢占内核与不可抢占内核体现在任务在使用内核提供的系统调用的过程中被中断打断的不同处理上。对于可抢占内核,中断服务程序退出时进行任务重调度,如果有优先级更高的任务就绪,就立即让高优先级任务运行,不要求必须回到被中断的任务,将未完成的系统调用执行完。对于不可抢占内核,中断服务程序退出时,即使有优先级更高的任务就绪也必须回到被中断的任务,将未完成的系统调用执行完后,才能让高优先级任务执行。

pSOS+就是一个不可抢占内核,VRTXsa和Wind为可抢占内核。不可抢占内核会在一定程度上削弱系统的实时性能。

3.6任务间同步、通信机制的分析

实时多任务系统的功能一般要通过若干任务与若干中断服务程序(ISRs)共同完成。任务与任务之间、任务与中断服务程序之间必须协调动作,互相配合。实时操作系统的内核一般通过信号量(semaphore)和事件(event)来满足同步的需要;通过消息机制(messagequeue)提供通信的服务。另外,有的操作系统内核还提供异步信号量机制(signalorasynchronoussignal)、管道(pipe)和共享内存(sharedmemory)做为补充方式。对于分布在不同处理器上的任务还可以通过RPC(RomoteProcedureCall){,tlSocket实现同步和通信。

相关主题
文本预览
相关文档 最新文档