一种调度进程的方法、系统及计算机与流程

文档序号:12363142阅读:153来源:国知局
一种调度进程的方法、系统及计算机与流程

本发明涉及计算机技术领域,特别涉及一种调度进程的方法、系统及计算机。



背景技术:

随着linux操作系统的发展,系统的应用场景越来越广泛,不同的场景对于IO速度,进程切换时间都有不同的要求,因此对于不同的应用场景,其进程调度的需求是不同的,需要兼顾进程的公平性和调度的实时性。因此,如何在追求交互任务响应速度的同时,更好地保证进程调度的公平性,从而提高系统的整体响应速度,是本领域技术人员需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种调度进程的方法,该方法在追求交互任务响应速度的同时,更好地保证进程调度的公平性,从而提高系统的整体响应速度;本发明的另一目的是提供一种调度进程的系统及计算机。

为解决上述技术问题,本发明提供一种调度进程的方法,包括:

将系统内的进程根据进程任务类别分配到对应的优先级组中;

将各所述优先级组中的进程按照各进程的deadline分配到对应的优先级队列中;其中,所述优先级队列中进程按照各进程的deadline从小到大进行排队;

按照各所述优先级组的优先级从高到底的顺序依次调度各所述优先级组,且在各所述优先级组内按照优先级队列的优先级从高到底的顺序依次调度各优先级队列,各优先级队列中的进程按照排队顺序依次调度运行。

其中,还包括:为指定的优先级队列设置队列时间片;则在指定的优先级队列按照排队顺序开始调度进程时,对应的队列时间片开始计时,当队列时间片达到预定时间时,指定的优先级队列中存在未运行的进程时,将未运行的进程加入到比指定的优先级队列的优先级低一级的优先级队列中。

其中,将未运行的进程加入到比指定的优先级队列的优先级低一级的优先级队列中,包括:

将未运行的进程加入到比指定的优先级队列的优先级低一级的优先级队列的队尾。

其中,当比指定的优先级队列的优先级低一级的优先级队列调度进程时,按照排队顺序依次调度运行,并根据未运行的进程的deadline判断是否存在未运行的进程到达运行时间,若存在,则优先调度运行到达运行时间未运行的进程。

其中,将系统内的进程根据进程任务类别分配到对应的优先级组中,包括:

将系统内的进程根据进程任务类别分配到对应的优先级组中;其中,所述优先级组按照优先级从高到底的顺序依次是实时任务优先级组、交互任务优先级组、普通任务优先级组及空闲任务优先级组。

本发明还提供一种调度进程的系统,包括:

分优先级组模块,用于将系统内的进程根据进程任务类别分配到对应的优先级组中;

分优先级队列模块,用于将各所述优先级组中的进程按照各进程的deadline分配到对应的优先级队列中;其中,所述优先级队列中进程按照各进程的deadline从小到大进行排队;

调度模块,用于按照各所述优先级组的优先级从高到底的顺序依次调度各所述优先级组,且在各所述优先级组内按照优先级队列的优先级从高到底的顺序依次调度各优先级队列,各优先级队列中的进程按照排队顺序依次调度运行。

其中,还包括:

队列时间片设置模块,用于为指定的优先级队列设置队列时间片;

所述调度模块包括:

判断单元,用于在指定的优先级队列按照排队顺序开始调度进程时,对应的队列时间片开始计时,当队列时间片达到预定时间时,指定的优先级队列中是否存在未运行的进程;

降优先级单元,用于若存在未运行的进程,将未运行的进程加入到比指定的优先级队列的优先级低一级的优先级队列中。

其中,所述降优先级单元具体为将未运行的进程加入到比指定的优先级队列的优先级低一级的优先级队列的队尾的单元。

其中,所述分优先级组模块具体包括4个优先级组,所述优先级组按照优先级从高到底的顺序依次是实时任务优先级组、交互任务优先级组、普通任务优先级组及空闲任务优先级组。

本发明还提供一种计算机,包括:根据上述任一项所述的调度进程的系统。

本发明所提供的调度进程的方法,包括:将系统内的进程根据进程任务类别分配到对应的优先级组中;将各所述优先级组中的进程按照各进程的deadline分配到对应的优先级队列中;其中,所述优先级队列中进程按照各进程的deadline从小到大进行排队;按照各所述优先级组的优先级从高到底的顺序依次调度各所述优先级组,且在各所述优先级组内按照优先级队列的优先级从高到底的顺序依次调度各优先级队列,各优先级队列中的进程按照排队顺序依次调度运行;

