(计算机软件与理论专业论文)基于skyeye的μcosⅡ分析与研究.pdf_第1页
(计算机软件与理论专业论文)基于skyeye的μcosⅡ分析与研究.pdf_第2页
(计算机软件与理论专业论文)基于skyeye的μcosⅡ分析与研究.pdf_第3页
(计算机软件与理论专业论文)基于skyeye的μcosⅡ分析与研究.pdf_第4页
(计算机软件与理论专业论文)基于skyeye的μcosⅡ分析与研究.pdf_第5页
已阅读5页,还剩57页未读, 继续免费阅读

(计算机软件与理论专业论文)基于skyeye的μcosⅡ分析与研究.pdf.pdf 免费下载

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

文档简介

中山大学硕士学位论文( 2 0 0 9 )摘要 基于s 时e y e 的j j l c o s 1 1 分析与研究 专业:计算机软件与理论 硕士生:黄皖湘 指导老师:罗文村高级工程师 摘要 随着后p c 时代的到来,嵌入式技术以其灵活、高效、高性价比的优点被广 泛应用在国防、消费电子、信息家电、网络通信等方面。嵌入式操作系统作为嵌 入式系统的灵魂,提高了嵌入式系统开发的效率,同时增强了嵌入式应用软件的 可移植性和嵌入式产品的稳定性,使嵌入式系统的开发方法更具科学性,因此, 嵌入式操作系统的研究具有重要的应用价值。本文的主要研究工作围绕开源的嵌 入式实时操作系统p c o s i i 展开。 “c o s i i 是一个可剪裁、源码开放、结构小巧、抢占式的实时多任务内核, 主要适用于中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实 时性能优良和可扩展性强等特点。 本文首先介绍了嵌入式系统的定义、组成和主流嵌入式处理器和嵌入式操作 系统,重点分析了p c o s i i 的内核,包括任务管理、内存管理、中断处理等方 面;接着,本文阐述了将c o s i i 移植到s k y e y e 硬件仿真平台。 针对u c o s i i 任务调度算法的不足( 主要是不能适用于分时应用) ,本文扩 展了p c o s 调度模块,主要包括软实时周期任务的调度和普通任务的分时调 度。其中,软实时周期任务采用i 蝴算法调度,普通任务的分时调度算法主要包 括时间片分配和动态优先级调整。扩展后的p c o s i i 任务调度器对不同性质的 任务分别采用合适的调度算法,保证实时任务对实时性要求的同时,相应提高系 统吞吐量。 最后,本文分析了扩展后的“c o s 对内核大小、运行空间、实时性方面的 中山大学硕士学位论文( 2 0 0 9 ) 基于s k y e y c 的肛c o s u 分析与研究 影响,通过实验验证了扩展后的p c o s 能够较好地应用于对实时性要求稍弱 的分时应用。 关键字:嵌入式系统、p c o s - 、任务调度、实时 中山大学硕士学位论文( 2 0 0 9 ) a b s t r a c t a n a l y s i sa n d r e s e a r c ho np c o s i ib a s e do n s k y e y e m 面o r :c o m p u t e rs o f t 、) l r a 他锄dt h e o 哆 n 锄e :h 眦培w 抽) d a i l g s u p e i s o r :p r 0 l u 0w r e i l c 啪 a b s t r a c t w i t i lt l l ec o m i i l go fp o s t - p ce r a ,e m b e d d e dt e c l 加【o l o g ) ,a r e 嘶d e l yu s e di i l l l a t i o n a ld e f e l l s e ,c o n s u r n e re l e c 仃o i l i c s ,砌b 珊a t i o n印p l i 锄c e s ,n e 咖r k c o 删m 面c a t i o na n ds o0 n ,f o ri t sn e x i b l e ,e 伍c i e n t 锄dc o s t - e 鼠c t i v ea d v 锄t a g e s a st l l ek e yc o m p o n e n to fe m b e d d e ds y s t e m ,e m b e d d e do p e r a t i n gs y s t e mn o to i l l y e i l l l a n c e s l ep o r t a b i l i t yo fa p p l i c a t i o ns o f t 、v a r ca n dt l l es t a 【b i l 时o fe m b e d d e dp r o d u c t , b ma l s om a k e st l l em e t l l o do fe m b e d d e ds y s t e m sd e v e l o p m e mm o r es y s t e m a t i c 1 1 1 e r e f o r e ,t l l er e s e a r c ho ne m b e d d e do p e r a t i o ns y s t e mi sv a j u a b l e t h i sp a p e rf o c u s o nt l l ee m b e d d e dr e a l t i m eo p e r a t i i 培s y s t e m 一肛c o s i i a sa no p e ns o u r c ek e m e l ,“c o s i ih 硒b e e n 、7 l ,i d e l yu s e dh ls m a ua 1 1 d n l e d i u m s i z e de m b e d d e ds y s t e m s ,f o r “sc h a r a c t e r i s t i c so fm g he x e c u t i n ge 伍c i e r l c y s m a l ls i z e ,9 0 0 dp o r 讪l i l i 劬o u t 蛾m d i n gs c a l a b i l 时觚de x c e l l e mp e r f - 0 加锄c ef o r r e a l t i r n et a s k s n l ep a p e rf i r s u yi i l 仃0 d u c e st 1 1 ed e f i l l i t i o na r l dt h ec o n l p o s i t i o no fe n l b e d d e d s y s t e m 锄ds o m ep o p m a re m b e d d e dp r o c e s s o r sa n de m b e d d e do p e r a t i n gs y s t e m s , 锄da n a l y s e s “c o s i ic o r e ,i n c l u d i n gt a s km a l l a g e m e n t ,m e m o r ) ,m a i 蛆g e m e n t , i n t e 咖p th a n d l i i l g ,e t c ;t l l e n ,“sp 印e r d u c e s h o wp c o s i ii sp o n e dt 0 恤 l l a r d 咄s i m u l a t i o np l a t f o 衄一s l ( ) r e y e f o rt h ei i l s u m c i e n c yo fp c o s i i st a s ks c h e d u l 砸ga 1 9 0 r i t h m ( m a 砌yn o ta d 印t e d t ot i m e s h a 血l g 印p l i c a t i o n s ) ,“sp a p e re x t e n d s l ep c o s s c h e d u l i n gm o d u l e , i i l c l u d m gm es o rr e a l t i m ep e r i o d i ct a s ks c h e d u l i r l ga n dm eg e n e r a lt i i n e s h 撕n gt a s k t i i 中山大学硕士学位论文( 2 0 0 9 )基于s k y e y c 的p c ,o s 一分析与研究 s c h e d u l i i l g n l es 0 rr c a l - t i 】 n ep e r i o 击ct a s ks c h e d u l i i l ga d o p t sr m sa l g o r i t l l l i i ,w i l i l e 仕屺t 血e s h a r i n gs c h e d u l i n ga l g 舶o fg e n e r a lt a s l 【si i l c l u d e s l ea l l o c a t i o no ft i m e s l i c e 觚d 蛳幽1 i c 埘o r i 够删u s 协1 e n t e x 伽e dp c o s i is c h e 叫i n gm o d u l ea d o 幽 s u i 切b i et a s ks c h e 叫啦a 1 9 0 r i m mi na c c 0 畦m c e 砸md i 疵r e n tc h a r a - c t e 墙o ft a s l ( s , w i l i c he n s u r e sr e a l - t i i l l er c q u i r e m e n t sf o re m e 唱e n tt 积i ( s ,a tn l es 卸舱t i r m ,i m p r o v e s t t l es y s t e mm r o u g h p u t f i l l a l l y ,也i sp 印e r 锄a l y s e sm e 硼u e n c e o f m ee x t e n d e d c o s - i it 0k e m e ls i z c , r 咖【i l i n gs p a c e 锄dr e a l - t i 屺,觚dc e n i f i e sb ye x p e r 曲e n tm a tt h ee x t d e dp c o s - c a nb ea d a 讲e dt 0s o i n et i i n e - s n g 印p l i c a t i o n s 丽ml o w e rr e a l - t i l i 坨r e q u i i e m e n t k e yw o r d s :e m b e d d e ds y s t e m ,p c o s - i i ,t a s ks c h e d u l i n g ,r e a l 一劬e 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研 究工作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的作品成果。对本文的研究作出重要贡献的个人 和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本 人承担。 学位论文作者签名:穆饶潮 日期:弘叼年岁月矽日 学位论文使用授权声明 本人完全了解中山大学有关保留、使用学位论文的规定,即:学校有权保 留学位论文并向国家主管部门或其指定机构送交论文的电子版和纸质版,有权 将学位论文用于非赢利目的的少量复制并允许论文进入学校图书馆、院系资料 室被查阅,有权将学位论文的内容编入有关数据库进行检索,可以采用复印、 缩印或其他方法保存学位论文。 学位论文作者签名:蕉确羽导师签名:罗毒本寸 日期:弦夕年岁月矽日 日期:年月日 中山大学硕士学位论文( 2 0 0 9 )第l 章绪论 第1 章绪论 随着现代计算机技术的飞速发展和互联网技术的广泛应用,人类从p c 时代 过渡到了以3 c ( 将计算机c o m p 咖、通信c o n 蚰u i l i c a t i o n 、消费电子 c o n s u i 】re l e c 仰1 1 i c s 结合起来) 产品为主导的后p c 时代。后p c 时代中,人 们开始考虑如何将客户终端设备变得更加智能化、数字化,从而使得改进后的客 户终端设备轻巧便利、易于控制或具有某些特定的功能。为了实现人们在后p c 时代对客户终端设备提出的新要求,嵌入式技术( e n l b e d d e dt e c h n o l o 舒) 提供 了一种灵活、高效和高性价比的解决方案。伴随信息技术与网络技术的高速发展, 嵌入式技术已被广泛地应用于信息家电、工业控制、国防以及移动计算等方面, 成为后p c 时代i t 领域发展的主力军。嵌入式操作系统作为嵌入式产品的灵魂, 因其功能强大、成本相对低廉、可定制等特点有着巨大的市场潜力和广阔的应用 前景。 1 1 研究的背景与目的 从1 9 7 1 年1 1 月1 1 1 t e l 公司成功推出第一片微处理器i n t e l4 0 0 4 开始,嵌入式 系统发展已经有三十多年历史了。嵌入式系统发展主要有以下四个阶段【l 】: 第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、 指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业控制系统 中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制,运行结 束后清除内存。 第二阶段是以嵌入式c p u 为基础、以简单操作系统为核心的嵌入式系统。 这一阶段的操作系统具有一定的兼容性和扩展性,但用户界面不够友好。 第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统的主要特 点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系 统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、 设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用 程序接口( a p i ) ,开发应用程序简单,嵌入式应用软件丰富。 第四阶段是以基于i n t e m e t 为标志的嵌入式系统,这是一个正在迅速发展的 中山大学硕士学位论文( 2 0 0 9 )基于s b e y c 的肛c ,o s 一分析与研究 阶段。耳前大多数嵌入式系统还孤立于i n t i 洳e t 之外,但随着i n t e m e t 的发展以 及m t 朗1 e t 技术与信息家电、工业控制技术等结合的日益密切,嵌入式设备与 1 1 1 t e m e t 的结合将代表着嵌入式技术的真正未来。 作为嵌入式系统灵魂的嵌入式操作系统是随着嵌入式系统的发展而发展的。 嵌入式操作系统的出现,将大大提高嵌入式系统开发的效率,同时增强嵌入式应 用软件的可移植性,增强嵌入式产品的稳定性,使嵌入式系统的开发方法更具科 学性u 】。因此,嵌入式操作系统的研究具有重要的应用价值。 1 2 嵌入式系统简介 本节将介绍嵌入式系统的定义、嵌入式系统的组成和主流的嵌入式处理器和 嵌入式操作系统。 1 2 1 嵌入式系统定义 根据i e e e 的定义,嵌入式系统是用于控制、监视或者辅助操作机器和设备 的装置【2 】( 原文为d e v i c e sl l s e dt 0c o n 臼_ 0 l ,i n o r l i t i d r ,o r 勰s i s t 圮o p e r a t i o no f e q u i p m e n t ,m a c l l i n e 叮o rp i a n t s ) 。 根据微机学会的定义,嵌入式系统是以嵌入式应用为目的计算机系统,可分 为系统级、板级、片级【2 l 。 一般的定义认为,嵌入式系统是以应用为中心,以计算机技术为基础,软硬 件可裁剪,对功能、可靠性、成本、体积、功耗等要求严格的专用计算机系统【2 】。 1 2 2 嵌入式系统组成 嵌入式系统由硬件和软件两部分组成。其中,硬件部分包括嵌入式处理器、 存储器和各类输入输出模块;软件部分包括板级支持包、嵌入式操作系统和应用 程序,对于简单的嵌入式应用而言,嵌入式操作系统为可选项。图1 1 是文献1 2 】1 2 节的嵌入式系统体系结构框架图。对嵌入式系统的研究主要有以下几个方面: ( 1 ) 嵌入式系统发展特点( 如文献1 3 j 阐述了嵌入式系统和网格结合的特点, 文献【4 j 描述了基于w e b 的嵌入式系统安全性问题) 。 2 中山大学硕士学位论文( 2 0 0 9 )第l 章绪论 ( 2 ) 嵌入式系统设计的复杂性f 5 】。 ( 3 ) 嵌入式系统硬件方面( 如文献【6 】设计了一种扩展的多个嵌入式系统的i o 通信方案) 。 ( 4 ) 嵌入式系统软件方面,包括嵌入式操作系统( 如文酬7 1 介绍了从普通操 作系统构建嵌入式操作系统,文献【s j 描述了对r 1 d s ( 实时操作系统) 的形式化 建模,文献f 9 1 铘描述了r t o s 任务调度模型,文献【u 1 刁描述了基于任务调度模型 的任务调度和外部事件处理的实现,文献阐述了如何评价r 1 d s 性能) 和嵌入 式组件开发技术【1 4 1 5 】等。 驱动器l 传晷器l 驱动器2 机械装 传感器2 首 驱动器n传感器n 图1 1 嵌入式系统体系结构框架 1 2 3 主流嵌入式处理器 嵌入式处理器主要分为四大类型,包括嵌入式微控制器、嵌入式d s p 处理器、 嵌入式微处理器、嵌入式片上系统。图1 2 为文献倒2 2 节的嵌入式处理器种类图。 中山大学硕士学位论文( 2 0 0 9 ) 基于s 埘e y e 的p c o s 分析与研究 图1 2 嵌入式处理器种类 典型的嵌入式处理器有【2 】: ( 1 ) 8 0 5 1 单片机,经典的8 位嵌入式微控制器。 ( 2 ) 删系列处理器,具有小体积、低功耗、高性能、低成本、双指令集、 合作伙伴众多等特点。 ( 3 ) 6 8 c o l d 丘r e 处理器,主要应用于对实时性和可靠性要求较高的工业控制 领域。 ( 4 ) p o w e r p c 处理器,特点是伸缩性好,方便灵活。 ( 5 ) m i p s 处理器,优点是性能高、处理能力强,但成本昂贵。 1 2 4 嵌入式操作系统特征 嵌入式操作系统按实时性可分为实时嵌入式操作系统和非实时嵌入式操作 系统,它们一般具有如下特点【1 6 】: ( 1 ) 小巧。嵌入式系统所能够提供的资源有限,所以嵌入式操作系统必须 小巧以满足嵌入式系统硬件的限制。 ( 2 ) 实时性。大多数嵌入式系统工作在实时性要求很高的环境中,这就要 求嵌入式操作系统必须将实时性作为一个重要的指标来考虑。 ( 3 ) 可剪裁性。可根据用户的具体应用需要来剪裁系统功能,使系统代码 空间和数据空间减小到最少。 ( 4 ) 强稳定性。嵌入式系统一旦开始运行,就不需要过多的干预,在这一 4 中山大学硕士学位论文( 2 0 0 9 )第l 章绪论 条件下,要求负责系统管理的嵌入式操作系统具有较高的稳定性。 ( 5 ) 统一的接口。随着各种各样的嵌入式操作系统的出现,人们有必要为 嵌入式系统提供的接口进行约定,从而为嵌入式应用软件的设计者提供统一的服 务接口,为嵌入式应用软件的运行提供平台的无关性。 ( 6 ) 固化代码。在嵌入式系统中嵌入式操作系统和应用软件被固化在嵌入 式系统计算机的r o m 当中。 1 3 本课题相关研究现状 嵌入式操作系统种类繁多,按照开源与否总体上也可分为商用型和开源型。 商用型嵌入式操作系统以v x w - o r k s 、w 洫c e 等为代表,优点是功能稳定、可靠, 有完善的技术支持和丰富的组件支持,缺点是成本昂贵,源码封闭;开源型嵌入 式操作系统以“c o s 和嵌入式l i i 呶系列为代表,由于其开源的特点,开发 者阵营强大。 现阶段,对嵌入式操作系统的裁剪研究相当广泛。以嵌入式l i i 姒为例,为 了从普通的l i n u x 操作系统构建构造精简、实时性强的嵌入式l i r 姒操作系统, 有如下方法【1 7 】: ( 1 ) 使用l i 舢x 自身的配置工具,编译定制内核。 ( 2 ) 修改内核源代码进行系统裁剪。 ( 3 ) 基于系统调用关系进行内核裁剪。 1 3 1w i n c e 嵌入式操作系统 w m d o w sc e 是微软公司为开发各类功能强大的多媒体信息设备而研制的一 种嵌入式操作系统,其应用领域主要集中于个人数字助理、手持个人电脑、信息 家电等,其主要特点有【2 】: ( 1 ) w m c e 是一个3 2 位、多线程支持的嵌入式操作系统,内核采用基于优 先级的多线程抢占方式,属于软实时操作系统。 ( 2 ) w 讥c e 功能模块可裁剪。 ( 3 ) w 讥c e 可移植到不同平台。 ( 4 ) 基于w i n c e 的应用程序开发有集成工具支持。 中山大学硕士学位论文( 2 0 0 9 )基于s 时e y e 的 l c o s 1 1 分析与研究 1 3 2v x w b r l 【s 嵌入式操作系统 v x w ,0 r l ( s 是美国w i n d 鼬v e r 公司于1 9 8 3 年设计开发的一种嵌入式实时操作 系统。由于其高性能的微内核、卓越的可靠性和实时性,被广泛应用于通信、航 空航天等领域,在嵌入式实时操作系统领域中占据重要地位,主要特征有【2 】: ( 1 ) v x w b 凼采用高实时性、高稳定性的微内核结构。 ( 2 ) v x w 0 r l ( s 有丰富的外挂组件模块和开放的集成开发环境。 ( 3 ) v x w - 0 船可裁剪,可移植到多种硬件平台。 ( 4 ) v x w - 0 r 1 ( s 支持应用程序的动态链接和动态下载。 1 3 3 嵌入式l i n u x 操作系统 嵌入式l i n u ) 【操作系统的出现为嵌入式操作系统领域注入了活力,它是一种 源码开放的免费嵌入式操作系统,同时提供强大的功能,包括支持多种文件系统、 内置t c p 】 p 等网络协议等【2 1 。从内核构造方面分类,嵌入式l m x 操作系统主 要包括精简l m x ( 以u c l i i n 为代表) 、抢占式内核l i i n j ) 【( 以m o n r s t al 蛔u x 为代表) 和双内核l i l m x ( 以r r l i n u ) 【为代表) 三种类型,它们的主要特征有【2 】: ( 1 ) 嵌入式l m x 操作系统采用模块化体系结构,可裁剪,内核安全可靠。 ( 2 ) 嵌入式l i r m x 操作系统可移植到不同硬件平台。 ( 3 ) 嵌入式l i i m x 操作系统提供强大的文件系统、网络模块等支持,同时 有集成开发工具支持。 ( 4 ) 嵌入式l 证u ) 【操作系统的缺点是内核仍然较大,占用内存资源较多。 嵌入式l i n l l ) 【从内核( 如文献【1 8 】模拟了l 劬x 任务调度器,文献【1 9 】研究了嵌 入式l i r m x 优先级逆转问题) 到应用( 如文献【2 0 】设计了基于嵌入式l i i m x 和删 的图形终端实现方案) 都有很广泛研究。 1 3 4p c o s i i 嵌入式操作系统 p c o s 是一个可剪裁、源码开放、结构小巧、抢占式的实时多任务内核, 主要面向中小型嵌入式系统,具有执行效率高、占用空间小、可移植性强、实时 性能优良和可扩展性强等特点【2 l 】。第2 章将重点分析斗c o s 的内核结构。 6 中山大学硕士学位论文( 2 0 0 9 )第l 章绪论 就当前发表的文献来看,对p c o s 一研究的主要工作集中在以下三个方面: ( 1 ) 对“c o s i i 内核移植研究,将肛c o s 移植到删等不同硬件平台。 ( 2 ) 对“c o s i i 应用研究陋,2 3 1 。 ( 3 ) 对肛c o s i i 内核改进,如调度算法【2 4 1 、内存管理吲等。 1 4 本文的主要研究工作 本文的研究工作围绕开源的嵌入式操作系统肛c o s i i 展开,主要工作有以下 四个方面: ( 1 ) 介绍嵌入式系统的定义和组成以及主流嵌入式处理器和嵌入式操作系 统,并对比l 证i l x2 6 内核,重点分析c o s i i 的内核。 ( 2 ) 借鉴文献【凋的方法,将p c o s i i 最新版本v 2 8 6 移植到s l ( ) r e y e 硬件 仿真平台。 ( 3 ) 深入分析p c o s i i 任务调度算法,针对p c o s i i 调度算法在应用中存 在的不足( 主要是缺少分时调度) ,扩展其任务调度模块,包括软实时周期任务 的调度和普通任务的分时调度。其中,软实时周期任务采用蹦算法调度,普通 任务的分时调度算法主要包括时间片分配和动态优先级调整。 ( 4 ) 分析扩展后“c o s i i 的功能有效性和对实时性的影响。 本文组织如下: 第一章主要介绍嵌入式系统定义和组成以及主流嵌入式处理器和嵌入式操 作系统,说明本文的主要研究工作;第二章将对比l i i 呶2 6 内核,重点分析 p c o s i i 的内核;第三章阐述如何将p c o s i i 移植到硬件仿真平台s l ( ) ,e y e ;第 四章针对u c o s 调度算法的不足,扩展其调度模块;第五章将通过实验分析 扩展后的i l c o s i i 调度模块的功能有效性和对内核大小、运行空间、实时性等 方面的影响;第六章将就本文的工作进行总结和展望。 7 中山大学硕士学位论文( 2 0 0 9 ) 基于s i ( y e ”的p c 0 s 1 1 分析与研究 1 5 本章小结 本章介绍了本文的研究背景和嵌入式系统组成以及主流的嵌入式处理器和 嵌入式操作系统,并说明了本文四个方面的工作,主要是扩展“c o s - i i 的任务 调度模块。 8 中山大学硕士学位论文( 2 0 0 9 ) 第2 章“o ,o s i i 内核分析 第2 章i j l c o s i i 内核分析 本章将会对比l i n u ) 【2 6 内核,详细分析p c o s i i 的内核。 2 1l i n u x2 6 内核概述 l m x 在嵌入式系统中应用非常广泛,为了促进这一方面的应用,l i n u ) 【2 6 内核引入了很多有利于嵌入式应用的功能,主要有【2 7 】: ( 1 ) 抢占式内核。 ( 2 ) 采用2 3 3 节介绍的o ( 1 ) 算法,实现高效的任务调度。 ( 3 ) 新的同步措施。l i r m x2 6 内核支持所谓的f u s m ( f a s tu s e r - s p a c e m u t e x ) 。 ( 4 ) 共享内存的改进。l i n u 】【2 6 为多程序提供了n u m a ( n o nu i l i f o m m e m o d ra c c e s s ) 方法。 ( 5 ) p o s 线程、信号和计时器改进。 ( 6 ) 对微控制器和6 4 位处理器的支持( 包括i n t e l 安腾6 4 位处理器、a m d o p t e r o n 处理器、p p c 6 4 处理器) 。 ( 7 ) 支持通用设计。 ( 8 ) l i i l u x2 6 内核包含了a l s a ( a d v a n c e dl 证u xs o u n d 删t e c t 眦e ) ,该 体系结构可以安全地使用u s b 和m i d i 设备。 2 2 c ,o s 一概述 u c o s 是m i c r 0c o n 哟lo s 的缩写,即微控制操作系统,是1 9 9 2 年由j e 趾j l a b r o s s e 编写的一个实时操作系统内核,1 9 9 8 年推出“c o s i i 版本,它只包含 了任务管理、任务调度、时间管理、内存管理和任务间通信和同步等基本功能, 并没有提供输入输出管理、文件系统、网络支持等额外服务。由于其开放源码和 良好的可扩展性等特点,经过十多年的发展,已经被成功移植到删等很多知 名的嵌入式处理器上,被广泛应用在便携式电话、工业控制、自动支付终端等; 同时,弘c o s i i 也成为很多实时操作系统的教学材料;现在,基于恤c o s 的 9 中山大学硕士论文( 2 0 0 9 )基于s b e y e 的肛c o s 1 1 分析与研究 相关应用有文件系统p c f s 、图形系统p c g u i 以及成功移植的嵌入式t c p i p 协议栈1 w 口等【2 6 1 。“c o s i i 内核有以下特点: ( 1 ) 除了与处理器有关的代码是用汇编编写的,其它绝大部分都是用a n s i c 语言实现的,可读性强,移植方便。 ( 2 ) 通过条件编译选择可支持服务,代码可裁剪。 ( 3 ) 多任务管理,是完全可剥夺实时内核。 ( 4 ) 提供时钟管理和任务同步等系统服务。 以下的章节将参考文献【2 1 1 和文献【2 8 1 从任务管理、内存管理、中断管理、系统 启动等方面详细分析“s v 2 8 6 内核。 2 3u c ,o s 一任务管理 “c o s - 支持多任务管理,包括系统任务和用户任务。从存储角度来看,任 务由三部分组成:任务代码、任务堆栈、任务控制块。任务代码是任务执行部分, 任务堆栈用于保存任务执行的数据,任务控制块则存储任务的属性。本节将从任 务控制块结构、任务状态转换、任务调度、任务同步与通信等方面分析p c o s 一 的任务管理模块。 2 3 1 任务控制块t c b 在支持多任务的操作系统中,任务控制块t c b 是核心数据结构。p c o s 用结构体s 饥i c to st c b 表示任务控制块t c b ,主要包括以下属性: ( 1 ) 堆栈属性,包括堆栈指针、堆栈大小等。 ( 2 ) 同步事件属性,包括任务状态标识、阻塞事件指针、阻塞时间等。 ( 3 ) 任务调度属性,包括任务就绪表标识,任务优先级等。 ( 4 ) 选项属性,包括任务名和统计信息。 c o s 为了管理多任务,将任务控制块通过双链表组织起来,同时用两个 指针o s t c b l i s t 和o s t c b f r l i s t 来分别指向整个控制块链表和空闲控制块链 表,如图2 1 所示。 l o 中山大学硕士学位论文( 2 0 0 9 )第2 章p c o s i i 内核分析 0 s 代胁l 【o 】o s “器r b i 【1 】 0 s 1 b n a 吐+0 s t c b n l o s 卫c b p r e vo s t c b l i r 堆栈属性 堆栈属世 同步事件属性同步事件属 任务调度属性任务调度屑 选项属。陛选项屠陛 0 s t ( 硒l 【n 】 0 st c b n e 蕊 0 s t c b p r e v 堆栈属性 同步事件属性 任务调度属性 选项属性 图2 1t c b 双链组织示意图 在图2 1 中,n 为最大任务数减1 ,o s t c b n l 是任务控制块数组,只有o 号控制块被分配使用。在p c o s i i 中,用指针o s t c b c u r 指向当前运行任务的 任务控制块,o s t c b h i g h i h y 指向下一个即将被调度运行任务的任务控制块。 l i i l u x2 6 内核t c b 结构比p c o s i i 的t c b 结构增加了任务所占内存区域、 安全信息、信号处理、资源安排等方面的信息( l m x2 6 内核t c b 占用空间约 为1k 【2 9 】,p c o s 的t c b 占用空间为8 0 字节) 。 2 3 2 任务状态 “c o s 每个任务均可为以下5 种状态之一: ( 1 ) 就绪态。就绪态即指任务具备除处理机外的一切运行条件的状态,例 如任务刚被创建时或被唤醒时。当有任务处于就绪态时,o s t c b h i g h r d y 指向 即将被调度运行的任务控制块。 ( 2 ) 运行态。运行态即任务占据处理机执行任务代码的状态。 ( 3 ) 睡眠态。当任务驻留在程序空间中,还未交给“c o s i i 管理时,即处 于睡眠状态。 中山大学硕士论文( 2 0 0 9 ) 基于s 时e y e 的c o s - 1 1 分析与研究 ( 4 ) 挂起态。当任务由于主动或被动休眠一段时间或者任务被同步事件( 如 信号量、信号等) 阻塞时将处于挂起态。 ( 5 ) 中断态。当处理器响应中断而放弃当前任务执行时任务处于中断态。 任务状态不是恒定的,图2 2 为文献【2 1 1 2 5 节的任务状态转换图。 图2 2 任务状态转换图 2 3 3 肛c o s i i 任务调度 p c o s 核心工作之一就是任务调度,它采用就绪优先级位图算法,实现时 间复杂度为o ( 1 ) 调度,而与用户任务数无关。肛c 幻s - i i 通过条件编译选项 o s _ l o w e s t _ p o 来选择支持6 4 级优先级或者2 5 6 级优先级。下面以6 4 级优 先级为例详细介绍此算法。 p c o s 是抢占式实时内核,调度器每次都选择优先级最高( 优先级值越小 优先级越高) 的任务运行。“c o s i i 内核用一个比特位l 和o 分别表示任务已经 就绪和未就绪。此外,创建两个全局数据结构o s r d y 耶l 口数组和o s i 迪g i 叩变 量,如图2 3 所示。 1 2 中山大学硕士学位论文( 2 0 0 9 ) 第2 章u c o s - i i 内核分析 o s r d 如p 0 s 黝y n l 【】 ol2 34567 891 0 1 1 1 21 31 4 1 5 1 61 71 81 92 02 l2 22 3 2 42 52 62 7 2 82 93 03 l 3 23 33 43 53 63 73 83 9 4 04 l4 24 34 44 54 64 7 4 84 95 05 15 25 35 45 5 5 65 75 85 96 06 1 6 26 3 图2 3 “c o s i i 优先级位图 o s i y t b i 口标识6 4 级优先级任务是否就绪,同时,每8 级优先级任务为一 组,如果此8 级优先级任务有任何一级优先级任务就绪,o s r d y g 印置相应位为 1 。“c o s i i 调度时,通过测试o s r d y 唧为1 的最低位选择优先级最高的组k , 再通过测试o s r d y t b l 【k 】为l 的最低位选择优先级最高的优先级任务。为了减少 测试为l 最低位的时间开销,采取用空间换时间的策略,设置全局静态数据结构 o s u n m a p t b l 口来直接查询o s r d y g 印或o s r d y n l 【k 】对应的最低位为l 的位。 举例说明,假设o s i 哟铆值为2 3 4 ,转换为二进制为1 1 l o l 0 1 0 ,通过查 o s u n m 印t b l 【2 3 4 】值为1 ,p c ,o s i i 会选择调度第1 优先级组的任务;假设 0 s r d y n i 1 】的值为1 1 3 ,转换为二进制为0 1 1 1 0 0 0 1 ,通过查o s u n m a p t b l 【2 3 4 】 值为o ,c 幻s i i 会选择调度第l 优先级组的中第o 号优先级任务,即优先级为 8 的任务。 l i l l u x2 6 内核调度比较复杂,将进程分为实时进程、交互进程、批处理进程, 有三种调度策略:s c 旺d _ f i f o 、s c 艇d j 汛、s c h e d n o r m a l 。针对实时 进程,s c h e df i f o 采用完全优先级抢占,s c 脏d i m 采用时间片轮转; c h e dn o r m a i 针对交互进程和批处理进程,采用时间片轮转算法【2 9 1 。 中山大学硕士论文( 2 0 0 9 ) 基于s 对e y e 的i l c o s 1 1 分析与研究 2 3 4 任务同步与通信 c o s 支持多任务并发运行,这样,多个任务由于共同使用共享资源或者 协同完成大型服务时,任务间的同步与通信就必不可少了。 肛c o s 同步的方式有互斥量和信号量,任务通信方式有邮箱和消息队列, 它们都是通过事件控制块( e c b ) 管理的。e c b 包括的属性如下: ( 1 ) 事件类型,如信号量、邮箱等。 ( 2 ) 计数器( 当事件是信号量时) 。 ( 3 ) 消息队列指针( 当事件是邮箱或者消息队列时) 。 ( 4 ) 等待任务列表: l i n u x2 6 内核比“c o s 互斥机制多了自旋锁,任务通信机制多了套接字 和信号【2 9 1 。 2 4 c ,o s 内存管理 p c o s 的内存管理算法是与其应用特点相关的。在a n s ic 中,可以用 m a l l o c ( ) 和f b e e ( ) 两个函数动态地分配内存和释放内存。但是,在嵌入式实 时操作系统中,多次这样做会把原来很大的一块连续内存区域,逐渐地分割成许 多非常小而且彼此又不相邻的内存区域,也就是内存碎片。由于这些碎片的大量 存在,使得程序到后来连非常小的内存也分配不到。另外,由于内存管理算法的 复杂性,n l a l l o c ( ) 和缸e ( ) 函数执行时间是不确定的。在“c o 孓中,操作 系统把连续的大块内存按分区来管理【2 l 】。每个分区中包含有整数个大小相同的内 存块,如图2 - 4 所示。用户的应用程序就可以从不同的内存分区中动态申请得到 不同大小的内存块,特定的内存块在释放时将重新放回到它以前所属的内存分 区。 1 4 中山大学硕士学位论文( 2 0 0 9 )第2 章“c o s i i 内核分析 o s 划6 e l m 蚍 o s 附加i e ij 髓 o s n k m b l l 【s i 臻 o s n k 皿n b l l 岱 o s 酬6 e | 丑= n 】艮e e o s n k a d d r o s n k 田f 删或 o s n 绝m b n 匹i z e o s n k m n b l i 巧 o s 劓b n n f 埏e o s m e l 鱼呲 o s m 锄f 】dj 建 o s n k m b n 【s i 比 o s m 6 e l 垃岍;l l 西 o s 曼蕾e 田j f r o e 图2 - 4u c o s i i 内存分区管理图 如图2 _ 4 所示,“c o s i i 将大块连续内存分成o sm a x m e mp a r t ( 定义 为5 ) 加1 个内存分区,每一个分区用一个分区控制块管理,o s m e m t b l f r e e l i s t 指向空闲的内存分区。 在分区控制块中,o s m e r n a d d r 是指向内存分区起始地址的指针, o s m e r n f r e e l i s t 是指向下一个空闲分区控制块的指针,o s m e 毋l k s i z e 是内存分 区中内存块的大小,o s m e i 州b l l 【s 是内存分区中总的内存块数量,o s m e n 岍r e e 是当前内存分区中空闲内存块数量。 标准l i n u x2 6 采用分页内存管理,支持缓冲策略【2 9 1 。 2 5 c ,o s 一中断处理 中断是嵌入式操作系统处理异步事件的重要机制,同时,中断响应的快慢也 是衡量实时性的重要指标。图2 5 为文献2 3 1 节的c o s i i 中断服务示意图, 可以得出,“c o s i i 中断服务过程如下: ( 1 ) 中断请求后,经过一定的中断延迟,c p u 的中断向量跳转到中断服务 子程序。 ( 2 ) 中断服务子程序保存c p u 寄存器,然后调用o s i m e i l t e r ( ) 或者给 o s i r l t n e s t i n g 直接加l ,接着用户中断服务代码开始执行。 ( 3 ) 用户中断服务完成以后,要调用o s i m e x i t ( ) 。从时序图上可以看出, 对被中断了的任务说来,如果没有高优先级的任务被中断服务子程序激活而进入 就绪态,c p u 寄存器只是简单地被恢复并执行中断返回指令。如果中断服务子 生些查兰! ! ! 坚! ! 堂!堑墅生塑! 型! 型坌型塑塞 t i m e - 任务响应一 中断请求( 1 ) o s 或者你的应片j 程 , 序中断屏蔽( 2 ) h 一- “ q 中断恢复 中断响应 ( 6 a 。 i s r 唤醒 一个任务 通知内核 o s i n t e x i t f l r 1 0 1 - 任务响应 图2 5u c o s - i i 中断服务示意图 中山大学硕士学位论文( 2 0 0 9 )第2 章c o s i i 内核分析 程序使一个更高优先级的任务进入了就绪态,则o s i n t e x i t ( ) 执行任务切换。 新任务的寄存器内容要恢复并执行中断返回指令。 l i i l u x2 6 内核采用中断向量机制和协汹e t 机制,中断处理分顶半部分( t o p l l a l f ) 和底半部分( b 嘶mh a l f ) 两部分处理,加快了对外部设备的中断响应速 度例。嵌入式l i n u x 的中断响应比“c o s i i 慢【2 2 1 。 2 6u c ,o s - 启动 “c o s i i 内核是和应用程序一起编译的,启动时调度最高优先级任务运行。 在此之前,“c o s 一将执行一系列初始化,有全局变量初始化、任务控制块链表 初始化、内存分配初始化、定时器初始化【2 引、消息队列初始化等。 2 7 本章小结 本章对比l i n u x2 6 内核,详细分析了“c o s - i i 的内核,包括任务管理、内 存管理、中断服务以及系统启动运行。可以得出,l i n u x2 6 内核比c o s i i 功 能更强大,支持服务更多,但是内核更复杂、占用资源更多,实时性也稍差。 1 7 中

温馨提示

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

评论

0/150

提交评论