CN106095557B - 一种o1调度算法的改进方法及装置 - Google Patents
一种o1调度算法的改进方法及装置 Download PDFInfo
- Publication number
- CN106095557B CN106095557B CN201610444483.3A CN201610444483A CN106095557B CN 106095557 B CN106095557 B CN 106095557B CN 201610444483 A CN201610444483 A CN 201610444483A CN 106095557 B CN106095557 B CN 106095557B
- Authority
- CN
- China
- Prior art keywords
- scheduling
- highest priority
- calls sequence
- time
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 579
- 230000008569 process Effects 0.000 claims abstract description 547
- 230000004044 response Effects 0.000 claims abstract description 83
- 230000006872 improvement Effects 0.000 claims abstract description 11
- 230000003111 delayed effect Effects 0.000 claims description 15
- 108010001267 Protein Subunits Proteins 0.000 claims description 9
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 238000009826 distribution Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4831—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
- G06F9/4837—Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种O1调度算法的改进方法,包括统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度;S11:将当前系统内的进程按照优先级顺序生成本次进程调度序列;判断是否包含有延时调度进程;如果是,则进入步骤S13,如果否,则进入步骤S14;S13:当到达本次延时调度进程的响应时间时,调度延时调度进程;返回步骤S11;S14:当到达本次进程调度序列中优先级最高的进程的响应时间时,调度优先级最高的进程;返回步骤S11。由此可见,每个进程都能够被及时调度,即使存在延时也会在下一轮被及时调度。通过该方法提高了系统的稳定性。此外本发明还提供一种O1调度算法的改进装置,效果如上。
Description
技术领域
本发明涉及Linux技术领域,特别是涉及一种O1调度算法的改进方法及装置。
背景技术
在高版本的Linux系统中O1算法早已被CFS调度算法所取代,但是在许多嵌入式操作系统中,O1算法仍然占有重要地位。但是现有的O1算法,由于没有对系统内的进程的响应时间长度和运行时间长度做规划,导致优先级低的进程长时间得不到响应,造成系统崩溃。
由此可见,如何合理调度每个进程,避免某个进程长时间得不到响应的问题是本领域技术人员亟待解决地问题。
发明内容
本发明的目的是提供一种O1调度算法的改进方法及装置,用于合理调度每个进程,避免某个进程长时间得不到响应。
为解决上述技术问题,本发明提供一种O1调度算法的改进方法,包括:
S10:统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度;
其中,所述分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度;
S11:将当前系统内的进程按照优先级顺序生成本次进程调度序列;
S12:判断本次进程调度序列中是否包含有延时调度进程;如果是,则进入步骤S13,如果否,则进入步骤S14;
S13:当到达本次延时调度进程的响应时间时,调度所述延时调度进程,并在到达所述延时调度进程的运行时间片长度时停止调度;返回步骤S11;
S14:当到达本次进程调度序列中优先级最高的进程的响应时间时,调度所述优先级最高的进程,并在到达所述优先级最高的进程的运行时间片长度时停止调度;返回步骤S11。
优选地,S12的判断方法包括:
如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程;
如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程;
如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在所述预设范围,则确定本次进程调度序列中包含延时调度进程。
优选地,步骤S13包括:
S130:判断延时调度进程的个数是否大于1;如果是,进入步骤S131,如果否,进入步骤S132;
S131:随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级;返回步骤S11;
S132:当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;返回步骤S11。
优选地,步骤S14包括:
S140:判断优先级最高的进程的个数是否大于1;如果是,进入步骤S141,如果否,进入步骤S142;
S141:随机选取一个优先级最高的进程,当到达该优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;同时,将剩余的优先级最高的进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级;返回步骤S11;
S142:当到达优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;返回步骤S11。
优选地,所述运行时间片长度为4个tick。
一种O1调度算法的改进装置,包括:
进程统计单元,用于统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度;
其中,所述分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度;
进程调度序列生成单元,用于将当前系统内的进程按照优先级顺序生成本次进程调度序列;
判断单元,用于判断本次进程调度序列中是否包含有延时调度进程;
第一调度单元,用于在本次进程调度序列中包含有延时调度进程的情况下,当到达本次延时调度进程的响应时间时,调度所述延时调度进程,并在到达所述延时调度进程的运行时间片长度时停止调度;
第二调度单元,用于在本次进程调度序列中不包含有延时调度进程的情况下,当到达本次进程调度序列中优先级最高的进程的响应时间时,调度所述优先级最高的进程,并在到达所述优先级最高的进程的运行时间片长度时停止调度。
优选地,判断单元的判断规则包括:
如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程;
如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程;
如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在所述预设范围,则确定本次进程调度序列中包含延时调度进程。
优选地,第一调度单元具体包括:
第一判断子单元,用于判断延时调度进程的个数是否大于1;
第一调度子单元,用于在延时调度进程的个数大于1的情况下,随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提高到下次进程调度序列中的最高优先级;
第二调度子单元,用于在延时调度进程的个数等于1的情况下,当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度。
优选地,所述第二调度单元包括:
第二判断子单元,用于判断优先级最高的进程的个数是否大于1;
第三调度子单元,用于在优先级最高的进程的个数大于1的情况下,随机选取一个优先级最高的进程,当到达该优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;同时,将剩余的优先级最高的进程加入下次进程调度序列中,并将优先级提高到下次进程调度序列中的最高优先级;
第四调度子单元,用于在优先级最高的进程的个数等于1的情况下,当到达优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度。
优选地,所述运行时间片长度为4个tick。
本发明所提供的O1调度算法的改进方法及装置,通过为每个进程设置同样的运行时间片长度,且优先级高的进程的响应时间长度较短,当本次进程调度序列中包含有延时调度进程时,则优先调度该延时调度进程。由此可见,每个进程都能够被及时调度,即使存在延时也会在下一轮被及时调度。通过该方法能够降低某个进程长时间得不到响应而造成的系统崩溃的危险性,提高系统的稳定性。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种O1调度算法的改进方法的流程图;
图2为本发明提供的一种O1调度算法的改进装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种O1调度算法的改进方法及装置。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明提供的一种O1调度算法的改进方法的流程图。如图1所示,包括:
S10:统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度。
其中,分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度。
由于全部的进程不是同时都加入到调度工作中,随着系统的运行,随时都有新的进程加入,因此,需要把全部进程的进程数目和优先级获取到,然后为每个进程分配运行时间片长度和响应时间长度。可以理解地是,本发明中的优先级越高则响应时间长度越短,只是表示一种变化趋势,而不是量的限定。只要满足优先级高的进程的响应时间长度小于优先级低的进程的响应时间长度即可。
S11:将当前系统内的进程按照优先级顺序生成本次进程调度序列。
如上文所述,本步骤只是将系统当前内参与调度的进程生成本次进程调序列。由于不断有新的进程加入,因此,本次进程调度序列与上次进程调度序列以及下次进程调度序列有可能不同。另外,如果是调度工作的第一轮,即第一次生成进程调度序列,那么它作为本次进程调度序列时,上次进程调度序列相当于是空的。
S12:判断本次进程调度序列中是否包含有延时调度进程。
如果是,则进入步骤S13,如果否,则进入步骤S14。
S13:当到达本次延时调度进程的响应时间时,调度延时调度进程,并在到达延时调度进程的运行时间片长度时停止调度。返回步骤S11。
为了能够使得每个进程都能够及时得到响应,本发明中,如果本次进程调度序列中包含有延时调度进程的话,则优先调度延时调度进程。本发明中的延时调度进程是指,在上次进程调度序列中是优先级次高的进程,如果没有新进程的加入,那么在本次调度序列中,该进程就是优先级最高的进程,能够优先调度。正是由于有新的进程加入,且新加入的优先级高于该进程,导致到了本次进程调度序列中,该进程就不是优先级最高的进程,从而不能够被优先调度。为了避免这种情况发生,如果本次优先调度序列中存在延时调度进程,则无论其优先级如何,都要优先调度该延时调度进程。
作为一种优选地实施方式12的判断方法包括:
如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程;
如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程;
如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在预设范围,则确定本次进程调度序列中包含延时调度进程。
S14:当到达本次进程调度序列中优先级最高的进程的响应时间时,调度优先级最高的进程,并在到达优先级最高的进程的运行时间片长度时停止调度。返回步骤S11。
如果本次进程调度序列中,不存在延时调度进程,则直接调度优先级最高的进程即可。
为了让本领域技术人员更加理解本发明提供的方法,下文以一个简单的例子做说明。
当前系统内的进程为A、B、C、D、E五个,优先级分别为-1、-10、19、20、20,运行时间片长度均为4个tick,响应时间长度分别为28个tick、16个tick、48个tick、60个tick、60个tick。按照步骤S11生成本次进程调度序列(第一次进程调度序列)的话,就是B、A、C、D、E。B的优先级最高,被优先调度,A的优先级次高,原则上在第二进程调度中被调度。那么在本次调度中就不存在延时调度进程,进程B就会被调度。
第一种情况:调度之后,返回步骤S11,再次生成第二次进程调度序列。假如在生成第二进程调度序列之前,有新的进程F进入,其优先级为-2,且加入的时间与进程A的响应时间的差值超出预设范围,或者可以这样理解,进程F加入时间距进程A的响应时间提前了较多,那么进程F就没有对进程A造成影响,因此第二进程调度序列中就不包含延时调度进程,即进程A不是延时调度进程。那么在第二进程调度中进程F就会被调度。反之,假如在生成第二进程调度序列之前,有新的进程F进入,其优先级为-2,且加入的时间与进程A的响应时间的差值在预设范围,或者可以这样理解,进程F加入时间距进程A的响应时间提前的较少,那么进程F就对进程A造成影响(可能已经开始准备对进程A的调度准备工作),因此第二进程调度序列中就包含延时调度进程,即进程A是延时调度进程。那么在第二进程调度中进程F虽然优先级高于进程A,但是仍然是调度进程A。当再度返回步骤S11时,如果有新的进程加入,则就比较新加入的进程的加入时间与进程F的响应时间来判断第三次进程调度序列中是否包含延时调度进程;如果没有新的进程加入,则进程F就会被优先调度。
第二种情况:调度之后,返回步骤S11,再次生成第二次进程调度序列。在生成第二进程调度序列之前,没有新的进程加入,则本次调度中进程A就会被优先调度。
在具体实施中,可能在同一个进程调度序列中包含有相同优先级的进程,如果具有相同优先级的进程恰好是延时调度进程时,在上述实施例的基础上,步骤S13包括:
S130:判断延时调度进程的个数是否大于1。如果是,进入步骤S131,如果否,进入步骤S132;
S131:随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级。返回步骤S11;
S132:当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度。返回步骤S11。
另外,还有一种情况就是,当本次优先调度序列中不存在延时调度进程时,要执行步骤S14。此时,可能优先级最高的进程的数量也不是只有一个,可能为1可能为2等,因此,这样的情况与步骤S13的具体判断过程也相同。
S140:判断优先级最高的进程的个数是否大于1。如果是,进入步骤S141,如果否,进入步骤S142;
S141:随机选取一个优先级最高的进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的优先级最高的进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级。返回步骤S11;
S142:当到达优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度。返回步骤S11。
在上述实施例的基础上,运行时间片长度为4个tick。
本发明提供的一种O1调度算法的改进方法,通过为每个进程设置同样的运行时间片长度,且优先级高的进程的响应时间长度较短,当本次进程调度序列中包含有延时调度进程时,则优先调度该延时调度进程。由此可见,每个进程都能够被及时调度,即使存在延时也会在下一轮被及时调度。通过该方法能够降低某个进程长时间得不到响应而造成的系统崩溃的危险性,提高系统的稳定性。
图2为本发明提供的一种O1调度算法的改进装置的结构图。O1调度算法的改进装置,包括:
进程统计单元10,用于统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度;
其中,分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度;
进程调度序列生成单元11,用于将当前系统内的进程按照优先级顺序生成本次进程调度序列;
判断单元12,用于判断本次进程调度序列中是否包含有延时调度进程;
第一调度单元13,用于在本次进程调度序列中包含有延时调度进程的情况下,当到达本次延时调度进程的响应时间时,调度延时调度进程,并在到达延时调度进程的运行时间片长度时停止调度;
第二调度单元14,用于在本次进程调度序列中不包含有延时调度进程的情况下,当到达本次进程调度序列中优先级最高的进程的响应时间时,调度优先级最高的进程,并在到达优先级最高的进程的运行时间片长度时停止调度。
本实施例提供的O1调度算法的改进方法,通过为每个进程设置同样的运行时间片长度,且优先级高的进程的响应时间长度较短,当本次进程调度序列中包含有延时调度进程时,则优先调度该延时调度进程。由此可见,每个进程都能够被及时调度,即使存在延时也会在下一轮被及时调度。通过该方法能够降低某个进程长时间得不到响应而造成的系统崩溃的危险性,提高系统的稳定性。
优选地,判断单元的判断规则包括:
如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程;
如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程;
如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在预设范围,则确定本次进程调度序列中包含延时调度进程。
优选地,第一调度单元具体包括:
判断子单元,用于判断延时调度进程的个数是否大于1;
第一调度子单元,用于在延时调度进程的个数大于1的情况下,随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级;
第二调度子单元,用于在延时调度进程的个数等于1的情况下,当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度。
优选地,所述第二调度单元包括:
第二判断子单元,用于判断优先级最高的进程的个数是否大于1;
第三调度子单元,用于在优先级最高的进程的个数大于1的情况下,随机选取一个优先级最高的进程,当到达该优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;同时,将剩余的优先级最高的进程加入下次进程调度序列中,并将优先级提高到下次进程调度序列中的最高优先级;
第四调度子单元,用于在优先级最高的进程的个数等于1的情况下,当到达优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度。
优选地,运行时间片长度为4个tick。可以理解地是,运行时间片长度的选取可以根据实际情况选择,并不代表只有这一种选择方式。
由于装置部分与方法部分的实施例相对应,因此装置部分的实施例参见方法部分的实施例的描述,这里暂不赘述。
以上对本发明所提供的O1调度算法的改进方法及装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (8)
1.一种O1调度算法的改进方法,其特征在于,包括:
S10:统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度;
其中,所述分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度;
S11:将当前系统内的进程按照优先级顺序生成本次进程调度序列;
S12:判断本次进程调度序列中是否包含有延时调度进程;如果是,则进入步骤S13,如果否,则进入步骤S14;
S13:当到达本次延时调度进程的响应时间时,调度所述延时调度进程,并在到达所述延时调度进程的运行时间片长度时停止调度;返回步骤S11;
S14:当到达本次进程调度序列中优先级最高的进程的响应时间时,调度所述优先级最高的进程,并在到达所述优先级最高的进程的运行时间片长度时停止调度;返回步骤S11;
其中,所述S12的判断方法包括:
如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程;
如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程;
如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在所述预设范围,则确定本次进程调度序列中包含延时调度进程。
2.根据权利要求1所述的O1调度算法的改进方法,其特征在于,步骤S13包括:
S130:判断延时调度进程的个数是否大于1;如果是,进入步骤S131,如果否,进入步骤S132;
S131:随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级;返回步骤S11;
S132:当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;返回步骤S11。
3.根据权利要求1所述的O1调度算法的改进方法,其特征在于,步骤S14包括:
S140:判断优先级最高的进程的个数是否大于1;如果是,进入步骤S141,如果否,进入步骤S142;
S141:随机选取一个优先级最高的进程,当到达该优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;同时,将剩余的优先级最高的进程加入下次进程调度序列中,并将优先级提高到下次延时进程调度序列中的最高优先级;返回步骤S11;
S142:当到达优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;返回步骤S11。
4.根据权利要求1所述的O1调度算法的改进方法,其特征在于,所述运行时间片长度为4个tick。
5.一种O1调度算法的改进装置,其特征在于,包括:
进程统计单元,用于统计全部进程的进程数目和优先级,并按照分配规则为每个进程分配运行时间片长度和响应时间长度;
其中,所述分配规则为每个进程具有相同的时间片长度,优先级越高则响应时间长度越短,相同的优先级具有相同的响应时间长度;
进程调度序列生成单元,用于将当前系统内的进程按照优先级顺序生成本次进程调度序列;
判断单元,用于判断本次进程调度序列中是否包含有延时调度进程;
第一调度单元,用于在本次进程调度序列中包含有延时调度进程的情况下,当到达本次延时调度进程的响应时间时,调度所述延时调度进程,并在到达所述延时调度进程的运行时间片长度时停止调度;
第二调度单元,用于在本次进程调度序列中不包含有延时调度进程的情况下,当到达本次进程调度序列中优先级最高的进程的响应时间时,调度所述优先级最高的进程,并在到达所述优先级最高的进程的运行时间片长度时停止调度;
其中,所述判断单元包括:
第一判断子单元,用于如果本次进程调度序列与上次进程调度序列没有新的进程进入则确定本次进程调度序列中不包含延时调度进程;
第二判断子单元,用于如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值超出预设范围,则确定本次进程调度序列中不包含延时调度进程;
第三判断子单元,用于如果本次进程调度序列与上次进程调度序列有新的进程进入且上次进程调度序列中的优先级次高的进程在本次进程调度序列中其不是优先级最高的进程,且本次进程调度序列中的优先级最高的进程的加入时间超前于上次进程调度序列中的优先级次高的进程的响应时间,且二者的差值在所述预设范围,则确定本次进程调度序列中包含延时调度进程。
6.根据权利要求5所述的O1调度算法的改进装置,其特征在于,第一调度单元具体包括:
第一判断子单元,用于判断延时调度进程的个数是否大于1;
第一调度子单元,用于在延时调度进程的个数大于1的情况下,随机选取一个延时调度进程,当到达该延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度;同时,将剩余的延时调度进程加入下次进程调度序列中,并将优先级提高到下次进程调度序列中的最高优先级;
第二调度子单元,用于在延时调度进程的个数等于1的情况下,当到达延时调度进程的响应时间时,调度该延时调度进程,并在到达该延时调度进程的运行时间片长度时停止调度。
7.根据权利要求5所述的O1调度算法的改进装置,其特征在于,所述第二调度单元包括:
第二判断子单元,用于判断优先级最高的进程的个数是否大于1;
第三调度子单元,用于在优先级最高的进程的个数大于1的情况下,随机选取一个优先级最高的进程,当到达该优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度;同时,将剩余的优先级最高的进程加入下次进程调度序列中,并将优先级提高到下次进程调度序列中的最高优先级;
第四调度子单元,用于在优先级最高的进程的个数等于1的情况下,当到达优先级最高的进程的响应时间时,调度该优先级最高的进程,并在到达该优先级最高的进程的运行时间片长度时停止调度。
8.根据权利要求6所述的O1调度算法的改进装置,其特征在于,所述运行时间片长度为4个tick。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610444483.3A CN106095557B (zh) | 2016-06-20 | 2016-06-20 | 一种o1调度算法的改进方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610444483.3A CN106095557B (zh) | 2016-06-20 | 2016-06-20 | 一种o1调度算法的改进方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106095557A CN106095557A (zh) | 2016-11-09 |
CN106095557B true CN106095557B (zh) | 2019-05-28 |
Family
ID=57237441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610444483.3A Active CN106095557B (zh) | 2016-06-20 | 2016-06-20 | 一种o1调度算法的改进方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106095557B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293918A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种调度进程的方法、系统及计算机 |
CN109309720B (zh) * | 2018-10-11 | 2021-10-15 | 郑州云海信息技术有限公司 | 一种基于nfs协议处理文件访问请求的方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517867A (zh) * | 2003-01-07 | 2004-08-04 | 松下电器产业株式会社 | 进程调度装置、进程调度方法、程序以及记录媒体 |
CN1519735A (zh) * | 2003-01-24 | 2004-08-11 | 深圳市中兴通讯股份有限公司 | 嵌入式实时操作系统的进程调度方法 |
CN1606301A (zh) * | 2004-07-09 | 2005-04-13 | 清华大学 | 一种共享资源访问的调度控制方法及装置 |
CN103984596A (zh) * | 2014-05-19 | 2014-08-13 | 上海微小卫星工程中心 | 一种星载软件的调度方法及装置 |
CN105320571A (zh) * | 2015-11-27 | 2016-02-10 | 浪潮(北京)电子信息产业有限公司 | 一种进程调度方法 |
KR101621280B1 (ko) * | 2015-02-02 | 2016-05-17 | 서울대학교산학협력단 | 최악 응답 시간 분석 방법 및 컴퓨터 프로그램 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9477521B2 (en) * | 2014-05-29 | 2016-10-25 | Netapp, Inc. | Method and system for scheduling repetitive tasks in O(1) |
-
2016
- 2016-06-20 CN CN201610444483.3A patent/CN106095557B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517867A (zh) * | 2003-01-07 | 2004-08-04 | 松下电器产业株式会社 | 进程调度装置、进程调度方法、程序以及记录媒体 |
CN1519735A (zh) * | 2003-01-24 | 2004-08-11 | 深圳市中兴通讯股份有限公司 | 嵌入式实时操作系统的进程调度方法 |
CN1606301A (zh) * | 2004-07-09 | 2005-04-13 | 清华大学 | 一种共享资源访问的调度控制方法及装置 |
CN103984596A (zh) * | 2014-05-19 | 2014-08-13 | 上海微小卫星工程中心 | 一种星载软件的调度方法及装置 |
KR101621280B1 (ko) * | 2015-02-02 | 2016-05-17 | 서울대학교산학협력단 | 최악 응답 시간 분석 방법 및 컴퓨터 프로그램 |
CN105320571A (zh) * | 2015-11-27 | 2016-02-10 | 浪潮(北京)电子信息产业有限公司 | 一种进程调度方法 |
Non-Patent Citations (2)
Title |
---|
一种实时性O1调度改进算法;马超 等;《计算机应用研究》;20090724;第26卷(第7期);第2450-2452、2480页 |
一种改进的实时操作系统的进程优先级检索算法;季颖 等;《沈阳理工大学学报》;20070130;第25卷(第5期);第27-30页 |
Also Published As
Publication number | Publication date |
---|---|
CN106095557A (zh) | 2016-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107291548B (zh) | 任务的资源调度方法及装置 | |
CN104239154B (zh) | 一种Hadoop集群中的作业调度方法和作业调度器 | |
EP3553657A1 (en) | Method and device for allocating distributed system task | |
CN103369041B (zh) | 基于云计算的资源分配方法及装置 | |
CN109936604B (zh) | 一种资源调度方法、装置和系统 | |
EP2724301A1 (en) | Method and system for reactive scheduling | |
CN106293918A (zh) | 一种调度进程的方法、系统及计算机 | |
CN106095557B (zh) | 一种o1调度算法的改进方法及装置 | |
EP2551767B1 (en) | Method and device for adjusting clock interrupt cycle | |
CN108093486B (zh) | 工业无线传感器网络中混合数据流可靠传输的调度方法 | |
CN105022668B (zh) | 一种作业调度方法及系统 | |
CN103810045A (zh) | 资源分配方法、资源管理器、资源服务器及系统 | |
CN109034652A (zh) | 一种动态派工方法和装置 | |
CN104599085A (zh) | 一种众包模式下的用户激励方法和众包系统 | |
CN106201665A (zh) | 一种动态队列布置方法及设备 | |
CN105592554A (zh) | 一种上行业务的调度方法和基站 | |
CN110609735A (zh) | 任务管理方法、设备和计算机程序产品 | |
JP2013524706A5 (zh) | ||
CN108733839A (zh) | 一种海量数据的统计方法及装置 | |
CN116644931A (zh) | 一种基于遗传算法的任务调度方法 | |
WO2016206441A1 (zh) | 一种虚拟资源分配方法及装置、计算机存储介质 | |
Koole et al. | Optimization of overflow policies in call centers | |
JP2019532435A5 (zh) | ||
CN103475435B (zh) | 网络数字广播的广播命令碰撞处理方法及装置 | |
CN114138453B (zh) | 一种适合边缘计算环境的资源优化分配方法与系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |