一种o1调度算法的改进方法及装置的制造方法

文档序号:10724690阅读:522来源:国知局
一种o1调度算法的改进方法及装置的制造方法
【专利摘要】本发明公开了一种O1调度算法的改进方法,包括统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度;S11:将当前系统内的进程按照优先级顺序生成本次进程调度序列;判断是否包含有延时调度进程;如果是,则进入步骤S13,如果否,则进入步骤S14;S13:当到达本次延时调度进程的响应时间时,调度延时调度进程;返回步骤S11;S14:当到达本次进程调度序列中优先级最高的进程的响应时间时,调度优先级最高的进程;返回步骤S11。由此可见,每个进程都能够被及时调度,即使存在延时也会在下一轮被及时调度。通过该方法提高了系统的稳定性。此外本发明还提供一种O1调度算法的改进装置,效果如上。
【专利说明】
一种01调度算法的改进方法及装置
技术领域
[0001]本发明涉及Linux技术领域,特别是涉及一种01调度算法的改进方法及装置。
【背景技术】
[0002]在高版本的Linux系统中01算法早已被CFS调度算法所取代,但是在许多嵌入式操作系统中,01算法仍然占有重要地位。但是现有的01算法,由于没有对系统内的进程的响应时间长度和运行时间长度做规划,导致优先级低的进程长时间得不到响应,造成系统崩溃。
[0003]由此可见,如何合理调度每个进程,避免某个进程长时间得不到响应的问题是本领域技术人员亟待解决地问题。

【发明内容】

[0004]本发明的目的是提供一种01调度算法的改进方法及装置,用于合理调度每个进程,避免某个进程长时间得不到响应。
[0005]为解决上述技术问题,本发明提供一种01调度算法的改进方法,包括:
[0006]SlO:统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度;
[0007]其中,所述分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度;
[0008]SI 1:将当前系统内的进程按照优先级顺序生成本次进程调度序列;
[0009]S12:判断本次进程调度序列中是否包含有延时调度进程;如果是,则进入步骤S13,如果否,则进入步骤S14 ;
[0010]S13:当到达本次延时调度进程的响应时间时,调度所述延时调度进程,并在到达所述延时调度进程的运行时间片长度时停止调度;返回步骤Sll;
[0011]S14:当到达本次进程调度序列中优先级最高的进程的响应时间时,调度所述优先级最高的进程,并在到达所述优先级最高的进程的运行时间片长度时停止调度;返回步骤Sllo
[0012]优选地,SI2的判断方法包括:
[0013]如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程;
[0014]如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程;
[0015]如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在所述预设范围,则确定本次进程调度序列中包含延时调度进程。
[0016]优选地,步骤SI 3包括:
[0017]S130:判断延时调度进程的个数是否大于I;如果是,进入步骤S131,如果否,进入步骤S132;
[0018]S131:随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级;返回步骤Sll;
[0019]S132:当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;返回步骤S11。
[0020]优选地,步骤S14包括:
[0021]S140:判断优先级最高的进程的个数是否大于I;如果是,进入步骤S141,如果否,进入步骤S142;
[0022]S141:随机选取一个优先级最高的进程,当到达该优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;同时,将剩余的优先级最高的进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级;返回步骤SI I;
[0023]S142:当到达优先级最尚的进程的响应时间时,调度该优先级最尚的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;返回步骤S11。
[0024]优选地,所述运行时间片长度为4个tick。
[0025]一种01调度算法的改进装置,包括:
[0026]进程统计单元,用于统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度;
[0027]其中,所述分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度;
[0028]进程调度序列生成单元,用于将当前系统内的进程按照优先级顺序生成本次进程调度序列;
[0029]判断单元,用于判断本次进程调度序列中是否包含有延时调度进程;
[0030]第一调度单元,用于在本次进程调度序列中包含有延时调度进程的情况下,当到达本次延时调度进程的响应时间时,调度所述延时调度进程,并在到达所述延时调度进程的运行时间片长度时停止调度;
[0031 ]第二调度单元,用于在本次进程调度序列中不包含有延时调度进程的情况下,当到达本次进程调度序列中优先级最尚的进程的响应时间时,调度所述优先级最尚的进程,并在到达所述优先级最高的进程的运行时间片长度时停止调度。
[0032]优选地,判断单元的判断规则包括:
[0033]如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程;
[0034]如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程;
[0035]如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在所述预设范围,则确定本次进程调度序列中包含延时调度进程。
[0036]优选地,第一调度单元具体包括:
[0037]第一判断子单元,用于判断延时调度进程的个数是否大于I;
[0038]第一调度子单元,用于在延时调度进程的个数大于I的情况下,随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提高到下次进程调度序列中的最高优先级;
[0039]第二调度子单元,用于在延时调度进程的个数等于I的情况下,当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度。
[0040]优选地,所述第二调度单元包括:
[0041]第二判断子单元,用于判断优先级最高的进程的个数是否大于I;
[0042]第三调度子单元,用于在优先级最高的进程的个数大于I的情况下,随机选取一个优先级最尚的进程,当到达该优先级最尚的进程的响应时间时,调度该优先级最尚的进程,并在到达该优先级最尚的进程的运行时间片长度时停止调度;同时,将剩余的优先级最尚的进程加入下次进程调度序列中,并将优先级提高到下次进程调度序列中的最高优先级;
[0043]第四调度子单元,用于在优先级最高的进程的个数等于I的情况下,当到达优先级最尚的进程的响应时间时,调度该优先级最尚的进程,并在到达该优先级最尚的进程的运行时间片长度时停止调度。
[0044]优选地,所述运行时间片长度为4个tick。
[0045]本发明所提供的01调度算法的改进方法及装置,通过为每个进程设置同样的运行时间片长度,且优先级高的进程的响应时间长度较短,当本次进程调度序列中包含有延时调度进程时,则优先调度该延时调度进程。由此可见,每个进程都能够被及时调度,即使存在延时也会在下一轮被及时调度。通过该方法能够降低某个进程长时间得不到响应而造成的系统崩溃的危险性,提尚系统的稳定性。
【附图说明】
[0046]为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0047]图1为本发明提供的一种01调度算法的改进方法的流程图;
[0048]图2为本发明提供的一种01调度算法的改进装置的结构图。
【具体实施方式】
[0049]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
[0050]本发明的核心是提供一种01调度算法的改进方法及装置。
[0051]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。
[0052]图1为本发明提供的一种01调度算法的改进方法的流程图。如图1所示,包括:
[0053]SlO:统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度。
[0054]其中,分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度。
[0055]由于全部的进程不是同时都加入到调度工作中,随着系统的运行,随时都有新的进程加入,因此,需要把全部进程的进程数目和优先级获取到,然后为每个进程分配运行时间片长度和响应时间长度。可以理解地是,本发明中的优先级越高则响应时间长度越短,只是表示一种变化趋势,而不是量的限定。只要满足优先级高的进程的响应时间长度小于优先级低的进程的响应时间长度即可。
[0056]SI 1:将当前系统内的进程按照优先级顺序生成本次进程调度序列。
[0057]如上文所述,本步骤只是将系统当前内参与调度的进程生成本次进程调序列。由于不断有新的进程加入,因此,本次进程调度序列与上次进程调度序列以及下次进程调度序列有可能不同。另外,如果是调度工作的第一轮,即第一次生成进程调度序列,那么它作为本次进程调度序列时,上次进程调度序列相当于是空的。
[0058]S12:判断本次进程调度序列中是否包含有延时调度进程。
[0059]如果是,则进入步骤S13,如果否,则进入步骤S14。
[0060]S13:当到达本次延时调度进程的响应时间时,调度延时调度进程,并在到达延时调度进程的运行时间片长度时停止调度。返回步骤S11。
[0061]为了能够使得每个进程都能够及时得到响应,本发明中,如果本次进程调度序列中包含有延时调度进程的话,则优先调度延时调度进程。本发明中的延时调度进程是指,在上次进程调度序列中是优先级次高的进程,如果没有新进程的加入,那么在本次调度序列中,该进程就是优先级最高的进程,能够优先调度。正是由于有新的进程加入,且新加入的优先级高于该进程,导致到了本次进程调度序列中,该进程就不是优先级最高的进程,从而不能够被优先调度。为了避免这种情况发生,如果本次优先调度序列中存在延时调度进程,则无论其优先级如何,都要优先调度该延时调度进程。
[0062 ]作为一种优选地实施方式12的判断方法包括:
[0063]如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程;
[0064]如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程;
[0065]如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在预设范围,则确定本次进程调度序列中包含延时调度进程。
[0066]S14:当到达本次进程调度序列中优先级最高的进程的响应时间时,调度优先级最高的进程,并在到达优先级最高的进程的运行时间片长度时停止调度。返回步骤S11。
[0067]如果本次进程调度序列中,不存在延时调度进程,则直接调度优先级最高的进程即可。
[0068]为了让本领域技术人员更加理解本发明提供的方法,下文以一个简单的例子做说明。
[0069]当前系统内的进程为A、B、C、D、E五个,优先级分别为-1、-10、19、20、20,运行时间片长度均为4个tick,响应时间长度分别为28个tick、16ftick、48ftick、6(H"tick、60ftick。按照步骤Sll生成本次进程调度序列(第一次进程调度序列)的话,就是KAXdj13B的优先级最高,被优先调度,A的优先级次高,原则上在第二进程调度中被调度。那么在本次调度中就不存在延时调度进程,进程B就会被调度。
[0070]第一种情况:调度之后,返回步骤Sll,再次生成第二次进程调度序列。假如在生成第二进程调度序列之前,有新的进程F进入,其优先级为-2,且加入的时间与进程A的响应时间的差值超出预设范围,或者可以这样理解,进程F加入时间距进程A的响应时间提前了较多,那么进程F就没有对进程A造成影响,因此第二进程调度序列中就不包含延时调度进程,即进程A不是延时调度进程。那么在第二进程调度中进程F就会被调度。反之,假如在生成第二进程调度序列之前,有新的进程F进入,其优先级为-2,且加入的时间与进程A的响应时间的差值在预设范围,或者可以这样理解,进程F加入时间距进程A的响应时间提前的较少,那么进程F就对进程A造成影响(可能已经开始准备对进程A的调度准备工作),因此第二进程调度序列中就包含延时调度进程,即进程A是延时调度进程。那么在第二进程调度中进程F虽然优先级高于进程A,但是仍然是调度进程A。当再度返回步骤Sll时,如果有新的进程加入,则就比较新加入的进程的加入时间与进程F的响应时间来判断第三次进程调度序列中是否包含延时调度进程;如果没有新的进程加入,则进程F就会被优先调度。
[0071]第二种情况:调度之后,返回步骤Sll,再次生成第二次进程调度序列。在生成第二进程调度序列之前,没有新的进程加入,则本次调度中进程A就会被优先调度。
[0072]在具体实施中,可能在同一个进程调度序列中包含有相同优先级的进程,如果具有相同优先级的进程恰好是延时调度进程时,在上述实施例的基础上,步骤S13包括:
[0073]S130:判断延时调度进程的个数是否大于I。如果是,进入步骤S131,如果否,进入步骤S132;
[0074]S131:随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级。返回步骤Sll;
[0075]S132:当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度。返回步骤S11。
[0076]另外,还有一种情况就是,当本次优先调度序列中不存在延时调度进程时,要执行步骤S14。此时,可能优先级最高的进程的数量也不是只有一个,可能为I可能为2等,因此,这样的情况与步骤S13的具体判断过程也相同。
[0077]S140:判断优先级最高的进程的个数是否大于I。如果是,进入步骤S141,如果否,进入步骤S142;
[0078]S141:随机选取一个优先级最高的进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的优先级最高的进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最尚优先级。返回步骤Sll ;
[0079]S142:当到达优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度。返回步骤S11。
[0080]在上述实施例的基础上,运行时间片长度为4个tick。
[0081]本发明提供的一种01调度算法的改进方法,通过为每个进程设置同样的运行时间片长度,且优先级高的进程的响应时间长度较短,当本次进程调度序列中包含有延时调度进程时,则优先调度该延时调度进程。由此可见,每个进程都能够被及时调度,即使存在延时也会在下一轮被及时调度。通过该方法能够降低某个进程长时间得不到响应而造成的系统崩溃的危险性,提尚系统的稳定性。
[0082]图2为本发明提供的一种01调度算法的改进装置的结构图。01调度算法的改进装置,包括:
[0083]进程统计单元10,用于统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度;
[0084]其中,分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度;
[0085]进程调度序列生成单元11,用于将当前系统内的进程按照优先级顺序生成本次进程调度序列;
[0086]判断单元12,用于判断本次进程调度序列中是否包含有延时调度进程;
[0087]第一调度单元13,用于在本次进程调度序列中包含有延时调度进程的情况下,当到达本次延时调度进程的响应时间时,调度延时调度进程,并在到达延时调度进程的运行时间片长度时停止调度;
[0088]第二调度单元14,用于在本次进程调度序列中不包含有延时调度进程的情况下,当到达本次进程调度序列中优先级最尚的进程的响应时间时,调度优先级最尚的进程,并在到达优先级最高的进程的运行时间片长度时停止调度。
[0089]本实施例提供的01调度算法的改进方法,通过为每个进程设置同样的运行时间片长度,且优先级高的进程的响应时间长度较短,当本次进程调度序列中包含有延时调度进程时,则优先调度该延时调度进程。由此可见,每个进程都能够被及时调度,即使存在延时也会在下一轮被及时调度。通过该方法能够降低某个进程长时间得不到响应而造成的系统崩溃的危险性,提尚系统的稳定性。
[0090]优选地,判断单元的判断规则包括:
[0091]如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程;
[0092]如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程;
[0093]如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在预设范围,则确定本次进程调度序列中包含延时调度进程。
[0094]优选地,第一调度单元具体包括:
[0095]判断子单元,用于判断延时调度进程的个数是否大于I;
[0096]第一调度子单元,用于在延时调度进程的个数大于I的情况下,随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级;
[0097]第二调度子单元,用于在延时调度进程的个数等于I的情况下,当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度。
[0098]优选地,所述第二调度单元包括:
[0099]第二判断子单元,用于判断优先级最高的进程的个数是否大于I;
[0100]第三调度子单元,用于在优先级最高的进程的个数大于I的情况下,随机选取一个优先级最尚的进程,当到达该优先级最尚的进程的响应时间时,调度该优先级最尚的进程,并在到达该优先级最尚的进程的运行时间片长度时停止调度;同时,将剩余的优先级最尚的进程加入下次进程调度序列中,并将优先级提高到下次进程调度序列中的最高优先级;
[0101]第四调度子单元,用于在优先级最高的进程的个数等于I的情况下,当到达优先级最尚的进程的响应时间时,调度该优先级最尚的进程,并在到达该优先级最尚的进程的运行时间片长度时停止调度。
[0102]优选地,运行时间片长度为4个tick。可以理解地是,运行时间片长度的选取可以根据实际情况选择,并不代表只有这一种选择方式。
[0103]由于装置部分与方法部分的实施例相对应,因此装置部分的实施例参见方法部分的实施例的描述,这里暂不赘述。
[0104]以上对本发明所提供的01调度算法的改进方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0105]专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0106]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(R0M)、电可编程R0M、电可擦除可编程R0M、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
【主权项】
1.一种Ol调度算法的改进方法,其特征在于,包括: S10:统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度; 其中,所述分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度; SI 1:将当前系统内的进程按照优先级顺序生成本次进程调度序列; S12:判断本次进程调度序列中是否包含有延时调度进程;如果是,则进入步骤S13,如果否,则进入步骤S14; S13:当到达本次延时调度进程的响应时间时,调度所述延时调度进程,并在到达所述延时调度进程的运行时间片长度时停止调度;返回步骤Sll; S14:当到达本次进程调度序列中优先级最尚的进程的响应时间时,调度所述优先级最高的进程,并在到达所述优先级最高的进程的运行时间片长度时停止调度;返回步骤S11。2.根据权利要求1所述的01调度算法的改进方法,其特征在于,S12的判断方法包括: 如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程; 如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程; 如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在所述预设范围,则确定本次进程调度序列中包含延时调度进程。3.根据权利要求1所述的01调度算法的改进方法,其特征在于,步骤S13包括: S130:判断延时调度进程的个数是否大于I;如果是,进入步骤S131,如果否,进入步骤S132; S131:随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级;返回步骤Sll; S132:当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;返回步骤S11。4.根据权利要求1所述的01调度算法的改进方法,其特征在于,步骤S14包括: S140:判断优先级最高的进程的个数是否大于I;如果是,进入步骤S141,如果否,进入步骤S142; S141:随机选取一个优先级最尚的进程,当到达该优先级最尚的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;同时,将剩余的优先级最高的进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级;返回步骤SI I; SI42:当到达优先级最尚的进程的响应时间时,调度该优先级最尚的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;返回步骤S11。5.根据权利要求1所述的Ol调度算法的改进方法,其特征在于,所述运行时间片长度为4个tick。6.一种01调度算法的改进装置,其特征在于,包括: 进程统计单元,用于统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度; 其中,所述分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度; 进程调度序列生成单元,用于将当前系统内的进程按照优先级顺序生成本次进程调度序列; 判断单元,用于判断本次进程调度序列中是否包含有延时调度进程; 第一调度单元,用于在本次进程调度序列中包含有延时调度进程的情况下,当到达本次延时调度进程的响应时间时,调度所述延时调度进程,并在到达所述延时调度进程的运行时间片长度时停止调度; 第二调度单元,用于在本次进程调度序列中不包含有延时调度进程的情况下,当到达本次进程调度序列中优先级最尚的进程的响应时间时,调度所述优先级最尚的进程,并在到达所述优先级最高的进程的运行时间片长度时停止调度。7.根据权利要求6所述的01调度算法的改进装置,其特征在于,判断单元的判断规则包括: 如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程; 如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程;如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次尚的进程在本次进程调度序列中其不是优先级最尚的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在所述预设范围,则确定本次进程调度序列中包含延时调度进程。8.根据权利要求6所述的01调度算法的改进装置,其特征在于,第一调度单元具体包括: 第一判断子单元,用于判断延时调度进程的个数是否大于I; 第一调度子单元,用于在延时调度进程的个数大于I的情况下,随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提尚到下次进程调度序列中的最尚优先级; 第二调度子单元,用于在延时调度进程的个数等于I的情况下,当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度。9.根据权利要求6所述的Ol调度算法的改进装置,其特征在于,所述第二调度单元包括: 第二判断子单元,用于判断优先级最高的进程的个数是否大于I; 第三调度子单元,用于在优先级最高的进程的个数大于I的情况下,随机选取一个优先级最尚的进程,当到达该优先级最尚的进程的响应时间时,调度该优先级最尚的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;同时,将剩余的优先级最高的进程加入下次进程调度序列中,并将优先级提高到下次进程调度序列中的最高优先级; 第四调度子单元,用于在优先级最高的进程的个数等于I的情况下,当到达优先级最高的进程的响应时间时,调度该优先级最尚的进程,并在到达该优先级最尚的进程的运行时间片长度时停止调度。10.根据权利要求6所述的01调度算法的改进装置,其特征在于,所述运行时间片长度为4个tick。
【文档编号】G06F9/48GK106095557SQ201610444483
【公开日】2016年11月9日
【申请日】2016年6月20日
【发明人】武毅
【申请人】浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1