2022年硬实时操作系统_RT-Linux .pdf
《2022年硬实时操作系统_RT-Linux .pdf》由会员分享,可在线阅读,更多相关《2022年硬实时操作系统_RT-Linux .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、硬实时 操作系 统-RTLinux 摘要:介绍了RTLinux两个重点特点:硬实时性和完备性及其在嵌入式系统应用中些重要功能并结合实时处理具体实例对其编程方法加以说明关键词:操作系统实时处理Linux 嵌入式系统近年来基于PC 嵌入式系统得到迅速发展在各种不同操作系统中由于Linux 操作系统廉价、源代码开放性以及系统稳定性使其在基于PC嵌入式系统中应用日益广泛RTLinux(RealTime Linux)1是种基于Linux 实时操作系统是由FSMLabs公司( Finite State Machine Labs Inc. )推出与Linux 操作系统共存硬实时操作系统它能够创建精确运行符合
2、 POSIX.1b标准实时进程;并且作为种遵循GPL v2协议开放软件可以达GPL v2协议许可范围内自由地、免费地使用、修改和再发生本文介绍了RTLinux特点及功能并结合个实时处理具体实例对其编程方法加以说明1、 RTLinux特点在 Linux 操作系统中调度算法(其于最大吞吐量准则)、设备驱动、不可中断系统、中断屏蔽以及虚拟内存使用等因素都会导致系统在时间上不可预测性决定了Linux 操作系统不能处理硬实时任务RTLinux 为避免这些问题在Linux 内核与硬件之间增加了个虚拟层(通常称作虚拟机)构筑了个小、时间上可预测、与Linux 内核分开实时内核使得在其中运行实时进程满足硬实时
3、性并且RTLinux 和 Linux 构成个完备整体能够完成既包括实时部分又包括非实时部分复杂任务。1.1 硬实时性RTLinux 将 Linux 源码中所有cli、 sti、iret 指令分别用宏S_CLI 、 S_STI 、S_IRET替换引入虚拟层将截取所有硬件中断分割Linux 系统与硬件中断之间直接联系当RTLinux 虚拟层接收到与实时处理有关硬件中断时立即启动执行相应实时中断服务;而接收到与实时处理无关中断时先保存相应信息等到RTLinux 内核空闲时通过软中断传递给Linux 内核去处理这样就使得RTLinux内核不受各种软、 硬件中断影响不会造成时间上不可预测性同时又区别于其
4、他实时处理方案它并未对操作系统内核作结构性修改因此并不会妨碍Linux 操作系统进步发展和变化Linux 采用基于最大吞吐量准则调度策略并不能确保各个实时进程及时调度而RTLinux在缺省情况下采用优先级调度策略即系统调度器根据各个实时任务优先级来确定执行先后次序优先级高先执行优先级低后执行这样就保证了实时进程迅速调度同时RTLinux也支持其它调度策略如最短时限最先调度(EDP )、确定周期调度(RM)(周期短实时任务具有高优先级)RTLinux 将任务调度器本身设计成个可装载内核模块用户可以根据自己实际需要编写适合自己调度算法操作系统精确定时机制可以提高任务调度器效率但增加CPU处理定时中
5、断时间开销RTLinux采用种折衷方案不将8354 定时器设计成10 毫秒产生次定时中断固定模式而是根据最近事件(进程) 时间需要不断调整定时器定时间隔这样既可以提供高精度时间值又避免过多增加CPU处理定时中断时间开销RTLinux系统同时将各时间间隔相加保持个系统全局时间变量并使用软中断方式来模拟传统100Hz 定时中断将其传递给Linux 系统使用。1.2 完备性过去实时操作系统仅是组原始、简单可执行它所做仅仅是向应用提供库但如今实时应用通常要求能够支持TCP/IP、图形显示、文件和数据库系统及其它复杂服务为了满足当今实时应用多种需求通常采用在实时控制内核上增加这些服务或完全修改标准操作系
6、统内核方法而RTLinux所采用是种新型高效方式将个简单小型实时内核与Linux 内核共存用简单小型实时内核处理实时任务将非实时任务交给Linux 内核去处理而Linux 内核本身也作为个RTLinux 实时内核在空闲时运行进程这种将实时系统和平均时间优化标准Linux 操作系统协同工作方式使得许多实时应用都显示出种增效实时内核中实时任务可以直接访问硬件不使用虚拟内存给实时进程提供了很大灵活性;运行在 Linux 用户空间中非实时任务可以方便地使用系统提供各种资源(网络、文件系统等)并受到系统保护增加了系统安全性2 、 RTLinux主要功能名师资料总结 - - -精品资料欢迎下载 - - -
7、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - RTLinux 提供了整套对硬实时进程支持集在此仅对在嵌入式系统中最重要三个方面:进程间通讯、中断和硬件设备访问以及线程间同步加以阐述。2.1 进程间通信( IPC )RTLinux要求将应用分成实时部分和非实时部分应用实时部分应该是简单和轻负荷在RTLinux实时内核中完成; 而非实时部分在Linux 用户空间完成因此RTLinux提过了多种内核实时进程和Linux 用户空间进程间通讯机制最重要是实时FIFO和共享内存实时FIFO
8、是能够被内核实时进程和Linux 用户空间进程访问快进快出队列是种单向通讯机制可以通过两路实时FIFO构成双向数据交换方式在使用实时FIFO前先要对实时FIFO通道化:# rtf_create(unsigned fo, size) 使用后应该注销实时FIFO通道:rtf_destroy(unsigned fo) 在化实时FIFO通道后 RTLinux内核实时进程和Linux 用户空间进程都可以使用标准POSIXopen 、 read、 write 和 close等对实时FIFO通道进行访问内核实时进程还可以使用RTLinux专有 rtf_put 和 rtf_get 对实时 FIFO通道进行读写
9、。RTLinux共享内存由mbuff.o 模块支持可以使用下面分配和释放共享内存块:# void *mbuff_alloc(const char *name, size) void mbuff_free(const char *name,void *mbuf) mbuff_alloc有两个参数共享内存名name和共享内存块大小size 如果指定内存共享名并不存在分配成功时返回共享内存指针访问计数置为1 分配失败时返回空指针;如果指定内存共享名已经存在返回该块共享内存指针并将访问计数值直接加1mbuff_free将该块共享内存访问计数值减1 当计数值为0 时该共享内存被释放在实时内核模块中使用该
10、时应该将mbuff_alloc和 mbuff_free分别放在init_module和 cleanup_module模块之中。2.2 中断和访问硬件硬中断(实时中断)具有最低延时在系统内核中只有少数实时进程使用rtl_request_irq和 rtl_free_irq用于安装和卸载指定硬件中断中断服务# rtl_request_irq(unsigned irq,unsigned (*handler)(unsigned ,struct pt_regs *) rtl_free_irq(unsigned irq) 中断驱动线程可以使用唤醒和挂起:pthread_wakeup_np(pthread_t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年硬实时操作系统_RT-Linux 2022 实时 操作系统 _RT Linux
限制150内