如何在嵌入式linux中应用实时性

如何在嵌入式linux中应用实时性

ID:4246474

大小:1.19 MB

页数:45页

时间:2017-11-30

如何在嵌入式linux中应用实时性_第1页
如何在嵌入式linux中应用实时性_第2页
如何在嵌入式linux中应用实时性_第3页
如何在嵌入式linux中应用实时性_第4页
如何在嵌入式linux中应用实时性_第5页
资源描述:

《如何在嵌入式linux中应用实时性》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实时实时LLiinnuxux技术技术如何在嵌入式LINUX中应用实时特性主讲:易松华实时VS快速:怎样选择?2实时系统概念•实时操作系统(Real-timeOS)•分时操作系统(Time-SharingOS)–计算机资源会被平均地分配给系统内所有的工作•区别:–是否有“时限(deadline)”实时系统特点•指规定的时限内必须完成规定的操作–并非指速度快慢–硬实时:超过时限完成任务会导致灾难性后果–软实时:超过时限完成对任务会带来系统性能的严重下降•手持设备什么地方需要实时系统?两种类型的Real-Time响应时间的可接受度度受接可烤炉温度控制软实时正硬实时负响应时间

2、实时系统相关技术和衡量指标•多任务和任务切换:任务切换时间•内核调度:调度算法•可抢占型内核和不可抢占型内核•优先级反转问题•任务间同步和通信•中断延迟–中断延迟时间:关中断的最长时间+开始执行中断服务程序的时间–中断响应时间:中断延迟时间+操作系统保存现场的时间–中断恢复时间:恢复现场时间+执行中断返回指令的时间–中断处理时间•主要实时指标:中断延迟、调度延迟实时Linux主要依据•高优先级的任务先行ALWAYS•所以原则就是:–Everythingshouldbepre-emptable–Nothingshouldkeephigherprioritythingsf

3、romexecuting7实时Linux概况提高Linux实时性能方法•双内核方式–实现硬实时–实时内核+标准内核–RTLinux、RTAI和Xenomai等•在主流内核上通过patch增加其实时性–提高软实时内核性能–TimeSysLinux/RT–MontavistaLinux–IngoMolnar’sRTpatchLinux硬实时RTLinuxLinuxLinux进程1进程2用户层内核层通用Linux内核实时任务1实时任务2实时任务3实时内核(RT-LinuxorRTAI)硬件Real-time任务不使用LINUXAPI或资源任何实时任务出问题将导致整个系统崩溃

4、contd...RTLinuxcontd...XenomaiXenomai示意图XenomaiXenomaiSKIN示意图contd...Xenomai编程…#defineITER10staticRT_TASKt1;staticRT_TASKt2;intglobal=0;voidtaskOne(void*arg){inti;for(i=0;i

5、ER;i++){rt_printf("IamtaskTwoandglobal=%d----------------",--global);}contd...Xenomai编程(Cont’)intmain(intargc,char*argv[]){/*Performauto-initofrt_printbuffersifthetaskdoesn'tdoso*/rt_print_auto_init(1);/*Avoidsmemoryswappingforthisprogram*/mlockall(MCL_CURRENT

6、MCL_FUTURE);/*createthet

7、wotasks*/rt_task_create(&t1,"task1",0,1,0);rt_task_create(&t2,"task2",0,1,0);/*startthetwotasks*/rt_task_start(&t1,&taskOne,0);rt_task_start(&t2,&taskTwo,0);return0;}contd...Linux软实时Real-TimeLinux关键点•Linux实时化采取的措施:–最小化关中断时间–中断线程化–使内核完全可抢占•减少临界区–用mutex来执行同步(减少spinlocks)•允许自愿抢占–Mutex支持优先级

8、继承–高精度定时器–最小化mutexes和临界区–优化调度的策略18睡眠Spinlocks•原来的LinuxUP自旋锁:–锁住时候禁用IRQ–不能打断–对RT来说不好•原来的LinuxSMP自旋锁:–自旋(锁总线)–性能不好Solution:“睡眠Spinlock”19问题:优先级反转A试图去锁由C拥有的Q高优先级B没有锁成功,因此接下来处理器运行…中优先级低优先级CC永没机会运行...因此A永远不能运行…QSolution:“Priority继承”20RobustMutexes(鲁棒性互斥锁)•问题:•进程间信号量•进程A获取了信号量并且异常退出了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。