嵌入式Linux的实时系统研究

VIP免费
3.0 赵德峰 2024-11-19 4 4 605.22KB 64 页 15积分
侵权投诉
摘 要
随着科技不断的推陈出新,嵌入式系统已经渗透到日常生活的各个方面,其
在工业、服务业、消费电子等领域的应用范围都不断扩大。然而,大多数嵌入式
系统对系统实时性有着较高的要求,寻找一个强大、灵活、开放的实时操作系统,
是我们所关心的。本文之所以选择 Linux 操作系统为构建实时内核的基础,是因为
Linux 系统已经成为世界上最流行的操作系统,拥有人口众多的用户,并且 Linux
的灵活性和开放源代码的政策,允许其不断成长,更加稳健和有效率,从而吸引
了一大批热心、有能力的用户。
课题来源于嵌入式系统对实时化的需求。首先,本文详细介绍了嵌入式系统
的历史、特点以及目前的发展趋势,并对实时系统进行分类,讲解了三种常用实
时系统结构的设计特点:前/后台系统、不可剥夺型内核和可剥夺型内核。之后,
介绍了一些基本的实时调度算法思想。
其次,通过对 Linux 内核结构的分析,深入剖析了 Linux 内核的模块组成及其
依赖关系,中断处理机制和系统时钟节拍的处理特点,对内核的进程调度流程、
调度原理、创建终止进程的方法都进行了全面的介绍。
最后,本文从系统时钟、内核态抢占和引入新的调度框架三个方面,提出了
Linux 内核进行实时化改造的设想,并于新的调度框架实现了两种广泛使用的调
度算法:不精确计算算法和双优先级算法,以满足实时系统的需求。
关键词:Linux 实时系统 进程调度 调度框架
ABSTRACT
With the increasing updating in information technology, embedded system has
already extended in every aspect of life. Its application scopes expands in industry,
services, consumer electron, and so on. However, the most embedded systems have a
high require for the job response time. We need to search for a powerful, flexible and
open real-time operating system solution. Because it has become one of the most
popular OS which has a lot of users, we select the popular Linux kernel as base to built
a real-time kernel in this paper. The open source policy behind Linux allows it to grow
constantly and to become more robust and efficient due to the large number of
enthusiastic and capable users whom it has attracted.
This subject comes from the demand of job response time in embedded system.
Firstly, the article describes the history of embedded system, its feature and developping
trend in detail. We classify the real-tme systems in three types: foreground/background
non-preemptive kernel and preemptive kernel, illuminate the way in design of all types
of real-tme systems.Then, we introduce some basic real-tme scheduling algorithms.
Secondly, the article analyze the buildup of Linux kernel module, interrupt process
and system timer according to studying Linux kernel structure. We introduce the process
management, process scheduling algorithms and how to create or stop a process in
Linux comprehensively.
Lastly, the article propose the ideas on builting a real-time kernel based on the
popular Linux kernel form three aspects: system timer, preemptive in kernel and a new
scheduling framework. It also describes th implementation of two famous scheduling
algorithms in the framework: imprecise computation and dual priority. It can meet the
requirement of real-time system.
Keywords: Linux, Real-time System, Process Scheduling, Scheduling
Framework
目 录
摘要
ABSTRACT
第一章 绪论.....................................................................................................................1
§1.1 问题由来........................................................................................................1
§1.2 解决方法........................................................................................................2
第二章 嵌入式系统的概况.............................................................................................3
§2.1 嵌入式系统简介.............................................................................................3
§2.1.1 嵌入式系统定义.................................................................................3
§2.1.2 嵌入式系统的特点.............................................................................4
§2.1.3 嵌入式系统的历史.............................................................................5
§2.2 嵌入式微处理器种类.....................................................................................5
§2.2.1 ARM.......................................................................................................6
§2.2.2 MIPS.....................................................................................................7
§2.2.3 Power PC.............................................................................................8
§2.2.4 x86.......................................................................................................9
§2.3 嵌入式操作系统种类...................................................................................10
§2.3.1 VxWorks.............................................................................................10
§2.3.2 Windows CE.......................................................................................11
§2.3.2 QNX.....................................................................................................12
§2.3.4 LINUX.................................................................................................13
§2.3.5 μC/OS...............................................................................................14
第三章 实时操作系统...................................................................................................16
§3.1 实时系统概况...............................................................................................16
§3.1.1 什么是实时系统...............................................................................16
§3.1.2 实时操作系统的历史.......................................................................18
§3.1.3 实时操作系统的特点.......................................................................19
§3.2 实时内核类型..............................................................................................20
§3.2.1 前/后台系统.....................................................................................20
§3.2.2 不可剥夺型内核...............................................................................21
§3.2.3 可剥夺型内核...................................................................................23
§3.2.4 实时内核小结...................................................................................25
§3.3 实时调度算法基础......................................................................................26
§3.3.1 基于优先级的调度算法...................................................................27
§3.3.2 基于比例共享的调度算法...............................................................27
§3.3.3 基于时间的调度算法.......................................................................28
第四章 Linux 内核结构................................................................................................29
§4.1 Linux 内核结构...........................................................................................29
§4.1.1 内核模块介绍...................................................................................29
§4.1.2 模块间依赖关系...............................................................................30
§4.1.3 Linux 内核结构框图........................................................................31
§4.2 中断及中断处理...........................................................................................32
§4.2.1 中断机制...........................................................................................32
§4.2.2 中断处理...........................................................................................34
§4.3 系统定时......................................................................................................35
§4.4 Linux 进程控制...........................................................................................36
§4.4.1 任务数据结构...................................................................................37
§4.4.2 进程运行状态...................................................................................39
§4.4.3 进程初始化.......................................................................................40
§4.4.4 创建新进程.......................................................................................41
§4.4.5 进程调度...........................................................................................42
§4.4.6 终止进程...........................................................................................43
第五章 Linux 实时化设计思想....................................................................................44
§5.1 定时机制......................................................................................................44
§5.2 内核态抢占..................................................................................................45
§5.3 调度策略框架..............................................................................................47
§5.3.1 调度模型...........................................................................................47
§5.3.2 调度参数...........................................................................................48
§5.3.3 调度器组成.......................................................................................48
第六章 Linux 实时化技术的实现................................................................................50
§6.1 关键技术......................................................................................................51
§6.1.1 Dispatcher.......................................................................................51
§6.1.2 Allocator.........................................................................................52
§6.2 使用 GSF 实现调度算法..............................................................................53
§6.2.1 不精确计算算法的实现...................................................................53
§6.2.2 双优先级算法的实现.......................................................................56
结束语.............................................................................................................................59
参考文献.........................................................................................................................60
攻读硕士学位期间公开发表的论文.............................................................................61
致 谢...............................................................................................................................62
第一章 绪论
1
第一章 绪论
§1.1 问题由来
随着社会的日益信息化,计算机和网络已经全面渗透到日常生活的每一个角
落。对于我们每一个人来说,需要的已经不仅仅是那种放在桌上处理文档、进行
工作管理和生产控制的计算机“机器”。任何一个普通人都可能拥有从小到大的、
各种使用嵌入式技术的电子产品,小到 MP3PDA 等微型数字化产品,大到网络
家电、智能家电、车载电子设备等。目前,各种各样的新型嵌入式系统设备在应
用数量上已经远远超过了通用计算机。在工业和服务领域中,使用嵌入式技术的
数字机床、智能工具、工业机器人、服务机器人正在逐渐改变着传统的工业生产
和服务方式。
以往常见的嵌入式设备上,由于硬件条件等的限制,我们看到功能都非常简
单,没有网络、GUI 等非常实用方便的功能。但最近出现的 Palm 等手持式电脑
或者在 Windows CE 等面向嵌入式系统的操作系统上,我们已经看到了完整的网
络、图形用户界面支持。许多设备也都配有 IntelMIPS摩托罗拉等公司生产的
32 位微处理器。随着手持式设备的硬件条件提高,估计嵌入式系统对嵌入式操作
系统的需求也会越来越迫切。因此,人们把目光投向了通用操作系统(例如
WindowsSolarisLinux,希望把它们改造为实时操作系统。通常这些操作系
统功能强大,结构复杂,易于软件的二次开发,实用性强,并且提供编程人员熟
悉的标准 API
然而,许多嵌入式系统要求具备高可靠性,以及较高的实时性,如果逻辑和
时序出现偏差,将会引起严重的后果。例如,一个振动监测系统,对振动波形的
检测周期必须满足采样定理要求;饮料生产线上的计量、控制系统,必须在一个
工位的移动周期里完成秤量、封口的控制输出;对于超市中使用的电子秤,在秤
量时,希望能立即显示出重量和计价金额;我们日常使用的计算机,在敲击键盘
时,也要求在显示屏上快速地出现键盘输入结果。因此,几乎所有的嵌入式系统
都有一个客观的响应时间要求。虽然通用操作系统也提供了一些对实时软件开发
的支持,但用于嵌入式实时系统的开发还存在许多不足。
嵌入式操作系统在实时属性方面的瓶颈,已经成为现代嵌入式系统应用发展
的巨大障碍,因此对于操作系统实时性改造方案的研究,具有重大现实意义和战
嵌入式 Linux 的实时系统研究
2
略意义。它也成为学术和应用机构的一个越来越热门的研究领域。
§1.2 解决方法
做为嵌入式系统开发的解决方案,
Linux 在众多通用操作系统中具有独一无二
的优势。首先,Windows Solaris 等专有商业操作系统的剪裁受到商家的严格控
制。这大大限制了开发者的剪裁深度。而 Linux 遵循 GPL 协议,开放所有系统源
代码,非易于裁。其次其它开放码的用操作系FreeBSD)相
比,Linux 在多种处理器、开发板支持和软件开发工具支持上有很强的优势,包括
ARMXscaleMIPS PowerPC。另外,Linux 最初也是作为通用操作系统而设
计开发的,同时提供了一些实时处理的支持,这包括支持大部分 POSIX 标准中的
实时功能,支持多任务、多线程,具有丰富的通信机制等。
目前国外在不仅在 liunx 内核实时改造理论方面的研究做的很好,而且在实际
应用方面也做的非常好,已经推出多套成熟可行的解决方案。例如,新墨西哥科
技大学(New Mexico Institute of Technology ) 的 RT-Linux 、堪萨斯大学
LinuxKansasKURTLinux 都是非常有代表性的实时 Linux 操作系统,一些
专业公司,如 MontaVista 也推出了自己的产品。我国虽然有很多机构已经在进行
这方面的研究,但在实际应用方面与国外存在较大的差距,还没有形成成熟的商
业方案。可以预见,随着嵌入式领域的不断扩展,对功能要求的不断提高,实
Linux 在嵌入式系统中有着广阔的发展前景。
现今风行世界的 Linux 操作系统,本着开放自由的精神,吸引了全世界的目光,
越来越多的程序员加入到它的行列中来。所以利用 Linux 作为底层操作系统,
其上进行实时化改造,建立一个具有实时应用能力的操作系统应该是现在日益流
行的嵌入式操作系统的解决方案。
摘要:

摘要随着科技不断的推陈出新,嵌入式系统已经渗透到日常生活的各个方面,其在工业、服务业、消费电子等领域的应用范围都不断扩大。然而,大多数嵌入式系统对系统实时性有着较高的要求,寻找一个强大、灵活、开放的实时操作系统,是我们所关心的。本文之所以选择Linux操作系统为构建实时内核的基础,是因为Linux系统已经成为世界上最流行的操作系统,拥有人口众多的用户,并且Linux的灵活性和开放源代码的政策,允许其不断成长,更加稳健和有效率,从而吸引了一大批热心、有能力的用户。课题来源于嵌入式系统对实时化的需求。首先,本文详细介绍了嵌入式系统的历史、特点以及目前的发展趋势,并对实时系统进行分类,讲解了三种常用...

展开>> 收起<<
嵌入式Linux的实时系统研究.pdf

共64页,预览7页

还剩页未读, 继续阅读

作者:赵德峰 分类:高等教育资料 价格:15积分 属性:64 页 大小:605.22KB 格式:PDF 时间:2024-11-19

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 64
客服
关注