转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
Linux嵌入式实时操作系统开发与设计(五)         ★★★★

Linux嵌入式实时操作系统开发与设计(五)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1659 更新时间:2009/4/22 20:45:20

第三章  嵌入式实时LINUX系统RTLINUX的设计与实现

从上一章的分析,我们已经知道Linux是一个通用操作系统,将它应用于嵌入式实时环境有许多缺点和不足。特别是在运行内核线程时,Linux关闭中断,别的问题包括分时的调度,虚拟文件系统的时间不确定性,缺乏高精度的计时器。所以要对现有的Linux进行改造,即要对Linux进行实时化,这一章将介绍RTLinux的结构和如何对RTLinux进行实时化。

 

3.1           RTLinux的结构

RTLinux使用众所周知的虚拟机技术的简单方案来解决这些相互对立的解决上面提到的问题。增加了一个仿真程序来替换Linux的底层中断程序。一个小的实时内核与Linux内核共享控制处理器。如果来自硬件的属于实时内核的中断将直接被处理,属于Linux内核的中断通过中断仿真程序处理。假如Linux内核中断请求没有被允许,中断模拟程序将在中断队列中标记这次中断的发生。当Linux内核的中断请求被允许时,在中断队列中的中断将被执行。因此,实时内核的操作可以得到机器的立即相应,而且Linux内核不能延迟实时任务的执行。实时任务与运行在Linux内核中的进程之间的通讯通过FIFOs与共享内存的方式进行。使用实时内核中的调度器调度实时任务,调度器的算法和策略可以用户自己定义;而系统也已经实现了RMS和EDF算法。

这样就保留了Linux操作系统所提供的丰富的功能,而且改动它使其作为一个基本内核与实时内核共享控制CPU。实际上,系统可以看作具有双内核的操作系统,实时内核拥有更高优先级别的任务,换句话说,基本内核可以看作实时系统的空闲任务:只是在没有实时处理要求的时候运行。这样实现的RTLinux的详细结构图如图3.1所示。

图3.1  RTLinux详细结构图

 

3.2  中断模拟

要在标准Linux上增加硬实时能力,首先遇到的一个问题是Linux为了达到同步使用关中断的方式。混杂在一块的关和开中断操作(i486处理器的cli和sti机器指令)造成不可确定的中断分派延迟。Linux内核是一整块大的内核。在提供系统服务各个部分之间没有一个保护的分界线。要改写Linux内核感到非常棘手。造成要限定关中断的时间非常困难,当更新版本发行时,也可能变得不正确。即使我们能处理这些,时间上离我们的要求仍然太长。

在实时Linux中,是通过在Linux内核与中断控制硬件之间增加一个模拟软件,这是与文献[6]相似的技术,但是用于不同的目的。在Linux源代码中所有的cli,sti,和iret(iret:中断返回指令)被替换为相应的宏:S_CLI,S_STI和S_IRET。所有的硬件中断指令都被中断模拟器捕捉。

 

/*  These are macros  */

 

S_CLI:    movl      $0, SFIF

 

S_IRET:   push     %ds

           pushl    %eax

           pushl    %edx

           movl      $KERNEL_DS, %edx

           mov      %dx, %ds

           cli

           movl      SFREQ, %edx

          andl     SFMASK, %edx

           bsrl     %edx, %eax

           jz       not_found

           movl      $0, SFIF

          sti

           jmp      SFIDT ( , %eax, 4)

not_fount:

           movl      $1, SFIF

           sti

           popl     %edx

       

[1] [2]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台