- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于rtai的lxrt机制研究
基于RTAI的LXRT机制研究
王良旺 潘长洪 黄日文
(广东省Linux公共技术服务支持中心,广州 )
摘要:RTAI提供了LXRT机制,使得可以在Linux的用户空间创建实时进程,满足实时应用的要求。This paper introduces the origination and some important conceptions of LXRT, studies mainly on process schedule and process status switch under LXRT mechanism. The study is based on linux 2.6.15 and rtai-3.3 and mainly refers to X86 architecture.
Keywords
Real-Time?Application?Interface Linux Real Time
引 言RTAI是对Linux内核的硬实时扩展,它遵循自由软件规范;它可以提供工业级的RTOS功能,而且其所有的功能都可无缝的通过GNU/Linux环境访问。RTAI项目是由意大利米兰理工学院航天工程系(DIAPM)发起开发的遵循GPL的开源项目1 LXRT简介
LXRT的目的是在用户空间提供安全、灵活、快速的硬实时应用程序开发,硬实时程序在用户空间通过调试后,根据需要可容易的移植到内核空间。当CPU的时钟频率超过1G时,内核空间和用户空间的切换所花的时间微乎其微,在内核空间运行硬实时应用显得没有必要。由于在用户空间开发硬实时应用要比在内核空间开发简单的多,也安全得多,因此,在不影响系统性能的前提下,在用户层开发实时应用也就在情理之中,这也正是RTAI发展过程中的趋势。而LXRT机制正是这一趋势的产物。
LXRT最初是由Paolo Mantegazza开发实现的,其最初是用来在用户空间实现消息处理和远程过程调用,而这两项功能在LXRT实现之前已经在内核空间实现。有了LXRT,开发人员可以不必掌握System V IPC的实现细节,可以把主要精力花费在应用程序的开发上。
LXRT提供了丰富的任务间的通信方法,主要包括邮箱机制(Mailboxe),消息和过程调用机制(Message?and?RPC),信号量机制(Semaphore),管道机制(FIFO),共享内存机制(Shared?memory);其中的管道机制和共享内存机制可用于RTAI的实时任务和Linux进程之间的通信。每个操作系统都在独立的域内运行,每个域可以有独立的地址空间和类似于进程、虚拟内存等的软件抽象层,而且这些资源也可以由不同的域共享。是以Linux内核模块方式实现的中断管道在不同的域之间传播中断,而且提供了相应的机制可以让域改变自己在中断管道中的优先级rt_task_init_schmod()创建RT_TASK数据结构。该函数为系统调用的封装函数,它通过系统调用在内核空间创建一RT_TASK数据结构,并注册其名字,向用户空间返回创建的RT_TASK数据结构指针。此时,用户进程具有两个调度实体:一个为普通linux进程调度单位task_struct,另一个为RT_TASK。两个数据结构互相有指针指向对方。rt_task_init_schmod()函数的第五个参数需要指定进程的调度策略,调度策略有两种:SCHED_FIFO和SCHED_RR,这里的调度策略并非是指进程在硬实时下的调度策略,而是指在linux下的调度策略,具体原因后面将要叙述。也就是说,用户进程要想成为硬实时进程,首先需要成为linux下的软实时进程。
在用户进程进入硬实时之前,需要预先分配好其需要的内存。如果用户进程需要扩展其堆栈,需要调用rt_grow_and_lock_stack()函数进行扩展。为了防止用户进程的内存在运行时被交换出去,需要调用mlockall()函数。
调用rt_make_hard_real_time()函数。该函数返回时,用户进程进入硬实时,进程由LXRT实时调度器调度,用户进程运行于RTAI域下,用户进程task_struct的state为不可运行状态。
用户进程一旦进入硬实时空间,将不能再使用任何linux下的系统调用。否则,用户进程会回到linux域,被linux调度运行,这样会破坏用户进程的硬实时环境;如果用户能意识到这一点,也无可厚非。系统调用结束时,用户进程将返回到硬实时环境。
3.2 软实时和硬实时的切换
在用户空间,rt_make_hard_real_time()用于从软实时切换到硬实时,rt_make_soft_real_time()用于从硬实时切换到软实时。而在内核空间,它们分别对应:steal_from_linux()和give_b
您可能关注的文档
- 高级swot分析法(powerswot分析法).doc
- 高级免疫-益生菌对宿主机体免疫调节作用研究进展.doc
- 钢筋直螺纹连接技术在现浇框架结构施工中的应用.doc
- 高级氧化技术处理制药废水研究进展论文汇总.doc
- 电站锅炉水冷壁管内壁腐蚀引起水冷壁漏泄的原因浅析.doc
- 高考题改编神经调节与体液调节的关系.doc
- 高浓度化工废水处理工艺设计开题报告.doc
- 高浓度含酚废水处理的新工艺.docx
- 高浓度有机废水处理技木的应用研究.doc
- 高手必须知道的 windows 7 技巧.doc
- 新版工程承包合同范本6篇.docx
- XX东商城项目外墙脚手架班组补充合同10篇.docx
- 合同范本办公楼租赁合同6篇.docx
- 2025年呼伦贝尔职业技术学院单招(数学)历年真题考点含答案解析.docx
- 2025年呼和浩特职业学院单招英语2014-2024历年真题考点试卷摘选含答案解析.docx
- 2025年呼和浩特职业学院单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析.docx
- 初中数学教学和学习总结.pdf
- 2025年呼和浩特职业学院单招职业技能测试近5年真题考点含答案解析.docx
- 最新合同工程欠款起诉书范文9篇.docx
- 2025年和田师范专科学校单招语文2019-2024历年真题考点试卷含答案解析.docx
文档评论(0)