一种进程调度方法技术

技术编号:12835553 阅读:87 留言:0更新日期:2016-02-10 23:56
本发明专利技术公开了一种进程调度方法,该方法包括:将linux系统内的所有进程任务分为多个优先级;其中,实时进程任务的优先级高于交互进程任务的优先级,交互进程任务的优先级高于普通进程任务的优先级;将每一个优先级里面的所有进程任务作为一个进程任务组,对每个优先级里面的进程任务组设定组时间片,进行组间调度;若进程任务组的组时间片用完,将组内剩余进程任务加入到比当前优先级低一级的优先级里面的进程任务组中。该方法实现提高系统的整体响应速度。

【技术实现步骤摘要】

本专利技术涉及linux进程调度
,特别是涉及。
技术介绍
目前,随着linux操作系统的发展,系统的应用范围越来越广,从大型服务器到便携式嵌入式设备,都对Linux操作系统的进程调度提出了不同的需求。对于不同的应用场景,其进程调度的需求是不同的。在大型服务器上更强调任务的公平性,而在桌面环境下则更追求交互任务的优先响应。BFS是一个进程调度器,是专门为linux桌面环境所设计的内核调度器,已有的BFS调度器采用的进程调度方法是采用给进程分配不同的优先级组,从高到低调度不同的优先级组,组内则按照进程的deadline调度。已有的BFS调度器将进程分为4个大类,即realtime、SCHED_IS0、SCHED_N0RMAL 和 SCHED_IDELPR0,并将所有进程分配了 103 个优先级。但是采用现有的BFS调度器进行进程调度,优先级越多,低优先级进程等待调度的时间就越长,而且BFS调度器分配给进程的时间片有些不合理,每个进程的时间片是由优先级预先分配好的,不能实时调整,这样都导致系统的整体响应速度很低。
技术实现思路
本专利技术的目的是提供,以实现提高系统的整体响应速度。为解决上述技术问题,本专利技术提供,该方法包括:将linux系统内的所有进程任务分为多个优先级;其中,实时进程任务的优先级高于交互进程任务的优先级,交互进程任务的优先级高于普通进程任务的优先级;将每一个优先级里面的所有进程任务作为一个进程任务组,对每个优先级里面的进程任务组设定组时间片,进行组间调度;若进程任务组的组时间片用完,将组内剩余进程任务加入到比当前优先级低一级的优先级里面的进程任务组中。优选的,所述对每个优先级里面的进程任务组设定组时间片,进行组间调度之后,还包括:每个进程任务组的进程任务按照默认时间片进行组内调度,按照默认时间片进行调度完成之后,再按照deadline调度方式对进程任务组进行组内调度。优选的,所述默认时间片=组间时间片/组内进程数。优选的,每一个优先级对应相应的一组进程任务组。优选的,所述将linux系统内的所有进程任务分为多个优先级,包括:将linux系统内所有进程任务分为三个大类,所述三个大类为SCHED_REALHME、SCHED_10 和 SCHED_N0RMAL ;其中,SCHED_REALHME 映射有 50 个优先级,SCHED_10 映射有 1个优先级,SCHED_N0RMAL映射有一个优先级,所述三个大类包括53个优先级。优选的,所述SCHED_REALHME对应实时进程任务,SCHED_REALTIME的优先级最高;所述SCHED_1对应交互进程任务,SCHED_1的优先级排第二 ;所述SCHED_NORMAL对应普通进程任务,SCHED_NORMAL的优先级最低。优选的,每个优先级有一个队列queue,队列queue用于存储对应优先级的进程任务,所有的队列queue的状态映射到一个位图文件bitmap上;其中,所述队列queue为所述进程任务组。优选的,若所述队列queue中存在可被调度的进程,所述队列queue对应的位图文件bitmap上的位设置为1。本专利技术所提供的,将linux系统内的所有进程任务分为多个优先级;其中,实时进程任务的优先级尚于交互进程任务的优先级,交互进程任务的优先级尚于普通进程任务的优先级;每一个优先级里面的所有进程任务作为一个进程任务组,对每个优先级里面的进程任务组设定组时间片,进行组间调度;若进程任务组的组时间片用完,将组内剩余进程任务加入到比当前优先级低一级的优先级里面的进程任务组中。可见,将系统内进程分为多个优先级,实时进程任务的优先级 > 交互进程任务的优先级 > 普通进程任务的优先级,不同优先级的任务分组,各组设定组时间片,进行组间调度,若组时间片用完则将组内剩余任务加入到低一个优先级的组中。在调度的过程中,是从高优先级到低优先级遍历进行,优先调度高优先级的组,并设定组时间片,若组中的进程用完该组时间片后,仍有进程未运行完,则将剩余进程加入到下一优先级组中,从而让低优先级的组可以与高优先级的组竞争,增加了公平性,如此考虑了 linux系统桌面环境下进程调度时,优先满足交互式任务,减少了优先级的数目,从而减少低优先级分组的等待时间,增加公平性,即组间调度中低优先级队列有机会和高优先级队列竞争,增加了公平性,所以该方法保证交互式任务优先响应,同时又增加了公平性,提高了系统的整体响应速度。【附图说明】为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术所提供的的流程图;图2为任务进程优先级与队列queue对应关系图;图3为组间调度示意图;图4为组内调度示意图。【具体实施方式】本专利技术的核心是提供,以实现提高系统的整体响应速度。为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参考图1,图1为本专利技术所提供的的流程图,该方法应用于BFS调度器,该方法包括:S11:将linux系统内的所有进程任务分为多个优先级;其中,实时进程任务的优先级高于交互进程任务的优先级,交互进程任务的优先级高于普通进程任务的优先级;其中,进程任务组将linux系统内的所有进程任务分为多个优先级的过程为将linux系统内所有进程任务分为三个大类,进程任务组三个大类为SCHED_REALHME、SCHED_10 和 SCHED_N0RMAL ;其中,SCHED_REALHME 映射有 50 个优先级,SCHED_10 映射有 1个优先级,SCHED_N0RMAL映射有一个优先级,进程任务组三个大类包括53个优先级。系统内进程分为多个优先级,实时进程任务的优先级 > 交互进程任务的优先级 > 普通进程任务的优先级;其中,进程任务组SCHED_REALHME对应实时进程任务,SCHED_REALTIME的优先级最高;进程任务组SCHED_10对应交互进程任务,SCHED_10的优先级排第二 ;进程任务组SCHED_N0RMAL对应普通进程任务,SCHED_N0RMAL的优先级最低。S12:将每一个优先级里面的所有进程任务作为一个进程任务组,对每个优先级里面的进程任务组设定组时间片,进行组间调度;其中,每一个优先级对应相应的一组进程任务组。组间调度时,设定组时间片,对于超时的进程降到下一个优先级。其中,对每个优先级里面的进程任务组设定组时间片,进行组间调度之后,每个进程任务组的进程任务按照默认时间片进行组内调度,按照默认时间片进行调度完成之后,再按照截止时间调度方式即deadline调度方式对进程任务组进行组内调度。进程任务组默认时间片=组间时间片/组内进程数,组内进程数即为组内进程任务的数本文档来自技高网
...

【技术保护点】
一种进程调度方法,其特征在于,包括:将linux系统内的所有进程任务分为多个优先级;其中,实时进程任务的优先级高于交互进程任务的优先级,交互进程任务的优先级高于普通进程任务的优先级;将每一个优先级里面的所有进程任务作为一个进程任务组,对每个优先级里面的进程任务组设定组时间片,进行组间调度;若进程任务组的组时间片用完,将组内剩余进程任务加入到比当前优先级低一级的优先级里面的进程任务组中。

【技术特征摘要】

【专利技术属性】
技术研发人员:邓宇羽
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京;11

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

1