CN1517867A - 进程调度装置、进程调度方法、程序以及记录媒体 - Google Patents
进程调度装置、进程调度方法、程序以及记录媒体 Download PDFInfo
- Publication number
- CN1517867A CN1517867A CNA2004100012842A CN200410001284A CN1517867A CN 1517867 A CN1517867 A CN 1517867A CN A2004100012842 A CNA2004100012842 A CN A2004100012842A CN 200410001284 A CN200410001284 A CN 200410001284A CN 1517867 A CN1517867 A CN 1517867A
- Authority
- CN
- China
- Prior art keywords
- priority
- delay task
- task
- delay
- processing
- 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.)
- Pending
Links
Images
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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
进程调度装置具备只处理付与可变的优先级的延迟任务的延迟任务处理进程和执行付与固定的优先级的延迟任务以外的处理的多个进程。进程调度部分根据优先级依次执行延迟任务处理进程和进程。延迟任务登录处理部分与优先级同时将新产生的延迟任务登录到队列表中。延迟任务优先级控制部分选择在队列表21内优先级最高的延迟任务。进程优先级控制部分将所选择的延迟任务的优先级设定为延迟任务处理进程的优先级。
Description
技术领域
本发明涉及在多进程环境下能有效且适当地进行调度的进程调度装置、进程调度方法、用于进程调度的程序、以及记录了用于进程调度的程序的记录媒体。
背景技术
当前,计算机不限于在大型计算机和个人计算机那样形态中的利用,而且在各种家用电器、便携式电话等领域中的利用也正在取得进展。
作为计算机中的有效处理方法,多进程处理已为人们所熟知。在该多进程处理中,将程序分成进程、线程、或被叫做任务的多个执行单位(在本说明书中叫做“进程”),通过基于付与它们的优先级的调度将各实单位进行并列处理。但是,即使是多进程处理,全部的执行单位并不是一律作为进程被执行,以与进程不同的形式被执行的执行单位也不少。例如,用于处理中断请求的执行单位群(中断处理程序)就是以与进程不同的形态被处理。另外,在中断处理程序中,没有必要即时处理的部分,往往在适当的定时中以与进程不同的形态延迟并被处理。
为了判断使以在所述中断处理程序中没有必要即时处理的部分那样的进程以外的形态被执行的任务(在本说明书中叫做“延迟任务”)和进程的哪一个优先并处理,人们考虑到在延迟任务中也给与优先级,并与进程相同进行调度。在附加了优先级后将与此相关发生的事件进行排队,按照优先级高的顺序起动与事件对应的进程,这样的进程调度的方法在专利文献1中被记载。人们考虑到通过使该专利文献1的方法发展,将事件设定为延迟任务的发生,将被起动的进程作为与延迟任务对应的实际处理进行处理,调度进程和延迟任务。
但是,专利文献1中记载的方法不是将多进程环境设定为前提,不能有效且适当地调度进程和延迟任务。即,在使专利文献1记载的方法适用与多进程环境的场合,有必要使一个进程与每个事件对应。若多进程地处理与已发生的全部事件对应的进程,那么,有必要起动大量的进程,并在短期间内重复进程的生成和消灭。在短期间内重复大量进程的生成、消灭对于计算机装置负担大。另外,通常,若增加正在起动的进程个数,那么调度需要长时间,用于管理的存储器消费也将增加。
发明内容
本发明的第1形态提供这样的进程调度装置,该装置并行处理分别付与优先级的多个进程,它具备:处理所述多个进程中的延迟任务,具备所述延迟任务被登录的队列表,而且设置了可变的优先级的至少一个延迟任务处理部分;是分别处理所述多个进程中所述延迟任务以外的一个进程的多个通常进程处理部分,而且各通常进程处理部分的优先级应被设定与所述处理的进程的优先级相等的通常进程处理部分;根据被设定在它们中的优先级依次起动所述延迟任务处理部分和通常进程处理部分,并处理对应的所述进程的进程调度部分;与其自身的优先级一起将新产生的延迟任务登录在所述延迟任务处理部分的队列表中的延迟任务登录处理部分;选择被登录到所述队列表的延迟任务中最高优先级的延迟任务的延迟任务优先级控制部分;以及将通过所述延迟任务优先级控制部分被选择的延迟任务的优先级设定为所述延迟任务处理部分的优先级的进程优先级控制部分。
所谓所述延迟任务是在多进程环境中以通常的进程以外的形态被执行的任务。例如,所述延迟任务包含被包含在中断处理程序中的任务中间能延迟处理的任务。另外,延迟任务包含是来自进程的请求而不要求即时处理的能延迟的任务。
在本发明的进程调度装置中,处理延迟进程的延迟任务处理部分的优先级被设定为被存储在它自身具备的队列表中的延迟任务的优先级中优先级最高的优先级。因此,按照这些优先级能够有效且适当地调度延迟任务和延迟任务以外的进程。
为防止作为优先级高的进程比优先级低的进程更后被处理的现象的优先级的倒转,希望进程优先级控制部分当新的延迟任务产生时,在与执行过程中的进程连接的下一个进程开始之前,进行延迟任务处理进程部分的优先级的设定。具体地说,进程优先级控制部分在新的延迟任务产生了的场合,将中断执行过程中的进程,在执行了延迟任务处理部分的优先级的设定后,再开始所述被中断的进程。或者,进程优先级控制部分在产生了新的延迟任务的场合,在执行中的进程结束后,在下一个进程开始之前,进行所述延迟任务处理部分的优先级的设定。在这些进程中,包含被所述通常进程处理部分处理的进程和被所述延迟任务处理部分处理的延迟任务。
本发明的第2形态提供这样的进程调度方法,该方法并行地处理分别被付与优先级的多个进程,根据付与这些进程的优先级依次执行处理延迟任务的延迟任务处理进程和进行所述延迟任务以外的处理的通常进程,与被付与该延迟任务的优先级同时将新产生的延迟任务登录在队列表中,选择在所述队列表中被记录的延迟任务中优先级是最高的延迟任务,并将所述被选择的延迟任务的优先级设定为所述延迟任务处理进程本身的优先级。
本发明的第3形态提供这样的程序,该程序用于在计算机中并行处理分别付与优先级的多个进程,它具备:根据付与这些进程的优先级依次执行处理延迟任务的延迟任务处理进程和进行所述延迟任务以外的处理的通常进程的工序;与付与该延迟任务的优先级的同时将新产生的延迟任务登录到队列表的工序;选择被记录到所述队列表的延迟任务中优先级是最高的延迟任务的工序;以及将所述被选择的延迟任务的优先级设定为所述延迟任务处理进程本身的优先级的工序。
本发明的第4形态提供记录了所述程序的、计算机能读取的记录媒体。
在本发明中,处理延迟任务的延迟任务处理进程的优先级被设定为被存储到它本身具备的队列表的延迟任务的优先级中优先级最高的优先级。因此,按照这些优先级能够有效且适当地调度延迟任务和延迟任务以外的通常的进程。
另外,通过在新的任务产生时在与执行中的进程相连的下一个进程开始之前进行延迟任务处理进程的优先级的设定,能够防止优先级的倒转现象。
附图说明
本发明的其它目的和特征通过涉及参照附图的合适的实施形态的以下的说明将变得明确。
图1是构成涉及本发明的实施形态的进程调度装置的计算机装置的概略构成图;
图2是用于说明进程调度部分12的动作的流程图;
图3是用于说明中断请求的处理的流程图;
图4是用于说明延迟任务处理进程的流程图;
图5A和5B是表示涉及本发明的实施形态的进程调度的一例的时间图;
图6A和6B是表示涉及本发明的实施形态的进程调度的其它一例的时间图;
图7是用于说明延迟任务处理进程的其它一例的流程图;
图8是用于说明延迟任务处理进程的又一个其它一例的流程图;
图9A和9B是用于说明本发明的进程调度的其它一例的时间图。
具体实施方式
图1表示作为本发明的进程调度装置的计算机。计算机至少具备中央运算处理装置(CPU)1和存储器装置2。另外,计算机可以具备未图示的输入装置、输出装置那样的其它设备。
CPU1,如果处理性能足够,那么能够使用任意类型的CPU。
在存储器装置2中,存储了包含计算机的操作系统(OS)10、一个延迟任务处理进程#1、以及其它的多个进程#1、#2…#N(N是自然数)的程序和数据。存储器装置2,如果有充分的功能和容量,那么能够使用随机存取存储器(RAM)、快速存储器那样的任意类型的存储器。另外,存储器装置2没有必要用单一的存储器装置构成,可以是同一种类的多个存储器装置或包含只读存储器(ROM)的不同种类的存储器装置的组合。此外,在存储器装置2以外可以设置硬盘驱动器那样的外部存储装置,在对计算机的动作没有问题的范围内可以使程序和数据向外部存储装置转移。
延迟任务处理进程#1是只处理延迟任务的专用进程,若从功能上看,构成延迟任务处理部分。其它的进程#2、#3…#N是用于执行延迟任务以外的进程的通常的进程,若从功能上看,构成通常进程处理部分。在延迟任务处理进程#1以及其它的进程#2、#3…#N中分别付与优先级。在本实施形态中,用象0、1、2、3…R…那样的0和自然数表示进程的优先级。表示该数字的值越小,优先级越高。但是,优先级的表现不受此限定,能决定进程之间的优先级就行。付与延迟任务处理进程#1的优先级是可变的,如后面详述的那样,按照处理的延迟任务被变更。另一方面,付与其它的进程#2、#3…#N的优先级是固定的,没有变更。在图1中,作为例子,将延迟任务处理进程#1以外的进程中间的进程#2的优先级设定为3,将进程#3的优先级设定为1。
延迟任务处理进程#1具备队列表21。每当重新产生延迟任务时,表示该延迟任务的标识符与优先级同时被登录在该队列表21中。在本实施形态中,作为延迟任务的标识符使用了象A、B、C…那样的字母。但是,延迟任务的标识符不受此限定,如能识别各个延迟任务就可以。另外,在本实施形态中,与所述延迟任务处理进程#1和其它的进程#2、#3…#N的优先级相同,用象0、1、2、3…那样的0和自然数表示延迟任务的优先级,表示值越小优先级越高。延迟任务处理进程#1按照它的优先级的顺序执行被登录在队列表21中的延迟任务。另外,延迟任务处理进程#1本身的优先级被设定为被登录在队列表21中的延迟任务的优先级中间优先级最高的优先级。在图1中,作为例子,在队列表21中登录了优先级4的延迟任务B、优先级5的延迟任务C。另外,执行过程中的任务是优先级最高的延迟任务A(优先级2)。执行中的延迟任务直到结束处理以前没有从队列表21中删除,但为了明确在图1中是执行中的延迟任务,使执行中的延迟任务A与队列表21中的其它延迟任务B、C分离并进行图示。此外,在图1中,延迟任务处理进程#1本身的优先级被设定为优先级最高的延迟任务A的优先级(优先级2)。
OS10为了与CPU协同动作实现本调度方法,具备中断处理程序处理部分11、进程调度部分12、延迟任务登录处理部分13、延迟任务优先级控制部分14以及进程优先级控制部分15。若说明关于这些功能,那么,中断处理程序处理部分11处理通过中断请求产生的中断处理程序。接着,进程调度部分12根据付与这些进程的优先级顺次执行延迟任务处理进程#1以及其它进程#2、#3…#N中间正在起动中的进程,从而按时间分割地并行处理多个进程。另外,延迟任务登录处理部分13与给该延迟任务付与了优先级的同时将新产生的延迟任务的标识符登录在延迟任务处理进程#1的排队调度表21中。此外,延迟任务优先级控制部分14选择被登录在排队调度表21中的延迟任务中间优先级最高的延迟任务。延迟任务优先级控制部分14可以按照它们的优先级高的顺序重新排列被登录在队列表21中的延迟任务。此外,进程优先级控制部分15将被延迟任务优先级控制部分14选择的延迟任务的优先级设定为延迟任务处理进程#1本身的优先级。
接着,参照从图2到图3的流程图说明本实施形态的多进程调度装置的动作。在这些流程图中被实现的功能能够作为一个程序实现。另外,可以将这样的程序记录在计算机能读取的记录媒体中。
在图2的步骤S2-1中,进程调度部分12根据优先级选择下次被执行的进程。详细地说,进程调度部分12比较延迟任务处理进程#1以及其它的进程#2、#3…#N中间正在起动中的进程的优先级,从优先级高的进程按照顺序执行。在步骤S2-2中,执行在步骤S2-2中所选择的延迟任务处理进程#1或其它的进程#2、#3…#N的任何一个。若一个进程的执行结束,那么在步骤S2-1中进程调度部分12再一次选择下次被执行的进程。
图3表示在进程#2、#3…#N的执行中已经有中断请求的场合的处理。若有中断请求,那么在步骤S3-1中,中断处理程序处理部分11将执行中断处理程序中间需要即时处理的任务(即时处理任务)。接着,在步骤S3-2中,中断处理程序处理部分11判断在中断处理程序中是否包含延迟任务。在没有包含延迟任务的场合,在步骤S3-6中,返回到执行中的进程。另一方面,在包含了延迟任务的场合,在步骤S3-3中,延迟任务登录处理部分13将延迟任务的标识符和优先级登录在延迟任务处理进程#1的队列表21中。接着,在步骤S3-4中,延迟任务优先级控制部分14选择被登录在队列表21中的延迟任务中间优先级是最高的延迟任务。接着,在S3-5中,进程优先级控制部分15将延迟任务处理进程#1的优先级设定为被延迟任务优先级控制部分14选择的最高优先级的延迟任务的优先级。在延迟处理进程#1的优先级被设定后,在步骤S3-6中返回到执行中的进程。
图4表示延迟任务处理进程(图2的步骤S2-2)的内容。首先,在步骤S4-1中,开始处理被登录在队列表21中的延迟任务中间具有最高优先级的延迟任务。接着,步骤S4-2中,判断是否产生新的延迟任务,即产生新的中断请求,而且判断该新的被请求的中断处理是否包含延迟任务。若在步骤S4-2中没有产生新的延迟任务,那么在步骤S4-3中,直到当前处理中的延迟任务结束以前,处理被继续。接着,在步骤S4-4中,延迟任务登录处理部分13将从队列表21中删除处理结束的延迟任务。另外,在步骤S4-5中,延迟任务处理进程#1的优先级被设定为在队列表21中最高优先级的延迟任务的优先级。具体地说,延迟任务优先级控制部分14选择被登录在队列表21中的延迟任务中间优先级是最高的延迟任务,并将进程优先级控制部分15所选择的延迟任务的优先级设定为延迟任务处理进程#1的优先级。
另一方面,在步骤S4-2中,在新产生了延迟任务的场合,首先在步骤S4-6中延迟任务登录处理部分13与其优先级同时将新产生的延迟任务的标识符登录到队列表21中。接着,在步骤S4-7中,延迟任务优先级控制部分14判断新产生的延迟(任务)的优先级是否比队列表21中以及当前正在处理中的延迟任务的优先级高。在步骤S4-7中,在新的延迟任务的优先级不比队列表21中以及当前正在处理中的延迟任务高的场合,返回到在步骤S4-2。另一方面,在步骤S4-7中,在新的延迟任务的优先级比队列表21内以及当前正在处理中的任务高的场合,在步骤S4-8中进程优先级控制部分15将延迟任务处理进程#1的优先级变更成新产生的延迟任务的优先级。
接着,参照图5A、5B、6A、以及6B,说明被实施形态的多进程调度被简化的例子。在这些从图5A到图6B中,粗实线表示该进程是确保CPU1并被执行的状态。另外,空白的粗线表示OS10的处理由CPU1执行。图5A以及图5B表示当在延迟任务处理进程#1以外的进程#2、#3…#N的执行中已有中断请求的场合的一例,图6A以及图6B表示当在延迟任务处理进程#1的执行中已有中断请求的场合的一例。
若参照图5A以及图5B,那么在时刻t0的时间,优先级4的延迟任务B和优先级5的延迟任务C被登录在延迟任务处理进程#1的队列表21中,延迟任务处理进程#1的优先级被设定为4。另外,优先级3的进程#2和优先级1的进程#3已起动。
在使进程#3正在执行中的时刻t1产生中断请求,并通过中断处理程序处理部分11执行中断处理程序100(从时刻t1到时刻t2:步骤S3-1~S3-6)。在中断处理程序100中用100a表示的部分是即时执行任务(步骤S3-1)。在中断处理程序中间用100b表示的部分中,延迟任务登录控制部分13将新产生的延迟任务A(优先级2)登录在队列表21中(步骤S3-3)。另外,新产生的延迟任务A的优先级由于比已经被登录的延迟任务B、C的优先级高,因此通过延迟任务优先级控制部分14以及进程优先级控制部分15将延迟任务处理进程#1的优先级设定为是延迟任务A的优先级的2(步骤S3-4、步骤S3-5)。在中断处理程序结束后,进程#3的处理被重新开始(从时刻t2到时刻t3:步骤S3-6)。
若进程#3的处理全部结束,那么进程调度部分12就选择下次执行的进程(从时刻t3到时刻t4:步骤S2-1、2-2)。比较延迟处理任务处理进程#1的优先级(优先级为2)和进程#2的优先级(优先级为3),并选择优先级高的延迟任务处理进程#1。
延迟任务处理进程#1执行在队列表21内优先级最高的延迟任务A的处理(从时刻t4到时刻t5:步骤S4-1)。若没有产生新的延迟任务(步骤S4-2),并在时刻t5结束延迟任务A的处理(步骤S4-3),那么延迟任务处理进程#1将处理结束通知OS10。接收了该通知的OS10的延迟任务登录处理部分13将处理结束的延迟任务A从队列表21中删除(步骤S4-4)。另外,继该步骤之后通过延迟任务优先级控制部分14以及进程优先级控制部分15,将延迟处理任务处理进程#1的优先级设定为在队列表21内优先级最高的延迟任务B的优先级(优先级为4)(从时刻t5到时刻t6:步骤S4-5)。
象以上那样,若结束延迟任务处理进程#1的一个延迟任务的处理和伴随它的延迟任务处理进程#1的优先级的变更,那么进程调度部分12将选择下次执行的进程(从时刻t6到时刻t7)。比较延迟任务处理进程#1的优先级(优先级为4)和进程#2的优先级(优先级为3),并选择优先级高的进程#2。
在进程#2被执行后(从时刻t7到时刻t8),进程调度部分12选择下次执行的进程(从时刻t8到时刻t9),并选择因由于优先级最低未处理而剩下的延迟任务处理进程#1。这时,在延迟任务处理进程#1中,执行在队列表21内优先级最高的延迟任务B(优先级为4)。
象以上那样,优先级2的延迟任务A的处理被执行(从时刻t4到时刻t5),接着优先级3的进程#2被执行(从时刻t7到时刻t8),之后,优先级4的延迟任务B被执行。因此,在本实施形态的多进程调度中,延迟任务和进程按照优先级有效且适当地被调度。
接着,若参照图6A以及图6B,在时刻t0的时间,优先级2的延迟任务A、优先级的延迟任务B、以及优先级5的延迟任务C被登录到延迟任务处理进程#1的队列表21,而且使优先级最高的延迟任务A正在执行中。另外,时刻t0的时间的延迟任务处理进程#1被设定为与延迟任务A相同的优先级2。
在使延迟任务处理进程#1正在执行中的时刻t11产生中断请求,并执行中断处理程序100(从时刻t11到时刻t12:步骤S3-1~S3-6)。在完成即时执行任务的处理后(部分100a:步骤S3-1),延迟任务登录处理部分13向队列表21登录新产生的延迟任务D(S3-2、S3-3、S4-6),同时,延迟任务优先级控制部分14以及进程优先级控制部分15将延迟进程处理进程#1的优先级设定为是延迟任务D的优先级的0(步骤S3-4、S3-5、S4-7、S4-8)。在中断处理程序结束后,在延迟任务处理进程#1中的延迟任务A的处理被重新开始(从时刻t12到时刻t13:步骤S3-6)。
若在时刻t13结束延迟任务A的处理,那么延迟任务登录处理部分13从队列表21中删除处理结束的延迟任务A(从时刻t13到时刻t14)。但是,由于延迟任务处理进程#1的优先级已经被设定为优先级0,因此没有被变更(步骤S4-2~S4-5)。
接着,进程调度部分12选择下次执行的进程(从时刻t14到时刻t15:步骤S2-1、S2-2)。比较延迟处理任务处理进程#1的优先级(优先级为0)和进程32、#3的优先级(优先级为3、1),选择优先级最高的延迟任务处理进程#1。延迟任务处理进程#1执行在队列表21内优先级最高的延迟任务D的处理(步骤S4-1)。若没有产生新的延迟任务,并在时刻t16结束延迟任务D的处理,那么延迟任务登录处理部分13就从队列表21中删除处理已结束的延迟任务D,并将延迟处理任务处理进程#1的优先级设定为在队列表21内优先级最高的延迟任务B的优先级(优先级为4)(从时刻t16到时刻t17:步骤S4-2~S4-5)。
接着,进程调度部分12选择下次执行的进程,并选择进程#2、#3(优先级为3、1)中优先级高的进程#3。在进程#3执行后(从时刻t18到时刻t19),作为下次的进程选择在未处理中剩余的进程#2。
即使在该图6A以及图6B的例子中,优先级0的延迟任务D的处理也被执行(从时刻t15到时刻t16),接着执行优先级1的进程#3(从时刻t16到时刻t18),之后,执行优先级3的进程#2,延迟任务和进程按照优先级有效且适当地被调度。
在本实施形态的多进程调度中,由于只是一个延迟任务处理进程#1执行延迟任务的处理,因此没有必要为了处理延迟任务而在短期间重复进程的生成和消灭,在调度所需要的时间和存储器的消费方面不会成为大的负担。
在进程和延迟任务的调度中,有必要防止优先级高的进程比优先级低的进程更后被处理的现象(优先级倒转)发生。在本实施形态中,为防止优先级的倒转现象的发生,若通过延迟任务登录处理部分13将新的延迟任务登录到队列表21,那么用实质上与该登录相同的定时进行进程优先级设定部分15的延迟任务处理进程#1的优先级的变更。具体地说,若通过中断请求产生新的延迟任务,那么直到在中断的时刻正在执行中的进程或延迟任务的执行结束之前,或在中断的时刻执行中的进程或延迟任务结束后,并在下一个进程或延迟任务开始之前,进行延迟任务处理进程#1的优先级的变更(参照从图3的步骤S3-3到S3-5、图4的步骤S4-5、S4-8,从图5A的时刻t1到t2,以及从图6A的时刻t11到t12)。换言之,在本实施形态中,在产生了新的延迟任务时,在接着执行中的进程(通常的进程或延迟任务)的下一个进程(通常的进程或延迟任务)被开始之前,进行延迟任务处理进程#1本身的优先级的设定。
图7表示延迟任务处理进程的其它的例子。在该例子中,在由延迟任务的处理中产生了优先级高的延迟任务的场合,将即时中断处理中的延迟任务,并进行新产生的优先级高的延迟任务的处理。但是,由于也有时候处理中的延迟任务不能中断,因此在该场合继续进行该延迟任务的处理。例如,在处理中的延迟任务是数据的重写,若中断将产生数据不整合的场合,将不能中断处理中的延迟任务。从图7的步骤S7-1到S7-8,与从图4的步骤S4-1到S4-8相同。在步骤S7-7中当产生的延迟任务比在队列表21内以及当前正在处理中的延迟任务的优先级高的场合,在步骤S7-8中将延迟任务处理进程的优先级设定为新产生的延迟任务的优先级。接着,在步骤S7-9,若当前正在处理中的延迟任务能中断,那么就返回到S7-1,并开始在队列表21内优先级最高的延迟任务的处理。由于在S7-6中被登录的新产生的延迟任务在队列表21内具有最高的优先级,因此在步骤S7-1中正在处理中的延迟任务被中断,并开始新产生的延迟任务的处理。另一方面,在步骤S7-9中当正在处理中的延迟任务不能中断的场合,将返回到步骤S7-2,继续进行延迟任务的处理。
图8表示延迟任务执行处理的又一个其它例子。在该例中,当在延迟任务的处理中重新产生了延迟任务的场合,只进行向队列表21的登录,延迟任务处理进程的优先级的变更在处理中的延迟任务结束后进行。在图8中从步骤S8-1到步骤S8-5与从图4的步骤S4-1到步骤S4-5相同。在步骤S8-2中若重新产生延迟任务,那么在步骤S8-6中向队列表21登录该新产生的延迟任务。之后,返回到步骤S8-2,继续进行延迟任务的处理。
在所述实施形态中,OS10全部进行向队列表21的延迟任务的登录和删除,以及延迟任务处理进程的优先级的(处理)。但是,延迟任务处理进程#1本身可以进行一部分的处理。图9表示延迟任务处理进程#1本身进行结束了的延迟任务的删除和延迟任务处理进程#1的变更的例子。在图9中,从时刻t0到时刻t5以及从时刻t6到时刻b9的处理与图5A和图5B相同。若在时刻t5结束延迟任务A的处理,那么延迟任务处理进程#1就从队列表21中删除延迟任务A。另外,延迟任务处理进程#1将它本身的优先级变更成是在队列表21内具有最高的优先级的延迟任务B的优先级4。
本发明不受所述实施形态的限定,可以有各种变形。例如,若是比较少的数可以设置2个以上的延迟任务处理进程,并同时将它们起动。
另外,延迟任务如所述实施形态那样不受中断处理程序的被延迟处理的部分的限定,可以是以与进程不同的形态被处理的任意的处理。例如,接收了来自进程的请求的OS在将对于该请求的处理的一部分设定为延迟任务的场合,也能够应用本发明。具体地说,有时候进程对于OS经由网络请求数据发送,OS判断没有必要即时处理该数据发送而作为延迟任务进行处理。在该场合,在从图5A到图6B中,从进程到OS10形成数据发送的请求,代替中断处理发生。
本发明由于涉及计算机的调度,因此能够在使用计算机的任何领域应用。例如,在各种家用电器、便携式电话等通信设备,或者工业机器等中能够应用本发明。
参照附图已完全说明了本发明,但对于该同业者来说,能进行各种变更和变形。因此,这样的变更和变形只要不脱离本发明的意图和范围,必须被解释为被包含在本发明中。
Claims (14)
1.一种进程调度装置,它并行处理分别付与优先级的多个进程,其特征在于,它具备:处理所述多个进程中的延迟任务,具备所述延迟任务被登录的队列表,而且设置了可变的优先级的至少一个延迟任务处理部分;是分别处理所述多个进程中所述延迟任务以外的一个进程的多个通常进程处理部分,而且各通常进程处理部分的优先级应被设定与所述处理的进程的优先级相等的通常进程处理部分;根据被设定在它们中的优先级依次起动所述延迟任务处理部分和通常进程处理部分,并处理对应的所述进程的进程调度部分;与其自身的优先级同时将新产生的延迟任务登录在所述延迟任务处理部分的队列表中的延迟任务登录处理部分;选择被登录到所述队列表的延迟任务中最高优先级的延迟任务的延迟任务优先级控制部分;以及将通过所述延迟任务优先级控制部分被选择的延迟任务的优先级设定为所述延迟任务处理部分的优先级的进程优先级控制部分。
2.如权利要求1记载的进程调度装置,其特征在于,所述延迟任务包含在中断处理程序中能延迟处理的任务。
3.如权利要求1记载的进程调度装置,其特征在于,所述进程优先级控制部分当新的延迟任务产生的场合,在与执行过程中的进程连接的下一个进程开始之前,执行延迟任务处理部分的优先级的设定。
4.如权利要求3记载的进程调度装置,其特征在于,所述进程优先级控制部分在新的延迟任务产生了的场合,中断执行过程中的进程,在执行了延迟任务处理部分的优先级的设定后,再开始所述被中断的进程。
5.如权利要求3记载的进程调度装置,其特征在于,所述进程优先级控制部分在产生了所述新的延迟任务的场合,在所述执行中的进程结束后,在所述下一个进程开始之前,进行所述延迟任务处理部分的优先级的设定。
6.如权利要求3记载的进程调度装置,其特征在于,在所述新的延迟任务产生了时,执行中的进程包含被所述通常进程处理部分处理的进程和被所述延迟任务处理部分处理的延迟任务。
7.一种进程调度方法,它并行地处理分别被付与优先级的多个进程,其特征在于,根据付与这些进程的优先级依次执行处理延迟任务的延迟任务处理进程和进行所述延迟任务以外的处理的通常进程,与被付与该延迟任务的优先级同时将新产生的延迟任务登录在队列表中,选择在所述队列表中被记录的延迟任务中优先级是最高的延迟任务,并将所述被选择的延迟任务的优先级设定为所述延迟任务处理进程本身的优先级。
8.如权利要求7记载的进程调度方法,其特征在于,所述延迟任务包含中断处理程序中能延迟处理的任务。
9.如权利要求7记载的进程调度方法,其特征在于,在接着执行中的进程的下一个进程被开始之前执行所述新的任务产生时的所述延迟任务处理进程的优先级的设定。
10.如权利要求9记载的进程调度方法,其特征在于,在所述新的任务产生时的所述延迟任务处理进程的优先级的设定在所述新的延迟任务产生时中断正在执行中的进程,设定所述延迟任务处理进程的优先级,而且重新开始所述被中断的进程。
11.如权利要求9记载的进程调度方法,其特征在于,所述新的任务产生时的所述延迟任务处理进程的优先级的设定,在所述执行中的进程结束后,在所述下一个进程开始之前被执行。
12.如权利要求9记载的进程调度方法,其特征在于,在所述新的任务产生时,正在执行中的进程包含所述通常进程和所述延迟任务。
13.一种程序,它用于并行处理分别付与优先级的多个进程,其特征在于,它具备:根据付与这些进程的优先级依次执行处理延迟任务的延迟任务处理进程和进行所述延迟任务以外的处理的通常进程的工序;与付与该延迟任务的优先级的同时将新产生的延迟任务登录到队列表的工序;选择被记录到所述队列表的延迟任务中优先级是最高的延迟任务的工序;以及将所述被选择的延迟任务的优先级设定为所述延迟任务处理进程本身的优先级的工序。
14.一种记录媒体,它是记录了用于并行处理分别付与优先级的多个进程的程序的、计算机能读取的记录媒体,所述的程序具备:根据付与这些进程的优先级依次执行处理延迟任务的延迟任务处理进程和进行所述延迟任务以外的处理的通常进程的工序;与付与该延迟任务的优先级的同时将新产生的延迟任务登录到队列表的工序;选择被记录到所述队列表的延迟任务中优先级是最高的延迟任务的工序;以及将所述被选择的延迟任务的优先级设定为所述延迟任务处理进程本身的优先级的工序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003001245 | 2003-01-07 | ||
JP2003001245 | 2003-01-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1517867A true CN1517867A (zh) | 2004-08-04 |
Family
ID=32819320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004100012842A Pending CN1517867A (zh) | 2003-01-07 | 2004-01-06 | 进程调度装置、进程调度方法、程序以及记录媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7441240B2 (zh) |
CN (1) | CN1517867A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377084C (zh) * | 2006-03-10 | 2008-03-26 | 浙江大学 | 嵌入式操作系统多任务并行启动优化实现方法 |
WO2009155810A1 (zh) * | 2008-06-27 | 2009-12-30 | 腾讯科技(深圳)有限公司 | 一种即时通讯工具调度任务的方法和即时通讯工具 |
CN106095557A (zh) * | 2016-06-20 | 2016-11-09 | 浪潮(北京)电子信息产业有限公司 | 一种o1调度算法的改进方法及装置 |
CN106293918A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种调度进程的方法、系统及计算机 |
CN107145388A (zh) * | 2017-05-25 | 2017-09-08 | 深信服科技股份有限公司 | 一种多任务环境下任务调度方法及系统 |
CN109814806A (zh) * | 2018-12-27 | 2019-05-28 | 河南创新科信息技术有限公司 | Io调度方法、存储介质和装置 |
CN109840224A (zh) * | 2017-11-29 | 2019-06-04 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006018307A2 (en) * | 2004-08-18 | 2006-02-23 | Jaluna Sa | Operating systems |
US8645955B2 (en) * | 2006-06-12 | 2014-02-04 | Samsung Electronics Co., Ltd. | Multitasking method and apparatus for reconfigurable array |
US8522240B1 (en) * | 2006-10-19 | 2013-08-27 | United Services Automobile Association (Usaa) | Systems and methods for collaborative task management |
CN100593146C (zh) * | 2007-11-09 | 2010-03-03 | 上海可鲁系统软件有限公司 | 一种防止工业自动化系统雪崩的方法 |
JP2009294712A (ja) * | 2008-06-02 | 2009-12-17 | Panasonic Corp | 優先度制御装置及び優先度制御方法 |
TW201009713A (en) * | 2008-08-21 | 2010-03-01 | Ind Tech Res Inst | Multitasking processor and task switch method thereof |
US10768611B2 (en) * | 2009-06-16 | 2020-09-08 | Applied Materials, Inc. | Counter and timer constraints |
EP2446624B1 (en) * | 2009-06-26 | 2016-11-09 | Nokia Solutions and Networks Oy | Modifying command sequences |
US20110119680A1 (en) * | 2009-11-16 | 2011-05-19 | Yahoo! Inc. | Policy-driven schema and system for managing data system pipelines in multi-tenant model |
US8656408B2 (en) | 2010-09-30 | 2014-02-18 | International Business Machines Corporations | Scheduling threads in a processor based on instruction type power consumption |
US8677361B2 (en) | 2010-09-30 | 2014-03-18 | International Business Machines Corporation | Scheduling threads based on an actual power consumption and a predicted new power consumption |
US9135586B2 (en) * | 2010-10-28 | 2015-09-15 | Sap Se | System for dynamic parallel looping of repetitive tasks during execution of process-flows in process runtime |
US8924981B1 (en) * | 2010-11-12 | 2014-12-30 | Teradat US, Inc. | Calculating priority indicators for requests in a queue |
US8726255B2 (en) | 2012-05-01 | 2014-05-13 | Concurix Corporation | Recompiling with generic to specific replacement |
US8650538B2 (en) | 2012-05-01 | 2014-02-11 | Concurix Corporation | Meta garbage collection for functional code |
US9575813B2 (en) | 2012-07-17 | 2017-02-21 | Microsoft Technology Licensing, Llc | Pattern matching process scheduler with upstream optimization |
US8793669B2 (en) | 2012-07-17 | 2014-07-29 | Concurix Corporation | Pattern extraction from executable code in message passing environments |
US20160224202A1 (en) * | 2013-11-25 | 2016-08-04 | Yandex Europe Ag | System, method and user interface for gesture-based scheduling of computer tasks |
US9400680B2 (en) * | 2014-11-04 | 2016-07-26 | Xerox Corporation | Transportation network micro-simulation with pre-emptive decomposition |
CN107659549A (zh) * | 2016-07-25 | 2018-02-02 | 武汉票据交易中心有限公司 | 一种基于事件的流程处理方法及装置和服务器 |
US10608961B2 (en) | 2018-05-08 | 2020-03-31 | Salesforce.Com, Inc. | Techniques for handling message queues |
US11435813B2 (en) * | 2018-08-29 | 2022-09-06 | Advanced Micro Devices, Inc. | Neural network power management in a multi-GPU system |
KR102641520B1 (ko) | 2018-11-09 | 2024-02-28 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법 |
NL1043302B1 (en) | 2019-06-17 | 2021-01-25 | Magali Shachar | Tubular drive assembly |
CN111756834B (zh) * | 2020-06-22 | 2022-08-05 | 成都新潮传媒集团有限公司 | 一种扫码延迟处理方法及装置 |
CN112269650A (zh) * | 2020-12-18 | 2021-01-26 | 北京达佳互联信息技术有限公司 | 任务调度方法、装置、电子设备和存储介质 |
WO2023088950A1 (en) * | 2021-11-18 | 2023-05-25 | F. Hoffmann-La Roche Ag | Method for optimizing handlers operation in a laboratory system or device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6242251A (ja) | 1985-08-20 | 1987-02-24 | Matsushita Electric Ind Co Ltd | イベントスケジユ−リング方法 |
US5469571A (en) * | 1991-07-15 | 1995-11-21 | Lynx Real-Time Systems, Inc. | Operating system architecture using multiple priority light weight kernel task based interrupt handling |
EP0537721B1 (en) * | 1991-10-15 | 1998-11-25 | Hewlett-Packard Company | Hardware-configured operating system kernel for a multitasking processor |
EP0798638B1 (en) * | 1996-03-28 | 2008-07-16 | Hitachi, Ltd. | Periodic process scheduling method |
JPH10260849A (ja) * | 1997-03-19 | 1998-09-29 | Mitsubishi Electric Corp | 情報処理装置および割り込み制御方法 |
SE9901146D0 (sv) * | 1998-11-16 | 1999-03-29 | Ericsson Telefon Ab L M | A processing system and method |
-
2004
- 2004-01-05 US US10/750,852 patent/US7441240B2/en not_active Expired - Fee Related
- 2004-01-06 CN CNA2004100012842A patent/CN1517867A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377084C (zh) * | 2006-03-10 | 2008-03-26 | 浙江大学 | 嵌入式操作系统多任务并行启动优化实现方法 |
WO2009155810A1 (zh) * | 2008-06-27 | 2009-12-30 | 腾讯科技(深圳)有限公司 | 一种即时通讯工具调度任务的方法和即时通讯工具 |
US8296766B2 (en) | 2008-06-27 | 2012-10-23 | Tencent Technology (Shenzhen) Company | Start-up task dispatching for instant messenger applications |
CN106095557A (zh) * | 2016-06-20 | 2016-11-09 | 浪潮(北京)电子信息产业有限公司 | 一种o1调度算法的改进方法及装置 |
CN106095557B (zh) * | 2016-06-20 | 2019-05-28 | 浪潮(北京)电子信息产业有限公司 | 一种o1调度算法的改进方法及装置 |
CN106293918A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种调度进程的方法、系统及计算机 |
CN107145388A (zh) * | 2017-05-25 | 2017-09-08 | 深信服科技股份有限公司 | 一种多任务环境下任务调度方法及系统 |
CN107145388B (zh) * | 2017-05-25 | 2020-10-30 | 深信服科技股份有限公司 | 一种多任务环境下任务调度方法及系统 |
CN109840224A (zh) * | 2017-11-29 | 2019-06-04 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN109840224B (zh) * | 2017-11-29 | 2023-10-20 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN109814806A (zh) * | 2018-12-27 | 2019-05-28 | 河南创新科信息技术有限公司 | Io调度方法、存储介质和装置 |
Also Published As
Publication number | Publication date |
---|---|
US7441240B2 (en) | 2008-10-21 |
US20040158831A1 (en) | 2004-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1517867A (zh) | 进程调度装置、进程调度方法、程序以及记录媒体 | |
CN107943555B (zh) | 一种云计算环境下的大数据存储和处理平台及处理方法 | |
CN111399989B (zh) | 一种面向容器云的任务抢占调度方法及系统 | |
CN110489217A (zh) | 一种任务调度方法及系统 | |
CN111782355B (zh) | 一种基于混合负载的云计算任务调度方法及系统 | |
Mohamed et al. | Experiences with the koala co-allocating scheduler in multiclusters | |
CN105760234A (zh) | 一种线程池管理方法及装置 | |
CN106033373A (zh) | 一种云计算平台中虚拟机资源调度方法和调度系统 | |
WO2024007849A1 (zh) | 面向智能计算的分布式训练容器调度 | |
JP2021121959A (ja) | 深層学習推論エンジンのスケジューリング方法、装置、機器及び媒体 | |
Petrov et al. | Adaptive performance model for dynamic scaling Apache Spark Streaming | |
CN110347489B (zh) | 一种基于Spark的多中心数据协同计算的流处理方法 | |
CN1834956A (zh) | 多线程元数据的处理方法 | |
CN112882818A (zh) | 任务动态调整方法、装置以及设备 | |
CN1696853A (zh) | 程序排程系统及方法 | |
CN112015765A (zh) | 基于缓存价值的Spark缓存淘汰方法及系统 | |
CN110084507A (zh) | 云计算环境下分级感知的科学工作流调度优化方法 | |
CN111367645B (zh) | 一种实时任务调度控制方法、系统、设备及可读存储介质 | |
CN108376180B (zh) | 影响大数据系统性能的关键参数查找方法及装置 | |
WO2023193653A1 (zh) | 内容操作方法、装置、服务器及存储介质 | |
CN111708799A (zh) | Spark任务处理方法、装置、电子设备及存储介质 | |
CN110012003A (zh) | 一种云应用抓屏方法和装置 | |
CN1193143A (zh) | 信息处理装置、多任务控制方法及程序记录介质 | |
Huang et al. | A novel compression algorithm decision method for spark shuffle process | |
CN109885261B (zh) | 一种提高存储系统性能的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |