基于RTAI的实时LINUX分析与实现

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:XTOGM
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:LINUX作为一种开放的操作系统已经得到广泛的应用,但是LINUX是面向桌面的操作系统,本身實时性并不是很出色,在很多应用场合需要对它的实时性能进行改进。本文详细分析了一种基于实时应用接口的LINUX扩展方案,通过RTAI动态加载实时内核,改善了LINUX系统的实时性。
  关键词:操作系统;应用接口;内核;实时
  中图分类号:TP316.81
  1 引言
  实时系统是一种特殊的系统,它主要特点是在规定时间内一定能够响应任务的需求。这种特性就特别适合一些对时间要求严格的场合,比如控制列车运行的操作系统。因此实时系统目前主要应用于过程控制自动化系统、办公自动化、航空航天系统、武器制导系统等领域,并且发挥着举足轻重的作用。
  Linux的出现给我们带来了新的契机,由于Linux系统本身的开源性,用户可以根据自己的需求定制和修改以达到不同的效果。但是,大部分实时系统,需要很短的响应时间,需要操作系统的硬实时特性,而标准的Linux操作系统是达不到硬实时的要求。本论文分析了Linux 2.6内核实时性的不足以及RTAI底层实现机制,并构建一个基于Linux和RTAI的实时系统。
  2 Linux内核实时性分析
  对一个操作系统而言,调度程序的效率将直接影响到系统的整体性能。在Linux中,调度策略分为三种:
  (1)SCHED_NORMAL:面向普通进程的时间片轮转策略。
  (2)SCHED_FIFO:面向对实时性要求要求比较高,运行时间比较短的进程。用这种思想进行调度时,各进程按先入先出的顺序获得CPU。
  (3)SCHED_RR:面向于实时性要求比较高,运行时间比较长的进程。用这种思想进行调度时,各进程按时间片的方法轮流使用CPU。
  在2.6内核中,对Linux的调度策略进行了很大的改进,有关进程调度最重要的改进是采用O(1)算法和内核态的可抢占性。因此,我们利用Linux开源性的优势,对Linux内核进行扩展,采用RTAI对Linux进行实时性改进以满足实时任务的需求。
  3 RTAI实时性分析
  RTAI是一种对Linux系统的硬实时扩展,它可以提供工业级的实时操作系统功能,达到了硬实时性的要求,RTAI的功能都可以在Linux下访问。
  RTAI采用了一种叫做ADEOS的思想进行实现。ADEOS在操作系统的底部插入一个微内核,各个操作系统运行在微内核之上,各个操作系统都可以操作控制硬件。Adeos把它管辖的各个操作系统称为域,RTAI系统本身作为Adeos中的一个域存在,在Adeos管理下实现RTAI系统的初始化、中断的申请、中断服务程序的注册等。在Adeos的调度策略里面,RTAI的优先级是最高的,一旦RTAI有任务需要处理,Adeos立即进行调度,使RTAI能够响应相应的实时任务,只有当RTAI处于空闲状态时,Adeos才会调度Linux运行,这样的调度思想就保证了RTAI的实时任务响应时间,从而提供了实时系统的可确定性,使系统达到硬实时的要求。RTAI的原理图如图1:
  从图中我们可以看到,RTAI响应的都是实时任务,因此我们设置RTAI域的优先级高于Linux域,这样的策略保证所有的实时任务都优先于Linux域的普通任务,从而不会被linux影响。
  这样,Adeos系统上的两个操作系统在这种调度策略下就共同运行,它们可以共享两个操作系统所有的公共资源,RTAI和Linux通过管道、共享内存等模块交换信息,调用彼此的系统服务,也可以根据优先级共享同一个中断信号。
  4 实时系统的实现
  下面是我构建实时Linux系统的过程:
  软件环境: ubuntu,gcc、g++、make等。
  我们下载RTAI并解压:
  # wget --no-check-certificate https://www.rtai.org/RTAI/rtai-3.6.tar.bz2
  # tar xvf rtai-3.6.tar.bz2
  我们下载一个RTAI支持的内核并解压出来:
  例如linux-2.6.20.tar.gz
  # tar xvf linux-2.6.20.tar.gz
  进入内核目录并应用补丁:
  #cd ../linux-2.6.20
  # patch -p1 -b < ../rtai-3.6/base/arch/i386/patches/hal-linux-2.6.20-i386-1.10-12.patch
  接着把配置文件拷贝到新内核的目录中并配置新内核:
  # cd ../linux-2.6.20
  #cp /boot/config-2.6.20-generic .config
  # make menuconfig
  配置完成之后我们需要对内核进行编译并安装,在ubuntu环境下最简单的安装内核方式是采用deb方式,因此我们还需要下载一些软件工具包:
  # apt-get install kernel-package fakeroot
  我们开始编译过程并把内核打包:
  # make-kpkg clean
  # fakeroot make-kpkg --initrd --app\end-to-version=-rtai \kernel_image kernel\_headers
  # cd /usr/src
  # dpkg -i *.deb
  然后我们重启计算机并配置RTAI
  $ sudo -s
  # cd /usr/src/rtai-3.5
  # mkdir build
  # cd build
  # make -f ../makefile CC=/usr/bin/gcc- CXX=/usr/bin/g++-
  # make install
  最后我们在启动grub的时候就可以选择安装了RTAI的ubuntu启动。
  5 结束语
  Linux作为一个开源性的操作系统已经应用到各个领域,针对不同的应用场合各行各业都会对linux进行改进。本文针对工业控制现场对操作系统的实时性需求,采用RTAI的方法对Linux进行实时性的改进,分析了RTAI实现机制并构建一个基于RTAI和Linux的系统。
  参考文献:
  [1]Joao Monteiro.RTAI Installation Complete Guide,www.rtai.org
  [2]范海涛,王树民.基于RTAI的uClinux硬实时性能的实现[J].电力自动化设备,2006,3(3):66-68.
  [3]吴国伟,任广臣.Linux内核分析及高级编程[M].电子工业出版社.
  [4]吴恒奎.Liunx指令速查手册[M].人民邮电出版社.
  作者单位:西安铁路职业技术学院,西安 710014
