Linux操作系统实时性的分析与改进策略.pdf
《Linux操作系统实时性的分析与改进策略.pdf》由会员分享,可在线阅读,更多相关《Linux操作系统实时性的分析与改进策略.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2 0 0 8 年第6 期N o,6,2 0 0 8九江学院学报J o u r n a lo fj i u j i a n gU n i v e r s i t y(总第1 4 9 期)(S u mN O1 4 9)L i n u x 操作系统实时性的分析与改进策略木徐德陈亚军(西华师范大学计算机学院四川南充6 3 7 0 0 0)摘要:L i n u x 已经成为一个流行的嵌入式操作系统,但在实时应用中有些不足。本文在详细分析L i n u x 实时性的基础上。从双内核结构、定时器的细粒度化、可抢占式内核和实时调度策略等四个方面做了改进,以增强系统的实时性。关键词:嵌入式系统;实时性;实时调
2、度策略中图分类号:T P3 1 6 文献标识码:A 文章编号-1 6 7 3-4 5 8 0(2 0 0 8)0 6-0 0 1 6 一(0 4)嵌入式系统是以应用为中心、以计算机技术为基础,软硬件可裁减,适用应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。众所周知,L i n u x 已经成为一个流行的嵌入式操作系统,而L i n u x 是按照分时系统的目标设计的,进程调度强调平衡各进程之间的响应时间来保证公平的C P I J 时间占用,因此,本身为一个通用的分时操作系统而非真正意义上的实时系统。尽管L i n u x 系统已经加入了一些实时处理的支持,包括支持大部分的P
3、 O S I X 标准中的实时功能,支持多任务多线程,具有丰富的通信机制等,但是它还是没有满足嵌人式系统所要求的实时性。为了保证在嵌入式系统中的实时性,必须采用一定的策略加以改进。本文从双内核结构、定时器的细粒度化、可抢占式内核和实时调度策略四个方面对L i n u x 的实时性做了改进,给出具体的算法思想或数据结构。lL i n u x 系统实时性的分析尽管L i n u x 在内核中加入了提高中断性能和调度响应时间的改进,但其内核设计关注于应用程序的吞吐量,而在实时方面存在不足,主要表现在以下几个方面:(1)频繁关中断引起中断丢失,导致由中断触发的实时任务不能被立即被调度执行。如果低优先级
4、的进程由于进入临界区或者为了尽快完成任务而关闭了中断,那么即使有高优先级实时进程的中断发生,系统也无法响应。这种情况在实时系统中是不允许发生的。(2)粗糙的时钟粒度心1 不能够提供精确的定时以满足实时应用微秒级的响应需求。时钟管理是操作系统的脉搏,操作系统环境建立之后,任务的执行和中止在很多情况下都是由时钟直接或间接唤起的。时钟也是许多操作系统基本活动的基准。系统用它来维持系统时间,监督进程运行,另外它还是进程调度的重要依据。通常L i n u x 的时钟粒度被设置为1 0 m s,而实时应用一般都需要微秒级的响应精度,显然,1 0 m s 的时钟粒度不能满足实时应用的需求。(3)L i n
5、u x 内核的不可抢占性。L i n u x 不能保证在任一时刻系统所运行的进程是具有最高优先级的进程,这主要是由于被动调度和优先级反转等问题造成的。(4)缺乏有效的实时任务调度机制和调度算法【3】。L i n u x 使用的是基于优先级的任务调度策略,这种调度策略不能保证实时任务按时完成。L i n u x 虽然给实时进程提供了较高的优先级,但是并没有加入时间限制,如完成的最后期限、应在多长时间内完成、执行周期等。L i m t x 的基于时间片的调度策略可能使得一个实时进程在一个时间片内未完成,其优先级将降低,从而可能造成到基金项目:本文得到四川教育厅重点科研项目(0 7 2 7 _)3
6、5)的支持。收稿日期:2 0 0 8 一0 7 0 6作者简介:徐德(1 9 8 2 一),男,四川苍溪人,硕士,西华师范大学计算机学院教师。研究方向为嵌入式系统开发。万方数据2 0 0 8 年第6 期九江学院学报1 7 截止时间实时任务无法完成。2L i n u x 实时性改进策略2 1 双内核法该方法通过在系统的最底层增加一个实时核心层来实现,实时核心层负责硬件管理并提供实时任务管理,L i n u x 核心被看作是实时核心中优先级最低的任务来调度,只有当没有可运行的实时任务时L i n u x 核心才被调度。对于实时内核来说,它始终不关闭硬件中断,可以接受所有的中断信号。当中断信号需要实
7、时进程来处理时,实时进程将抢占L i n u x 内核;如果中断信号需要L i n u x 内核来处理时,则由实时内核将信号传给L i n u x 内核。实时内核中提供了一个用来模拟L i n u x 内核的关中断情况:l 表示L i n u x 内核打开中断,0 表示L i n u x 关闭中断;实时内核在中断到来的时候检查该标志位,如果该位是1,立刻把中断传给L i n u x内核,否则,将所有待处理的中断放到一个队列里,直到L i n u x 打开中断时才把它们传给L i n u x 内核。双内核实时系统架构如图1 所示:图1 双内核架构在双内核方法中,实时进程和普通进程需要通信,方法有
8、:共享内存和F I F O 设备接口。因为实时内核只调度实时任务,所以可以实现一个效率极高的可抢占调度算法和任务切换算法。2 2 定时器的细粒度化该改进方案借鉴了K U R T 的思路,所不同的是提供了与标准Li n u x 核心时钟并行运行的一个具有精密刻度的实时核心时钟处理系统(用于对实时任务进行定时),与原Li n u x 核心时钟区别开来,不但提高了系统的稳定性和效率,而且独立的核心时钟易于维护改进。方案利用X 8 6 体系C P U 的T S C 提供高精确度的标度。系统中增加了一个高精确度定时器之后,需要维护两个与时钟有关的中断请求队列:系统时钟中断请求队列(t i m e r i
9、 r q)和H R T 中断请求队列(h r t t i m e r 一岫),它们分别对应各自的中断服务程序。在内核中添加C O N F I G H R T R E Q 宏定义来控制高精确度时钟系统的运行,如果内核中配置了C O N FI G H R T R E Q,则高精度定时器机制有效,否则H R T 不起作用。下面给出关键的数据结构h r t t i m e r s u b e x 2 p i r e s 来指示在一个高精确度定时器到期时处理j i f f y 值之外的机器指令周期数,该成员提供了高精确度的判断标准。s t r u e th r t t i m e rs t r u c
10、tr b n o d en o d e;事内嵌的红黑树节点k t i m e ts u b e x p i r e s;奉期满时刻幸e n u mh r t t i m e r s t a t es t a t e;掌定时器状态宰i n t(3f u n c t i o n)(s t r u c th r t t i m e r3);s t r e e th r t i m e r b a s e3 b a s e;定时器基准幸#f f d e fC O N F I G H R T R E Q i n t m o d e;木定时器模式搴s t r u c tl i s t h e a dc b
11、 e n t r y;书回调函数队列木#e n d i f;除此之外,还需要修改与定时器相关的函数,包括初始化定时器数据结构i n i t t i m e r(),激活定时器的函数a d d t i m e r(),更改已经激活的定时器超时时间的函数m o d t i m e r()等。2 3 内核的抢占性设计为了解决L i n u x 实现硬实时的最大障碍,就必须使L i n u x 内核成为完全可被抢占实时内核。改进方案通过以下2 种方式实现了L i n u x 核心的可抢占性。2 3 1 中断处理线程化 4 1基本思想:m Q t a s k在中断初始化后,被赋值为相应的中断服务线程的结
12、构。每当硬件中断发生时,底层中断处理函数唤醒相应的中断服务线程,设置调度标志,随后的s c h e d u l e()函数将在合适的时机选择执行 万方数据1 8 徐德,等:L i n u x 操作系统实时性的分析与改进策略服务线程。中断服务线程(对用户而言可以说是驱动程序)初始状态主动放弃C P U,s c h e d u l e()函数将选择其他进程,直到它被底层的相应中断唤醒;进入中断服务实体任务,如读写I O 端口等。在以上机制中,每个中断线程也被赋予不同的优先级。用户进程也可以和中断线程一起竞争C P U 时间。因此,在某些特殊情况下,一些中断线程的优先级可以被设置得低于用户进程的优先
13、级,例如,在发生优先级逆转的情况下。2 3 2 强制二元信号量的互斥锁机制为了支持可抢占核心,改进方案通过强二元信号量的互斥锁改进机制实现了对临界资源的保护。L i n u x 中的互斥锁机制采用了硬件锁的方式,普遍基于s p i nk k-i q 和s p i n u n l o c k i r q 的原语引申,采用了强二元信号量的互斥锁机制改进方案,实现了较为高效的互斥锁且这种设计易于实现复杂的互斥锁协议,如P I P,P C P。基本思想:采用了一个阻塞进程队列q u e u e,由于w a i t 调用而被阻塞的进程将进入这一队列。当持有锁的进程退出关键数据区时,发出s i g n a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 操作系统 实时 分析 改进 策略
限制150内