一种Linux系统的任务调度方法、系统及相关装置制造方法及图纸

技术编号:20362713 阅读:17 留言:0更新日期:2019-02-16 16:27
本申请所提供的一种Linux系统的任务调度方法,包括:确定任务的执行需求类别;若任务为硬实时任务,则为任务设定松弛时间,并根据松弛时间利用优先调度算法对任务进行任务调度。若任务为软实时任务或非实时任务,采用轮转调度算法对任务进行任务调度。根据任务的实时性将任务划分为三类,实现三类任务对应两条任务队列。可以保证紧急需要执行的任务也即硬实时任务可以在规定的松弛时间内完成,提高对于硬实时任务的调度效率,提高Linux系统的任务调度性能,从而满足Linux系统的嵌入式需求。本申请还提供一种Linux系统的任务调度系统、计算机可读存储介质和一种终端,具有上述有益效果。

【技术实现步骤摘要】
一种Linux系统的任务调度方法、系统及相关装置
本申请涉及软件系统领域,特别涉及一种Linux系统的任务调度方法、系统、一种计算机可读存储介质和一种终端。
技术介绍
最近几年,在日常生活、工业控制、军事、航空航天等方面,嵌入式系统都有着非常广泛的应用。嵌入式系统目前主要有:WindowsCE、VxWorks、QNX等,它们都具有较好的实时性、系统可靠性、任务处理随机性等优点,但是它们的价格普遍偏高。而嵌入式Linux以其非常低廉的价格,可以大大的降低成本,逐渐成为嵌入式操作系统的首选。但是,作为通用操作系统的Linux,由于其在实时应用领域的技术障碍,要应用在嵌入式领域,还必须对Linux内核作必要的改进。最重要的是,现在的Linux系统缺乏有效的任务调度以满足嵌入式需求。因此如何在嵌入式Linux系统实现任务调度室本领域技术人员亟需解决的技术问题。
技术实现思路
本申请的目的是提供一种Linux系统的任务调度方法、系统、一种计算机可读存储介质和一种终端,解决现有的Linux系统中的任务调度难以满足嵌入式需求的问题。为解决上述技术问题,本申请提供一种Linux系统的任务调度方法,具体技术方案如下:当检测到任务进入所述Linux系统后,确定所述任务的执行需求类别;所述执行需求类别包括硬实时任务、软实时任务和非实时任务;若所述任务为所述硬实时任务,则为所述任务设定松弛时间,并根据所述松弛时间利用优先调度算法对所述任务进行任务调度。若所述任务为所述软实时任务或所述非实时任务,采用轮转调度算法对所述任务进行任务调度。其中,确定所述任务的执行需求类别包括:根据所述Linux系统中的task_struct属性中policy的取值确定所述任务的执行需求类别。其中,还包括:若所述Linux系统存在软中断,判断是否存在所述硬实时任务需要执行;若是,在所述软中断的前半部分执行结束后,先执行所述硬实时任务,再执行所述软中断的后半部分。其中,在所述任务进入所述Linux系统前,还包括:提高所述Linux系统的内核定时参数频率或提高系统时钟的分辨率。本申请还提供一种Linux系统的任务调度系统,包括:确定模块,用于当检测到任务进入所述Linux系统后,确定所述任务的执行需求类别;所述执行需求类别包括硬实时任务、软实时任务和非实时任务;第一调度模块,用于若所述任务为所述硬实时任务,则为所述任务设定松弛时间,并根据所述松弛时间利用优先调度算法对所述任务进行任务调度。第二调度模块,用于若所述任务为所述软实时任务或所述非实时任务,采用轮转调度算法对所述任务进行任务调度。其中,所述确定模块包括:确定单元,用于根据所述Linux系统中的task_struct属性中policy的取值确定所述任务的执行需求类别。其中,还包括:判断模块,用于若所述Linux系统存在软中断,判断是否存在所述硬实时任务需要执行;顺序执行模块,用于所述判断模块判断为是时,在所述软中断的前半部分执行结束后,先执行所述硬实时任务,再执行所述软中断的后半部分。其中,还包括:计时优化模块,用于提高所述Linux系统的内核定时参数频率或提高系统时钟的分辨率。本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任务调度方法的步骤。本申请还提供一种终端,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的任务调度方法的步骤。本申请所提供的一种Linux系统的任务调度方法,包括:当检测到任务进入所述Linux系统后,确定所述任务的执行需求类别;所述执行需求类别包括硬实时任务、软实时任务和非实时任务;若所述任务为所述硬实时任务,则为所述任务设定松弛时间,并根据所述松弛时间利用优先调度算法对所述任务进行任务调度。若所述任务为所述软实时任务或所述非实时任务,采用轮转调度算法对所述任务进行任务调度。本申请根据任务的实时性将任务划分为三类,即硬实时任务、软实时任务和非实时任务,实现三类任务对应两条任务队列。可以保证紧急需要执行的任务也即硬实时任务可以在规定的松弛时间内完成,提高对于硬实时任务的调度效率,提高Linux系统的任务调度性能,从而满足Linux系统的嵌入式需求。本申请还提供一种Linux系统的任务调度系统、计算机可读存储介质和一种终端,具有上述有益效果,此处不再赘述。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本申请实施例所提供的一种Linux系统的任务调度方法的流程图;图2为本申请实施例所提供的一种Linux系统的任务调度系统结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。请参考图1,图1为本申请实施例所提供的一种Linux系统的任务调度方法的流程图,该任务调度方法包括:S101:当检测到任务进入所述Linux系统后,确定所述任务的执行需求类别;在此对于如何检测到任务进入Linux系统不作限定,通常由新的任务时,该新任务会自动进入任务队列,等待被处理。本步骤旨在对任务进行划分,按照执行需求类别进行划分成硬实时任务、软实时任务和非实时任务。硬实时任务要求系统确保任务执行最坏情况下的执行时间,即必须满足实时事件的响应时间的截止期限,否则,将引发致命的错误。软实时任务是指统计意义上的实时,一般整体吞吐量大或整体响应速度快,但不能保证特定任务在指定时期内完成。非实时任务对系统响应时间的要求则更低。在此对于如何确定任务的执行需求类别不作限定。优选的,可以根据所述Linux系统中的task_struct属性中policy的取值确定所述任务的执行需求类别。当然,还可以有其他确定方法,例如读取预设设置的实时性列表等等。划分任务类别的目的是针对不同的实时性任务,分别采用不同的调度方法进行处理。S102:若所述任务为所述硬实时任务,则为所述任务设定松弛时间,并根据所述松弛时间利用优先调度算法对所述任务进行任务调度。若任务为硬实时任务,即必须满足实时事件的响应时间的截止期限,此时在系统中为每一个任务设定松弛时间,在此对于松弛时间的设定方法不作限定。优选的,任务的松弛时间等于任务的截止期减去任务执行时间、当前时间,即:laxity=deadline-current_time-CPU_time_needed,系统优先执行具有最小松弛时间的任务。换句话说,系统按照松弛时间由短到长的顺序执行硬实时任务。为了严格保证硬实时任务的时限要求,本实施例中的Linux内核实时调度器采用了优先级调度算法,即对硬实时任务采用最小松弛时间优先调度算法MLF(Minimum-Laxity-FirstSchedulingAlg本文档来自技高网...

【技术保护点】
1.一种Linux系统的任务调度方法,其特征在于,包括:当检测到任务进入所述Linux系统后,确定所述任务的执行需求类别;所述执行需求类别包括硬实时任务、软实时任务和非实时任务;若所述任务为所述硬实时任务,则为所述任务设定松弛时间,并根据所述松弛时间利用优先调度算法对所述任务进行任务调度;若所述任务为所述软实时任务或所述非实时任务,采用轮转调度算法对所述任务进行任务调度。

【技术特征摘要】
1.一种Linux系统的任务调度方法,其特征在于,包括:当检测到任务进入所述Linux系统后,确定所述任务的执行需求类别;所述执行需求类别包括硬实时任务、软实时任务和非实时任务;若所述任务为所述硬实时任务,则为所述任务设定松弛时间,并根据所述松弛时间利用优先调度算法对所述任务进行任务调度;若所述任务为所述软实时任务或所述非实时任务,采用轮转调度算法对所述任务进行任务调度。2.根据权利要求1所述的任务调度方法,其特征在于,确定所述任务的执行需求类别包括:根据所述Linux系统中的task_struct属性中policy的取值确定所述任务的执行需求类别。3.根据权利要求1所述的任务调度方法,其特征在于,还包括:若所述Linux系统存在软中断,判断是否存在所述硬实时任务需要执行;若是,在所述软中断的前半部分执行结束后,先执行所述硬实时任务,再执行所述软中断的后半部分。4.根据权利要求1所述的任务调度方法,其特征在于,在所述任务进入所述Linux系统前,还包括:提高所述Linux系统的内核定时参数频率或提高系统时钟的分辨率。5.一种Linux系统的任务调度系统,其特征在于,包括:确定模块,用于当检测到任务进入所述Linux系统后,确定所述任务的执行需求类别;所述执行需求类别包括硬实时任务、软实时任务和非实时任务;第一...

【专利技术属性】
技术研发人员:杨文浩
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1