其他文献
随着近年来中国电子商务的迅猛发展,我国的电子商务市场对人才的需求量也在加大。在培养电子商务专业人才的教学中,案例分析法是一种较为理想的教学方法。因此,该文分析了电子商
大家可能不会忘记上世纪90年代初,我国有位著名诗人名叫顾城,他曾以《黑眼睛》一诗享誉海内外。然而移居新西兰后不久,竟用利斧砍杀发妻谢烨,然后自尽。此消息一经新闻媒介披露,国
本文主要研究成人教育招生与学籍管理的业务设计与实现方案。文章首先分析了成教招生与学籍管理的特殊业务流程,并进行系统功能模块设计;接着设计了系统实现方案,并论述了实
随着网络的快速发展和计算机等级考试的普及,通过网络学习与搜集信息,已经成为每个人所必须做的事情。人们迫切要求利用网络来进行各类专项学习、考试,使考试更趋于公正、客观,更
摘 要:本文针对包钢宽厚板现代化生产的需要,通过引进吸收并改进外方的设计,从而达到适应本厂的生产实际需要,借助计算机信息管理这个平台,实现一级系统,二级系统,三级系统这三级系统生产的有序化。提高了产品成材率,有效节约成本,加快了生产节奏。通过二级计算机计算将最优设定值通过PLC最终指导生产,再经过PLC收集生产数据,通过二级计算机对生产数据的分析,给出产品的质量数据评定。最后通过对大量的生产数据的
摘要:大学生素质教育离不开计算机基础知识的教育,本文对高职院校计算机基础教学的目标进行了分析,归纳了目前高职院校计算机基础教学中的现有问题,并就如何改善计算机基础教学提出了一些对策。  关键词:高职院校;计算机基础;教学;问题;对策  中图分类号:G642 文献标识码:A 文章编号:1007-9599 (2013) 03-0000-02  信息时代的全面到来使计算机技术逐渐深入到人们日常生活、工作