动态调整进程的优先值的调度方法

文档序号:6580430阅读:220来源:国知局
专利名称:动态调整进程的优先值的调度方法
技术领域
本发明是关于一种调度方法,特别是关于一种动态调整进程的优先值的调度方 法。
背景技术
许多现今计算机的操作系统利用多任务调度器来提供多的计算机的任务(task, 例如程序或进程)同时运行。其概念是将很短的时间片(time slice)连续分配给各个程序 /进程(process)的线程(thread)执行。由于每个时间片的长度很小(一般在20至120 毫秒),因此以人类对时间的感知而言,这些任务看起来是同时运行。而分配时间片给任务 的调度方法中,以根据任务的优先值决定执行顺序的方法为大部分。例如在Linux操作系统中,可以由进程所具有的一任务结构(task struct)来 得知进程的种类以及优先值。任务结构中可包括四个参数策略(policy)、动态优先级 (counter)、静态优先级(priority),以及实时优先级(rt_priority)。其中策略参数纪录 此进禾呈为一实时进禾呈(real time process)或是一普通进禾呈(conventional process)。若 进程为实时进程,则其优先权为实时优先级;而若进程为普通进程,则其优先权为动态优先 级以及静态优先级。静态优先值即为一般所称的(普通进程的)优先级,代表进程所能获得而被中央 处理器(Central Processing Unit,CPU)执行的时间片的数量。而动态优先级表示进程剩 下的可被执行的时间片的数量,其初始值为静态优先级。普通进程每获得一次时间片,动态 优先级都会减1。当所有的普通进程的动态优先级都归零后,操作系统便会依据静态优先级 恢复动态优先级的值。任务的反应时间对使用者而言是非常重要的。然而若是在待执行的进程当中有优 先权特别高的进程,这种进程会持续地占用CPU资源,使得其它的进程无法被执行,而一直 无法响应给使用者。又或是在待执行的进程当中有优先权特别低的进程时,优先权低的进 程可能几乎等不到被执行的机会,而一直处于饥饿的状态。在此提供一十分有名的案例。在 美国加州柏克莱大学(Universityof California, Berkeley)的某一实验室执行久违的大 清查时,发现某台服务器中竟有一个进程于三十年间都没有被执行到,而持续着饥饿的状 态。基于上述,传统的依据优先值的调度方法具优先权高的进程容易过度占用CPU资 源,使得其它的进程难以被执行,而造成进程的平均反应时间被拉长的问题。

