提高LINUX实时性技术的研究与实现

VIP免费
3.0 高德中 2024-11-19 6 4 1.52MB 62 页 15积分
侵权投诉
I
摘要
利用 Linux 操作系统搭建嵌入式应用系统是近年来在嵌入式应用中出现最多
的方案。Linux 操作系统在众多通用操作系统之中脱颖而出的原因有源代码开放,
成本低,可以为嵌入式系统提供全功能的桌面计算等优点;但是 Linux 作为通用和
分时操作系统的本质属性导致 Linux 的实时性不强,如在运行内核线程时 Linux
闭中断,计时器的精度不够等,但是随着 Linux 在实时应用领域中的使用日益广泛,
改善 Linux 的实时性的需求日益迫切。与此同时,作为实时操作系统设计的
VxWorks 操作系统则因为其卓越的实时性被广泛应用于对实时性要求苛刻的尖端
领域,它的优点主要体现在系统开销小,进程调度、进程间通信、中断处理等程
序精炼而有效、延迟很短;它的不足则是由于其商业软件的特性导致 VxWorks
成本过高,在嵌入式领域中应用不够广泛。本文的目标是通过对 VxWorks 操作系
统实时性能的研究改造 Linux 内核,提高 Linux 的实时性。
本文首先以 VxWorks 操作系统的调度策略和信号量机制为参考,对 Linux
作系统这两个功能模块进行研究,然后根据对两个操作系统对比后的研究结果中
关于实时性不足的部分对 Linux 操作系统内核进行改造,提高 Linux 在嵌入式应用
的实时性能,改造的内容包括对 Linux 内核信号量实现优先级置顶策略和对调度策
略实现 EDF 算法。修改代码后通过测试表明,在内核信号量机制中实现优先级置
顶策略和在调度机制中实现 EDF 算法都会在一定程度上提高 Linux 内核的实时性。
关键词:实时性,优先级置顶,EDF 算法,任务调度
II
ABSTRACT
Using Linux operating system to build embedded system is the most widely
applied resolution in recent years , the main reason to select the Linux system is that the
Linux opens the source, costs low, and the Linux system can supply full-featured
desktop computing in the embedded systems; But Linux has some defects in embedded
real-time environment as a general-purpose operating systems and Time-sharing
operating system, for exapmle, Linux disables interrupts while running the Linux kernel
and lacks high-precision timers and so on. However, with the Linux increaingly been
using in real-time application field, the need of improving its real-time performance is
more and more important. The VxWorks operating system is widely used in
sophisticated technology which is highly demand strong real-time performance, because
the cost of the system itself is very small, utility systems is refining and efficient in
process scheduling, interprocess communication and interrupt processing, whats more
important the time delay is very short, but its shortcoming is the price of using
VxWorks is very high because the vxworks is a kind of commercial software, which
results that the scope of its application is not wide. The purpose of this paper is
improving Linux Kernel’s performance by studying VxWorks kernels’ real-time
performance.
Firstly, this paper is based on the VxWorks operating system scheduling strategy
and semaphore mechanisms and researchs the two functional modules in Linux
operating system, and then Linux operating system kernel has been improved in
embedded application based on results of the contrast between the two OS.The
improvment includes realizing priority ceiling strategy Linux kernel semaphore and
EDF algorithm for scheduling strategy. After changing the code, the test showes that
realizing priority ceiling strategy Linux kernel semaphore and EDF algorithm for
scheduling strategy will increase Linux kernel of real-time in a certain extent.
Key word: real-timepriority ceilingEDF algorithms, schedule
III
目录
摘要… ……………………………………………………….…………………………..I
ABSTRACT………………….……………………………….. ……………………… .II
第一章 绪论 .....................................................................................................................1
§1.1 选题背景 ...........................................................................................................1
§1.2 国内外研究现状 ...............................................................................................3
§1.2.1 Linux 发展现状 .................................................................................... 3
§1.2.2 VxWorks 发展现状 ...............................................................................4
§1.3 论文组织结构 ..................................................................................................6
第二章 操作系统简介 .....................................................................................................7
§2.1 Linux 操作系统 ................................................................................................ 7
§2.1.1 CSF 算法 ................................................................................................7
§2.1.2 O(1) 调度算法 ...................................................................................... 9
§2.1.3 对内核态抢占的支持 .........................................................................10
§2.1.4 新的锁机制——RCU .........................................................................10
§2.2 VxWorks 操作系统 .........................................................................................12
§2.2.1 调度控制 .............................................................................................12
§2.2.2 互斥操作 .............................................................................................14
§2.2.3 队列库 .................................................................................................15
第三章 实时性指标 .......................................................................................................16
§3.1 实时性能指标简介 ........................................................................................16
§3.1.1 任务切换时间 ......................................................................................16
§3.1.2 任务抢占时间 .....................................................................................17
§3.1.3 信号量混洗时间 .................................................................................17
§3.2 Linux VxWorks 的调度机制对比 .............................................................18
§3.2.1 任务调度时机 ......................................................................................19
§3.2.2 任务调度策略 .....................................................................................20
§3.2.3 POSlX 调度接口 ................................................................................. 21
第四章 测试环境的构建 ...............................................................................................22
§4.1 编译内核与内核模块 ....................................................................................22
§4.2 测试工具介绍 ................................................................................................23
§4.3 测试函数的选择 ............................................................................................26
第五章 Linux 信号量的改进 ........................................................................................ 28
§5.1 信号量简介 .....................................................................................................28
§5.2 优先级逆转 ....................................................................................................29
§5.2.1 优先级置顶 .........................................................................................30
§5.2.2 优先级继承 .........................................................................................30
§5.3 信号量的改进 ................................................................................................31
§5.3.1 信号量的创建过程 ..............................................................................32
§5.3.2 信号量的加锁过程 .............................................................................34
§5.4 结果测试 .........................................................................................................40
IV
第六章 Linux 调度策略的改进 .................................................................................... 42
§6.1 周期性调度策略简介 ....................................................................................42
§6.2 实时调度算法简介 ........................................................................................44
§6.2.1 RM 算法 ...............................................................................................44
§6.2.2 EDF 算法 ............................................................................................. 45
§6.3 EDF 调度算法的实现 .................................................................................... 47
§6.4 结果测试 ........................................................................................................54
§6.5 结论 ................................................................................................................54
参考文献 .........................................................................................................................56
在读期间公开发表的论文和承担科研项目及成果 .....................................................59
.............................................................................................................................60
第一章 绪论
1
第一章 绪论
§1.1 选题背景
嵌入式系统的定义是以应用为中心,以计算机技术为基础,并且软硬件可裁
剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算
机系统。由于嵌入式系统具有性价比高、便利灵活、系统稳定、嵌入性强等特点,
已在生活、娱乐、军事、工业等各个领域中取得了广泛的应用。嵌入式技术出现
30多年间,嵌入式操作系统也经历了从以单芯片为核心的可编程控制器形式的
系统,到以嵌入式操作系统和微处理器为标志的嵌入式系统。
许多应用如航空电子系统,交通控制系统,自动化工厂系统和军事系统都需
要实时的计算和通信服务。在实时系统中,所有实时任务根据时间属性如周期性,
截止期限,响应时间等等各有千秋。如果一个应用是硬实时系统,那么错过任务
截止期限可能会导致一个计算无用或者达不到预期目标,甚至如果错过的是一些
关键任务,还会对实时系统造成不可修复的破坏,造成灾难性后果。
在日常生活中,现在流行的应用如 audio/video 流和多人游戏也有时间限制,
同时还需要底层操作系统的性能保证,这些应用就归类为软实时应用。应用提供
给用户的应用输出应该能够最大化的满足实时限制(如截止期限)但是不同于硬
实时系统应用,偶尔的超过截止期限制不会造成计算的无用或者灾难性的后果。
在实时操作系统中,灵活的 OS 调度策略仍然是被支持的,它可以管理系统资源以
使实时应用可以展示出最好的性能。
总之,嵌入式微处理器的应用日渐增多且无处不在,从卫星到MP3都有嵌入
式微处理器的存在。在嵌入式微处理器的开发中,嵌入式实时操作系统(简称ERTOS)
是核心软件,对它最重要的要求就是在一定的时间限制内对内部或外部的事件进
行正确的响应和处理。实时操作系统在全球已经形成了一个产业链,据美国电子
市场分析报告,2008年全球RTOS市场产值达36亿美元,而相关的整个嵌入式开发
工具(包括仿真器、逻辑分析仪、软件编译器和调试器)则高达9亿美元。
在传统的实时嵌入式程序设计应用中,各模块按条件顺序执行的方式对于线
性的简单应用来说是可以满足的;但是随着嵌入式应用的日益复杂,涉及的领域
也日益广泛,人们对嵌入式系统提出了更高的要求:不仅要求其提供集成式开发
提高 LINUX 实时性技术的研究与实现
2
环境,还要求图形用户界面和网络支持。但是现有的应用于嵌入式系统的RTOS
如果是开源的,则价格低廉功能简单,而专业的嵌入式实时操作系统价格昂贵,
所以当前嵌入式应用环境缺少一个开放的、有广泛支持的、支持多任务而又廉价
的高效嵌入式实时操作系统。
Linux 作为开源操作系统的代表,可以免费使用和自由传播,它的目的是建
立不受任何商业化软件的版权制约、全世界都可以自由使用的类似于 Unix 操作系
统。Linux 是一套类 Unix 操作系统,经过十几年的发展,Linux 已经迅速成长为一
个功能强大性能稳定的通用操作系统:它支持多用户和多线程,支持 TCP/IP 网络
协议,具有用户友好界面和完善的开发模式,而且通过很多程序员的努力,大部
分基于 UNIX 的应用都在 Linux 之上也实现了,由于它的成熟和强健,Linux
用日益广泛[1],很多大学、研发机构开始基于 Linux 操作系统构建实时操作系统,
并在定制 Linux 系统后应用到嵌入式领域。这主要由于 Linux 具有如下一些优点:
首先为嵌入式系统上提供功能全面的桌面计算(Desktop Computing)其次由于其功
能模块的低耦合性使得定制个性化的系统变得非常方便,最后并且最重要的是
Linux 操作系统免费开源,使用 Linux 不需要支付任何费用。最后这一特性使得越
来越多的程序员加入到 Linux 的开发行列中,不断提高 Linux 的实用性,但是因为
Linux 是作为通用操作系统出现的,它具有通用操作系统共同的目标:
⑴公平:所有的任务都应该被公平对待,他们可以公平的共享所有的资源;
⑵有效:操作系统应该使用资源管理策略,可以优化对所有任务实现平均最
短响应时间;
⑶友好:操作系统应该易于使用,而且防止用户造成灾难性错误。
这些特性使得 Linux 所以应用在嵌入式实时环境肯定会有不足,因为对于实时
操作系统,追求公平和效率得重要性并没有追求实时性能的要求重要。实际上,
实时系统更倾向于不公平的调度,来保证紧急的 job 可以及时优先获得资源来完成
执行。
尽管新的 Linux 版本已经实现了实时性支持,允许应用被定义成一个实时 job
但是这个支持还是不够的。它只是简单的给实时 job 比非实时进程更高的优先级,
首先他没有给实时任务 job 时间限制如截止期限,负载或者周期的定义,所以 Linux
不能为实时 job 提供响应时间的保证。实时 jobs 的执行可能被延迟,而这种延迟
是用户不希望发生的,如系统服务的中断、网络策略处理等;然后许多其他也会
阻塞实时任务的执行并且引起优先级反转的事件也没有得到处理。
实时操作系统就是为了满足那些对响应时间要求苛刻的应用而开发,保证所有
任务都在规定时间内正确完成的操作系统,即必须满足时序可预测性(timing
摘要:

I摘要利用Linux操作系统搭建嵌入式应用系统是近年来在嵌入式应用中出现最多的方案。Linux操作系统在众多通用操作系统之中脱颖而出的原因有源代码开放,成本低,可以为嵌入式系统提供全功能的桌面计算等优点;但是Linux作为通用和分时操作系统的本质属性导致Linux的实时性不强,如在运行内核线程时Linux关闭中断,计时器的精度不够等,但是随着Linux在实时应用领域中的使用日益广泛,改善Linux的实时性的需求日益迫切。与此同时,作为实时操作系统设计的VxWorks操作系统则因为其卓越的实时性被广泛应用于对实时性要求苛刻的尖端领域,它的优点主要体现在系统开销小,进程调度、进程间通信、中断处理等...

展开>> 收起<<
提高LINUX实时性技术的研究与实现.pdf

共62页,预览7页

还剩页未读, 继续阅读

作者:高德中 分类:高等教育资料 价格:15积分 属性:62 页 大小:1.52MB 格式:PDF 时间:2024-11-19

开通VIP享超值会员特权

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