嵌入式Linux的实时系统研究
VIP免费
摘 要
随着科技不断的推陈出新,嵌入式系统已经渗透到日常生活的各个方面,其
在工业、服务业、消费电子等领域的应用范围都不断扩大。然而,大多数嵌入式
系统对系统实时性有着较高的要求,寻找一个强大、灵活、开放的实时操作系统,
是我们所关心的。本文之所以选择 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 问题由来
随着社会的日益信息化,计算机和网络已经全面渗透到日常生活的每一个角
落。对于我们每一个人来说,需要的已经不仅仅是那种放在桌上处理文档、进行
工作管理和生产控制的计算机“机器”。任何一个普通人都可能拥有从小到大的、
各种使用嵌入式技术的电子产品,小到 MP3、PDA 等微型数字化产品,大到网络
家电、智能家电、车载电子设备等。目前,各种各样的新型嵌入式系统设备在应
用数量上已经远远超过了通用计算机。在工业和服务领域中,使用嵌入式技术的
数字机床、智能工具、工业机器人、服务机器人正在逐渐改变着传统的工业生产
和服务方式。
以往常见的嵌入式设备上,由于硬件条件等的限制,我们看到功能都非常简
单,没有网络、GUI 等非常实用方便的功能。但最近出现的 Palm 等手持式电脑
或者在 Windows CE 等面向嵌入式系统的操作系统上,我们已经看到了完整的网
络、图形用户界面支持。许多设备也都配有 Intel、MIPS、摩托罗拉等公司生产的
32 位微处理器。随着手持式设备的硬件条件提高,估计嵌入式系统对嵌入式操作
系统的需求也会越来越迫切。因此,人们把目光投向了通用操作系统(例如
Windows、Solaris、Linux),希望把它们“改造”为实时操作系统。通常这些操作系
统功能强大,结构复杂,易于软件的二次开发,实用性强,并且提供编程人员熟
悉的标准 API。
然而,许多嵌入式系统要求具备高可靠性,以及较高的实时性,如果逻辑和
时序出现偏差,将会引起严重的后果。例如,一个振动监测系统,对振动波形的
检测周期必须满足采样定理要求;饮料生产线上的计量、控制系统,必须在一个
工位的移动周期里完成秤量、封口的控制输出;对于超市中使用的电子秤,在秤
量时,希望能立即显示出重量和计价金额;我们日常使用的计算机,在敲击键盘
时,也要求在显示屏上快速地出现键盘输入结果。因此,几乎所有的嵌入式系统
都有一个客观的响应时间要求。虽然通用操作系统也提供了一些对实时软件开发
的支持,但用于嵌入式实时系统的开发还存在许多不足。
嵌入式操作系统在实时属性方面的瓶颈,已经成为现代嵌入式系统应用发展
的巨大障碍,因此对于操作系统实时性改造方案的研究,具有重大现实意义和战
嵌入式 Linux 的实时系统研究
2
略意义。它也成为学术和应用机构的一个越来越热门的研究领域。
§1.2 解决方法
做为嵌入式系统开发的解决方案,
Linux 在众多通用操作系统中具有独一无二
的优势。首先,Windows 和Solaris 等专有商业操作系统的剪裁受到商家的严格控
制。这大大限制了开发者的剪裁深度。而 Linux 遵循 GPL 协议,开放所有系统源
代码,非常易于剪裁。其次,同其它开放源码的通用操作系统(如 FreeBSD)相
比,Linux 在多种处理器、开发板支持和软件开发工具支持上有很强的优势,包括
ARM,Xscale,MIPS 和PowerPC。另外,Linux 最初也是作为通用操作系统而设
计开发的,同时提供了一些实时处理的支持,这包括支持大部分 POSIX 标准中的
实时功能,支持多任务、多线程,具有丰富的通信机制等。
目前国外在不仅在 liunx 内核实时改造理论方面的研究做的很好,而且在实际
应用方面也做的非常好,已经推出多套成熟可行的解决方案。例如,新墨西哥科
技大学(New Mexico Institute of Technology ) 的 RT-Linux 、堪萨斯大学
(LinuxKansas)的 KURT-Linux 都是非常有代表性的实时 Linux 操作系统,一些
专业公司,如 MontaVista 也推出了自己的产品。我国虽然有很多机构已经在进行
这方面的研究,但在实际应用方面与国外存在较大的差距,还没有形成成熟的商
业方案。可以预见,随着嵌入式领域的不断扩展,对功能要求的不断提高,实时
Linux 在嵌入式系统中有着广阔的发展前景。
现今风行世界的 Linux 操作系统,本着开放自由的精神,吸引了全世界的目光,
越来越多的程序员加入到它的行列中来。所以利用 Linux 作为底层操作系统,在
其上进行实时化改造,建立一个具有实时应用能力的操作系统应该是现在日益流
行的嵌入式操作系统的解决方案。
第二章 嵌入式系统的概况
3
第二章 嵌入式系统的概况
进入 2000 年后,以计算机和软件为核心的数字化技术取得了迅猛发展,不仅
广泛渗透到社会经济、军事、交通、通信等相关行业,而且深入到家电、娱乐、
艺术、社会文化等各个领域,掀起了一场数字化技术革命。多媒体技术与 Internet
的应用迅速普及,消费电子(Consumptive electron),计算机(Computer),通信
(Communication),3C 一体化趋势日趋明显,嵌入式技术再度成为一个研究热点。
§2.1 嵌入式系统简介
§2.1.1 嵌入式系统定义
嵌入式系统(Embedded System)无疑是当今最热门的概念之一,但究竟什么是
嵌入式系统?嵌入式系统本身是一个相对模糊的定义。由于目前嵌入式系统已经
渗透到日程生活的各个方面,其在工业、服务业、消费电子等领域的应用范围都
不断扩大,因此似乎很难给“嵌入式系统”下一个明确的定义。
根据 IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监
视或者辅助设备、机器和车间运行的装置”(原文为 devices used to control, monitor,
or assist the operation of equipment, machinery or plants)。这主要是从应用上加以定
义的,由此可以看出嵌入式系统是软件和硬件的综合体,可以涵盖机械等附属装
置。
不过上述定义并不能体现出嵌入式系统的精髓。目前,国内一个普遍被认同
的定义是:以应用为中心、以计算机技术为基础,软、硬件可裁减,适应应用系
统对功能、可靠性、成本、体积、功耗等严格要求的计算机系统。可以从以下几
个方面来理解国内对嵌入式系统的理解:
◆ 嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体应用相结合
才会具有生命力、才更具有优势。
◆ 嵌入式系统是将先进的计算机技术、半导体技术和电子技术以及各个行业的
具体应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密
集、高度分散、不断创新的知识集成系统。所以,介入嵌入式系统行业,必
须有一个正确地定位。
◆ 嵌入式系统必须能够根据应用需求对软硬件进行裁减,满足应用系统的功能、
摘要:
展开>>
收起<<
摘要随着科技不断的推陈出新,嵌入式系统已经渗透到日常生活的各个方面,其在工业、服务业、消费电子等领域的应用范围都不断扩大。然而,大多数嵌入式系统对系统实时性有着较高的要求,寻找一个强大、灵活、开放的实时操作系统,是我们所关心的。本文之所以选择Linux操作系统为构建实时内核的基础,是因为Linux系统已经成为世界上最流行的操作系统,拥有人口众多的用户,并且Linux的灵活性和开放源代码的政策,允许其不断成长,更加稳健和有效率,从而吸引了一大批热心、有能力的用户。课题来源于嵌入式系统对实时化的需求。首先,本文详细介绍了嵌入式系统的历史、特点以及目前的发展趋势,并对实时系统进行分类,讲解了三种常用...
相关推荐
-
跨境电商商业计划书模版VIP免费
2025-01-09 27 -
跨境电商方案范文VIP免费
2025-01-09 14 -
创业计划书VIP免费
2025-01-09 18 -
xx生鲜APP计划书VIP免费
2025-01-09 12 -
跨境电商创业园商业计划书(盈利模式)VIP免费
2025-01-09 8 -
跨境电商计划书VIP免费
2025-01-09 13 -
绿色食品电商平台项目计划书VIP免费
2025-01-09 22 -
农产品电子商务商业计划书VIP免费
2025-01-09 9 -
农村电商平台商业计划书VIP免费
2025-01-09 13 -
生鲜商城平台商业计划书VIP免费
2025-01-09 21
作者:赵德峰
分类:高等教育资料
价格:15积分
属性:64 页
大小:605.22KB
格式:PDF
时间:2024-11-19