发明内容
为了达成上述的目的,本发明提供一种动态调整进程的优先值的调度方法,适用 于中央处理器与队列。其中队列中包括至少一进程,且每一进程均具有优先值。本发明以 监控总占有率与观察占有率判断是否有高优先值的进程过度占用CPU资源,并阶段式地调 降/恢复观察进程的优先级。因此上述的实施范例可以有效增加低优先值的进程被执行的机率以及时间长度,进而缩短平均反应时间。根据本发明的一实施范例,调度方法首先执行监控进程。监控进程侦测CPU的总 占用率,并判断总占用率是否为100%。当总占用率为100%时,执行下列步骤监控进程 侦测观察进程的观察占用率,其中观察进程为队列中的至少一个进程。且每一观察进程具 有一调整次数值,该调整次数值的初始值为0,监控进程并判断观察占用率是否大于第一阈 值。当观察占用率大于第一阈值时,监控进程将调整标志值设为1并进行休眠。而监控进 程于经过一段休眠时间后再度被执行。根据本发明的一实施范例,当总占用率不为100%时,调度方法另可执行下列步 骤。监控进程判断总占用率是否小于第一阈值;而当总占用率小于第一阈值时,监控进程将 调整标志值设为0并进入休眠。而监控进程亦于经过一休眠时间后再度被执行。监控进程进入休眠后,CPU继续执行其它进程。而同时调度方法判断执行中的进 程是否为观察进程。当执行中的进程为观察进程时,再判断调整标志值是否等于1。而当执 行中的进程为观察进程,且调整标志值等于1时,调度方法执行调整进程以调降观察进程 的优先值。此外,当执行中的进程为观察进程且调整标志值等于0时,调度方法另可执行恢 复进程以恢复被调降过的观察进程的优先权。较佳的是,每一进程具有调整次数值,且调整次数值的初始值为0。根据本发明的 一实施范例,执行调整进程以调降观察进程的优先值的步骤可包括判断调整次数值是否 等于0 ;当调整次数值等于0时,将观察进程的优先值纪录为初始优先值;判断调整旗次数 是否小于第二阈值;当调整旗次数小于第二阈值时,执行第一调降方法;以及当调整次数 值不小于第二阈值时,调整进程执行第二调降方法。上述第一调降方法可先判断观察进程是否为普通进程(conventionalprocess)。 当观察进程为普通进程时,观察进程的优先值为动态优先级(counter)以及静态优先级 (priority),调整进程并将观察进程的动态优先级设为0,以及增加调整次数值。第一调降方法另可包括当观察进程不为普通进程时,判断观察进程为一实时进程 (real-time process)。当观察进程为实时进程时,观察进程的优先值是为实时优先级(rt_ priority),调整进程并降低实时优先级,以及增加调整次数值。根据本发明的一实施范例,上述第二调降方法则可判断观察进程是否为普通进 程;而当观察进程为普通进程时,观察进程的优先值为动态优先级以及静态优先级。调整进 程并将动态优先级设为0,以及将静态优先级设为队列中具有最低的静态优先级的普通进 程的静态优先级,以及增加调整次数值。第二调降方法另可包括当观察进程不为普通进程时,判断观察进程为实时进程; 而当观察进程为实时进程时,调整进程可执行下列步骤。调整进程将观察进程改设为普通 进程,并将观察进程的优先值改设为动态优先级以及静态优先级。调整进程接着将动态优 先级设为0,以及将静态优先级设为队列中具有最高的静态优先级的普通进程的静态优先 级,以及增加调整次数值。根据本发明的一实施范例,执行恢复进程以恢复被调降过的观察进程的优先权的 步骤可包括判断观察进程是否为实时进程;当观察进程为实时进程时,依据初始优先值 恢复优先值,并将调整次数值设为0 ;当观察进程不为实时进程时,判断观察进程第一次被 执行调整进程时是否为普通进程;以及当观察进程第一次被执行调整进程时为普通进程时,依据初始优先值恢复优先值,并将调整次数值设为0。此外,当观察进程第一次被执行调整进程时为普通进程时,依据初始优先值恢复 优先值之后,恢复进程另可判断总占用率是否为小于第一阈值。且当总占用率小于第一阈 值时,恢复进程判断是否观察进程为普通进程,且观察进程第一次被执行调整进程时为实 时进程。若是,恢复持续将观察进程恢复为实时进程,并依据初始优先值恢复优先值,并将 调整次数值设为0。根据本发明的动态调整进程的优先值的调度方法,具有高优先权且较可能过度占 用CPU的进程被设定为观察进程。监控进程监控总占有率与观察占有率以观察进程是否过 度占用CPU资源,并阶段式地调降/恢复观察进程的优先级。故此调度方法可有效增加低优 先值的进程被执行的机率以及时间长度,进而缩短平均反应时间。此外,借由阶段式的调降 进程,可以避免明显影响观察进程的执行是效率;而借由阶段式的恢复进程,可以避免CPU 负载突然升高,或是避免观察进程再度独占CPU资源。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为根据本发明一实施范例的进程示意图;图2为根据本发明一实施范例的主流程示意图;图3为根据本发明一实施范例的监控进程的流程示意图;图4为根据本发明一实施范例的调整进程的流程示意图;图5为根据本发明一实施范例的第一调降方法的流程示意图;图6为根据本发明一实施范例的第二调降方法的流程示意图;图7为根据本发明一实施范例的恢复进程的流程示意图。其中,附图标记20 中央处理器(CPU)22 队列24 进程26 观察进程28 线程
具体实施例方式以下在实施方式中详细叙述本发明的详细特征以及优点,其内容足以使任何熟悉 相关技艺者了解本发明的技术内容并据以实施,且根据本说明书所揭露的内容、申请专利 范围及图式,任何熟悉相关技艺者可轻易地理解本发明相关的目的及优点。根据本发明提供一种动态调整进程的优先值的调度方法,适用于中央处理器 (CPU)与队列(queue)。请参照图1,其为根据本发明一实施范例的进程示意图。由图1可 以见悉,队列22中具有至少一进程(process) 24等待CPU 20执行,其中每一个进程24都 具有至少一个线程(thread)28。且在队列22之中,至少有一个进程24被选为一观察进程 26。其中CPU 20可以是运行于一个人计算机或是服务器等不同的计算器是统。就一般的操作系统来说,进程24可具有多个线程28,这些线程28会共享进程24所拥有的硬件资源,例如内存空间或是对输入输出装置的存取。进程24具有一优先值,而 优先值乃依据进程24的种类等被操作系统决定。进程24内所有的线程28的优先值都与 进程24相同,操作系统依据此优先值决定执行线程28的顺序。Linux操作系统中,进程24所具有的任务结构(task struct)可包括四个参数 策略(policy)、动态优先级(counter)、静态优先级(priority),以及实时优先级(rt_ priority)。由策略参数可得知进程24为一实时进程(realtime process)或是一普通进 程(conventional process) 0而由实时优先级、静态优先级以及动态优先级可以得知进程 24优先值。队列22是指集合了处于可执行状态(ready state)的进程24的可执行队列 (ready queue)。当进程24被生成或由等待状态(wait state,又称休眠状态)被唤醒后, 就会处于等待被CPU 20执行的可执行状态,并进入队列22。操作系统根据优先值决定下一 个要让CPU 20执行的进程24为何。但此处的操作系统依据优先级让CPU 20执行进程24 为一概念性的说法。实际上CPU 20是执行各个进程24所具有的线程28。也就是说,操作 系统根据队列22中每一个线程28所属的进程24的优先值,决定接下来要让CPU 20执行 的线程28。在队列22的进程24之中,至少有一个进程24被选为观察进程26。观察进程26 为具有高优先值,且可能占用大量CPU资源的进程24。为了避免高优先值的进程24不断重 复被执行而排挤其它进程24被执行的权益,根据本发明所提供的调度方法监测所有的观 察进程26 (与其所包括的所有线程28),并在观察进程26占用太多CPU资源时调整观察进 程26的优先值,增加其它进程24被执行的机会。每一观察进程26并具有一调整次数值。 调整次数值表示此观察进程26被调降优先值的次数,而调整次数值的初始值为0。根据本发明的一实施范例,操作系统可将目前使用中的程序与相对应的进程24 列表并提供给使用者,并由使用者指定观察进程26。根据本发明的另一实施范例,操作系统 可根据进程24的性质、内容、被执行时平均的优先值、通常被执行时的状况,或是过往被使 用者指定为观察进程26的纪录自动将队列22中的至少一个进程24选定为观察进程26。接下来将详述根据本发明所提供的调度方法。请参照图2,其为根据本发明一实 施范例的主流程示意图。由图可知,于本实施例之中,动态调整进程的优先值的调度方法可 包含步骤S30 执行一监控进程;步骤S31 判断执行中的进程24是否为观察进程26 ;步骤 S32 判断一调整标志值是否等于1 ;步骤S33 执行一调整进程以调降观察进程26的优先 值;步骤S34 判断调整标志值是否等于0 ;步骤S35 执行一恢复进程以恢复被调降过的观 察进程26的优先权;以及步骤S36 执行下一个进程24。首先于步骤S30,操作系统令CPU 20执行监控进程。监控进程监控CPU 20被使用 情况,并判断使否有调整观察进程26的优先值的必要。更佳的是,监控进程为一守护进程 (daemon)。监控进程以调整标志值表示目前CPU 20的状况,而监控进程的执行步骤请容后 详述。每当一个线程28被CPU 20执行时,步骤S31判断执行中的线程28所属的进程24 是否为观察进程26。若否,则当执行中的进程24结束后,于步骤S36中CPU 20执行下一个 进程24 (意指CPU 20执行下一个线程28),并在以步骤S31判断新的执行中的进程24是否 为观察进程26。
若执行中的进程24为观察进程26,于步骤S32中操作系统判断调整标志值是否等 于1。当调整标志值为1时,于步骤S33执行调整进程,以将观察进程26的优先值调降;而 若调整标志值不等于1,于步骤S34判断调整标志值是否等于0。当调整标志值等于0时, 于步骤S35执行恢复进程,以恢复观察进程26的优先值。其中调整进程以及恢复进程的执 行时机可以是在作为对象的观察进程26被执行之前或是被执行之后,本发明并无限制。而 在执行完调整进程或是恢复进程之后,CPU 20于步骤S36中继续执行下一个进程24,并在 以步骤S31判断新的执行中的进程24是否为观察进程26。接着说明监控进程的详细步骤,而调整进程以及恢复进程的执行步骤请容后详 述。请参照图3,其为根据本发明一实施范例的监控进程的流程示意图。由图可以见悉,监 控进程可包括步骤S40 侦测中央处理器20的一总占用率;步骤S41 判断总占用率是否为 100%;步骤S42 侦测观察进程26的一观察占用率;步骤S43 判断观察占用率是否大于一 第一阈值;步骤S44 将调整标志值设为1 ;步骤S45 监控进程进入休眠;步骤S46 判断总 占用率是否小于第一阈值;步骤S47 将调整标志值设为0 ;以及步骤S48 将调整标志值设 为2。首先,监控进程于步骤S40侦测总占有率,也就是CPU 20被使用的状况。总占有率 是指CPU 20执行包含操作系统等所有进程的被使用率,若总占有率过高,CPU 20便难有余 去处理优先值低下的进程24。监控进程并于步骤S41判断总占有率是否为100%。若总占 有率高达100%,则表示有很高的机率是有某个或是某些高优先值的进程24过度抢夺CPU 资源。如此一来,优先值较低的进程24可能永远不会被执行到,而一直维持在饥饿的状态。然而即使总占用率高达100%,亦有可能是同时有太多的进程24在队列22中等待 着要被执行。因此监控进程于步骤S42中,判断观察占有率是否大于第一阈值。观察占有 率是指CPU 20被所有的观察进程26占用的情况;也就是说,观察占用率是CPU 20执行所 有的观察进程26的被使用率。第一阈值例如可以是但不限定是80%,亦可以是由使用者指 定。当监控进程判断观察进程26过度抢夺CPU 20的资源时,监控进程于步骤S44将 调整标志值设为1,代表观察进程26需要被调降其优先值。设置完调整旗标后,监控进程于 步骤S45进入休眠状态。操作系统可令监控进程进入一等待队列(wait queue)中休眠,且 经过一休眠时间后,操作系统会再度执行监控进程这个守护进程以监控最新的CPU 20的 总占用率。相对的,当总占用率不等于100%时,监控进程于步骤S46判断总占有率是否小于 第一阈值。当总占有率小于第一阈值时,表示现在CPU 20尚有足够的余力可以多执行一些 进程24。则调整标志值在步骤S47被设为0,表示如果的前有观察进程26因被调低优先值 而无法获得观察进程26所期望的执行时间,现在的状况已允许这种观察进程26恢复其优 先值并取得更多的时间片(time slice)来执行。此外,若总占有率为100%但观察占有率小于第一阈值,表示然CPU 20处于极为 忙碌的状态,但这种状况并非由观察进程26所造成的。在其它的进程24被执行结束后应 该就可缓解CPU 20过于忙碌的状况,故调度方法可不对以状况作处理。然根据本发明的另 一实施范例,调度方法令可以其它的调度算法进行处理。而若总占有率并非100%但大于第 一阈值,换句话说,总占有率介于第一阈值与100%之间,表示CPU 20可能还不够有余提供更多的资源给观察进程26。因此在这两种状况之中,监控进程于步骤S47将调整旗标设为 2,代表调度方法不用执行调整进程亦不用执行恢复进程。总地说来,监控进程侦测总占用率以及观察占用率以判断目前CPU 20执行的状 况,并设定调整标志值。监控进程以调整标志值表示目前CPU 20的状况,调度方法便可依 调整标志值判断是否需要调降或是恢复观察进程26的优先值。以下详述调整进程所执行的步骤,请参阅图4,其为根据本发明一实施范例的调整 进程的流程示意图。由图4」可知,调整进程包括步骤S50 判断调整次数值是否等于0 ;步 骤S51 将观察进程26的优先值纪录为一初始优先值;步骤S52 判断调整次数是否小于一 第二阈值;步骤S53 执行一第一调降方法;以及步骤S54 执行一第二调降方法。调整进程首先于步骤S50判断调整次数值是否等于0。观察进程26的调整次数值 纪录观察进程26被调降优先值的次数,而每当观察进程26被执行恢复进程后调整次数值 会被重置为0。若观察进程26的调整次数值为0,表示目前观察进程26所具有的优先值是 操作系统所赋予的优先值,也就是此观察进程26应具有的优先值。为了在CPU 20的总使 用率下降时恢复观察进程26的优先值,调整进程于步骤S51将观察进程26目前的优先值 保存为初始优先值,以供后续的恢复进程使用。于步骤S52,调整进程判断调整次数值是否小于第二阈值。调整进程分两阶段调降 观察进程26的优先值,第一阶段仅(逐次)稍许降低优先值,而第二阶段大幅降低优先值。 若以第一阶段的调整即可解决观察占有率过高,也就是其余的进程24反应过慢的问题,就 可避免观察进程26的优先值一口气被降低,而剧烈影响到观察进程26的执行效能。因此 当调整次数值尚低时,表示此观察进程26并不常过度占用CPU资源,仅需于步骤S53中执 行第一调降方法,以进行第一阶段的调整。相反的,若观察进程26被调低过多次优先值却 仍一直占用CPU资源,此观察进程26便须于步骤S54被执行第二调降方法,大幅拉低其优 先值,以将此观察进程26过度占用的CPU资源让出给其它进程24。请参照图5,其为根据本发明一实施范例的第一调降方法的流程示意图。由图可以 见悉,第一调降方法包括步骤S60 判断观察进程26是否为普通进程;步骤S61 将动态优 先级设为0 ;步骤S62 增加调整次数值;以及步骤S63 降低实时优先级。第一调降方法于步骤S60判断观察进程26是普通进程或是实时进程。若观察进 程26为普通进程,则其优先值为动态优先级以及静态优先级。观察进程26的动态优先级 于步骤S61被设为0。如此一来,直到队列22中所有的普通进程的动态优先级均被消耗至 0之前,此观察进程26都不会被CPU 20执行。但在所有动态优先级都归零后,操作系统自 动将此观察进程26的动态优先级与其它的普通进程一起依据个别的静态优先级恢复(重 设)个别的动态优先级。且在调降过观察进程26的动态优先级之后,于步骤S62中此观察 进程26的调整次数值被加1。类似地,若观察进程26为实时进程,第一调降方法于步骤S63调低实时优先级,例 如可将实时优先级减1。且调降实时优先级后,亦于步骤S62中将此观察进程26的调整次 数值加1。当第一调降方法已经观察进程26的优先值调降了数次,此观察进程仍然频繁占 用CPU 20,这表示队列22中其它的进程24的优先值远小于此观察进程26。此时调降进程 以第二调降方法处理此观察进程26的优先值。
请参照图6,其为根据本发明一实施范例的第二调降方法的流程示意图。由图可以 知悉,第二调降方法包括步骤S70 判断观察进程26是否为普通进程;步骤S71 将动态优 先级设为0 ;步骤S72 将静态优先级设为队列22中具有最低的静态优先级的普通进程的 静态优先级;步骤S73 增加调整次数值;步骤S74 将观察进程26改设为一普通进程;步骤 S75 将观察进程26的优先值改设为动态优先级以及静态优先级;步骤S76 将动态优先级 设为0 ;以及步骤S77 将静态优先级设为队列22中具有最高的静态优先级的普通进程的 静态优先级。第二调降方法于步骤S70判断观察进程26是普通进程或是实时进程。当观察进 程26为普通进程时,第二调降方法先于步骤S71将观察进程26的动态优先级设为0,并在 步骤S72调降观察进程26的静态优先级。第二调降方法于队列22中找寻具有最低的静态 优先级的普通进程,并将此最低的静态优先级作为观察进程26的静态优先级。如此一来, 即使操作系统依据静态优先级恢复所有普通进程的动态优先级,观察进程26仍只能获得 较低的动态优先级。接着于步骤S73,观察进程26的调整次数值被加1。当观察进程26为实时进程,且观察进程26即使逐次地被减低实时优先级仍然频 繁占用CPU 20时,这表示队列22中可能只有此观察进程26是实时进程,或是其它的实时 进程的实时优先级都远低于此观察进程26。因此第二调降方法直接将观察进程26设为普 通进程,但仍给予此观察进程26较高的静态优先值。第二调降方法于步骤S74将观察进程26由实时进程改为普通进程,且于步骤S75 将观察进程26的优先值由实时优先级改设为静态优先级以及动态优先级。第二调降方法 于步骤S76将动态优先级设为0,并于步骤S77于队列22中找寻具有最高的静态优先级的 普通进程,将此最高的静态优先级作为观察进程26的静态优先级。接着第二调降方法亦于 步骤S73将观察进程26的调整次数值被加1。调整进程以第一调降方法缓和地减低观察进程26的优先值,但若观察进程26已 被调整多次后仍旧过度占用CPU资源,调降进程以第二调降方法大幅调降其优先值,以提 高队列22中其它不是观察进程的进程24被执行的时间。接下来详述恢复进程的执行步骤。对应上述阶段式的调整方法,恢复进程亦阶段 式地恢复优先值。请参阅图7」,其是为根据本发明一实施范例的恢复进程的流程示意图。 由「图7可以见悉,恢复进程包括步骤S80 判断观察进程26是否为实时进程;步骤S81 依据初始优先值恢复优先值,并将调整次数值设为0 ;步骤S82 判断观察进程26第一次被 执行调整进程时是否为普通进程;步骤S83 判断总占用率是否为小于第一阈值;步骤S84 判断是否观察进程26为普通进程,且观察进程第一次被执行调整进程时为实时进程;步骤 S85 将观察进程26恢复为实时进程;步骤S86 依据初始优先值恢复实时进程的优先值, 并将调整次数值设为0 ;以及步骤S87 结束恢复进程。恢复进程被启动后首先于步骤S80判断观察进程26是否为实质进程,若不是,便 于步骤S82判断观察进程26是否原先就是普通进程,而非被调整进程由实时进程改设为普 通进程。也就是说,步骤S80与步骤S82判断观察进程26是否仅被第一调降方法处理过。 若是,则于步骤S81依据初始优先值将实时优先级或动态优先级恢复为被调降之前的值, 此为第一阶段的恢复方法。经过第一阶段的恢复后,总占有率以及观察占有率都可能上升。因此于步骤S83,恢复进程判断经过第一阶段的恢复后的总占有率是否仍小于第一阈值,以确认能否执行第 二阶段的恢复。当总占有率超过第一阈值时,恢复进程不进行第二阶段的恢复,而于步骤 S87结束。相对的,当经过第一阶段的恢复后总占有率仍低于低一阈值时,恢复进程于步骤 S85将曾被调整进程改设为普通进程的观察进程26恢复为实时进程,并于步骤S86依据初 始优先值恢复实时优先值。总地来说,成功提高其它进程24的CPU 20的占有率且CPU 20亦有余力时,恢复 进程亦阶段式地恢复观察进程的优先权,以确保被恢复优先值的观察进程26不会再度过 分地占用CPU资源。而根据本发明的一实施范例,当所有的观察进程26均已离开待执行队 列时(例如已执行完毕或是进入等待队列中),作为守护进程执行的监控进程持续监控总 使用率。若监控进程得知总使用率为100%,且又有观察进程26位于队列22时,即依照上 述方法设定调整标志值以进行调整/恢复优先值的步骤。虽上述调度方法仅以单CPU系统 为例,然动态调整进程的优先值的调度方法亦是于多CPU系统。根据本发明的动态调整进程的优先值的调度方法,具有高优先权且较可能过度占 用CPU的进程被设定为观察进程。监控进程监控总占有率与观察占有率以观察进程是否过 度占用CPU资源,并阶段式地调降/恢复观察进程的优先级。故此调度方法可有效增加低优 先值的进程被执行的机率以及时间长度,进而缩短平均反应时间。此外,借由阶段式的调降 进程,可以避免明显影响观察进程的执行是效率;而借由阶段式的恢复进程,可以避免CPU 负载突然升高,或是避免观察进程再度独占CPU资源。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种动态调整进程的优先值的调度方法,其特征在于,适用于一中央处理器与一队 列,该队列包括至少一进程,每一该进程具有一优先值,该调度方法包括执行一监控进程,该监控进程包括 侦测该中央处理器的一总占用率; 判断该总占用率是否为100% ;以及 当该总占用率为100%时,执行下列步骤侦测一观察进程的一观察占用率,其中该观察进程为该队列中的至少一个该进程,且 每一该观察进程具有一调整次数值,该调整次数值的初始值为0 ; 判断该观察占用率是否大于一第一阈值; 当该观察占用率大于该第一阈值时,将一调整标志值设为1 ;以及 令该监控进程休眠,该监控进程于经过一休眠时间后再度被执行; 判断执行中的该进程是否为该观察进程;当执行中的该进程为该观察进程时,判断该调整标志值是否等于1 ;以及 当该调整标志值等于1时,执行一调整进程以调降该观察进程的该优先值。
2.根据权利要求1所述的动态调整进程的优先值的调度方法,其特征在于,该监控进 程另包括当该总占用率不为100%时,执行下列步骤判断该总占用率是否小于该第一阈值;当该总占用率小于该第一阈值时,将该调整标志值设为0 ;以及令该监控进程休眠,该监控进程于经过一休眠时间后再度被执行。
3.根据权利要求1所述的动态调整进程的优先值的调度方法,其特征在于,另包括 当该调整标志值等于0时,执行一恢复进程以恢复被调降过的该观察进程的该优先值。
4.根据权利要求1所述的动态调整进程的优先值的调度方法,其特征在于,该执行一 调整进程以调降该观察进程的该优先值的步骤包括判断该调整次数值是否等于0 ;当该调整次数值等于0时,将该观察进程的该优先值纪录为一初始优先值; 判断该调整旗次数是否小于一第二阈值; 当该调整旗次数小于该第二阈值时,执行一第一调降方法;以及 当该调整次数值不小于该第二阈值时,执行一第二调降方法。
5.根据权利要求4所述的动态调整进程的优先值的调度方法,其特征在于,该执行一 第一调降方法的步骤包括判断该观察进程是否为一普通进程;当该观察进程为该普通进程时,该观察进程的该优先值为一动态优先级以及一静态优 先级,并将该动态优先级设为0 ;以及 增加该调整次数值。
6.根据权利要求5所述的动态调整进程的优先值的调度方法,其特征在于,而该执行 一第一调降方法的步骤另包括当该观察进程不为该普通进程时,该观察进程为一实时进程,该观察进程的该优先值为一实时优先级,并降低该实时优先级;以及 增加该调整次数值。
7.根据权利要求4所述的动态调整进程的优先值的调度方法,其特征在于,该执行一 第二调降方法的步骤包括判断该观察进程是否为一普通进程;以及当该观察进程为该普通进程时,该观察进程的该优先值为一动态优先级以及一静态优 先级,并执行下列步骤 将该动态优先级设为0 ;将该静态优先级设为该队列中具有最低的该静态优先级的该普通进程的该静态优先 级;以及增加该调整次数值。
8.根据权利要求7所述的动态调整进程的优先值的调度方法,其特征在于,该执行一 第二调降方法的步骤另包括当该观察进程不为该普通进程时,该观察进程为一实时进程,并执行下列步骤 将该观察进程改设为该普通进程;将该观察进程的该优先值改设为该动态优先级以及该静态优先级; 将该动态优先级设为0 ;将该静态优先级设为该队列中具有最高的该静态优先级的该普通进程的该静态优先 级;以及增加该调整次数值。
9.根据权利要求3所述的动态调整进程的优先值的调度方法,其特征在于,该执行一 恢复进程以恢复被调降过的该观察进程的该优先值的步骤包括判断该观察进程是否为一实时进程;当该观察进程为一实时进程时,依据该初始优先值恢复该优先值,并将该调整次数值 设为0;当该观察进程不为该实时进程时,判断该观察进程第一次被执行该调整进程时是否为 一普通进程;以及当该观察进程第一次被执行该调整进程时为该普通进程时,依据该初始优先值恢复该 优先值,并将该调整次数值设为0。
10.根据权利要求9所述的动态调整进程的优先值的调度方法,其特征在于,当该观察 进程第一次被执行该调整进程时为该普通进程时,依据该初始优先值恢复该优先值之后的 步骤另包括判断该总占用率是否为小于该第一阈值;以及 当该总占用率小于该第一阈值时,执行以下步骤判断是否该观察进程为该普通进程,且该观察进程第一次被执行该调整进程时为该实 时进程;以及若是,将该观察进程恢复为该实时进程;并依据该初始优先值恢复该优先值,并将该调 整次数值设为0。
全文摘要
本发明公开了一种动态调整进程的优先值的调度方法,适用于中央处理器与队列。队列中包括至少一进程,且每一进程均具有优先值。调度方法首先执行监控进程以侦测中央处理器的总占用率,当总占用率为100%时,侦测观察进程的观察占用率。当观察占用率大于第一阈值时,监控进程将调整标志值设为1并进入休眠。调度方法接着判断执行中的进程是否为观察进程。当执行中的进程为观察进程,且调整标志值等于1时,调度方法执行调整进程以调降观察进程的优先值。
文档编号G06F9/50GK102033782SQ20091017417
公开日2011年4月27日 申请日期2009年9月30日 优先权日2009年9月30日
发明者焦旭东, 陈玄同 申请人:英业达股份有限公司, 英业达集团(天津)电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1