(计算机软件与理论专业论文)嵌入式实时操作系统性能测试方法的研究与应用.pdf_第1页
(计算机软件与理论专业论文)嵌入式实时操作系统性能测试方法的研究与应用.pdf_第2页
(计算机软件与理论专业论文)嵌入式实时操作系统性能测试方法的研究与应用.pdf_第3页
(计算机软件与理论专业论文)嵌入式实时操作系统性能测试方法的研究与应用.pdf_第4页
(计算机软件与理论专业论文)嵌入式实时操作系统性能测试方法的研究与应用.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(计算机软件与理论专业论文)嵌入式实时操作系统性能测试方法的研究与应用.pdf.pdf 免费下载

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

文档简介

j 1 a b s t r a c t i nr e c e n ty e a r s ,w i t ht h er a p i dd e v e l o p m e n to fc o m p u t e r t e c h n o l o g ya n da d v a n c e si n c h i pm a n u f a c t u r i n gt e c h n o l o g y , e m b e d d e dr e a lt i m e o p e r a t i n gs y s t e m e r t o s ( e m b e d d e dr e a l t i m eo p e r a t i n gs y s t e m ) i sg r a d u a l l yi n f i l t r a t i n gi n t of i e l d so fs c i e n c e e n g m e e n n ga n ds oo n m o r ea t t e n t i o ni sp a i dt oi t sm e t h o d so fp e r f o r m a n c et e s t i n g e m b e d d e dr e a lt i m eo p e r a t i n gs y s t e mi st h ec o m b i n a t i o no ft r a d i t i o n a le m b e d ( 1 e d s y s t e ma n dr e a l t i m eo p e r a t i n gs y s t e m i ti ss m a l l ,c o n f i g u r a b l e ,a n dc a nb ea p p l i e dt o m a n ye m b e d d e de n v i r o n m e n t sw i t hd i f f e r e n t f e a t u r e s b ya d o p t i n gm i c r o k e r n e l s t r u c t u r e , i t sm a i nf u n c t i o n sr e f e rt oe v e n tm a n a g e m e n t ,t i m es e r v i c e ,i n t e r r u p ts e r v i c e a n dr e a l t i m e s c h e d u l i n g g e n e r a l l yt a k e ns t r o n ge x t e r n a lr e s p o n s i v e n e s sa n dh i g h a c c u r a c yi nt i m ea st h em a i np e r f o r m a n c ec h a r a c t e r i s t i c s ,i th a sac e r t a i np r e d i c t a b i l i t y g e n e r a l l y , p e r f o r m a n c ei n d e x e so ft h eo p e r a t i n gs y s t e ma r en o ti s o l a t e db u t i n t e r a c t i n gw i t he a c ho t h e r h o w e v e r , m o s to ft h ee x i s t i n gt e s t i n gp r o g r a m sa r eb a s e do n o n eo ras m a l ln u m b e ro ft h e m t h e r ei sn oc l e a rd e f i n i t i o no ft h ei n t e r a c t i o nb e t 、v e e n t h e m ,w h i c hr e s u l t st h el a c ko fc o m p l e t e l yo b j e c t i v ee v a l u a t i o ni nr e a l t i m eo p e r a t i n g s y s t e mp e r f o f i n a n c e f o rs o l v i n gt h i sp r o b l e m ,t w os e t so fe l e m e n t sa i m i n gt od e s c r i b e t h er e l a t i o n s h i pb e t w e e nt h ed e p e n d e n c i e sa m o n gp e r f o r m a n c e sa r ed e f i n e di nt h i sp a p e r b a s e do nt l l i s at e s tm o d e lo ft w o - i n d i c a t o r - s e to f o p e r a t i n gs y s t e mi sp r o p o s e dw h i c h d i v i d e st h ei n d i c t o r ss e to f o p e r a t i n gs y s t e mi n t oa f f e c t i o na n de v a l u a t i o ns e t s at e s t s y s t e mf o r e m b e d d e dr e a l t i m e o p e r a t i n gs y s t e m i s d e s i g n e da n d i m p l e m e n t e d b a s e do na n a l y z i n gt h o s ee x i s t i n gt e s tc a s e s ,o r i e n t e dt o w a r d su c o s i i , c a s et e s t sa r ec a r r i e do u to nt h i ss y s t e mb ya d o p t i n gt h ec l a s s i c a lm e t h o dr h e a l s t o n et o g e n e r a t es e t so ft e s tc a s e s b a s e do nt h et e s tm o d e l u c o s i i ,p e r f o r m a n c et e s t s o ft w o i n d i c a t o r - s e tp r o p o s e d a r ed e s i g n e d t i m eo ft a s k s i nt h i sp a p e r , b yi n s t a n c eo f s w i t c h i n ga n di n t e r r u p t i n g r e s p o n s ea n dm e s s a g ep a s s i n ga l em e a s u r e di nap r a c t i c a lw a y t h ee f f e c t i v e n e s sa n d o b j e c t i v e n e s sa n da l s ou s a b i l i t yo ft h et e s tm o d e lo ft w o i n d i c a t o r - s e ta r ev e r i f i e db yt h e p r o c e s so fc a s et e s t sg e n e r a t i n ga n dr e s u l t so ff i n a le x p e r i m e n t s k e y w o r d s :e r t o s ,r e a l - t i m ep e r f o r m a n c e ,u c o s 1 1 ,t e s tc a s e 一 够 一 舢8 _; 一i川3 一 m 3 i 一j;- 一 m 3 _- _i p 一j7 一 舢7 -iiiiii 一 舢1 一 删y 目录 第一章绪论1 1 1 本文研究的背景及意义1 1 2 国内外研究现状1 1 2 1 实时操作系统测试的研究现状1 1 3 本文的研究内容和论文结构4 第二章嵌入式实时操作系统及性能指标分析5 2 1 嵌入式实时操作系统概述5 2 1 1 操作系统结构模式5 2 1 2 嵌入式实时操作系统结构6 2 2 嵌入式实时操作系统实现技术分析7 2 2 1 任务管理8 2 2 2 内存管理1 0 2 2 3 中断管理1 1 2 3 常见实时操作系统的性能分析1 2 2 4 实时性能指标分析1 4 2 4 1 任务管理性能指标1 5 2 4 2 中断管理性能指标1 5 2 4 3i p c 机制性能指标1 5 第三章嵌入式实时操作系统的测试系统设计与实现1 7 3 1 测试系统硬件框架结构设计与实现1 7 3 2 测试系统软件框架结构设计与实现1 8 3 2 1 功能测试模块1 9 3 2 2 性能测试模块2 0 3 2 3 数据分析和文档生成模块2 l 3 3 测试用例的设计与实现2 2 3 3 1 测试用例设计方法2 2 3 3 2 测试用例脚本语言2 4 3 3 3 测试用例脚本语言的运行2 7 3 4 基于u c o s 实时操作系统性能测试实例2 8 第四章嵌入式实时操作系统性能测试方案3 0 4 1 双指标集测试模型3 0 4 2 性能指标测试方案3 2 4 2 1 任务管理性能测试3 2 4 2 2 中断管理性能测试3 4 4 2 3i p c 机制性能测试3 5 第五章基于双指标集测试模型的实时操作系统性能测试4 0 5 1 测试环境4 0 5 2 测试对象及测试指标选取4 l 5 3 测试过程及结果分析4 2 第六章总结与展望4 7 参考文献4 8 攻读学位期间的研究成果5 1 致谢5 2 学位论文独创性声明5 3 学位论文知识产权权属声明5 3 第一章绪论 1 1 本文研究的背景及意义 第一章绪论 随着计算机技术的迅速发展和芯片制造工艺的不断进步,嵌入式处理器的运行 速度与系统内存的大小都在很大程度上有所提升,使得嵌入式系统在软硬件方面都 取得了飞速的发展。 同时,针对功能日益强大的嵌入式开发系统,出现了大量设计与开发的方法, 这些方法被广泛应用在嵌入式系统的丌发过程中。这些方面的提高使得以其占用内 存少,高性能,和具有可伸缩性,性能稳定为特点的嵌入式实时操作系统e r t o s ( e m b e d d e dr e a l t i m eo p e r a t i n gs y s t e m ) 成为一种趋势。 嵌入式实时操作系统【2 】就是在传统嵌入式操作系统的基础上加入系统实时性 的特征,进而满足系统实时性的要求。嵌入式实时操作系统的管理通常包含有内存 管理、进程管理、中断管理、设备管理等。系统要求实时性较高,能快速及时的 响应系统外部的需求,并做出相应的处理。另外嵌入式实时操作系统内核体积较小, 可以在不同的硬件开发环境下进行移植,从而给系统开发带来方便。随着嵌入式实 时系统在不同行业,不同领域的广泛使用,针对它的技术研究与开发也日益增多, 涵盖从系统概要设计到系统整体测试整个过程。但是在设计开发过程中,选用何种 标准或方法来评价出嵌入式实时操作系统的好坏,成为人们广泛关注的焦点。因此 需要对嵌入式实时操作系统的测试进行系统科学的研究。 当前嵌入式系统测试重点关注的是系统软硬件的整体功能,而很少关注操作系 统的性能测试。现行的嵌入式实时操作系统性能测试方案大多是基于单个或少数性 能,且没有明确定义相关性能间的相互影响,因而通常不能完全客观的评价实时操 作系统的性能。 因此,有必要设计了一个通用的嵌入式实时操作系统的测试系统,能在整个项 目研发早期阶段对设计出来的操作系统进行不同类别的测试,如实时性能的测试。 另外采用何种测试方法来客观的评价实时操作系统的性能,这都是本文要解决的主 要问题。 1 2 国内外研究现状 1 2 1 实时操作系统测试的研究现状 嵌入式系统的基础运行平台是实时操作系统,它是系统稳定可靠的基础。其功 能和性能上的好坏会直接影响嵌入式系统整体的功能与性能。功能测试是在嵌入式 青岛人学硕j :学位论文 操作系统完成确认测试的基础上进行的,主要是为了测试操作系统提供的功能是否 满足用户使用的需要。对嵌入式实时操作系统的功能测试主要从进程管理、中断管 理、设备管理、错误处理等方面进行验证。通常采用的测试方法是静态分析和动态 测试相结合的方式。性能测试主要是考虑实时操作系统的稳定性、可靠性、实时性 和安全性等关键指标。 目前实时操作系统测试更多关注的还是实时性能的测试。操作系统的实时性能 一般使用系统的实时响应时间作为标准,在系统的各个方面都体现了实时性的要 求。在实际开发过程中,考虑到系统运行的不同环境,如何能够更加真实有效的反 映出系统的实时性,需要给出合理有效地测试方法。而当前关于实时性能测试方法 的研究,很多人都进行了大量的工作。用于评测实时性能的方法也有很多种,常见 的方法主要有r h e a l s t o n e 方法、进程分派延迟时间法、l m b e n c h 方法、h a r t s t o n e 方 法和l a b e n i 方法等。 1 r h e a l s t o n e 方法 r h e a l s t o n e 【5 】方法是目前用于评测实时操作系统性能常用的方法,它是通过对6 个性能指标评测后,取其加权后的和作为实时性能评测的依据,这个加权和我们称 作是r h e a l s t o n e 数。用于评测实时性能的这6 个指标量是任务切换时间硒丁( t a s k s w i t c h i n g t i m e ) 、抢占时间p 丁( p r e e m t i o nt i m e ) 、中断延迟时间儿丁( i n t e n u tl a t e n c y t i m e ) 、信号量混洗时间s s t ( s e m a h o r es h u f f l i n gt i m e ) 、死锁解除时间d b t ( d e a d l o c kb r e a k i n gt i m e ) 、数据包吞吐率d t t ( d a t a g r a mt h r o u g h u tt i m e ) 。 ( 1 ) 任务切换时间通常包括有当前任务上下文保存时间、新任务被调度的时 间和新任务上下文恢复时间这三部分。任务切换时间一般也称为上下文切换时间, 它是指具有相同优先级并相互独立的两个就绪状态的任务之间相互切换所花费的 时间丌销。这部分时间的大小和实时操作系统中选用的任务调度算法有关。 ( 2 ) 抢占时间通常任务抢占是发生在两个具有不同优先级的任务之间,时间 大小取决于低优先级任务向高优先级任务转换所需要的时间开销。任务抢占时| 、丑j 通 常也包含有任务切换所花费的时间,主要是因为系统在进行任务抢占的时候,先区 分出任务优先级的大小,找到高优先的任务后再切换。 ( 3 ) 中断延迟时间通常包括中断响应、关中断、硬件处理、指令完成这四部 分所花费的时间。中断延迟时间是系统中断发生到中断服务程序中首条指令开始运 行之间的间隔所花费的时间。 ( 4 ) 信号量混洗时间是用于评测实时操作系统性能的重要依据,通常指等待 任务信号量从释放到获得之间的时间间隔。信号量混洗时间是和系统中信号量的互 斥操作花费的时间大小有关。一般在实时操作系统中,对于公共区域的操作是使用 信号量互斥进行访问。 2 _ 第一章绪论 ( 5 ) 死锁解除时间这部分时间的大小是与实时操作系统中用于处理死锁的算 法有关。通常是指将任务的死锁状态解除所需要的时间延迟。 ( 6 ) 数据包吞吐率是用来衡量系统实时性能的一个重要指标。数据包吞吐率 是指单位时间内通常是每秒钟内,从一个任务发送数据到另外一个任务接受数据所 发送的字节数。 2 进程分派延迟时间 通常包括中断延迟、i s r 延迟、内核延迟、调度延迟这四部分所花费的时间。 进程分派延迟时间的是系统中断发生丌始到实时任务调度运行所需要的时间延迟。 如图1 1 所示。实时系统中当出现中断时,系统会立即响应该中断,转入到中断服 务程序执行。在进程分派延迟时间中具有较大的差别的就是内核延迟,在设计操作 系统时,会采用很多种方法来减少这部分的时间延迟,通常可以采用的方式有内核 可抢占。进程分派延迟时间是衡量系统实时性能的又一重要指标。 中断产生 中断延迟 i s r内核调度 实时任务。 中断响应 延迟 延迟延迟 硬件延迟关中断 当前指令 周期 pdlt - 3 l m b e n c h 方法 图1 1 进程分派延迟时间 l m b e n c h 方法为了能够使测试结果更加真实有效,通常采用的办法是在系统中 加入对进程的个数和其占用空间大小的处理【6 】。它用来实现任务切换的方法是将用 于命令控制的令牌在管道中进行各个不同任务间的转移。国内外很多研究在对操作 系统的实时性能测量时,往往采用该方法。 4 h a r t s t o n e 方法 该方法是由c a r n e g i e m e l l o n 大学的科研人员针对嵌入式软硬件系统而提出的 p 】。它是用于评测整个嵌入式系统,而不只是对操作系统进行评价。h a r t s t o n e 方法 是采用a d a 语言编写丌发的,包括有5 种基本的测试实例,用户可以根据需求选择 适当的测试实例。其主要目的是用来评测在规定的时间内硬实时系统的性能。 5 l a b e n i 方法 该方法是由l a b e n i 等人提出的,主要包括对任务抢占和系统调用方面的测试。 l a b e n i 方法是通过对系统中调度延迟、非抢占区域延迟等一些影响因素进行测试 3 青岛人学硕1 j 学位论文 【8 1 ,从而评测出在这些指标下系统的实时性能。 - 综上所述,每种评价方法都只是针对实时性能测试的某一方面,如l m b e n c h 方 法它只是对任务切换时问进行直接测试,没有对中断处理等其他方面进行测试; h a r t s t o n e 方法是用于评测整个嵌入式系统,其中包含有软件和硬件,其主要目的是 用来评测在规定的时间内硬实时系统的性能,而不只是对操作系统进行评测。而 - r h e a l s t o n e 方法虽然都能很好的反映出操作系统在任务调度及抢占方面的性能,但 是r h e a l s t o n e 方法测试的只是一个平均值,并不能真正客观的评价出实时系统的性 能。 1 3 本文的研究内容和论文结构 本论文研究的重点内容是设计并实现了嵌入式实时操作系统的测试系统,对各 模块工作原理及处理流程进行详细的说明。并基于本文提出的双指标集测试模型, 设计了嵌入式实时操作系统性能测试方案。 论文主要结构如下: 第一章,阐述论文的研究背景和意义,对国内外在实时操作系统性能测试方法 的研究进行了动态分析,概述本论文的主要研究内容。 第二章,介绍常见操作系统的结构模式和e r t o s 的体系结构,从任务管理、 内存管理和中断机制的实现技术上分析内核的实时性能,对比分析国内外常见的实 时操作系统的性能,详细阐述e r t o s 主要的实时性能指标。 第三章,设计并实现了嵌入式实时操作系统的测试系统,同时对系统中所包含 的各主要模块进行描述,在对已有测试用例方法进行分析的基础上,以u c o s - i i 为测试对象,基于经典的r h e a l s t o n e 方法生成了测试用例集,并在研制的测试系统 上进行了实例测试。 第四章,基于本文提出的双指标集测试模型,以u c o s i i 为例,设计了嵌入式 实时操作系统性能测试方案。 第五章,在测试系统上对实时操作系统u c o s i i 的任务切换时间、中断响应时 间和消息传递时间进行了实际测试。测试方案生成过程及测试实验结果证明了基于 双指标集测试模型的测试方法,能够有效地保证系统性能测试的客观性,实验结果 也验证了测试系统的可用性。 第六章,对本文工作进行总结。 4 _ 第一二章嵌入式实时操作系统及性能指标分析 第二章嵌入式实时操作系统及性能指标分析 2 1 嵌入式实时操作系统概述 嵌入式实时操作系统足传统的嵌入式软件特征和实时操作系统的结合。所谓实 时性,主要是指系统运行行为具有一定的可预测性( p r e d i c t a b i l i t y ) 。在系统运行 的任何状态下,操作系统都能利用资源动态调配方法为抢占系统资源的多个实时任 务进行资源的合理分配,从而保证每个实时任务都能满足实时性的要求。实时操作 系统与通用操作系统的不同在于,实时操作系统所关注的是系统中每个实时任务在 最坏情况下都能达到实时性的要求,即更关注个体表现,而不是系统的平均表现。 实时性与一般意义上的任务执行速度的快慢是有区别又有联系的,不是说执行速度 越快就表明实时性越高,实时性的核心含义不仅仅指速度快,而更多关注的是系统 行为的可预测性。 e r t o s 具有体积小、可配置、能适用于不同嵌入式环境的特点;通常采用微内 核结构,其功能主要有事件管理、时间服务、中断服务、实时调度等;一般以较强 的外部h 向应能力和较高的时间精度等为主要性能特征,具有一定的可预测性。 2 1 1 操作系统结构模式 通常把操作系统的结构模式【9 】【i o 】分成3 种: 1 单一内核模式 它是早期操作系统采用的形式,其包括有很多不同的模块,这些各不相同的模 块彼此独立,都对应着系统中的一个功能,它们之间的交互是由彼此间简单的直接 调用来完成。随着模块个数的不断增加,各个模块间的关联也就更加紧密,此时便 会带来一些问题。一个模块的改变可能会导致与其相紧密关联的所有模块随之发生 变化,这样会给操作系统带来相当大的影响。同时,各个不同模块联系在一起组成 一个完整的内核,使得操作系统运行效率较高,因此早期的o s 大都采用这种模式 【l i i o 2 层次结构操作系统 m s d o s 操作系统是典型的层次结构操作系统,它的层次结构如图2 1 所示。 层次结构操作系统内核可以分为不同的层次,如系统服务层、用户接口层、核心层 等等。采用这种结构模式的操作系统各个层次之间具有明显的功能划分,彼此之间 也存在着调用关系。如系统服务层有时就需要调用用户接口层的一些功能,一般不 会出现隔层调用的情况,但是在一些特殊场合下也会出现。一种最理想的状态就是, 各层次不需要彼此问的调用,而是可以直接与底层的硬件驱动层打交道。多数情况 青岛大学硕+ i :学位论文 下,层次结构操作系统同单一内核系统一样也存在着调试困难的问题。 应用程序 系统程序 m s d o s 设备驱动 r o m b i o s 设备驱动 硬件 图2 1 常见的m s d o s 层次结构 3 客户一服务器模式 c s 模式的操作系统结构是采用两级模式,客户端与服务器。服务器由多个合 作进程组成,它们是用来对客户发出的请求进行响应。这种结构把操作系统内核中 的一些基本服务保留在系统核心中,如消息同步、消息调度等。除了这些基本的服 务功能之外的其他功能是通过服务器端的合作进程来执行。在服务端还存在着用于 执行其他功能调用的系统任务。应用程序作为客户端向服务器请求服务是通过系统 调用。采用这种模式的操作系统称为微内核操作系统【1 2 】【1 3 】。 该操作系统的设计思路最早应用在c m u 研发的m a c h 1 4 】系统中。虽然微内核 结构的应用取得了一些成果,但是同样也带来了一系列问题,其中最主要的就是效 率问题l l5 。一方面系统服务进程使用其它进程提供的服务,必须首先进行地址转换, 然后才能申请使用;另一方面由于系统服务进程的相互独立性,因而需要保护其使 用的内存空问,从而防止其它的服务进程对其进行访问。上述这些方面都会给系统 增加一部分的开销。 2 1 2 嵌入式实时操作系统结构 嵌入式实时操作系统最主要的特征是其实时性【1 6 】。 通常我们把在规定的时间范围内对来自外部的请求能够进行及时响应的系统称 作是实时系统。实时系统运行结果的取决于系统的逻辑运算和计算得到的数据所花 费的时间。实时操作系统的启动过程是从b o o t l o a d e r 运行开始,然后进行系统的初 始化工作,调用系统中的核心代码来启动操作系统的一些基本服务。实时操作系统 就是一个完整的封闭内核,外部应用程序是不允许直接访问内核中的数据,但是却 可以通过系统提供给用户的彳接口来访问内核数据。同时实时操作系统的内核具 有可裁剪性,用户可以很方便的在不同的开发环境下进行系统移植。 6 第二章嵌入式实时操作系统及性能指标分析 虽然在不同的实际开发环境下内核的组成会根据实际开发需求有所不同,但以 下几个重要组成部分是不变化的:实时内核、文件系统、网络组件和图形接口等。 嵌入式实时操作系统相对于一般操作系统而言,仅指操作系统的内核( 微内核) , 其他诸如窗口系统界面或通信协议等模块,可另外选择。对于一个实时操作系统来 说,它的最重要的组成就是系统内核。现在很多实时操作系统必须提供的基本功能 主要有:多任务管理、存储管理、周边资源管理、中断管理。另外,用户还可以动 态加载其它功能来满足特定功能的需求。在实时操作系统的设计过程中,为了能够 及时响应优先级高的任务,嵌入式实时操作系统内核一般都是采用基于优先级的可 抢占调度方式。通常实时系统是由上层应用、r t o s 和底层硬件平台构成。r t o s 作 为中间一层,用于管理底层硬件资源,同时也是实时应用丌发和运行的平台,r t o s 可以为应用提供可靠的支持,增强系统的移植和再开发能力,能与实时应用软件结 合成为一个有机的整体,在整个系统中处于核心地位。r t o s 的体系结构如图2 2 所示。 图2 2r t o s 的体系结构图 2 2 嵌入式实时操作系统实现技术分析 评价一个e r t o s 实时性能主要包括实现技术分析和实时性能指标测试两个方 面。下面重点从任务管理、内存管理和中断机制的实现技术上分析内核的实时性能 【1 7 】 o 青岛人学硕:i :学位论文 2 2 1 任务管理 实时操作系统区别于分时操作系统的重要标志就体现在任务管理上。 实时操作系统应该具备能够以可预测的方式,能够实时地响应多个同时发生的 外部事件的能力,这就是实时操作系统要具有的多任务处理能力。对单处理器系统 来说,并不存在真正的多任务,所谓的多任务处理实际上是通过一系列的虚拟的并 行算法实现的【1 8 】。 在系统中运行的应用一般情况下可以被划分为多个任务。u n i x 和p o s i x 体系 统中运行的每个进程都存在着较大的上下文关联,或是与运行环境密切相关,因此, 如果要结束一个进程的运行,切换到另一个进程的运行,需要耗费大量的时间。要 实现实时的多任务的操作系统,仅在进程的概念基础上是很难达到的,所以,在此 基础上,进一步的提出了进程一线程模式。线程在上下文方面继承了进程的特点, 但是线程却只是进程的子集,线程又被称为轻型进程,相当于是减轻负载,轻量级 的进程。因此,在线程之间进行运行时切换能够提高速度,节约时间。另外,对于 属于同一个进程的多个线程来说,这些线程都运行在一个系统环境中,并且属于同 一块内存保护地址空间,它们之间的切换就不需要考虑运行环境变化以及地址保护 这些因素。 在处理多任务的实时操作系统中,每个线程所代表的任务都有一定的时限要 求,系统通过确定调度多个纯种的方法才能满足这种时限要求,目前比较理想的法 是最后期限驱动( d e a d l i n e - d r i v e n ) 算法。但是由于技术方面的原因,目前任务 调度器还不具备这种算法的能力。目前实时任务调试算法普遍采用的算法是可抢占 优先级调试算法【1 9 1 ,这种方法的原理是为每个线程设定一个优先级,并根据设定的 优先级来保证优先级高的任务先得到处理,然后再处理优先级低的任务。 1 任务管理模式 通常实时操作系统包括有硬实时操作系统和软实时操作系统两种。系统进程可 以划分为很多线程。线程是系统中执行任务调度的最小单位。考虑到实时性的要求, 将系统任务划分为三类,它们分别是硬实时、软实时和非实时任务。在只有硬实时 任务或者软实时任务时,这时我们只需考虑任务即可。假如系统中出现了其他类型 的任务,那么仅仅考虑任务是不够的,还应该把进程线程模式考虑在内。究竟在 实际丌发过程中选用哪一种任务管理模式,这要取决于系统中存在的任务类型。 2 任务调度策略 在处理多任务的实时操作系统中,任务调度的策略的选取同采用何种类型的操 作系统有关,简单的实时操作系统一般可选用可抢占式的任务调度,而对于较为复 杂的实时操作系统,拥有多个具有相同优先级的实时任务,就需要在i 叮抢占式调度 策略的基础上,加入时问片轮转的方法。当任务调度策略使用r m s 时,这时就需要 8 t 第_ 二章嵌入式实时操作系统及性能指标分析 对不同的任务分配不同的优先级。比如在i j c o s i i 系统中,任务具有的优先级就 各不相同。如果系统中存在有非实时应用,这里考虑使用通用操作系统g p o s ( g e n e r a lp u r p o s e0 p e r a t i o ns y s t e m ) 中的调度方法。如果系统中除了非实时应用 之外,还存在有另两种应用,硬实时和软实时应用,那么在设计方法上两者的设计 可以相同。总之,任务调度策略的选择对系统的实时性能会产生很大影响,它也是 操作系统任务管理中一个非常重要的单元。 3 任务优先级 一个任务,也称为一个线程,是一个简单的程序,该程序可以认为c p u 完全 只属于该程序自己。每个任务都是整个应用的一部分,都被赋予一定的优先级。在 e r t o s 系统中,对于硬实时的部分,理论上最好的办法是采用时间限驱动的调度 器,但是目前还没有实现这项技术的操作系统。采用抢占式优先级驱动的高度方法 是当前的主流技术。e r t o s 可以提供相对其他方法比较多的任务优先级。首先, 对c s 模式的操作系统来说,该系统本身就可以被当作是多个服务器进行应用,这 些应用又可以更细一步的分为多个线程。这些系统进程和线程要求操作系统为其分 配较高的优先级。其次,如果一个用户应用包含大量的线程,应当给实时任务分配 比非实时任务线程更高的优先级。除此之外,还需要测量可用的处理器能力,方法 是通过将一个更低的线程的优先级设为0 ,把它用作i d l e 监视器来进行测量。当使 用r m s ( r a t em o n o t o n i cs c h e d u l i n g ,静态的速率单调高度) 算法分析硬实时的多任 务系统时,要为每一个实时任务都分配一个不同的优先级。在实时系统比较复杂的 情况下,要求至少提供的固定优先级数为1 2 8 个【2 2 1 。 、 4 最大进线程数 在操作系统中,有最大进程数或线程数的限制,一些对象的定义( 例如任务、 线程和进程的定义) 也要占用一定的内存空间。对象的复杂度越高,它的属性就越 多,定义这个对象时分配的空间就越大。系统有可能利用系统的一部分为对象分配 的空间,也有可能利用任务的一部分。如果是后者,e r t o s 采用空间全动态分配 的方法为其定义,些时,仅有系统中的对象表、代码等的可用共享内存空间因素会 影响到系统中的最大任务数;如果是前者,同时存在于系统中的最大任务数就变成 了一个参数,因为e r t o s 要在内存中预留一个固定的最大空间分配给这些表。 5 系统定义的任务状态数 系统中每个任务至少都拥有三种状态:阻塞、就绪和运行。对于状态的最大数 目系统中并没有限制,可以根据不同的情况分成不同的状念。阻塞态相当于任务驻 留在内存中,但并不被内核所调度,按照引起任务阻塞的不同原因,将系统阻塞的 状态分为多种,阻塞念的任务只是处于短暂的停止,当引起阻塞的条件消失时, 9 青岛人学硕 :学位论文 任务就可能由于某种原因而进入到就绪态,等待系统的执行。处在就绪状态下的任 务表明该任务已经准备好,可以运行,但由于该任务的优先级比正在运行的任务的 优先级低,还暂时不能运行;运行态是指任务已经拥有了c p u 的使用权,正在运 行中。 6 任务所需最小内存空间 任务所需最小内存空间每个任务在执行过程中都需要系统为其分配内存空间, 空间大小被定义为所有对象所需要的系统空间,系统空间的大小由操作系统在运行 时定义。执行程序时,任务的部分控制模块、栈以及堆要用r a m 来交换。同时, 硬件价格一定程度上影响了系统大小,这是e r t o s 在商业应用方面受到限制的主 要指标之一。因此,设计e r t o s 系统时,首先需要明确r a m 的分配策略。 2 2 2 内存管理 对内存访问必须在受限的时间内完成,这是e r t o s 的基本要求。也就是说可以 预测系统在内存管理上的时间开销。通常采用的内存管理机制主要有分页、分段、 交换、虚拟存储等【2 3 】。 1 内存分配策略 静态分配和动态分配是内存分配的两种主要方式。动态内存分配是因为进程装 载某一数据结构而需要向系统申请一定大小的内存而发生的,这一过程是在系统运 行时进行的。这时,就存在进程申请内存块失败的情况。在这个问题的解决上,有 些e r t o s 采用的方法是提供一个超时函数给内存申请,目的是实现在内存申请时 有一个时间限制,在规定的时间内,任务会一直等待内存分配,这个方法在减少代 码量方面有较好的效果。但是静态内存分配采用的方法是:在系统启动时,为每个 进程或线程都分配一定的存储单元,这样在进行执行的过程中就不需要再次请求为 其分配内存。相对来说,这种方法在内在分配方面的开销较大。 2 请求调页机制 请求调页是一种动态内存分配技术,它把页面的分配推迟到不能再推迟为止。 也就是说,一直推迟到进程要访问的页不在物理内存时为止,并由此引发一个缺页 错误。通常在保护机制的内存模式下,每个进程都拥有属于自己的虚拟地址空间。 这个虚拟地址空间的大小在不同平台上数值不同。3 2 位的i n t e l 平台上是0 4 g 大 小,而6 4 位的p o w e r p c 平台上大小则是0 4 g * 4 g 。上述大小的地址空间存放了 大量的数据内容,这些数据内容中只有当前被程序执行的内容才能被装入内存,其 他的并不能装入内存。如果程序要访问没有被装入内存的内容,那么一个缺页中断 就会被系统触发。所需要内容都会通过,d 调用从后备存储器中调入内存。在整个 请求调页机制中,由于,d 的执行时间并不确定,所以程序对内存的访问时问也是 l o 第_ 二章嵌入式实时操作系统及性能指标分析 不确定的。因此,应尽量在嵌入式实时操作系统中消除请求调页,这就要求在任务 到达时,必须为其分配足够的内存空间,目的是预先分配实际的物理页对应到程序 地址空问中的每个页,这样就可以避免在嵌入式实时操作系统中出现请求调页的情 况。同时为了保证实时任务执行时存取内存的时间是可预测的,还应把任务的程序 内容装入到内存,从而避免页面失效。 3 硬件保护机制 硬件保护机制的基本原理是将存储保护和动态再分配相结合的机制,这种保护 机制可以在m m u 或处理器中找到。它规定如果逻辑地址的空间范围超出 b a s e ,b a s e + l i m i t 】,会导致内存保护失败。当硬件失效导致系统内存中的数据丢失 或被破坏时,使用内存保护调试工具可以很快发现堆栈溢出。基于m m u 的系统, 使用m m u 中的关联映射机制,应用内存保护调试工具可很快发现堆栈溢出,但这 会导致不可预测性。a g e d m m u 机制的一个潜在缺点就是页面大小的问题。使用 a g e d m m u 进行内存保护时,可将页面的关联映射表作为进程上下文中的一部分, 使a g e d m m u 具有可预测性。当页面数很大时,映射表无法存储这么多数据,此 时解决的最好办法就是申请足够大的空间。 4 内存碎片 采用分段的方法可以解决内存碎片页面太小的问题。段可分为任意大小,在回 收的过程中会产生内存碎片。通过垃圾收集压缩的方法来清理内存,压缩过程中被 置换的进程不能运行,难以对系统进行预测,不适用于实时环境。主要的解决方法 一个是在系统的生命周期将内存分配给所有的对象。另一个方法是不断分配和回收 固定大小的内存块。e r t o s 和g p o s 内存管理有不同的目标和机制,难以融合。对 于单一的硬实时、软实时或非实时的系统,较容易选择方案。对于同时需要多种类 型实时功能的复杂系统,通常需要在不同的处理器上运行不同实时类型的子系统。 由于该方案代价太高,所以需要在同一个平台上实现多种类型实时能力的方法,在 实时部分使用静态内存分配的方法,软实时部分使用没有虚存没有压缩的动念内存 分配,非实时部分使用具有虚存和压缩的动态内存分配。 2 2 3 中断管理 e r t o s 的另一个基本要求是在预定的时问期限内对外部事件做出反应。外部事 件是指通过硬件转化为传输来的比特信息。在多任务环境下,使用中断服务程序 s r ( i n t e r r u ts e r v i c er o u t i n e ) ,通过发送中断米检测外部事件的发生。根据 e r t o s 设备驱动模式的不同,i s r 可单独存在,也町作为设备驱动结构的一部分。 青岛人学硕i :学位论文 e r t o s 可处理多个同时发生的外部事件或中断。当一个可抢占的低优先级的中 断执行时,发生了一个高优先级的中断,并且必须在一个限定的时问内解决中断事 件的发生。另外,某些事件需要更快地得到响应和处理。可先通过中断响应外部事 件,然后启动任务或线程对该事件进行处理。中断启动i s r ,然后在i s r 中执行系 统调用进行处理。多个中断同时发生时,系统必须定义发生中断到启动相应任务所蠢 需的时间。为了达到更快的中断向应速度,可分别在i s r 、0 级i s r 、后台模式、 设备驱动器等不同层次中执行事件代码。不同的实时操作系统采用不同的模式来处 理这一问题。包括只有一个任务和一个i s r 的情况,以及存在i s r 、后台i s r 、设 备驱动器和一个任务的情况。采用不同的事件处理参数处理不同的事件。上下文定 义和处理器速度决定了上下文切换时间,其中上下文定义是由e r t o s 和编译器决 _ 定的。中断产生到任务执行的转换时间,如图2 3 所示。 图2 3 中断延迟构成 转换时间的主要元素包括:中断服务程序执行时间、其他中断处理、屏蔽抢占 机制、线程调度时间、上下文切换延迟、系统返回调用等。中断交给处理器处理的 过程所需的时间称为中断分发时间;中断服务程序在执行事件处理或系统调用前的 。 过程称为服务程序执行时间;处理同时发生的、被挂起的中断的时间称为其他中断 处理;屏蔽抢占机制是指在执行关键代码时,采取的中断屏蔽措施,防止被其他中 断打断:线程调度时间决定线程运行的过程;上下文切换延迟是指被调度的线程与 原线程间上下文切换所需要的时间;返回调用是指等待系统调用f 确返回的时间。 从中断发生到任务运行的最大时间是指上述各部分最大时间的总和。 一 2 3 常见实时操作系统的性能分析 嵌入式实时操作系统的种类非常繁多,总体可分为2 种,商用型和免费型。国 第二章嵌入式实时垛作系统及性能指标分析 外商业嵌入式操作系统主要有v x w o r k s 、q n x 、l y n x o s 和w i n d o w sc e 【2 牝7 】等,具有 功能稳定、可靠,完善技术支持等特点,可提供如图形用户界而和网络支持等高端 嵌入式系统所需要的功能。但价格昂贵、源代码不公开,使得在实际应用中存在一 定的不可预见性,不利于功能剪裁、扩展和升级。而国内商业嵌入式实时操作系统 主要包括中科院的e e o s 、凯思集团的h o p e no s 等。国内产品技术含量较低,很 大程度上只是作为附属和

温馨提示

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

评论

0/150

提交评论