嵌入式实时Linux系统的构建

嵌入式实时Linux系统的构建

论文摘要

作为最主要的开放源码的操作系统之一,Linux具有内核源码公开、性能稳定、兼容UNIX、支持多种处理器、网络功能强、安全性高、内核可剪裁等一系列优点,正迅速进入实时控制领域。Linux最初是作为通用操作系统而设计开发的,其设计的基本原则是尽量缩短系统的平均响应时间并提高系统的吞吐量,尽管Linux也提供了一些实时处理的支持,包括支持大部分POSIX标准中的实时功能、多任务、多线程、可抢占内核、O(1)进程调度算法等,但是,Linux的实时性能还是比较差,不能保证实时任务的响应时间[1]。因此,Linux通常需要做一定的改造,才能更好的应用于嵌入式实时系统。本课题是嵌入式Linux网络视频监控系统开发工作的一部分,该监控系统要求在较大的网络吞吐量和长时间读写数据的的运行状况下兼具有良好的实时特性。为了充分利用Linux本身丰富的网络功能,Linux的实时性能改造排除了双内核的方案,采用了对Linux内核本身进行改进以达到实时要求的方法。标准Linux2.6内核中已经成功实现的O(1)调度程序保证了进程调度的时间为常数,并实现了抢占式调度;2.6内核还支持可抢占性,只要重新调度是安全的,正在执行的任务就可以在任何时间被其他可执行任务抢占。可见2.6内核在进程调度和提高内核可抢占性两个方面已经取得了较好的改进。本课题的主要精力是集中在内部改造Linux内核来为应用程序带来实时性能这个主题上,主要内容如下:(1)分析了Linux2.6内核的中断机制,以及打上Ingo Molnar的实时化补丁后的内核的中断机制,分析如何通过改进中断机制来提高Linux系统的实时性能。(2)提出改进方案:将中断作为内核线程并赋予不同的实时优先级,在中断服务程序入口函数中进行当前任务优先级与中断线程优先级的比较,不同的情况进行不同的处理,从而保证实时性高的任务不被打扰,优先级高的中断能立即响应;分析了标准Linux的同步机制,以及Linux自旋锁的不足之处,在实时方案中用互斥代替自旋锁加以改进。(3)对这种方案进行分析和测试,改进后的系统较好地解决了标准Linux在实时性方面存在的不足使之成为一个软实时系统,明显提高了任务相应时间的精度,可以应用在众多具有软实时要求的环境中,在规定时间内完成数据采集、处理工作、多媒体信息处理、过程控制等要求迅速相应的工作,例如基于网络的监控系统,室内温度控制系统等应用。(4)讨论期间选型和模块划分,构造硬件平台,实现了基于ARM9开发平台的嵌入式实时Linux系统的构建,包括开发平台bootloader的开发,实时Linux内核镜像的编译,交叉编译环境的建立,根文件系统的移植,经过后期系统的长期运行测试,证明了该系统的实时性能良好,系统运行稳定。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 引言
  • 1.1 论文研究背景及意义
  • 1.2 嵌入式实时系统概述
  • 1.2.1 嵌入式系统概述
  • 1.2.2 嵌入式实时系统
  • 1.2.3 国内外发展现状和趋势
  • 1.3 嵌入式远程视频监控系统
  • 1.3.1 远程监控系统概述
  • 1.3.2 国内外发展现状及趋势
  • 1.4 论文研究内容
  • 第二章 嵌入式实时 Linux 系统
  • 2.1 影响实时性的因素
  • 2.1.1 抢占式调度与非抢占式调度
  • 2.1.2 内核的可抢占性
  • 2.1.3 优先级可否反转
  • 2.1.4 中断机制
  • 2.1.5 存储管理机制
  • 2.2 实时操作系统的性能指标
  • 2.3 Linux 系统实时性能的改进方法
  • 2.4 Linux 作为嵌入式实时操作系统的优劣
  • 2.4.1 Linux 用于嵌入式系统的主要优势
  • 2.4.2 嵌入式Linux 应用的缺陷
  • 第三章 Linux2.6 内核的中断机制研究
  • 3.1 中断机制
  • 3.1.1 中断
  • 3.1.2 中断处理程序
  • 3.1.3 中断初始化
  • 3.2 中断响应过程
  • 3.2.1 中断或异常的前期硬件处理
  • 3.2.2 中断处理过程
  • 3.2.3 异常处理过程
  • 3.2.4 中断或异常处理返回
  • 第四章 Linux 实时性改进及测试
  • 4.1 Ingo 实时补丁的中断线程化分析
  • 4.1.1 内核线程的概念
  • 4.1.2 中断线程化及中断优先级
  • 4.2 内核2.6.18 中断机制改进
  • 4.2.1 中断线程化
  • 4.2.2 中断线程化的实现
  • 4.2.3 中断响应过程
  • 4.3 同步机制改进
  • 4.3.1 Linux 同步机制
  • 4.3.2 Linux 同步机制优化策略
  • 4.4 改进方案验证
  • 4.4.1 中断线程化方案正确性验证
  • 4.4.2 改进前后的中断响应时间测试与比较
  • 4.5 上下文切换时间测试
  • 4.6 任务响应时间测试
  • 4.6.1 任务响应过程分析
  • 4.6.2 现有的测试工具
  • 4.6.3 任务响应时间测试与比较
  • 第五章 嵌入式系统移植
  • 5.1 嵌入式 Linux 开发的一般步骤
  • 5.2 ST2410 开发平台简介
  • 5.2.1 开发平台的硬件配置
  • 5.2.2 s3c2410 处理器芯片及其存储空间扩展
  • 5.2.3 开发平台对于bootloader 的硬件支持
  • 5.3 嵌入式 Linux2.6 内核在 ST2410 平台上的移植
  • 5.3.1 嵌入式交叉编译环境的建立
  • 5.3.2 嵌入式Linux 内核映像的编译
  • 5.3.3 基于ST2410 平台的bootloader 的开发
  • 5.3.4 根文件系统开发
  • 5.3.5 移植
  • 第六章 总结与展望
  • 6.1 总结
  • 6.2 展望
  • 致谢
  • 参考文献
  • 附录
  • 在校期间取得的研究成果
  • 相关论文文献

    标签:;  ;  ;  ;  

    嵌入式实时Linux系统的构建
    下载Doc文档

    猜你喜欢