电子科技大学,嵌入式嵌入式linux操作系统的实时化研究new

电子科技大学,嵌入式嵌入式linux操作系统的实时化研究new

ID:34547717

大小:99.46 KB

页数:5页

时间:2019-03-07

电子科技大学,嵌入式嵌入式linux操作系统的实时化研究new_第1页
电子科技大学,嵌入式嵌入式linux操作系统的实时化研究new_第2页
电子科技大学,嵌入式嵌入式linux操作系统的实时化研究new_第3页
电子科技大学,嵌入式嵌入式linux操作系统的实时化研究new_第4页
电子科技大学,嵌入式嵌入式linux操作系统的实时化研究new_第5页
资源描述:

《电子科技大学,嵌入式嵌入式linux操作系统的实时化研究new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第28卷 第3期        西南师范大学学报(自然科学版)2003年6月Vol.28No.3JournalofSouthwestChinaNormalUniversity(NaturalScience)Jun.2003文章编号:10005471(2003)03038605①嵌入式Linux操作系统的实时化研究1121赵明富, 李太福, 吴 军, 罗渝微11重庆工学院电子工程系重庆400050;21深圳美思达电子公司广东深圳518020摘要:Linux应用于嵌入式实时环境时存在关闭中断、分时调度和虚拟文件系统的时间

2、不确定性等问题.使用虚拟机技术,增加一个仿真程序来替换Linux的底层中断程序.用一个小的实时内核与Linux内核共享控制处理器和中断模拟等技术以解决上述问题,并作了系统设计、编写了相应的程序.测试结果表明,所改进的操作系统是能够胜任实时任务的.关 键 词:嵌入式系统;实时系统;Linux中图分类号:TP316文献标识码:A随着嵌入式系统的迅速发展,给Linux操作系统提供了极其广阔的应用前景,但嵌入式系统中通常要处理[1]来自串口等设备的大量信息,要求系统具有很高的实时性.Linux的内核调度策略基本是仿照UNIX

3、而来,将它应用于嵌入式实时环境有许多缺陷.特别是在运行内核线程时,Linux关闭中断,此外还存在分时调度、虚拟文件系统的时间不确定性,缺乏高精度的计时器等.所以利用Linux作为底层操作系统,在其上进行实时化改造,建立一个具有实时应用能力的操作系统是现在日益流行的嵌入式操作系统的解决方案.1Linux的实时化方案Linux实时化的详细结构如图1.增加一个仿真程序以替换Linux的底层中断程序,用一个小的实时内核与Linux内核共享控制处理器.这样,来自硬件的属于实时内核的中断将被直接处理,属于Linux内核的中断通过

4、中断仿真程序处理.假如Linux内核中断请求没有被允许,中断模拟程序将在中断队列中标记这次中断的发生,当Linux内核的中断请求被允许时,在中断队列中的中断将被执行.因此,实时内核的操作可以得到机器的立即相应,并且Linux内核不能延迟实时任务的执行.实时任务与运行在Linux内核中的进程之间的通讯通过FIFOs与共享内存的方式进行.使用实时内核中的调度器调度实时任务,调度器的算法和策略可以用户自己定义,于是系统就实现图1Linux实时化方案结构图了RMS和EDF算法.Fig.1SchemeofImprovingLi

5、nuxReal2TimePerformance这种方案保留了Linux操作系统所提供的丰富①收稿日期:20020913作者简介:赵明富(1964-),男,重庆人,硕士,副教授,主要从事电子信息工程、智能仪器仪表、计算机应用技术领域的研究.©1995-2004TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsreserved.第3期         赵明富,等:嵌入式Linux操作系统的实时化研究387功能,而且通过改造,使其作为一个基本内核与实时内核共享控制CPU.这样,系统可以

6、看作是具有双内核的操作系统,实时内核拥有更高优先级别的任务.换句话说,基本内核可以看作实时系统的空闲任务,只是在没有实时处理要求的时候运行.2 中断模拟要在标准Linux上增加硬实时功能,首先遇到的问题是Linux为达到同步使用关中断方式,混杂在一块的关和开中断操作(i486处理器的cli和sti机器指令)造成不确定的中断分派延迟.Linux内核是一整块大的内核,在提供系统服务的各个部分之间没有一个保护的分界线.要改写Linux内核非常棘手.要限定关中断的时间非常困难,当更新版本发行时,也可能变得不正确.文献[2]在

7、Linux内核与中断控制硬件之间增加一个模拟软件,但用于不同目的.在Linux源代码中所有的cli,sti,和iret(iret:中断返回指令)被替换为相应的宏:SCLI,SSTI和SIRET.所有的硬件中断指令都被中断模拟器捕捉.关中断发生时,重新设定模拟器的一个变量.只要中断发生,模拟器将检查这个变量.假如这个值已经设定(Linux中断是允许的),Linux的中断处理程序将立即调用.如果Linux中断是不允许的,中断处理程序将不会被调用,并将设定一个变量值,并且保存所有挂起的中断的信息.一旦Linux中断允许处理

8、时,所有挂起的中断将被处理.这种中断称之为软中断.由于Linux不能直接控制中断控制器,Linux的中断不会影响实时中断的处理.SCLI,SSTI和SIRET宏如程序1所示.该代码使用GNU汇编规范.SCLI宏简单重新设定变量值,保存Linux中断状态;SSTI宏设置正在被处理的中断的栈;SIRET宏模拟中断返回.SIRET宏的工作就像硬件ir

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

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

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