一种基于机顶盒嵌入式操作系统实时调度方法

文档序号:7900006阅读:248来源:国知局
专利名称:一种基于机顶盒嵌入式操作系统实时调度方法
技术领域
本发明涉及通信技术领域,尤其涉及一种基于机顶盒嵌入式操作系统实时调度方法。
背景技术
嵌入式数字电视操作系统由于硬件条件和产品需求的不同,需要不同的系统内核模块,项目通过内核裁减、系统移植,内核重编译等技术的研究,研发机顶盒终端嵌入式操作系统的个性定制,实现不同产品嵌入式操作系统的定制。另一方面,面向三网融合的交互服务具有多任务、并发性等特点,要求嵌入式操作系统具有更好的并发任务调度管理机制。 并研发多任务的并发调度机制,多任务内存管理机制,多任务优先级响应机制等技术,实现对嵌入式数字电视操作系统并发任务调度管理。同时,媒体服务和交互应用服务都具有实时响应的特点,开展实时多任务的操作系统(RTOS)内核的研究也是非常必要的,从分时调度、中断响应、上下文切换等方面进行研究,提高操作系统的实时性、并发任务调度等技术, 实现高效、稳定的嵌入式数字电视操作系统实时响应。近年来,人们对于Linux内核实时性改造提出了一些方法和设想,它们采用了不同的思路和技术方案。归纳总结,支持Linux的硬实时性一般有两种策略一种是直接修改 Linux内核,重新编写一个由优先级驱动的实时调度器(Real-time kheduler),替换原有内核中的进程调度器sched. c,KURT是采用这一方案较为成功的实时Linux操作系统;另外一种是在Linux内核之外,以可加载内核模块(Loadable Kernel Module)的形式添加实时内核,确保其高响应特性,实时内核接管来自硬件的所有中断,并依据是否是实时任务决定是否直接响应。新墨西哥科技大学的RT-Linux,就是基于这种策略而开发的。以上两种策略有其借鉴之处,但如果综合考虑任务响应、内核抢占性、实时调度策略等几个影响操作系统实时性能的重要方面,它们还不能很好的满足实时性问题。尽管Linux本身提供了一些支持实时性的机制,然而,由于Linux系统是以高的吞吐量和公平性为追求目标,基本上没有考虑实时应用所要满足的时间约束,它只是提供了一些相对简单的任务调度策略。因此,实时性问题是将Linux应用于嵌入式系统开发的一大障碍,无法在硬实时系统中得到应用。Linux在实时应用中的技术障碍具体表现在(I)Linux系统时钟精度太过粗糙,时钟中断周期为10ms,使得其时间粒度过大, 加大了任务响应延迟。(2)Linux的内核是不可抢占的,当一个任务通过系统调用进入内核态运行时,一个具有更高优先级的进程,只有等待处于核心态的系统调用返回后方能执行,这将导致优先级逆转。实时任务执行时间的不确定性,显然不能满足硬实时应用的要求。(3) Linux采用对临界区操作时屏蔽中断的方式,在中断处理中是不允许进行任务调度的,从而抑制了系统及时响应外部操作的能力。(4)缺乏有效的实时任务调度机制和调度算法。针对这些问题,利用Linux作为底层操作系统,必须增强其内核的实时性能,从而构建出一个具有实时处理能力的嵌入式系统,适应机顶盒嵌入式领域应用的需要。

