嵌入式操作系统LINUX操作系统与片上操作系统哪个更有前途吗?

嵌入式Linux操作系统实时性的研究与实现--《华中科技大学》2007年硕士论文
嵌入式Linux操作系统实时性的研究与实现
【摘要】:
随着信息技术与网络技术的高速发展,嵌入式系统越来越受到人们的重视,它被广泛地应用于科学研究、工程设计、军事技术、消费电子等方方面面。作为嵌入式计算机系统最重要的软件核心,嵌入式实时操作系统是该领域最重要的研究方向。
嵌入式实时操作系统是嵌入式应用软件的开发基础和平台,为应用软件的开发人员提供了统一的用户接口,大大简化了应用软件的开发难度和代码工程化管理的难度。与传统的操作系统不同的是,嵌入式实时操作系统要求具有更好的实时性能,能对外部时间做出准确、实时的响应。
Linux操作系统的源代码开放、内核模块化设计及内核的高度可裁减性使其在嵌入式实时操作系统研究领域备受重视。但其面向通用多任务分时系统的设计思想限制了Linux在实时运算中的应用,必须进行有效的实时改进与扩展,以符合嵌入式系统对操作系统实时性能的要求。
本文首先介绍了嵌入式系统和嵌入式实时操作系统的概念、特点、发展历史等情况。接着分析了Linux操作系统与实时相关机制,以及Linux内核实时性不足的因素,在参考了其实时性相关研究的基础上,提出了改进其实时性能的两个措施:中断线程化和改进自旋锁机制。中断线程化为非紧急中断创建线程并赋予一定的实时优先级,使其可以参与内核调度;改进自旋锁机制可以减小内核中不可抢占的临界区域。最后在最新的标准Linux2.6内核上对改进的措施加以实现。经测试,改进后的内核具有更短的中断延迟和任务调度延迟,实时性能得到了很大的提高。
【关键词】:
【学位授予单位】:华中科技大学【学位级别】:硕士【学位授予年份】:2007【分类号】:TP316.81【目录】:
Abstract5-9
1 绪论9-12
1.1 课题来源9
1.2 课题研究的目的和意义9-10
1.2.1 课题研究的目的9
1.2.2 课题研究的意义9-10
1.3 论文工作10
1.4 论文组织10-12
2 嵌入式实时操作系统12-18
2.1 嵌入式系统概念12-13
2.2 嵌入式操作系统13-15
2.3 实时操作系统15-18
2.3.1 实时系统的定义15-16
2.3.2 实时系统的分类16
2.3.3 实时操作系统的主要性能指标16-18
3 嵌入式Linux 操作系统及其实时化18-22
3.1 嵌入式Linux18-19
3.2 Linux 实时化改造的几种典型技术19-22
3.2.1 RT-Linux 和RTAI19-20
3.2.2 RED-Linux20
3.2.3 Hard-hat Linux20-22
4 Linux 实时性能分析及实时化方案22-27
4.1 Linux 中与实时性能相关机制分析22-25
4.1.1 Linux 内核可抢占问题22
4.1.2 Linux 调度时机22-23
4.1.3 Linux 调度策略23-24
4.1.4 Linux 的中断处理24-25
4.1.5 Linux 中的定时器25
4.2 Linux 内核的实时化方案25-27
4.2.1 中断线程化25-26
4.2.2 自旋锁改互斥锁26-27
5 实时内核的实现27-46
5.1 Linux 中断处理系统27-31
5.1.1 中断27
5.1.2 中断处理程序27-31
5.2 实时内核中断线程化31-36
5.2.1 中断线程化原理31-32
5.2.2 中断线程化相关数据结构设计32-33
5.2.3 中断线程的初始化33-35
5.2.4 实时中断的处理35-36
5.3 Linux 中的内核同步36-38
5.3.1 内核同步概述36-37
5.3.2 Linux 内核同步方法37-38
5.4 实时内核的同步机制38-46
5.4.1 自旋锁临界区内核的不可抢占性38
5.4.2 实时同步实现原理38-39
5.4.3 实时内核同步相关数据结构分析39-41
5.4.4 实时内核同步操作41-45
5.4.5 优先级反转和死锁检测45-46
6 实时内核性能的测试46-50
6.1 测试环境46-47
6.2 测试方法与结果47-50
6.2.1 中断延迟的测试47-48
6.2.2 上下文切换时间及调度延迟测试48-50
7 工作总结与展望50-52
7.1 论文工作总结50
7.2 展望50-52
参考文献53-56
附录1 攻读学位期间发表学术论文目录56
欢迎:、、)
支持CAJ、PDF文件格式
【引证文献】
中国硕士学位论文全文数据库
曹玉华;[D];南京航空航天大学;2011年
姜南;[D];吉林大学;2010年
陈都习;[D];西南交通大学;2012年
朱宇;[D];长安大学;2012年
【参考文献】
中国期刊全文数据库
叶超;郭立红;邹荣士;;[J];电子技术应用;2006年05期
康望星,马光胜,黄烨明,芦东昕;[J];信息技术;2005年08期
李小群,赵慧斌,叶以民,孙玉芳;[J];计算机研究与发展;2003年05期
郑军,郭先臣,韩乃平;[J];计算机工程与应用;2003年18期
徐晓磊,董兆华,吴建峰,陈晓峰,冯金辉;[J];计算机工程;2003年15期
赵明富,李太福,陈鸿雁,胡新宇;[J];计算机工程;2003年18期
董晓峰,顾新;[J];计算机工程;2005年01期
刘云生;方丹;;[J];计算机工程;2005年24期
赵慧斌,李小群,孙玉芳;[J];计算机学报;2004年02期
吴一民;[J];计算机应用;2002年12期
【共引文献】
中国期刊全文数据库
宁红;张升;;[J];安徽电气工程职业技术学院学报;2006年01期
王刚;赵跃龙;;[J];安防科技;2007年01期
蔚承英;陈勇刚;杨利平;王国交;;[J];安防科技;2008年02期
戴丽;张维勇;刘征宇;钱军;;[J];安防科技;2008年04期
赵立辉;霍春宝;;[J];安防科技;2009年07期
于雪莲;陈钱;顾国华;;[J];安防科技;2009年08期
钱华明;刘英明;张振旅;;[J];安防科技;2009年09期
侯国平;马萱;张维理;;[J];安防科技;2009年11期
李恩学;蔡荣海;;[J];安防科技;2009年12期
田年杰,田庆华;[J];安徽广播电视大学学报;2004年04期
中国重要会议论文全文数据库
戴丽;张堆勇;刘征宇;王昌银;;[A];2005年“数字安徽”博士科技论坛论文集[C];2005年
宁红;张升;;[A];华东六省一市电机(电力)工程学会输配电技术研讨会2004年年会论文集[C];2004年
魏刚;张荣奎;;[A];第十届中国科协年会论文集(一)[C];2008年
褚力行;蒋朝根;;[A];2006北京地区高校研究生学术交流会——通信与信息技术会议论文集(下)[C];2006年
张玉民;陈定方;;[A];湖北省机械工程学会机械设计与传动专业委员会第十五届学术年会论文集(一)[C];2007年
沈丹;;[A];建筑电气设计与研究——湖北省/武汉市建筑电气专业委员会二○○九年年会论文集[C];2009年
冀红举;段朝伟;张孟超;;[A];教育部中南地区高等学校电子电气基础课教学研究会第二十届学术年会会议论文集(下册)[C];2010年
王亦宁;佟振清;臧秀娟;;[A];中国水力发电工程学会信息化专委会2010年学术交流会论文集[C];2010年
高晋轩;蒙山;喻建平;黄敬雄;;[A];全国第一届嵌入式技术联合学术会议论文集[C];2006年
赵旭;夏靖波;王哲;;[A];第三届全国嵌入式技术和信息处理联合学术会议论文集[C];2009年
中国博士学位论文全文数据库
孟江涛;[D];电子科技大学;2010年
邓集杰;[D];天津大学;2010年
陈学军;[D];重庆大学;2011年
马恒太;[D];中国科学院软件研究所;2001年
刘海峰;[D];中国科学院研究生院(软件研究所);2002年
赵慧斌;[D];中国科学院研究生院(软件研究所);2003年
邹勇;[D];中国科学院研究生院(软件研究所);2003年
李晓毅;[D];重庆大学;2004年
毛佳;[D];吉林大学;2004年
李斌;[D];华中科技大学;2004年
中国硕士学位论文全文数据库
赵森严;[D];安徽工程大学;2010年
宫明广;[D];南昌航空大学;2010年
卞传旭;[D];山东科技大学;2010年
胡晓亮;[D];山东科技大学;2010年
张宪华;[D];山东科技大学;2010年
王佳;[D];辽宁师范大学;2010年
张波;[D];浙江理工大学;2010年
韦建威;[D];郑州大学;2010年
李海龙;[D];郑州大学;2010年
崔运涛;[D];哈尔滨工程大学;2010年
【同被引文献】
中国期刊全文数据库
王浩南;刘益成;;[J];电脑开发与应用;2010年01期
孙一帆;;[J];电脑知识与技术;2009年34期
何立民;[J];单片机与嵌入式系统应用;2004年01期
,包杰;[J];单片机与嵌入式系统应用;2004年05期
王荣;游有鹏;张少坤;;[J];单片机与嵌入式系统应用;2009年02期
欧敏铨;;[J];电子产品世界;2008年04期
叶超;郭立红;邹荣士;;[J];电子技术应用;2006年05期
蒋溢,李琳皓,陈龙,熊安萍;[J];重庆大学学报(自然科学版);2005年03期
凌云翔;张国华;李锐;叶挺;;[J];国防科技大学学报;2010年01期
廖虎雄;老松杨;邵宏韬;刘钢;;[J];国防科技大学学报;2011年04期
中国博士学位论文全文数据库
游有鹏;[D];南京航空航天大学;2002年
中国硕士学位论文全文数据库
杨青;[D];大连理工大学;2010年
李娅娅;[D];北京交通大学;2011年
阮伟;[D];南京大学;2011年
季红艳;[D];华东师范大学;2011年
黄璐;[D];华中师范大学;2011年
许杏;[D];华南理工大学;2011年
游鹏飞;[D];昆明理工大学;2011年
黄江;[D];广西大学;2002年
廖永刚;[D];电子科技大学;2005年
祁献民;[D];西华大学;2006年
【二级引证文献】
中国硕士学位论文全文数据库
林立明;[D];中国科学院研究生院(沈阳计算技术研究所);2012年
赵福春;[D];上海交通大学;2013年
【二级参考文献】
中国期刊全文数据库
刘云新,张尧学;[J];计算机工程与应用;2001年07期
尹凌,费斐,王晓东,姚天昉;[J];计算机工程;2001年08期
赵慧斌,李小群,孙玉芳;[J];计算机学报;2004年02期
齐俊生,崔杜武,黑新宏;[J];计算机应用;2003年06期
赵明富,李太福,吴军,罗渝微;[J];西南师范大学学报(自然科学版);2003年03期
【相似文献】
中国期刊全文数据库
罗景仁;[J];西北大学学报(自然科学版);1982年01期
刘军;;[J];微型机与应用;1992年05期
张建国;;[J];软件;1995年01期
王志,张旭,梁力,李建辉;[J];水利水电技术;1996年05期
刘钰峰,李仁发,莫铁强,孙婷;[J];系统仿真学报;2002年06期
刘辉,王遵立,刘维亚;[J];长春理工大学学报;2004年02期
王慧娇,董荣胜,蔡国勇,古天龙;[J];计算机与现代化;2005年03期
李玉深,周祖洋,万杨;[J];应用科技;2005年05期
陈新;唐震洲;胡倩;;[J];大众科技;2006年07期
杨尚罡;黄席樾;李宝林;张伟;;[J];重庆大学学报(自然科学版);2006年07期
中国重要会议论文全文数据库
彭玉灵;;[A];中国自动化学会、中国仪器仪表学会2004年西南三省一市自动化与仪器仪表学术年会论文集[C];2004年
辛庆勋;金伟正;;[A];第九届全国青年通信学术会议论文集[C];2004年
钟磊;李湘宁;黄中和;郁飞龙;;[A];第六届全国信息获取与处理学术会议论文集(3)[C];2008年
梁冰;胥布工;;[A];中南六省(区)自动化学会第24届学术年会会议论文集[C];2006年
周伟;;[A];提高全民科学素质、建设创新型国家——2006中国科协年会论文集(下册)[C];2006年
罗逸苇;张立强;王斌修;;[A];第十届全国特种加工学术会议论文集[C];2003年
王方勇;朱维涛;徐礼春;;[A];第三届全国信息获取与处理学术会议论文集[C];2005年
吴永超;王增平;;[A];中国高等学校电力系统及其自动化专业第二十四届学术年会论文集(上册)[C];2008年
严隽薇;吴启迪;;[A];1992年中国控制与决策学术年会论文集[C];1992年
刘凌;李雪峰;汪伟;;[A];2002中国电动汽车研究与开发[C];2002年
中国重要报纸全文数据库
法国电信北京研究中心开源实险室 黄思源;[N];中国电子报;2005年
;[N];人民邮电;2006年
广东省电信科学技术研究院多媒体部
张宇飞;[N];中国计算机报;2000年
杨雨;[N];计算机世界;2006年
I[N];网络世界;2007年
剑鸣;[N];计算机世界;2007年
记者  张燕 本报通讯员  朱伟民;[N];中国电子报;2006年
;[N];人民邮电;2007年
华东计算所副总工程师、国家“核高基”科技专项实施专家组成员
张激;[N];文汇报;2009年
陈思;[N];中国计算机报;2004年
中国博士学位论文全文数据库
秦承刚;[D];中国科学院研究生院(沈阳计算技术研究所);2012年
任慰;[D];华中科技大学;2013年
高丰;[D];浙江大学;2002年
陈晗斐;[D];浙江大学;2004年
刘峙飞;[D];浙江大学;2005年
徐永健;[D];中国科学院电子学研究所;2001年
范尊强;[D];吉林大学;2008年
邱卫东;[D];复旦大学;2005年
余顺周;[D];哈尔滨工业大学;2007年
朱响斌;[D];复旦大学;2005年
中国硕士学位论文全文数据库
惠孛;[D];电子科技大学;2004年
朱忠武;[D];电子科技大学;2005年
申斌;[D];山东大学;2005年
丁国超;[D];哈尔滨理工大学;2005年
王文辉;[D];西北工业大学;2006年
王彬;[D];武汉理工大学;2006年
王青叶;[D];天津工业大学;2006年
郝慧锋;[D];西华大学;2006年
杨永明;[D];东北师范大学;2006年
刘莉;[D];沈阳工业大学;2006年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 知识超市公司
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号后使用快捷导航没有帐号?
查看: 2768|回复: 0
嵌入式Linux操作系统实时性的分析
在线时间3 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
Linux本身为分时操作系统,其系统目标为较好的平均响应时间和较高的吞吐量,而实时系统则主要考虑任务的按时完成、尽量减少进程运行的不可预测性等。但与商业嵌入式操作系统相比Linux遵循GPL,具有源代码开放、定制方便、支持广泛的计算机硬件等优点,所以,近年来Linux成为嵌入式系统方向上的一个研究热点。本文首先分析了实时系统的特点和Linux内核在实时应用方面的不足,然后针对影响操作系统实时性能的若干方面进行研究,提出解决方案,最后总结全文。
二、实时系统的分类
实时系统最重要的特点就是实时性,即系统的正确性不仅仅依赖于计算的逻辑结果的正确性,还取决于输出结果时间的及时性。从这个角度看,实时系统是“一个能够在指定或者确定的时间内完成系统功能和对外部环境做出响应的系统”。按对实时性能要求的程度,实时系统可分为两
(1) 硬实时系统:要求可确定性强,具有明确的实时约束,在某个限定的时刻之前不能完成任务将造成灾难性的后果。
(2) 软实时系统:也对时间敏感,但偶尔发生不能满足严格实时要求的情况也是允许的。
三、Linux在实时方面存在的不足
Linux虽然符合POSIX1003.1b关于实时扩展部分的标准,例如:支持SCHED_FIFO和SCHED_RR实时调度策略,锁内存机制(memorylocking),实时信号等功能,但是由于其最初的设计目标为通用分时操作系统,因此作为一个实时操作系统,Linux仍然存在如下缺陷:
(1) Linux的内核本身是非抢占的。Linux下分用户态和核心态两种模式,当进程运行在用户态时,可被优先级更高的进程抢占,但当它进入核心态时,其他用户态进程优先级再高也不能抢占它。
(2) Linux虽然给实时进程提供了较高的优先级,但是没有加入时间限制。例如:完成的最后期限、应在多长时间内完成、执行周期等等。同时,其他大量的非实时进程也可能对实时进程造成阻塞,无法确保实时进程的响应时间。
(3) 时钟粒度粗糙。时钟管理是操作系统的脉搏,任务的执行和中止在很多情况下都是由时钟直接或间接唤起的,它还是进程调度的重要依据。Linux的周期模式定时器频率仅为100Hz,远不能满足实时应用的要求。
四、改进内核实时性的分析与研究
从中断软件模拟、可抢占式内核体系结构、实时任务的调度策略这三个方面对嵌入式Linux内核进行研究,并给出了相应的提高实时性的方法。
1. 响应时间的分析及解决方法
任务的响应时间被定义为一个事件的发生和任务响应这一事件开始执行之间的间隔时间,通常有以下几个因素影响任务的响应时间。
(1) 中断分配时间IDT(interruptdispatchtime):当一个中断产生时,在调用中断处理程序占用CPU以前,操作系统用来保存所有的寄存器中的内容和系统中其他的关于这一任务状态的时间。
(2) 中断服务时间:IST(interruptservicetime):中断服务程序用来从硬件设备读取信息或从操作系统收集信息所用的时间。
(3) 内核抢占时间KPT(kernelpreemptiontime):在操作系统意欲抢占当前进程与抢占实际上发生之间的时间间隔。
.(4) 调度延迟SD(scheduledelay):调度程序用来调度另一个线程投入运行的时间。
(5) 进程切换时间CST(contestswitchingtime):当前线程用来保存寄存器和系统状态的时间与将要运行的线程恢复寄存器中的内容和系统状态的时间总和。
(6) 系统调用返回时间RST(returnfromsystemcall):处于内核态的线程在它返回用户态之前检查一些状态所用的时间。
以上这些时间中,SD、CST和RST总是固定不变的,如果Linux内核设计得当的话,IDT、IST和KPT可以有效的减少。在实时应用的环境中,若干个中断同时发生的情况是完全可能存在的。这时任务的响应时间最多将包含N(IDT+IST),N为中断数。
中断软件模拟被用来解决多个中断同
时发生的情形。当一个硬件中断发生时,系统只是简单的在时间表中报告这一时间的发生,然后立即将CPU的控制权返回给操作系统,完全略过了查中断向量表并执行相应的中断服务程序。系统在Linux内核之前截获了所有应中断信号,并根据当前实时任务的需要,由软中断模拟机制处理或挂起该中断(例如:IBMPC中的8259中断控制器)。
采用这个方法,可以减少当多个中断同时发生时任务的响应时间,最长的延迟时间为N*IST’,其中N为中断数。在这里之所以是IST’,而不是IST,是因为采用软中断软件模拟的方法使得在IST时间段内只执行一些简单的操作。
2. 抢占式内核体系结构的设计
为了解决Linux实现硬实时的最大障碍,使Linux内核成为完全可被抢占实时内核,典型的实现方案是双核结构。使用实时核来运行实时任务,Linux内核来运行非实时任务。例如:对于实时数据采样分析而言,利用实时内核运行一个实时任务来完成数据采集,另一个实时任务完成数据分析和控制输出功能;同时利用Linux内核上运行的界面来进行数据显示。如图1所示。
图1 双内核结构
在Linux内核和硬件之间加个小的实时核,由它管理中断,提供一些必要的功能,如底层任务创建、中断服务程序,并且为底层任务、ISR和Linux进程之间进行通信排队;而Linux内核本身则成为优先级最低的Idletask。
对实时性要求强的应用编写成实时任务,在实时内核上直接运行。Linux内核可以被优先级更高的实时任务抢占。对于Linux内核的修改主要集中在三方面:(1) 在Linux内核中影响实时性的地方增加控制点,使内核在控制点可以被抢占,减少内核抢占延迟;(2) 将执行时间较长的系统划分为几个甚至是十几个较小的块分别执行,使实时任务随时中断非实时任务;(3) 根据实际需要,增加部分功能。
随着嵌入式应用的深入,特别是在数字通信和网络中的应用,多核结构的处理器也陆续上市。如:Motorola公司研发的MPC8260PowerQUICC||融合了两个CPU-嵌入式PowerPC内核和通信处理模块(CPM);Infineon公司推出的TC10GP和增强型TC1130都是三核(TriCore)结构的微处理器,这些处理器的产生对于Linux应用中的实时性都大有帮助。
.3. 实时调度的算法研究
常用的实时调度算法有:基于优先级的调度算法(priority-drivenscheduling,PD);基于时间驱动的调度算法(time-drivenscheduling,TD);基于比例共享的调度算法(share-drivensched2uling,SD)。基于优先级的调度算法 调度器以优先级作为寻求下一个任务执行的依据。可分为如下两种类型:
(1) 静态优先级调度算法:该算法给系统中所有进程都静态的分配一个优先级。静态优先级的分配可以根据应用的属性来进行,例如任务的周期、用户优先级或者其他预先确定的策略。RM(RateMonotonic)是一种典型的静
态优先级调度算法,它根据任务执行周期的长短来决定调度优先级,执行周期小的任务具有较高的优先级。
(2) 动态优先级调度算法:这种算法根据任务的资源需求来动态的分配任务的优先级。EDF(earliestdeadlinefirst)算法是一种典型的动态优先级调度算法,该算法根据就绪队列中各个任务的截止期限来分配优先级,具有最近截止期限的任的优先级最高。
基于时间驱动的调度算法
该算法本质上是一种设计时就确定下来的离线的静态调度方法。在系统的设计阶段,在明确系统中所有处理的情况下,对于各个任务的开始、切换以及结束时间等事先组出明确的安排和设计。
基于比例共享的调度算法
这是一种越来越受到关注的实时调度模式,基于GPS(generalprocessorscheduling)的算法,其基本思想就是按照一定的权重(CPU使用的比例)对一组需要调度的任务进行调度,使其执行时间与权重完全成正比。可以通过两种方法来实现比例共享调度算法:(1)是调节各个就绪进程出现在当前调度队列队首的频率,并调度队首的进程执行;(2)是逐次调度就绪队列中的各个进程投入运行,但根据分配的权重调节分配给每个进程的运行时间片。比例共享算法包括轮转法、公平共享法、公平队列法和彩票调度法等几类。
每一种调度策略都有自己的优越性和不足。在这里我们提出了一种宏观调度结构,通过设计和构造多属性和多调度器的选择机制,使三种实时调度策略的应用都得到支持,相对于只对单种调度策略提供支持的方案,拓展了系统的可使用范围。宏观调度结构如图2所示。
图2 宏观调度结构
.我们给每一个实时任务定义了4个调度属性:priority(优先级:限制该任务比相关联的其他任务的优先权)、starttime(起始时间:任务开始执行时间)、finishtime(截止时间:任务停止时间)和budget(预设值:任务允许执行时间),不同属性的数据对应不同的调度策略。宏观调度结构分为两个模块:属性分配模块和调度器选择模块。属性分配模块给每一个实时任务分配多个属性值,并通过其中的一两个属性值决定哪个属性优先,这样调度器选择模块就可以根据属性的优先级别选择不同的调度器。例如:如果优先级属性优先,则调度器就变成了一个纯粹的PD调度器;如果截止时间优先,那么调度器就作为EDF调度器来工作。
实验时采用Pentium-||400处理器,128MB内存,运行环境Linux2.0.35(以RED-Linux0.5为补丁),以RM调度策略为例,分别测量每一次系统请求消耗的时间。数据整理如下:宏观调度结构下属性分配模块消耗的时间大部分不到40Ls,平均约35Ls,调度器选择模块平均消耗时间约85Ls,消耗时间总计为118Ls,约占0.118%的CPU时间;单一调度策略的情况平均消耗时间约为25Ls,约占0.025%的CPU时间。宏观调度结构的延迟时间为传统调度方式的5倍,对于大多数的嵌入式系统来讲内核的灵活性和可配置性比调度的延时更为重要,而宏观结构和单一调度结构的CPU可用时间分别为99.88%和99.97%,差别极小
,符合嵌入式系统实时性要求。
五、结论与展望
Linux虽然为分时操作系统,但由于其功能强大、源代码开放以及可移植性强等优势,已成为日益流行的嵌入式实时操作系统的解决方案。本文从软中断模拟技术、可抢占式内核和实时调度策略三个方面给出了改善系统实时性能的方法,并提出了通过采用宏观调度结构实现的混合调度,拓展了实时系统的应用范围。Linux实时性能的逐步完善,必将大大促进嵌入式Linux在工业控制、后PC时代信息电器等领域的广泛应用,应用的需要也会进一步促进大量新型控制算法的出现。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
Powered by
逛了这许久,何不进去瞧瞧?如何选择嵌入式操作系统
> 如何选择嵌入式操作系统
如何选择嵌入式操作系统
编者按:嵌入式操作系统是ARM CPU的软件基础,从8位/16位单片机发 展到以ARM CPU核为代表的32位嵌入式处理器,嵌入式操作系统将替代传统的由手工编制的监控程序或调度程序,成为重要的基础组件。我们将对三种在ARM CPU上较为流行的嵌入式操作系统作详细的分析。
  嵌入式操作系统是ARM CPU的软件基础,从8位/16位单片机发 展到以ARM CPU核为代表的32位嵌入式处理器,嵌入式操作系统将替代传统的由手工编制的监控程序或调度程序,成为重要的基础组件。更重要的是嵌入式操作系统对应用 程序可以起到屏蔽的作用,使应用程序员面向操作系统级开发应用软件,并易于在不同的ARM核的嵌入式处理器上移植。本文引用地址:  嵌入式操作系统都具 有一定的实时性,易于裁剪和伸缩,可以适合于从ARM7到Xscale各种ARM CPU和各种档次的应用,嵌入式操作系统可以使用广泛流行的ARM开发工具,如ARM公司的SDT/ADS和RealView等,也可以使用开发软件,如 GCC/GDB、KDE或Eclipe开发环境,市场上还有专用的开发工具,如Tornado、μC/View、μC/KA、CODE/Lab、 Metroworks等。  本文就目前国内在ARM CPU上广泛采用的三种嵌入式操作系统(、和)作分析。  嵌入式实时内核全世界数百种设备已经在使用,包括手机、路由器、不间断电源、飞行器、医疗设备和工业控制设备。μC /OS-II已经有ARM7TDMI、ARM9和Strong ARM等各种ARM CPU的移植,支持包含Atmel、Hynix、Intel、Motorola、Philips、Samsung、Sharp等公司的ARM核的 CPU.μC/OS-II的移植也相当容易,与CPU相关的代码包装在三个文件中,它们是os_cpu.h、os_cpu_a.asm和 os_cpu_c.c.μC/OS-II有60多个系统调用,覆盖任务、定时器、信号量、事件标志、邮箱、队列和内存管理,已经包含了传统嵌入式操作系统 内核(如PSOS,VRTX)的功能,还支持互斥型信号量,这是90年代的嵌入式操作系统内核,如VxWorks和VRTXsa才有的技术。  μC/OS-II因为是可抢占的实时内核,所以μC/OS-II与商业嵌入式实时内核在性能上没有什么差异,μC/OS-II没有用户态和内核态,任务 (线程)或中断和任务切换的响应可以很快,主要是和ARM CPU相关的。最新的2.7x版本还增加了算法以避免在移植中修改堆栈指针,这样可以保证μC/OS-II在不同的CPU上运行更稳定,移植更方便。μC /OS-II目前除了内核外还有商业化文件系统μC/FS,图形系统μC/GUI以及任务调试工具μC/KA和μC/View,但是μC/OS-II自己 目前还没有TCP/IP协议系统。  总的来说,μC/OS-II是一个非常容易学习,结构简单,功能完备和实时性很强的嵌入式操作系统内 核,适合于各种嵌入式应用以及大专院校教学和科研。最后需要说明,μC/OS-II不是免费软件,任何人学习使用μC/OS-II需要购买《嵌入式实时操 作系统μC/OS-II》一书,使用μC/OS-II的产品需要购买产品生产授权,购买了此授权的还可以得到开发期间的技术支持和升级服务。  操作系统是Linux小型化后,适合于没有MMU(内存管理单元)的微处理器芯片而裁剪成的操作系统,如果ARM CPU系列中的ARM7 TDMI、ARM940T等产品希望使用Linux操作系统,只能用μCLinux,当然,μCLinux也支持Motorola Dragonball、Coldfire等其它中低端嵌入式处理器。  μCLinux保持了传统Linux操作系统的主要特性,包括稳 定、强大的网络和文件系统的支持,μCLinux裁剪了大量的Linux内核以缩小尺寸,适合象512k/b RAM、1M/b Flash这样小容量、低成本的嵌入式系统。μCLinux系统小型化的另一简化是采用了μCLib库替代Linux的Glib库,使用μCLib可以大 大减少应用程序的代码尺寸,对于中小型嵌入式应用,μCLib功能可以满足需要,所以目前即使是某些采用Linux 2.4.操作系统这里要讨论的是可以嵌入在ARM CPU上的,具有MMU功能的Linux操作系统,也可以称是操作系统。与微软公司的软件不一样,Linux不是由一家公司所拥有、维护 开发的,Linux在市场有多种发行版本,所有发行版本都包含一样的Linux内核、基本工具和应用,不同的发行版本主要是在附加的工具链、应用、配置以 及各种内核补丁上有所不同。嵌入式Linux主要是在实时性增强、内核精简和裁减、支持多种CPU结构(如ARM CPU)等方面做了改进和提高。  使用嵌入式Linux系统有两种途径:第一是用户自己装配(称为DIY内核),你可以找到全部Linux代码,或直接到ARM CPU的源代码树下linux.org.uk“&www.ARMlinux.org.uk找到所需要的Linux版本的移植,或者某些半导体公司, 如三星、Motorola在自己的网站或在自己的ARM评估板含有一个最小Linux内核系统。如果这个最小内核没有包含GCC/GDB工具链,可能还要 到GNU的网站下载全部的源代码,然后再编译生成所需要版本的ARM工具链和应用程序库,这个过程是相当耗时和困难的。还需要指出,这种DIY内核的配 置,添加应用和驱动程序也是不标准的和复杂的,这是嵌入式系统的特殊性所在。  第二是选择一个商业化的嵌入式Linux操作系统平台。商 业化的嵌入式Linux版本是针对嵌入式处理器,如ARM所优化设计的,支持各种半导体厂家的评估板和主要的设备驱动,商业化的嵌入式Linux包含了文 件系统、应用、实时性扩展和技术支持培训服务,现今国外著名的商业化嵌入式Linux产品有:MontaVista Linux、Bluecat Linux、Timesys Linux、Metrowork Linux、Vlinux和Redhat Linux等,  国内也有红 旗、中软、新华嵌入式Linux. MontaVista Linux是MontaVista软件公司于1999年推出的,它是目前全球优秀的嵌入式Linux操作系统和工具供应商,MontaVista在嵌入式 Linux的实时性、交叉开发工具、高可用性、动态电源管理等Linux技术要点方面具有领先地位。MontaVista Linux最版本是3.1,采用Linux 2.4.20,针对8种CPU系列(包含ARM和Xscale)优化定制的商业化版本。  选 择象MontaVista Linux这样商业化嵌入式Linux,可以让用户把时间和资金放在应用软件和特定的硬件接口和设备驱动程序,使用商业化嵌入式Linux可以得到一定时 间(一般是1年)的技术支持,升级和培训(这很重要,因为Linux是每天都在变化的)。  商业化嵌入式Linux目前除国内的产品外, 价格还是很昂贵的,根据配置和服务时间,大约从几千到几万美元,多数国内用户从资金和心理上还很难承受,商业化嵌入式Linux开发工具相对于 Microsoft和象Tornado/VxWork的开发工具,在易于使用和丰富性方面还待于提高和改进。  同样作为Linux操作系统,笔者推荐使用带有MMU的嵌入式Linux,而不是mCLinux,因为绝大多数新的ARM CPU都是AMR9核,它们都带有MMU了,无论是开放源码的Linux社区还是商业化的嵌入式Linux公司的支持和维护都比mCLinux要好要快和 丰富得多。  结语  前面我们对三种在ARM CPU上较为流行的嵌入式操作系统作了详细的分析,在进入一个总结之前,笔者还想提到几个在国际上很有名气的嵌入式操作系统,它们是WindRiver公 司的VxWorks、ATI的Nucleus、iTron和WinCE,但它们在ARM CPU的应用不多见,介绍从略。  最后归纳一下 选择一个合适的ARM CPU的嵌入式操作系统的几个重要因素:第一是应用。如果你想开发的嵌入式设备是一个和网络应用密切相关或者就是一个网络设备,那么你应该选择用嵌入式 Linux或者mCLinux,而不是mC/OS-II.第二是实时性。没有一个绝对的数字可以告诉你什么是硬实时,什么是软实时,它们之间的界限也是十 分模糊的,这与你选择什么样的ARM CPU,它的主频、内存等参数有一定的关系。如果你使用加入实时补丁等技术的嵌入式Linux,如MontaVista Linux(2.4.17版本),最坏的情况只有436微秒,而99.9%的情况是195微秒。考虑到最新的Linux在实时性方面的改进。它可以适合于 90~95%的各种嵌入式系统应用。当然,你如果希望更快的实时响应,如高速的A/D转换需要几个微秒以内的中断延时,可能采用mC/OS-II是合适 的。当然,你采用象Vxworks这样传统的嵌入式操作系统也可以满足这样的强实时性要求。  第三是开发工具。显然,目前mC/OS- II、mCLinux和嵌入式Linux的开发工具与商业嵌入式操作系统工具还有一些差距,目前在ARM CPU上广泛流行和使用的是ARM公司SDT/ADS工具链,产品无论在功能、稳定性和众多的第三方厂商支持方面都很好,唯一不足的是缺少对嵌入式 Linux操作系统的支持,SDT/ADS的升级产品RealView计划支持GCC和嵌入式Linux,但目前还没有看到,mC/OS-II可以使用 ARM SDT/ADS,但没有操作系统调试功能。  第四是所选择的ARM CPU和参考板,象ARM7TDMI和ARM940T(如S3C)核是不能使用嵌入式Linux的,如果想用Linux,只能用mCLinux,如果想用VxWorks,  需要了解一下提供评估板的公司是否有BSP(板支持包),VxWorks自己只有少数ARM公司评估板的支持。  最后是价格和技术服务。在考虑购买商业嵌入式操作系统时,会遇到是买还是自己做的问题,这是很正常的,尤其是在采用开放源代码技术时,这个问题就更加突 出。有一点需要注意的是,有些产品如VxWorks是既按用户数收取开发费,也按用户产品售出的实际数量收取每个VxWorks软件运行的版税。 mC/OS-II只是收取每种产品一次性版税(不限数量)。Linux无论是mCLinux还是嵌入式Linux(即使是商业版本象MontaVista Linux)是不收版税的,商用嵌入式Linux是以服务费或订阅方式收取开发时的费用。很明显,国外产品价格是贵一些,但不能不承认他们在嵌入式操作系 统的技术已经远远走在前方。linux操作系统文章专题:
linux相关文章:
路由器相关文章:
tcp/ip相关文章:
路由器相关文章:
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一

我要回帖

更多关于 嵌入式操作系统 的文章

 

随机推荐