欢迎来到天天文库
浏览记录
ID:33753299
大小:306.59 KB
页数:5页
时间:2019-02-28
《linux操作系统实时性的分析与改进策略》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据2008年第6期No,6,2008九江学院学报JournalofjiujiangUniversity(总第149期)(SumNO149)Linux操作系统实时性的分析与改进策略木徐德陈亚军(西华师范大学计算机学院四川南充637000)摘要:Linux已经成为一个流行的嵌入式操作系统,但在实时应用中有些不足。本文在详细分析Linux实时性的基础上。从双内核结构、定时器的细粒度化、可抢占式内核和实时调度策略等四个方面做了改进,以增强系统的实时性。关键词:嵌入式系统;实时性;实时调度策略中图分类号:TP316文献标识码:A
2、文章编号-1673-4580(2008)06-0016一(04)嵌入式系统是以应用为中心、以计算机技术为基础,软硬件可裁减,适用应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统⋯。众所周知,Linux已经成为一个流行的嵌入式操作系统,而Linux是按照分时系统的目标设计的,进程调度强调平衡各进程之间的响应时间来保证公平的CPIJ时间占用,因此,本身为一个通用的分时操作系统而非真正意义上的实时系统。尽管Linux系统已经加入了一些实时处理的支持,包括支持大部分的POSIX标准中的实时功能,支持多任务多线程,具有
3、丰富的通信机制等,但是它还是没有满足嵌人式系统所要求的实时性。为了保证在嵌入式系统中的实时性,必须采用一定的策略加以改进。本文从双内核结构、定时器的细粒度化、可抢占式内核和实时调度策略四个方面对Linux的实时性做了改进,给出具体的算法思想或数据结构。lLinux系统实时性的分析尽管Linux在内核中加入了提高中断性能和调度响应时间的改进,但其内核设计关注于应用程序的吞吐量,而在实时方面存在不足,主要表现在以下几个方面:(1)频繁关中断引起中断丢失,导致由中断触发的实时任务不能被立即被调度执行。如果低优先级的进程由于进入临界
4、区或者为了尽快完成任务而关闭了中断,那么即使有高优先级实时进程的中断发生,系统也无法响应。这种情况在实时系统中是不允许发生的。(2)粗糙的时钟粒度心1不能够提供精确的定时以满足实时应用微秒级的响应需求。时钟管理是操作系统的脉搏,操作系统环境建立之后,任务的执行和中止在很多情况下都是由时钟直接或间接唤起的。时钟也是许多操作系统基本活动的基准。系统用它来维持系统时间,监督进程运行,另外它还是进程调度的重要依据。通常Linux的时钟粒度被设置为10ms,而实时应用一般都需要微秒级的响应精度,显然,10ms的时钟粒度不能满足实时应用
5、的需求。(3)Linux内核的不可抢占性。Linux不能保证在任一时刻系统所运行的进程是具有最高优先级的进程,这主要是由于被动调度和优先级反转等问题造成的。(4)缺乏有效的实时任务调度机制和调度算法【3】。Linux使用的是基于优先级的任务调度策略,这种调度策略不能保证实时任务按时完成。Linux虽然给实时进程提供了较高的优先级,但是并没有加入时间限制,如完成的最后期限、应在多长时间内完成、执行周期等。Limtx的基于时间片的调度策略可能使得一个实时进程在一个时间片内未完成,其优先级将降低,从而可能造成到·基金项目:本文得到
6、四川教育厅重点科研项目(0727_/)35)的支持。收稿日期:2008一07—06作者简介:徐德(1982一),男,四川苍溪人,硕士,西华师范大学计算机学院教师。研究方向为嵌入式系统开发。万方数据2008年第6期九江学院学报·17·截止时间实时任务无法完成。2Linux实时性改进策略2.1双内核法该方法通过在系统的最底层增加一个实时核心层来实现,实时核心层负责硬件管理并提供实时任务管理,Linux核心被看作是实时核心中优先级最低的任务来调度,只有当没有可运行的实时任务时Linux核心才被调度。对于实时内核来说,它始终不关闭硬
7、件中断,可以接受所有的中断信号。当中断信号需要实时进程来处理时,实时进程将抢占Linux内核;如果中断信号需要Linux内核来处理时,则由实时内核将信号传给Linux内核。实时内核中提供了一个用来模拟Linux内核的关中断情况:l表示Linux内核打开中断,0表示Linux关闭中断;实时内核在中断到来的时候检查该标志位,如果该位是1,立刻把中断传给Linux内核,否则,将所有待处理的中断放到一个队列里,直到Linux打开中断时才把它们传给Linux内核。双内核实时系统架构如图1所示:图1双内核架构在双内核方法中,实时进程和普
8、通进程需要通信,方法有:共享内存和FIFO设备接口。因为实时内核只调度实时任务,所以可以实现一个效率极高的可抢占调度算法和任务切换算法。2.2定时器的细粒度化该改进方案借鉴了KURT的思路,所不同的是提供了与标准Linux核心时钟并行运行的一个具有精密刻度的实时核心时钟处理系统(用于对实时
此文档下载收益归作者所有