发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种基于机顶盒嵌入式操作系统实时调度方法,分析了 Linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从提出了改善Linux实时性能的改进措施,保证了机顶盒操作系统的实时性,保证了电视流数据的质量。为了解决上述问题,本发明提出了一种基于机顶盒嵌入式操作系统实时调度方法,所述方法包括接收进入嵌入式操作系统的任务;根据进程任务管理taSk_MrUCt属性识别任务的实时性的类型;若所述任务的实时性的类型为硬实时,则采用最小松弛时间优先调度算法MLF对任务进行处理;若所述任务的实时性的类型为软实时,则采用原内核的时间片轮转法RR调度算法对任务进行处理。所述步骤之前还包括对taskjtruct属性进行修改,增加MLF调度策略,并按taskjtruct中的policy 的取值来区分标识硬实时任务、或者软实时任务、或者非实时任务。所述硬实时为系统中确保任务执行最坏情况下的执行时间必须满足实时事件的响应时间的截止期限;软实时为统计意义上的实时,整体吞吐量大或整体响应速度快,但不能保证特定任务在制定时期内完成。所述根据taSk_Mruct属性识别任务的实时性的类型中包括将处于运行状态的任务进行任务队列的划分,将属于硬实时的任务放入硬实时任务队列,将属于软实时的任务、或者非实时的任务、或者空闲任务放入到软实时任务队列。在根据taskjitruct属性识别任务的实时性的类型之后,首先通过MLF调度器扫描任务,并提取属于硬实时的任务队列,通过MLF对任务进行调度处理。在根据taskjtruct属性识别任务的实时性的类型之后,首先采用原内核的RR调度算法对属于软实时的任务进行处理,之后,通过MLF调度器对硬实时的任务进行处理。在根据taSk_MrUCt属性识别任务的实时性的类型之后,同步对硬实时的任务或者软实时的任务进行调度处理。在本发明实施例中,基于增强Linux内核实时性的主流技术,从实时调度策略入手,提出了改善Linux实时性能的优化方法;针对Linux中缺乏实时调度机制和调度算法的问题,可以将目前采用的几种调度算法结合起来,实现一个通用的实时调度框架;针对长任务的存在使系统的实时性下降的问题,可以采用两种长任务分割方法来实现。通过分析 Linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从提出了改善Linux实时性能的改进措施,保证了机顶盒操作系统的实时性,保证了电视流数据的质量。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1是本发明实施例中的MLF调度流程图;图2是本发明实施例中的双队列任务运行示意图;图3是本发明实施例中的MLF双队列任务调用方法流程图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例中主要分析了 Linux的实时性,针对其在实时应用中的技术障碍, 在参考了与此相关研究基础上,从提出了改善Linux实时性能的改进措施,保证了机顶盒操作系统的实时性,保证了电视流数据的质量。将进入系统的所有任务按实时性分成三类 硬实时、软实时、非实时任务。硬实时要求系统确保任务执行最坏情况下的执行时间,即必须满足实时事件的响应时间的截止期限,否则,将引发致命的错误;软实时是指统计意义上的实时,一般整体吞吐量大或整体响应速度快,但不能保证特定任务在指定时期内完成。针对不同的实时性任务,分别采用不同的调度方法进行处理。为了严格保证硬实时任务的时限要求,改善的Linux内核实时调度器采用了优先级调度算法,目前最小松弛时间优先调度算法MLF(Minimum-Laxity-First Scheduling Algorithm)是动态优先级调度最常见的实时调度策略。它在系统中为每一个任务设定松弛时间(任务的松弛时间等于任务的截止期减去任务执行时间、当前时间)即=Iaxity = deadline current_time CPU_time_needed,系统优先执行具有最小松弛时间的任务。根据就绪队列的各任务的松弛时间来分配优先级,松弛时间最小的任务具有最高的优先级。为了提高Linux的实时性,我们设计了 MLF调度器,并把它作为可加载模块加入Linux内核中,在实现中需对内核进行相应的修改。其具体步骤如下Stepl 启动到机顶盒基本运行系统,系统内核加载MLF调度器;Step2 =MLF调度器扫描实时任务队列,以顺序方式找出任务松弛时间最小的任务调用。St印3 若找到实时任务,加载实时任务。为了区分任务的类型,对基本Linux的taSk_Struct属性进行改进,在其中增加 SCHED_MLF调度策略,并按taSk_Struct中的policy的取值来进行区分,分别用SCHED_ MLF, SCHED_RR, SCHED_0THER来标识硬实时、软实时、非实时任务。将处于运行状态的三类任务放入两个队列,硬实时任务放入harcLrealqueue队列,采用MLF调度算法,软实时和非实时任务放入n0n_real_qUeUe队列(空闲任务也在其中),沿用原内核的RR调度算法。 这两个队列可以用一个rur^queue的指针数组来指向,如图2所示。双队列任务运行过程与原内核的单运行队列执行流程的主要区别在首先,各硬实时任务采用了 MLF调度算法代替原内核的FIFO调度,提高了 Linux系统的实时性能。其次,在判断是否有软中断需要处理之前需判断硬实时任务队列是否为空,如果不为空,即使存在中断的后半部分需要处理,也要先调度硬实时任务投入运行,在硬实时队列为空的条件下才去处理中断的后半部分(因为中断的后半部分没有硬实时任务紧急)。最后,如果没有硬实时任务存在,则说明只有rim_qUeUe队列中有软实时或非实时任务存在,这时的处理方法和原内核对单运行队列的处理方法相同。这样改进后,可以明显提高硬实时任务的调度效率,而在没有硬实时任务时,系统性能没有变化。其具体步骤如下Stepl 启动到机顶盒基本运行系统,系统内核加载MLF调度器。St印2 把任务分成硬实时任务和软实时任务。St印3 =MLF调度器扫描硬实时任务队列,以顺序方式找出任务松弛时间最小的任
务调用。若没有硬实时任务,切换到内核自带的任务调度器调用软实时任务。需要说明的是,本发明实施例中主要实现方案中接收进入嵌入式操作系统的任务;根据进程任务管理taskjitruct属性识别任务的实时性的类型;若所述任务的实时性的类型为硬实时,则采用最小松弛时间优先调度算法MLF对任务进行处理;若所述任务的实时性的类型为软实时,则采用原内核的时间片轮转法RR调度算法对任务进行处理。这里在根据taskjtruct属性识别任务的实时性的类型之后,可以首先通过MLF 调度器扫描任务,并提取属于硬实时的任务队列,通过MLF对任务进行调度处理。具体的,这里可以是在根据taskjitruct属性识别任务的实时性的类型之后,首先采用原内核的RR调度算法对属于软实时的任务进行处理,之后,通过MLF调度器对硬实时的任务进行处理。进一步的,这里还可以在根据taSk_MrUCt属性识别任务的实时性的类型之后, 同步对硬实时的任务或者软实时的任务进行调度处理。在本发明实施例中,基于增强Linux内核实时性的主流技术,从实时调度策略入手,提出了改善Linux实时性能的优化方法;针对Linux中缺乏实时调度机制和调度算法的问题,可以将目前采用的几种调度算法结合起来,实现一个通用的实时调度框架;针对长任务的存在使系统的实时性下降的问题,可以采用两种长任务分割方法来实现。通过分析 Linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从提出了改善Linux实时性能的改进措施,保证了机顶盒操作系统的实时性,保证了电视流数据的质量。以上对本发明实施例所提供的,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种基于机顶盒嵌入式操作系统实时调度方法,其特征在于,所述方法包括接收进入嵌入式操作系统的任务;根据进程任务管理taskjitruct属性识别任务的实时性的类型;若所述任务的实时性的类型为硬实时,则采用最小松弛时间优先调度算法MLF对任务进行处理;若所述任务的实时性的类型为软实时,则采用原内核的时间片轮转法RR调度算法对任务进行处理。
2.如权利要求1所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,所述步骤之前还包括对taskjtruct属性进行修改,增加MLF调度策略,并按taskjtruct中的policy的取值来区分标识硬实时任务、或者软实时任务、或者非实时任务。
3.如权利要求2所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,所述硬实时为系统中确保任务执行最坏情况下的执行时间必须满足实时事件的响应时间的截止期限;软实时为统计意义上的实时,整体吞吐量大或整体响应速度快,但不能保证特定任务在制定时期内完成。
4.如权利要求3所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,所述根据taskjitruct属性识别任务的实时性的类型中包括将处于运行状态的任务进行任务队列的划分,将属于硬实时的任务放入硬实时任务队列,将属于软实时的任务、或者非实时的任务、或者空闲任务放入到软实时任务队列。
5.如权利要求1至4任一项所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,在根据taskjitruct属性识别任务的实时性的类型之后,首先通过MLF调度器扫描任务,并提取属于硬实时的任务队列,通过MLF对任务进行调度处理。
6.如权利要求1至4任一项所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,在根据taskjtruct属性识别任务的实时性的类型之后,首先采用原内核的RR调度算法对属于软实时的任务进行处理,之后,通过MLF调度器对硬实时的任务进行处理。
7.如权利要求1至4任一项所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,在根据taskjitruct属性识别任务的实时性的类型之后,同步对硬实时的任务或者软实时的任务进行调度处理。
全文摘要
本发明实施例公开了一种基于机顶盒嵌入式操作系统实时调度方法,所述方法包括接收进入嵌入式操作系统的任务;根据进程任务管理task_Struct属性识别任务的实时性的类型;若所述任务的实时性的类型为硬实时,则采用最小松弛时间优先调度算法MLF对任务进行处理;若所述任务的实时性的类型为软实时,则采用原内核的时间片轮转法RR调度算法对任务进行处理。通过实施本发明实施例,分析了Linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从提出了改善Linux实时性能的改进措施,保证了机顶盒操作系统的实时性,保证了电视流数据的质量。
文档编号H04N21/443GK102323895SQ20111025907
公开日2012年1月18日 申请日期2011年9月2日 优先权日2011年9月2日
发明者崔荣基, 李苗, 殷伟 申请人:广东中大讯通软件科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1