RTOSFS系统的构建分析与实现

时间:2022-08-18 08:06:15

RTOSFS系统的构建分析与实现

摘要:基本的LFS已经可以投入使用,如果要实现更加专业的要求就要深入到Linux的内核内部进行改造或构建以实现自己的需求。在嵌入式领域这种需求尤为突出,所以将深入到内核内部进行更专业的系统构建和改造。

关键词:Linux的内核;系统构建;RTOSFS系统

中图分类号:TP316 文献标识码:A 文章编号:1009-3044(2013)18-4249-02

1 RTOSFS基本概念和实现方案

1.1 RTOSFS系统概述

RTOSFS系统涉及到以下几个概念:

1)RT(Real Time)

所谓实时,就是一个特定任务的执行时间必须是确定的,可预测的,并且在任何情况下都能保证任务的时限(最大执行时间限制)。实时又分软实时和硬实时。

2)RTOS (RT Operating System)即实时操作系统。

这里指能满足实时应用需求的计算机操作系统。

3)Linux的实时性限制

内核不可抢占;中断关闭;自旋锁(spinlock);大内核锁;中断总是最高优先级的;调度算法和调度点 。

4)RTOSFS(RTOS From Scratch)即从零构建实时操作系统。RTOSFS是在LFS的基础上通过对内核进行实时化改造,使得构建的系统满足一定的实时性要求。

1.2 RTOSFS实现方案简介

这里采用两种不同的方式对LFS进行实时化改造,这两种不同的方式体现了对内核进行改造的两种方法。

方案1: RTAI 3.6.2+ Linux kernel 2.6.23.1+LFS基础环境

RTAI(RealTime Application Interface)即实时应用程序接口,是由意大利米兰理工大学开发的开源的Linux实时方案,它是通过向Linux内核和硬件之间加入一个小的实时内核来达到实时目的的。

Linux内核作为实时内核的一个进程而不再直接同硬件进行通信,同时,实时进程直接由实时内核进行处理,而普通进程由普通内核进行处理,并且实时内核是可抢占的,实时进程的优先级要高于普通进程和普通Linux内核,所以在按方案1进行搭建实时平台时关键是正确安装内核。

方案2: RT- Preempt Patch 2.6.23.1-rc1 + Linux kernel 2.6.23.1+LFS基础环境

RT- Preempt Patch是由Ingo Molnar和Thomas Gleixner开发的完全开源的Linux内核实时补丁,是通过改写内核源代码来解决Linux的实时性限制。这些实时实现技术包括:中断线程化(包括IRQ和softirq)、用rtMutex取代自旋锁(spinlock)、优先级继承和死锁检测、等待队列优先级化、大内核锁(BKL-Big Kernel Lock)可抢占等。

其他可选的方案有诸如:RTLinux,KURT,资源核等。

2 两种方案实现RTOSFS

2.1 RTAI方案实现RTOSFS

下载最新的RTAI,RTAI的使用是有条件的,RTAI不仅要和相对应的内核版本一起使用,而且还要求内核代码是纯净的内核源代码包,即没有打过任何补丁的包。RTAI如果和这些内核想配合的话会产生不兼容的问题。而LFS是不存在这方面的问题的。RTAI的RTOSFS实现步骤如下:

1)启动LFS,并解压内核源代码包,和RTAI源代码包。

2) 编译安装加入HAL的Linux内核

命令清单:

make menuconfig

make

make modules_install

注意:在内核配置时取消所有APCI选项。否则会编译出错。

3)重新启动系统,选实时内核。

4)编译安装RTAI

5) 前面说过RTAI分为两个部分提供实时功能,在安装完基本RTAI后,可以有选择的安装Service部分。

2.2 RT- Preempt Patch方案实现RTOSFS

和RTAI相比,由于RT- Preempt Patch是采用的直接修改Linux内核方式提供的实时支持,所以RT- Preempt Patch的安装更加的简单。RT- Preempt Patch的安装步骤如下:

1)下载源代码

2)给内核打上实时补丁

3)编译配置和安装打过补丁的内核

命令此略。

3 RTOSFS实时性验证

在此只是验证系统功能,不对实时性强弱做比较。

3.1 实时性验证方案

这里的实时性验证采用RT- Preempt Patch的作者之一的Thomas Gleixner开发的cyclictest测试工具,该测试工具通过创建一个至多个线程来测试系统的延迟时间,该测试工具可以测试SMP系统的实时性,并且有相应的可视化工具,可以转换为更为直观的波形图。这里只用文字模式的检测方式。

方案设计:该文将采用构造的基于LFS的三个操作系统进行验证,这四个操作系统分别为:

1)基础LFS系统,采用普通2.6.23.1内核的LFS系统。

2)加入rt-preempt补丁的LFS系统。

3)加入rtai-3.6.2的LFS系统,内核未裁剪。

3.2 实验结果与比较

实验命令为:./cyclictest -t2 -p 80 -n -i 10000 -l 10000

参数意义为:-t2表示两个线程 ,-p 80表示最高优先级为80 ,-i 10000表示线程间隔时间10000纳秒,-l 10000表示循环10000次。

实验结果见表1,延迟单位为纳秒。

从表中可以看出rt-preempt和rtai的实时性都比普通的Linux内核要好,并且rtai所采用的实时内核的方式的效果更加的明显,但是也可以明显看出,这样的延迟在很多实时应用也还是无法接受的,该文的实时性检测主要目的是验证系统的实时性,对实时性的提高不做讨论。

4 总结

随着互联网的逐渐深入人们的日常生活,现代的个人计算机的操作系统已经无法满足越来越多的人的需求,无论是普通用户还是专业人员的需求必将呈多样化发展,作为通用的操作系统如何满足这些需求就成为亟待解决的问题。

参考文献:

[1] 邹勇,王青,李明树.Linux内核的实时支持的研究与实现[J].计算机研究与发展, 2002(4).

[2] William Stallings.操作系统——精髓与设计原理[M].5版.北京:电子工业出版社,2007.

上一篇:高校计算机专业教学模式创新思考 下一篇:高校网络文化建设研究

文档上传者
热门推荐 更多>
精品范文更多>