电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

嵌入式linux实时性分析与验证--林大版

  • 资源ID:61116897       资源大小:227KB        全文页数:21页
  • 资源格式: DOC        下载积分:20金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要20金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

嵌入式linux实时性分析与验证--林大版

东 北 林 业 大 学嵌入式Linux实时性分析与验证总页数:21正文:20附录:0目 录1嵌入式实时性操作系统简介11.1什么是实时性11.2什么是实时性嵌入式操作系统11.3评价嵌入式实时操作系统的指标11.4嵌入式实时操作系统业界水平21.4.1VxWorks嵌入式操作系统21.4.2COS-II嵌入式操作系统31.4.3Clinux嵌入式操作系统31.4.4eCos嵌入式操作系统31.4.5RTXC嵌入式操作系统31.5RTOS硬件和软件方面的要求41.5.1可预测性41.5.2可靠性42Linux作为嵌入式实时操作系统的分析42.1需要改进的地方42.1.1待改善的内核结构42.1.2实时性方面的不足52.2测试通用Linux实时性的方法62.2.1中断响应时间测试62.2.2调度延迟时间测试83目前业界改进Linux的典型案例103.1Kurt-Linux103.2Red-Linux103.3MontaVista-Linux113.4RT-Linux及RTAI114改进Linux实时性的基本策略124.1兼容内核方法124.2双内核方法134.3核心内核方法144.4资源内核方法145通过patch提高通用Linux实时性提升的方法145.1Ingo Molnar 的实时补丁141 嵌入式实时性操作系统简介1.1 什么是实时性所谓实时,就是系统的正确性不仅仅依赖于计算的逻辑结果的正确性,执行时间还必须是确定的,可预测的,并且在任何情况下都能保证任务的时限。及时、准时。1.2 什么是实时性嵌入式操作系统嵌入式操作系统的一般的定义为:以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。实时嵌入式操作系统是符合上述要求并具有实时性的操作系统。实时性系统一般分为两类:(1) 硬实时系统:要求可确定性强,具有明确的实时约束,在某个限定的时刻之前不能完成任务将造成灾难性的后果。(2) 软实时系统:也对时间敏感,但偶尔发生不能满足严格实时要求的情况也是允许的。1.3 评价嵌入式实时操作系统的指标嵌入式系统实时性一般来说通过三个指标来衡量,即响应时间、生存时间和吞吐量。但借鉴与Linux其它功能方面的表现已经非常出色,改造Linux过曾中采用如以下6个具体延迟时间指标。(1) 中断分配时间IDT(interruptdispatchtime):当一个中断产生时,在调用中断处理程序占用CPU以前,操作系统用来保存所有的寄存器中的内容和系统中其他的关于这一任务状态的时间。(2) 中断服务时间:IST(interruptservicetime):中断服务程序用来从硬件设备读取信息或从操作系统收集信息所用的时间。(3) 内核抢占时间KPT(kernelpreemptiontime):在操作系统意欲抢占当前进程与抢占实际上发生之间的时间间隔。(4) 调度延迟SD(scheduledelay):调度程序用来调度另一个线程投入运行的时间。(5) 进程切换时间CST(contestswitchingtime):当前线程用来保存寄存器和系统状态的时间与将要运行的线程恢复寄存器中的内容和系统状态的时间总和。(6) 系统调用返回时间RST(returnfromsystemcall):处于内核态的线程在它返回用户态之前检查一些状态所用的时间。其中SD,CST,RST总是固定不变的,如果内核设计得当IDT,IST和KPT可以有效得减少。下图 1-1为Linux2.4进程切换的过程图,可作为参考。图 1-1Linux2.4内核任务响应模型1.4 嵌入式实时操作系统业界水平1.4.1 VxWorks嵌入式操作系统VxWorks是美国WindRiver公司的产品,是目前嵌入式系统领域中应用很广泛,市场占有率比较高的嵌入式操作系统。 VxWorks实时操作系统由400多个相对独立、短小精悍的目标模块组成,用户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、中断处理、定时器和内存管理等功能,内建符合POSIX(可移植操作系统接口)规范的内存管理,以及多处理器控制程序;并且具有简明易懂的用户接口,在核心方面甚至町以微缩到8 KB。 1.4.2 COS-II嵌入式操作系统COS-II是在C-OS的基础上发展起来的,是美国嵌入式系统专家Jean JLabrosse用C语言编写的一个结构小巧、抢占式的多任务实时内核。COS-II能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。 1.4.3 Clinux嵌入式操作系统Clinux是一种优秀的嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux。同标准的Linux相比,Clinux的内核非常小,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的网络功能、出色的文件系统支持、标准丰富的API,以及TCPIP网络协议等。因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。 1.4.4 eCos嵌入式操作系统eCos(embedded Configurable operating system),即嵌入式可配置操作系统。它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。最大特点是配置灵活,采用模块化设计,核心部分由小同的组件构成,包括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用eCos提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。 1.4.5 RTXC嵌入式操作系统RTXC是C语言的实时执行体(RealTime eXecutive in C)的缩写。它是一种灵活的、经过工业应用考验的多任务实时内核,可以广泛用于各种采用8/16位单片机、16/32位微处理器、DSP处理器的嵌入式应用场合。中国单片机公共实验室“经过几年的考察,认为比较适合中国的国情后,引入中国市场的”嵌入式实时多任务操作系统两者之一。1.5 RTOS硬件和软件方面的要求1.5.1 可预测性实时系统的要求能够对实时任务的执行时间进行判断,确定是否能够满足任务的时限要求。由于实时系统对时间约束要求的严格性,使硬件延迟的可预测性成为实时系统的一项重要性能要求。此外,还要求操作系统,包括应用程序的响应时间是可预测的。1.5.2 可靠性 在一些重要的实时应用中,任何不可靠因素和计算机的一个微小故障,或某些特定强实时任务超过时限,都可能引起难以预测的严重后果。为此硬件和其软件的可靠性成为衡量实时系统性能不可缺少的重要保障。2 Linux作为嵌入式实时操作系统的分析2.1 需要改进的地方2.1.1 待改善的内核结构Linux内核采用的是单内核结构(Monolithic),整个内核是一个单独的、非常大的程序,这样虽然能够使系统的各个部分直接沟通,有效地缩短任务之间的切换时间,但与嵌入式系统存储容量小、资源有限的特点不相符合。嵌入式系统经常采用的是另一种称为微内核(Microkernel)的体系结构,即内核本身只提供一些最基本的操作系统功能,而类似于文件系统和网络协议等附加功能则运行在用户空间中。见下图2-1、图2-2:微内核的执行效率虽然比不上单内核,但却大大减小了内核的体积,便于维护和移植,更能满足嵌入式系统的要求。可以考虑将Linux内核部分改造成微内核。2.1.2 实时性方面的不足 Linux虽然符合POSIX1003.1b关于实时扩展部分的标准,但仍然存在如下缺陷:(1) 定时器问题:Linux的周期模式定时器频率仅为1O0Hz,远不能满足实时应用的要求。(2) 调度问题:Linux虽然给实时进程提供了较高的优先级,但是并没有加入时间限制。另外,当多个实时进程互斥请求共享资源时,易发生优先级翻转。(3) 中断关闭问题:Linux的内核进程经常关闭中断以尽快完成自己的任务,如果低优先级的进程关闭了中断,那么即使有高优先级进程的中断发生,系统也无法响应。(4) 中断优先级问题:在一个有非常繁重的网络负载和I/O负载系统中,很有可能出现一直处在中断处理状态而没有机会运行任何实时任务。(5) 抢占问题:虽然Linux2.6开始引入了可抢占内核,但它是不完全抢占的,在这种不可抢占区域还需要给予更多的抢占点才能满足实时性的要求。(6) 虚拟内存管理问题:对于分时系统来讲这是一个好的解决办法,而对于实时系统却带来不可忍受的不可预测性。2.2 测试通用Linux实时性的方法根据上述的实时操作系统指标将对通用的Linux内核进行实时性测试,测试的方法是用TSC对中断响应时间和调度延迟进行精确计时。2.2.1 中断响应时间测试2.2.1.1 测试原理2.2.1.2 测试环境测试平台: VM下的CentOS5.5 Kernel: 2.6.18 CPU : Itel(R) Celeron(R) CPU 2.8GHz 内存:1.5GB2.2.1.3 测试代码#include<signal.h>#include <stdio.h>#include <unistd.h>#include <fcntl.h>#define rdtsc(low,high) _asm_ _volatile_("rdtsc" : "=a" (low), "=d" (high)static void sig_usr(int);int now,last,high;int main() int i=0; if (signal(SIGINT,sig_usr)=SIG_ERR) printf("can't catch SIGINT"); while(i+<100) / rdtsc(last,high); raise(SIGINT); rdtsc(last,high); return 0;static void sig_usr(int signo) if(signo=SIGINT) rdtsc(now,high); printf("%dn",now-last); else printf("received signal %dn",signo); return ;2.2.1.4 测试结果响应时间数量级大概在 5微妙 跟网上的对于2.6内核的中断响

注意事项

本文(嵌入式linux实时性分析与验证--林大版)为本站会员(第***)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.