可见,该方法在追求交互任务响应速度的同时,更好地保证进程调度的公平性,从而提高系统的整体响应速度;本发明还提供了一种调度进程的系统及计算机,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例所提供的调度进程的方法的流程图;

图2为本发明实施例所提供的优先级组内调度进程的示意图;

图3为本发明实施例所提供的优先级队列内调度进程的示意图;

图4为本发明实施例所提供的调度进程的系统的结构框图。

具体实施方式

本发明的核心是提供一种调度进程的方法,该方法在追求交互任务响应速度的同时,更好地保证进程调度的公平性,从而提高系统的整体响应速度;本发明的另一核心是提供一种调度进程的系统及计算机。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例所提供的调度进程的方法的流程图;该方法可以包括:

S100、将系统内的进程根据进程任务类别分配到对应的优先级组中;

其中,优先级组的个数及设定可以根据进程任务类别进行设置,例如实时任务类型,空闲任务类型等,为设置的优先级组分别设置优先级,按照优先级从高到低依次调度优先级组内的进程;因此,优先级组的设置优劣直接影响进程调度的公平性和调度的实时性。一般情况下可以设置4个优先级组,分别为实时任务优先级组realtime、交互任务优先级组SCHED_IO、普通任务优先级组SCHED_NORMAL、空闲任务优先级组SCHED_IDEL,且优先级组按照优先级从高到底的顺序依次是实时任务优先级组、交互任务优先级组、普通任务优先级组及空闲任务优先级组。

即设置优先级组简称为组,并为每个优先级组设置优先级,调度模块或者调度器优先从高优先级的组中选取进程来调度。组内进程按照顺序进行调度,如图2所示,这里可以设置组时间片,组时间片的大小根据组内进程调度运行时间确定。

S110、将各所述优先级组中的进程按照各进程的deadline分配到对应的优先级队列中;其中,所述优先级队列中进程按照各进程的deadline从小到大进行排队;

S120、按照各所述优先级组的优先级从高到底的顺序依次调度各所述优先级组,且在各所述优先级组内按照优先级队列的优先级从高到底的顺序依次调度各优先级队列,各优先级队列中的进程按照排队顺序依次调度运行。

其中,由于每个优先级组中的进程也至少为1个,一般情况下每个优先级组中的进程有多个,且同一个优先级组内的进程的重要程度也不完全一样,因此,需要为每个优先级组分配对应的优先级队列简称队列,每个优先级队列中的进程的重要程度类似。这里每个优先级组中的优先级队列的个数可以一致也可以不一致,根据用户的实际情况进行确定。这里优先级队列划分可以依据deadline时间段的先后顺序来进行划分。每个优先级队列具有自己的优先级,这里的优先级的设定可以根据deadline决定。例如将每个优先级组划分为10个优先级队列,这10个优先级队列的优先级从高到低按照deadline时间段先后顺序设定,即优先级最高的优先级队列的deadline时间越近,即该优先组内最开始调度该优先级队列,优先级最低的优先级队列的deadline时间越远,即最后调度。

具体过程:进行组内调度,组内设预定个数(例如10)个优先级队列,每个优先级队列内优先调度高优先级的进程。进程优先级高低根据进程的deadline计算。deadline越小则任务越紧急,所以会计算得到一个较高的优先级。同一优先级的进程在队列中等待的时间越久,它离deadline就越近,因此如果一个进程长时间没有得到调度,它优先级就会提高。从而保证任务时间片可以动态调整,保证任务公平性的同时,优先完成快到期的任务。每个组内设预定个数(例如10)个优先级。根据进程的deadline划分到不同的优先级中,当有进程等待时间过长,会提升优先级。即将进程按组分配分配,从高到低调度不同的优先级组,组内则按照进程的deadline调度,即队列中依次轮询调度。

举例说明上述过程:若该方法分为4个组,每个组又10个队列queue,则进程一共分为40个queue,每个queue对应不同的优先级,每个优先级有一个队列queue,用于存储同一优先级的所有进程。所有的queue的状态映射到一张bitmap上即每个queue对应bitmap中对应的位,只要queue中存在可以被调度的进程,那么对应bitmap上的位就置1。调度器遍历bitmap,对所有置1的queue进行调度。通过遍历bitmap,首先可以引导队列调度顺序,其次可以防止出现进程遗漏;提高系统可靠性。

基于上述技术方案,本发明实施例提供的调度进程的方法,可以在追求交互任务响应速度的同时,更好地保证进程调度的公平性,从而提高系统的整体响应速度。

基于上述技术方案,为了进一步保证进程调度的公平性和响应速度,可以为指定的优先级队列设置队列时间片;则在指定的优先级队列按照排队顺序开始调度进程时,对应的队列时间片开始计时,当队列时间片达到预定时间时,指定的优先级队列中存在未运行的进程时,将未运行的进程加入到比指定的优先级队列的优先级低一级的优先级队列中。即同一优先级的任务进入一个队列,队列有自己的时间片,时间片用完,剩下的任务降低优先级到下一队列。

其中,这里的队列时间片可以为每个优先级队列都进行设置,还可以为用户指定的优先级队列进行设定,例如当存在4个优先级组,每组内又10个优先级队列时,为每个优先级组内的优选级排前9的优先级队列设置队列时间片。具体设置情况根据用户实际需求进行确定。

这里的队列时间片起到计时的作用,即每个设置有队列时间片的优先级队列调度运行进程的时间不能超过队列时间片长度。具体计时可以按照加法或者减法方式进行,例如减法方式具体为:指定queue有一个队列时间片queue_time,队列中进程调度一次,queue_time会相应的减少。如果queu_time减为0后,queue中还有进程未执行完,则将剩下的进程优先级下降,从而保证高优先级任务不会占用太多时间,从而让高优先级进程和低优先级进程公平竞争,提高公平性。

具体降级的过称可以为将未运行的进程加入到比指定的优先级队列的优先级低一级的优先级队列的队尾;如图3所示,queue1中未执行完的进程添加到queue2中的队尾,即queue2调度进程时先调度queue2中原有进程,最后再按照添加的未运行进程的顺序调度添加进来的进程。

进一步为了避免添加的进程在deadline时还没有被执行,则大体上按照排队顺序依次调度运行,并需要实时根据未运行的进程的deadline判断是否存在未运行的进程到达运行时间,即判断添加进程是否存在有快到达deadline而还没有执行的进程,若存在,则优先调度运行到达运行时间未运行的进程;该进程调度完之后,再按照之前的顺序继续进行调度。

下面对本发明实施例提供的调度进程的系统及计算机进行介绍,下文描述的调度进程的系统及计算机与上文描述的调度进程的方法可相互对应参照。

请参考图4,图4为本发明实施例所提供的调度进程的系统的结构框图;该系统可以包括:

分优先级组模块100,用于将系统内的进程根据进程任务类别分配到对应的优先级组中;

分优先级队列模块200,用于将各所述优先级组中的进程按照各进程的deadline分配到对应的优先级队列中;其中,所述优先级队列中进程按照各进程的deadline从小到大进行排队;

调度模块300,用于按照各所述优先级组的优先级从高到底的顺序依次调度各所述优先级组,且在各所述优先级组内按照优先级队列的优先级从高到底的顺序依次调度各优先级队列,各优先级队列中的进程按照排队顺序依次调度运行。调度模块300可以具体为调度器。

基于上述技术方案,该系统还包括:

队列时间片设置模块,用于为指定的优先级队列设置队列时间片;

所述调度模块300包括:

判断单元,用于在指定的优先级队列按照排队顺序开始调度进程时,对应的队列时间片开始计时,当队列时间片达到预定时间时,指定的优先级队列中是否存在未运行的进程;

降优先级单元,用于若存在未运行的进程,将未运行的进程加入到比指定的优先级队列的优先级低一级的优先级队列中。

可选的,所述降优先级单元具体为将未运行的进程加入到比指定的优先级队列的优先级低一级的优先级队列的队尾的单元。

可选的,所述分优先级组模块100具体包括4个优先级组,所述优先级组按照优先级从高到底的顺序依次是实时任务优先级组、交互任务优先级组、普通任务优先级组及空闲任务优先级组。

本发明还提供一种计算机,包括:根据上述任一项所述的调度进程的系统。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的调度进程的方法、系统及计算机进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1