CN1270239C - 处理系统或计算机系统的任务控制方法 - Google Patents
处理系统或计算机系统的任务控制方法 Download PDFInfo
- Publication number
- CN1270239C CN1270239C CNB038007177A CN03800717A CN1270239C CN 1270239 C CN1270239 C CN 1270239C CN B038007177 A CNB038007177 A CN B038007177A CN 03800717 A CN03800717 A CN 03800717A CN 1270239 C CN1270239 C CN 1270239C
- Authority
- CN
- China
- Prior art keywords
- task
- execution environment
- execution
- critical section
- scheduling
- 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.)
- Expired - Fee Related
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
-
- 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
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
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)
Abstract
一种具有记录这样一种定时的机制的处理系统,在该定时具有高紧急度的处理被启动。如果该处理系统在具有低紧急度的处理期间进入临界区,就记录和检查是否在临界区的执行期间启动具有高紧急度的处理。如果具有高紧急度的处理不被启动,则该处理系统进入临界区,如果具有高紧急度的处理被启动,则该处理系统进行控制,以推迟进入临界区,直至具有高紧急度的处理结束。在执行多个任务的环境中,最好能够执行临界区中的专有存取控制。
Description
技术领域
本发明涉及一种处理系统或计算机系统的任务控制方法和计算机程序,该处理系统或计算机系统通过执行程序提供预定处理业务。特别是涉及一种关于分类处理系统或分类计算机系统的任务控制方法和计算机程序,在该分类处理系统或分类计算机系统中,存在多个控制流(例如,中断处理程序和标准处理程序)。
具体而言,本发明涉及一种处理系统或计算机系统的任务控制方法和计算机程序,其中所述处理系统或计算机系统执行程序的一些部分(临界区)的专有存取控制,而该临界区不能由多个任务同时引用。特别是,本发明涉及在存在多个任务执行环境的情况下、执行程序的临界区的专有存取控制的处理系统或计算机系统的任务控制方法和计算机程序。
背景技术
随着现代LSI(大规模集成电路)技术的创新推进,各种类型的信息处理装置和信息通信装置已经被开发和出售,并且已经渗透到我们日常生活中。借助这些装置可以提供各类处理装置,这些处理装置具有在操作系统提供的执行环境下,由CPU(中央处理单元)或者某些其它处理器执行的预定程序代码。
然而,在程序设计中,让多个控制流(有时称作“任务”)存在于程序中往往是有用的。这里所用的术语“多个控制流”是指这样的事实:如图6所示,多个“当前运行时的诸多点”存在于程序处理流中,换言之,存在于流程中。在图6所示的实例中,在某一点T1,步骤S1和步骤S3分别在流I和流II中执行。与此相对,在经过某些时间后的下一个点T2,步骤S2和步骤S3分别在流I和流II中执行。
一般来说,当存在多个流以及每个流操作每个流共有的数据时,不能保持数据的一致性,除非这些数据是同步的。这里所用的“共用数据”包括任务列表、条件变量等。条件变量是一个任务具有的诸多条件被抽象的概念,该概念被用作当任务应当转换到等待状态或者当任务应当返回到运行状态时的通信方式(手段)。
例如,在控制B和C的两个流存在的情况下,将考虑每个控制流执行下列处理的情况。
过程1:读出变量x的值;
过程2:把一个读出值加1后的值代入变量x。
当两个流B和C的每个执行一次上述处理时,相同处理在执行两次后结束。因此,变量x的值应当增加2。然而,当流B和流C如下所述完全相同时,变量x的值仅仅增加1。
(1)流B执行过程1;
(2)流C执行过程1;
(3)流B执行过程2;
(4)流C执行过程2。
为了避免这样的操作错误,需要在某一确定流中执行的一系列引用和更新操作(事务处理)期间,禁止引用和更新来自其它流的数据。
在上述实例中,由于在流B的操作序列之前,流C完成了引用和更新变量x,即过程1和过程2,因此出现了丧失数据一致性的问题。
如上述过程1到过程2这种操作还可以被认为是不能被多个任务同时引用的一个程序的多个部分,以下将其称之为“临界区(critical section)”。此外,为解决临界区中数据一致性问题,禁止其它任务引用和更新数据,也可以称之为“专有存取控制”。换言之,在对于控制流中某些数据执行一系列处理时,延迟由控制的另一个流对相同数据的操作动作,也就是,单独执行特定数据的操作。
本发明认为专有存取控制机制最好具有以下特点。
(1)不存在具有高紧急度的处理被具有低紧急度的处理(发生优先级颠倒)延迟的可能性。
(2)甚至可以在多个任务集之间执行专有存取控制,其中根据不同策略执行这些任务集的调度。
在上述特点之中,(1)是必不可少的,其理由是本领域熟练技术人员显而易见的。此外,在一个计算机系统上同时运行多个操作系统时,或者在利用多个任务集(每个任务集具有特有的特征)之每个的特有调度方法时,(2)也是必不可少的。
例如,对于任务之间的专有存取控制,使用了“互斥机制”和“信标机制”。然而,在这些方法中,利用这种专有存取控制存在以下问题:存在高优先级处理被低优先级处理延迟的可能性,也就是存在出现优先级颠倒的可能性,因而不能满足特征(1)。
作为减轻优先级颠倒问题的方法,优先级继承协议(例如,参见Lui Sha,Ragunathan Rajkumar和John P.Lehoczky的论文:“Priority InheritanceProtocol:An Approch to Real-Time Synchronization”,IEEE Transaction onComputers,第39卷第9期,第1179-1185页,1990年9月出版)被提出。优先级事务处理协议涉及这样一种方法,其中,在低优先级任务正在执行一系列操作的同时,在高优先级任务正在试图操作相同数据的情况下,低优先级任务的优先级暂时上升到与该高优先级任务相同的优先级。
图7中示出了优先级继承协议的操作。在此情况下,如果在低优先级任务A正在操作相同数据的同时,高优先级任务B就试图开始操作某些数据,则必然发生延迟。此时,任务A的优先级暂时上升到与任务B相同的等级。此后,尽管其优先级低于任务B但高于任务A的任务C试图开始运行,但由于任务A的优先级被提升到高于任务C,因此不中断任务A的运行。然后,在结束任务A后,在保持数据一致性的同时,任务B能够开始操作数据,而不会被优先级低于自己的任务C中断。
此外,该优先级继承协议是以根据共同标准即优先级执行所有任务的调度的思想为基础的。因此,很难将该优先级继承协议应用于多个调度共存的系统(特别是,存在不能根据优先级执行调度的任务集的一个系统),所述的多个调度共存例如是多个操作系统同时在单一计算机系统上操作的任务执行环境。换言之,不能满足上述的特征(2)。
作为一个没有带来这些问题的方法,调度器自觉同步方法可以被提供为一个实例(例如,参见Leonidas I.Kontothanassis,Robert W.Wisniewski,Michael L Scott等人的论文:“Scheduler Conscious Synchronization”,ACMTransaction on Computer Systems,第15卷第1期,1997出版)。该方法通过禁止其任务在临界区的执行期间进行调度,限制了具有低紧急度的处理具有具有高紧急度的处理的效果。特别是,具有高紧急度的处理的延迟时间被抑制到最大临界区执行时间以下。此外,该方法仅仅以禁止调度的机制存在为基础。
然而,由于该方法未考虑到应用于多个调度共存的系统,因此在这样一种任务执行环境下,仍然遗留具有高紧急度的处理将被具有低紧急度的处理延迟的可能性。换言之,该方法不能满足上述的特征(2)。
此外,作为满足上述特征(1)和(2)的一个方法,无阻塞同步方法可以被提供为一个实例(例如,参见Michael Barry Greenwald的论文:“Non-blocking Synchronization and System Design”,斯坦福大学的博士论文)。然而,为了应用该方法,需要一个特殊硬件,从而导致成本增加。
发明内容
本发明的目的是提供一个良好的处理系统或计算机系统的任务控制方法和计算机程序,在该处理系统和计算机系统中,多个控制流(例如一个中断处理程序和一个标准程序)存在于一个程序中。
本发明另一个目的是提供一个良好的处理系统或计算机系统的任务控制方法和计算机程序,该处理系统或计算机系统能够适合于在一个程序部分(临界区)中执行专有存取控制,而且该程序部分不会同时被多个任务引用。
本发明的再一个目的是提供一种良好的处理系统或计算机系统的任务控制方法和计算机程序,该处理系统或计算机系统能够适合于在具有不同调度策略的多任务执行环境存在的情况下,在临界区中执行专有存取控制。
本发明的再一个目的是提供一种良好的处理系统或计算机系统的任务控制方法和计算机程序,该处理系统或计算机系统能够适合于在多个调度策略共存的系统中执行专有存取控制,而且不需要特定硬件。
本发明是考虑了上述问题作出的,本发明第一方面是一种在多个处理之间执行专有存取控制的处理系统,并且是一种包括以下特征的处理系统:
开始定时记录装置,用于记录开始具有高紧急度的处理的定时;
检验装置,用于一旦在具有低紧急度的处理的中间进入不能被多个处理同时引用的临界区,就通过引用上述的开始定时,检验是否在临界区的执行期间将开始具有高紧急度的处理;和
控制装置,用于根据检验结果控制临界区的执行。
然而,这里所用的“系统”是指多个设备(或者实现特定功能的功能模块)的逻辑聚集,并且与每个设备和功能模块是否存在于单一壳体中无关(这适用于下文)。
为了在临界区的执行期间维持数据的一致性,如果在临界区的执行期间将不开始具有高紧急度的处理,则上述的控制装置进行接受进入临界区,如果在临界区的执行期间开始具有高紧急度的处理,则控制装置执行专有存取控制,从而延迟进入临界区。
因此,根据本发明第一方面的处理系统,可以在多个处理之间执行专有存取控制,而不延迟具有高紧急度的处理的开始。
此外,根据本发明第一方面的处理系统,与不执行优先级继承的互斥和信标相比,通过降低上下文交换的频率减少了开销。
此外,根据本发明第一方面的处理系统,甚至在根据不同策略执行调度的多个任务集之间,也可以恰当地执行专有存取控制。
此外,根据本发明第一方面的处理系统,在多个操作系统同时操作的一个系统中,这些操作系统上操作的任务之间的专有存取控制以及这些操作系统之间的专有存取控制成为可能。
此外,根据本发明第一方面的处理系统,专有存取控制适合于在多个调度策略共存的一个系统中执行,并且不需要特定的硬件。
此外,本发明第二方面是一种处理系统或计算机系统的任务控制的方法,在该处理系统或计算机系统中,存在根据不同策略执行调度的多个任务执行环境,并且是一个特征在于包括以下步骤的处理系统或计算机系统的任务控制方法:
执行环境交换装置或步骤,用于交换任务执行环境;
调度时间管理装置或步骤,用于管理调度时间,在此调度时间将接着进行任务执行环境的交换;
任务执行管理装置或步骤,在当前任务执行环境下,根据上述调度时间管理任务的执行。
这里,任务执行管理装置或步骤仅需要通过以下方式执行任务的专有存取控制:当目前任务执行环境下运行的任务将要进入不能被多个任务同时引用的临界区时,根据在相对于调度时间的临界区的执行时间是否存在空间,来判断是否进入临界区。
具体而言,当在相对于调度时间的临界区的执行时间有空间时,任务执行管理装置或步骤允许进入临界区,但是当没有空间时,可以指令执行环境交换装置交换任务执行环境。
这里,还提供了一个上下文保存装置,用于在任务执行被上述执行环境交换装置或步骤交换的时候,保存该交换时候的任务执行的状态。
根据本发明第二方面的处理系统或计算机系统的任务控制方法,甚至在根据不同策略执行调度的多个任务集之间,也可以恰当地执行专有存取控制。
此外,根据本发明第二方面的处理系统或计算机系统的任务控制方法,在多个操作系统同时操作的一个系统中,这些操作系统上操作的任务之间的专有存取控制以及这些操作系统之间的专有存取控制成为可能。
此外,根据本发明第二方面的处理系统或计算机系统的任务控制方法,与互斥和信标相比,通过降低上下文交换的频率减少了开销。
此外,根据本发明第二方面的处理系统或计算机系统的任务控制方法,专有存取控制适合于在多个调度策略共存的一个系统中执行,并且不需要特定的硬件。
此外,本发明第三方面是一种以计算机可读格式写入的计算机程序,以便在一个计算机系统上执行一个在多个处理之间执行专有存取控制的处理,并且是其特征在于包括以下步骤的计算机程序:
开始定时记录步骤,记录开始具有高紧急度的处理的定时;
检验步骤,一旦在具有低紧急度的处理的中间进入一个不能被多个处理同时引用的临界区,就通过引用上述的开始定时,检验是否在临界区的执行期间将开始具有高紧急度的处理;和
控制步骤,根据检验结果控制临界区的执行。
此外,本发明第四方面是一种计算机程序,在该程序中以计算机可读格式写入对计算机系统的任务控制的过程,在该计算机系统中存在根据不同策略执行其调度的多个任务执行环境,并且是其特征在于包括以下步骤的计算机程序:
执行环境交换步骤,用于交换任务执行环境;
调度时间管理步骤,用于管理调度时间,在此调度时间将接着进行任务执行环境的交换;
任务执行管理步骤,用于在当前任务执行环境下,根据上述调度时间管理一个任务的执行。
涉及本发明第三和第四方面之每个的计算机程序定义了以计算机可读格式写入的计算机程序,以便实现计算机系统的预定处理。换言之,通过在计算机系统上安装涉及本发明第三和第四方面之每个的计算机程序,可以在计算机系统上演示协作效果,并且可以实现与涉及本发明第一和第二方面的处理系统或者计算机系统的任务控制方法的相同效果。
根据本发明的另一方面,提供了一种存在多个任务执行环境的处理系统,根据不同策略执行任务执行环境的调度,其特征在于,该处理系统包括:执行环境交换装置,用于交换任务执行环境;调度时间管理装置,用于管理调度时间,在此调度时间将接着进行任务执行环境的交换;任务执行管理装置,在当前任务执行环境下,根据上述调度时间管理任务的执行,其中当目前任务执行环境下运行的任务进入不能被多个任务同时引用的临界区时,所述任务执行管理装置根据在相对于调度时间的临界区的执行时间是否有空间,来确定是否进入所述临界区,其中当在相对于调度时间的临界区的执行时间有空间时,任务执行管理装置允许进入临界区,但是当没有空间时,向所述执行环境交换装置发出交换任务执行环境的指令。
根据本发明的另一方面,提供了一种计算机系统上的任务控制方法,在该计算机系统中存在根据不同策略执行调度的多个任务执行环境,其特征在于,计算机系统的任务控制方法包括:执行环境交换步骤,用于交换任务执行环境;调度时间管理步骤,用于管理调度时间,在此调度时间将接着进行任务执行环境的交换;任务执行管理步骤,在当前任务执行环境下,根据上述调度时间管理任务的执行,其中在所述任务执行管理步骤中,当目前任务执行环境下运行的任务进入不能被多个任务同时引用的临界区时,根据在相对于调度时间的临界区的执行时间是否有空间,来确定是否进入所述临界区,其中在所述任务执行管理步骤中,当在相对于调度时间的临界区的执行时间有空间时,允许进入临界区,但是当没有空间时,向所述执行环境交换装置发出交换任务执行环境的指令。
通过下面的基于本发明模式和附图的详细说明,将会使本发明的其它目的、特点和优点变得更加清楚。
附图说明
图1是用于本发明实施的处理系统10的硬件配置的示意图;
图2是显示同时运行的多个操作系统的示意图;
图3是涉及本发明模式的任务执行环境的配置的示意图;
图4是显示任务集交换软件交换任务集的一个过程的流程图;
图5是显示当属于任务集的任务进入临界区时执行的一个过程的流程图;
图6是显示一个程序的处理流即流程的示意图,在该程序中存在正在运行的多个点;以及
图7是显示优先级继承协议操作的示意图。
具体实施方式
下面将结合附图给出对本发明的模式的详细说明。
图1示意地显示了用于本发明实施的处理系统10的硬件配置。如图所示,处理系统10包括:处理器11,RAM(随机存取存储器)12,ROM(只读存储器)13,多个输入/输出装置14-1、14-2......,以及定时器15。
处理器11是处理系统10的主控制器,并且在操作系统(OS)控制下运行各种程序代码。
通常,将操作系统管理和控制程序运行的单位称作“任务”。在涉及本模式的处理系统中,运行多个任务存在于一个程序中。因此,存在比处理器11的数量更多的任务,处理器11是实际进行计算的部件。
操作系统实际上通过频繁地交换由处理器11处理的任务,并行运行每个任务。每个任务具有分配的任务ID,借助该任务ID可以将一个任务与其它任务相区别。此外,每个任务执行一系列操作,换言之,执行关于利用存储栈上的数据区域的数据的事务处理。
此外,在本模式中,多个操作系统可以被同时运行。这些系统分别构成具有不同特征的任务集,并且根据不同策略执行任务的调度。下面将说明涉及本模式的处理系统10的任务执行环境。
处理器11通过总线16与其它装置(下面将进行说明)互连。系统总线16上的每个装置被给予特有的存储器地址或者I/O地址,并且处理器11通过指定这些地址能够存取访问预定装置。系统总线16是包括地址总线、数据总线和控制总线的公共信号传输路径。
RAM 12是可写存储器,并且可以被用来装载由处理器11运行的程序代码或者暂时存储一个运行程序的工作数据。程序代码可以包括:例如,BIOS(基本输入/输出系统),操作外围装置的硬件的装置驱动器、操作系统、应用程序等。
ROM 13是非易失性存储器,用于永久存储预定码和数据,并且存储例如BIOS、自诊断程序(通电自检:POST)等。
输入/输出装置14包括:连接显示器21的显示接口14-1;用户输入装置接口14-2,连接诸如键盘22和鼠标23的用户输入装置;外部存储装置接口14-3,连接诸如硬盘24和媒体驱动器25;网络接口卡(NIC)14-4,与外部网络相连接;等等。
显示接口14-1是一个专用接口控制器,用于实际处理由处理器11发出的绘画命令。显示接口14-1上处理的绘画数据一旦被写入帧缓存器(未示出)之后,就例如通过显示器12在显示屏上输出。
HDD 24是一个外部存储装置(已知),在该装置中固定安装了一个作为存储器载体的磁盘。HDD 24在存储容量、数据传送速率等方面优于其它外部存储装置。通常,在HDD 24中以非易失性方式存储由处理器11运行的操作系统的程序代码、应用程序、装置驱动器等。在HDD 24上以可运行状态安装软件程序将被称作向一个系统安装程序。例如,可以在HDD 24上安装使多个任务存在而设计的应用程序以及实现本发明的操作系统。
媒体驱动器25是装入便携媒体并用于访问(存取)其数据记录面的装置,所述的便携媒体比如是CD(光盘)、MO(磁光盘)、DVD(数字多能光盘)等。
便携媒体主要用来备份软件程序、数据文件等,作为计算机可读格式的数据,或者用于在系统之间传递数据的目的(换言之,包括出售、流通和散发)。例如,能够物理地流通和散发使多个任务存在而设计的应用程序以及在使用这些便携媒体的多个装置之间实现本发明的操作系统。
根据预定通信协议如以太网(已注册商标)等的网络接口14-1可以将系统10连接到局部网络如LAN(局域网),或者还连接到广域网如互联网。
在网络中,多个主机终端(未示出)以透明状态连接,并且建立了分布式计算环境。在网络中,可以执行软件程序和数据内容的散发。例如,可以经由网络下载使多个任务存在而设计的应用程序以及实现本发明的操作系统。
中断等级被分配给输入/输出装置14-1、14-2......的每一个,并且响应预定事件的出现(例如,键盘输入的GUI处理,鼠标点击等,或者硬盘中数据传递的完成),经由中断请求信号线19通告处理器11。处理器11响应这种中断请求,执行对应的中断处理程序。
定时器15是一个以预定周期生成定时器信号的装置。也把一个中断等级分配给定时器15,并且经由中断请求信号线19生成关于处理器11的周期性中断。
此外,图1所示的这样一种处理系统10的实例是用于IBM个人计算机“PC/AT(个人计算机/高级技术)”的兼容机器或者后继机器。当然,也能够应用具有与涉及本模式的处理系统10不同结构的计算机。
在本模式中,多个操作系统同时运行。这些操作系统中的每个构成一个具有不同特征的任务集,并且根据不同策略执行任务的调度。
图2示意地示出了同时运行的多个操作系统。在该图所示的实例中,在单一处理系统10上同时运行两个操作系统OS1和OS2。在OS 1提供的任务执行环境下,执行任务1和任务2。此外,在OS 2提供的任务执行环境下,执行任务3和任务4。OS 1上执行的任务1和任务2构成任务集1,OS 2上执行的任务3和任务4构成任务集2。
在处理系统10中,例如通过上下文交换的方式,交替地给予OS 1和OS2系统使用权。上下文被交换到OS 1期间的周期对应于任务集1的执行周期。在任务集1的执行周期期间,根据OS 1具有的调度,在任务1与任务2之间执行专有存取控制,换言之,执行任务集1的专有控制。如同专有存取控制的方法那样,也可以应用互斥、信标、优先级继承协议或者其它已知或特有方法。
同样,上下文被交换到OS 2期间的周期对应于任务集2的执行周期。在任务集2的执行周期期间,根据OS 2具有的调度,执行任务3与任务4之间的专有存取控制,换言之,执行任务集2的专有控制。如同专有存取控制的方法那样,也可以应用互斥、信标、优先级继承协议或者其它已知或特有方法。
本发明实现了如图2所示的多个任务共存的系统中的专有存取控制,其中,所述多个任务的调度根据不同策略实现。
在图3中,示意地显示了涉及本发明的模式的任务执行环境的配置。如图所示,其调度根据不容策略实现的多个任务同时存在。
任务集1的管理模块和任务集2的管理模块分别对应于OS 1和OS 2,并且在授予系统使用权的周期内,根据预定调度策略执行任务集1和任务集2的专有存取控制。任务交换软件是执行操作系统的所有管理的软件模块,比如多个操作系统间的上下文交换,并且能够进行从任务集选择一个执行任务的管理。任务集交换软件使用从定时器15获取时间信息的定时模块以适当的定时完成系统使用权的重新分配(换言之,任务集交换)。
在本模式中,任务集交换软件保持以下三个变量,以便适当地管理任务集的交换。
(1)当前任务集:
存储标识任务集的值的变量,其中把处理器使用权正在分配给该任务集。
(2)上下文保存地址:
在重新分配使用权中,需要保存此时刻的处理器状态。变量“上下文保存地址”是保持该保存区域的地址的变量。
(3)使用权转移的调度时间:
一个变量,用于保持使用权将接着被转移的时间。该变量是每个任务集的管理模块能够读出一个值的变量。
在图4中,以流程图的形式示出了任务集交换软件交换任务集的过程。
在交换任务集时,首先在上述的变量“上下文保存地址”中保存当前状态(步骤S1)。更具体地说,所述的保存状态涉及处理器11的寄存器值以及RAM 12的存储器图像的消除。
然后,计算任务集的交换将接着要执行的时间(步骤S2)。接着,将已计算的时间代入上述的变量“使用权转移的调度时间”(步骤S3)。
此外,将使用权将要转移的任务集的标识符代入上述的变量“当前任务集”(步骤S4)。
接着,将定时器调整到在步骤S2中计算的随后执行任务交换的时间(步骤S5)。该定时器在设定的时间造成中断发生。通过改中断,激活下一个任务集交换处理。
然后,把使用权的转移通知给将转移使用权的任务集管理模块(步骤S6)。
在图5中,以流程图形式显示了进入临界区时,由属于某个任务集的一个任务完成的过程。
管理当前任务集的一个任务执行的任务管理模块引用由任务集交换软件保持的变量“使用权转移的调度时间”,并确定存在用于任务执行的空间(步骤S11)。这里所用的空间对应于通过从使用权转移的调度时间减去一个将临界区执行时间加到当前时间的值所获得的值。
接着,确定空间是否大于零(步骤S12)。
如果空间大于零,则执行专用于每个任务集的临界区进入处理(步骤S13)。
另一方面,当空间等于或小于零时,如果进入临界区,则出现其它任务操作相同数据被拒绝的矛盾,而在此期间,临界区的处理不能在下一个任务集交换时间到来之前结束。为此,任务集管理模块将处理器使用权的放弃通知给任务集交换软件。
通过该通知,在处理(使其为“处理A”)的中间,将控制转移到不同任务集的一个任务上。当把处理器11的使用权再次授予正在执行处理A的任务归属的任务集时,处理A达到完成。
例如,当在当前任务集中执行的情况下,在具有低紧急度的处理的中间进入临界区时,引用下一个任务集交换将要执行的调度时间,并且检验是否将在临界区的执行期间开始具有高紧急度的处理。如果将不开始该具有高紧急度的处理,则进入临界区,但是如果将开始该具有高紧急度的处理,则执行控制,推迟进入临界区,直至具有高紧急度的处理完成。
因此,可以在多个处理之间恰当地执行专有存取控制,而不会在根据不同策略执行其调度的多个任务集之间,延迟具有高紧急度的处理的开始。
补充
至此,已经参照特定模式详细说明了本发明。然而,本领域熟练技术人员将会明白,在不背离本发明的范围条件下,可以对上述模式作出修改和替代。换言之,本发明是以实例方式公开的,但是不能按限制方式解释本发明的内容。为了确定本发明的范围,应当考虑下面所述的权利要求的范围。
工业应用性
根据本发明,可以提供对高级处理系统或者计算机系统的任务控制方法和计算机程序,在此类高级处理系统和计算机系统中,多个控制流(例如,中断处理程序和标准处理程序,或者多个任务,和类似事情)存在于一个程序中。
此外,根据本发明,可以提供对高级处理系统或者计算机系统的任务控制方法和计算机程序,在该高级处理系统和计算机系统中,可以在不能被多个任务同时引用的一部分程序(临界区)中恰当地执行专有存取控制。
此外,根据本发明,可以提供对高级处理系统或者计算机系统的任务控制方法和计算机程序,在该高级处理系统和计算机系统中,可以在具有不同调度策略的多个任务执行环境存在的条件下,恰当地执行临界区中的专有存取控制。
此外,根据本发明,可以提供对高级处理系统或者计算机系统的任务控制方法和计算机程序,在该高级处理系统和计算机系统中,可以在多个调度策略共存的系统中恰当地执行专有存取控制,而不需要任何特殊硬件。
根据本发明,专有存取控制可以在多个处理之间执行,而且不延迟具有高紧急度的处理的开始。
此外,根据本发明,通过减少上下文交换的频度,较之不执行优先级继承的互斥和信标,可以减少开销。
此外,根据本发明,甚至可以在根据不同策略执行调度的多个任务集之间,恰当地执行专有存取控制。
此外,根据本发明,在多个操作系统同时操作的一个系统中,在这些操作系统上操作的诸多任务之间的专有存取控制以及操作系统之间的专有存取控制成为可能。
与无阻塞同步相反,本发明能够上述效果,而又不使用特殊硬件。
Claims (4)
1、一种存在多个任务执行环境的处理系统,根据不同策略执行任务执行环境的调度,其特征在于,该处理系统包括:
执行环境交换装置,用于交换任务执行环境;
调度时间管理装置,用于管理调度时间,在此调度时间将接着进行任务执行环境的交换;
任务执行管理装置,在当前任务执行环境下,根据上述调度时间管理任务的执行,
其中当目前任务执行环境下运行的任务进入不能被多个任务同时引用的临界区时,所述任务执行管理装置根据在相对于调度时间的临界区的执行时间是否有空间,来确定是否进入所述临界区,
其中当在相对于调度时间的临界区的执行时间有空间时,任务执行管理装置允许进入临界区,但是当没有空间时,向所述执行环境交换装置发出交换任务执行环境的指令。
2、根据权利要求1所述的处理系统,其特征在于,还包括上下文保存装置,当所述执行环境交换装置交换任务执行环境时,保存交换时的任务执行状态。
3、一种计算机系统上的任务控制方法,在该计算机系统中存在根据不同策略执行调度的多个任务执行环境,其特征在于,计算机系统的任务控制方法包括:
执行环境交换步骤,用于交换任务执行环境;
调度时间管理步骤,用于管理调度时间,在此调度时间将接着进行任务执行环境的交换;
任务执行管理步骤,在当前任务执行环境下,根据上述调度时间管理任务的执行,
其中在所述任务执行管理步骤中,当目前任务执行环境下运行的任务进入不能被多个任务同时引用的临界区时,根据在相对于调度时间的临界区的执行时间是否有空间,来确定是否进入所述临界区,
其中在所述任务执行管理步骤中,当在相对于调度时间的临界区的执行时间有空间时,允许进入临界区,但是当没有空间时,向所述执行环境交换装置发出交换任务执行环境的指令。
4、根据权利要求3所述的计算机系统的任务控制方法,其特征在于,还包括上下文保存步骤,当所述执行环境交换步骤交换任务执行环境时,保存交换时的任务执行状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP154313/2002 | 2002-05-28 | ||
JP2002154313A JP2003345612A (ja) | 2002-05-28 | 2002-05-28 | 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びにコンピュータ・プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1537274A CN1537274A (zh) | 2004-10-13 |
CN1270239C true CN1270239C (zh) | 2006-08-16 |
Family
ID=29561351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB038007177A Expired - Fee Related CN1270239C (zh) | 2002-05-28 | 2003-04-17 | 处理系统或计算机系统的任务控制方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7647594B2 (zh) |
EP (1) | EP1508856A4 (zh) |
JP (1) | JP2003345612A (zh) |
KR (1) | KR100934533B1 (zh) |
CN (1) | CN1270239C (zh) |
AU (1) | AU2003227411A1 (zh) |
WO (1) | WO2003100613A1 (zh) |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4112511B2 (ja) | 2004-02-17 | 2008-07-02 | 富士通株式会社 | タスク管理プログラムおよびタスク管理装置 |
US7594234B1 (en) * | 2004-06-04 | 2009-09-22 | Sun Microsystems, Inc. | Adaptive spin-then-block mutual exclusion in multi-threaded processing |
JP4982971B2 (ja) | 2004-09-29 | 2012-07-25 | ソニー株式会社 | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム |
JP4144609B2 (ja) | 2004-09-29 | 2008-09-03 | ソニー株式会社 | 情報処理装置、メモリ領域管理方法、並びにコンピュータ・プログラム |
JP4345630B2 (ja) * | 2004-09-29 | 2009-10-14 | ソニー株式会社 | 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム |
JP4322232B2 (ja) | 2005-06-14 | 2009-08-26 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム |
JP4068106B2 (ja) * | 2005-08-05 | 2008-03-26 | 三菱電機株式会社 | リアルタイム組込み簡易モニタプログラム |
KR20080064608A (ko) * | 2007-01-05 | 2008-07-09 | 삼성전자주식회사 | SPI(Simple PriorityInheritance) 방식에 따른 멀티태스킹 방법 및임베디드 시스템 |
JP5446791B2 (ja) * | 2009-12-02 | 2014-03-19 | トヨタ自動車株式会社 | 情報処理装置 |
US9736065B2 (en) | 2011-06-24 | 2017-08-15 | Cisco Technology, Inc. | Level of hierarchy in MST for traffic localization and load balancing |
US9158610B2 (en) * | 2011-08-04 | 2015-10-13 | Microsoft Technology Licensing, Llc. | Fault tolerance for tasks using stages to manage dependencies |
US8949853B2 (en) * | 2011-08-04 | 2015-02-03 | Microsoft Corporation | Using stages to handle dependencies in parallel tasks |
US8908698B2 (en) | 2012-01-13 | 2014-12-09 | Cisco Technology, Inc. | System and method for managing site-to-site VPNs of a cloud managed network |
US8949841B2 (en) * | 2012-12-27 | 2015-02-03 | Nvidia Corporation | Approach for a configurable phase-based priority scheduler |
US9043439B2 (en) | 2013-03-14 | 2015-05-26 | Cisco Technology, Inc. | Method for streaming packet captures from network access devices to a cloud server over HTTP |
CN104216772A (zh) * | 2013-06-03 | 2014-12-17 | 上海帛茂信息科技有限公司 | 支持多窗口的电子设备对不同窗口对应音频的控制方法 |
US10122605B2 (en) | 2014-07-09 | 2018-11-06 | Cisco Technology, Inc | Annotation of network activity through different phases of execution |
US9825878B2 (en) | 2014-09-26 | 2017-11-21 | Cisco Technology, Inc. | Distributed application framework for prioritizing network traffic using application priority awareness |
US10050862B2 (en) | 2015-02-09 | 2018-08-14 | Cisco Technology, Inc. | Distributed application framework that uses network and application awareness for placing data |
US10708342B2 (en) | 2015-02-27 | 2020-07-07 | Cisco Technology, Inc. | Dynamic troubleshooting workspaces for cloud and network management systems |
US10476982B2 (en) | 2015-05-15 | 2019-11-12 | Cisco Technology, Inc. | Multi-datacenter message queue |
US10034201B2 (en) | 2015-07-09 | 2018-07-24 | Cisco Technology, Inc. | Stateless load-balancing across multiple tunnels |
US11005682B2 (en) | 2015-10-06 | 2021-05-11 | Cisco Technology, Inc. | Policy-driven switch overlay bypass in a hybrid cloud network environment |
US10462136B2 (en) | 2015-10-13 | 2019-10-29 | Cisco Technology, Inc. | Hybrid cloud security groups |
US10523657B2 (en) | 2015-11-16 | 2019-12-31 | Cisco Technology, Inc. | Endpoint privacy preservation with cloud conferencing |
US10205677B2 (en) | 2015-11-24 | 2019-02-12 | Cisco Technology, Inc. | Cloud resource placement optimization and migration execution in federated clouds |
US10084703B2 (en) | 2015-12-04 | 2018-09-25 | Cisco Technology, Inc. | Infrastructure-exclusive service forwarding |
US10367914B2 (en) | 2016-01-12 | 2019-07-30 | Cisco Technology, Inc. | Attaching service level agreements to application containers and enabling service assurance |
US10129177B2 (en) | 2016-05-23 | 2018-11-13 | Cisco Technology, Inc. | Inter-cloud broker for hybrid cloud networks |
US10659283B2 (en) | 2016-07-08 | 2020-05-19 | Cisco Technology, Inc. | Reducing ARP/ND flooding in cloud environment |
US10432532B2 (en) | 2016-07-12 | 2019-10-01 | Cisco Technology, Inc. | Dynamically pinning micro-service to uplink port |
US10263898B2 (en) | 2016-07-20 | 2019-04-16 | Cisco Technology, Inc. | System and method for implementing universal cloud classification (UCC) as a service (UCCaaS) |
US10382597B2 (en) | 2016-07-20 | 2019-08-13 | Cisco Technology, Inc. | System and method for transport-layer level identification and isolation of container traffic |
US10567344B2 (en) | 2016-08-23 | 2020-02-18 | Cisco Technology, Inc. | Automatic firewall configuration based on aggregated cloud managed information |
US10523592B2 (en) | 2016-10-10 | 2019-12-31 | Cisco Technology, Inc. | Orchestration system for migrating user data and services based on user information |
US11044162B2 (en) | 2016-12-06 | 2021-06-22 | Cisco Technology, Inc. | Orchestration of cloud and fog interactions |
US10326817B2 (en) | 2016-12-20 | 2019-06-18 | Cisco Technology, Inc. | System and method for quality-aware recording in large scale collaborate clouds |
US10334029B2 (en) | 2017-01-10 | 2019-06-25 | Cisco Technology, Inc. | Forming neighborhood groups from disperse cloud providers |
US10552191B2 (en) | 2017-01-26 | 2020-02-04 | Cisco Technology, Inc. | Distributed hybrid cloud orchestration model |
US10320683B2 (en) | 2017-01-30 | 2019-06-11 | Cisco Technology, Inc. | Reliable load-balancer using segment routing and real-time application monitoring |
US10671571B2 (en) | 2017-01-31 | 2020-06-02 | Cisco Technology, Inc. | Fast network performance in containerized environments for network function virtualization |
US11005731B2 (en) | 2017-04-05 | 2021-05-11 | Cisco Technology, Inc. | Estimating model parameters for automatic deployment of scalable micro services |
US10382274B2 (en) | 2017-06-26 | 2019-08-13 | Cisco Technology, Inc. | System and method for wide area zero-configuration network auto configuration |
US10439877B2 (en) | 2017-06-26 | 2019-10-08 | Cisco Technology, Inc. | Systems and methods for enabling wide area multicast domain name system |
US10425288B2 (en) | 2017-07-21 | 2019-09-24 | Cisco Technology, Inc. | Container telemetry in data center environments with blade servers and switches |
US10892940B2 (en) | 2017-07-21 | 2021-01-12 | Cisco Technology, Inc. | Scalable statistics and analytics mechanisms in cloud networking |
US10601693B2 (en) | 2017-07-24 | 2020-03-24 | Cisco Technology, Inc. | System and method for providing scalable flow monitoring in a data center fabric |
US10541866B2 (en) | 2017-07-25 | 2020-01-21 | Cisco Technology, Inc. | Detecting and resolving multicast traffic performance issues |
US11481362B2 (en) | 2017-11-13 | 2022-10-25 | Cisco Technology, Inc. | Using persistent memory to enable restartability of bulk load transactions in cloud databases |
US10705882B2 (en) | 2017-12-21 | 2020-07-07 | Cisco Technology, Inc. | System and method for resource placement across clouds for data intensive workloads |
US11595474B2 (en) | 2017-12-28 | 2023-02-28 | Cisco Technology, Inc. | Accelerating data replication using multicast and non-volatile memory enabled nodes |
US10511534B2 (en) | 2018-04-06 | 2019-12-17 | Cisco Technology, Inc. | Stateless distributed load-balancing |
US10728361B2 (en) | 2018-05-29 | 2020-07-28 | Cisco Technology, Inc. | System for association of customer information across subscribers |
US10904322B2 (en) | 2018-06-15 | 2021-01-26 | Cisco Technology, Inc. | Systems and methods for scaling down cloud-based servers handling secure connections |
US10764266B2 (en) | 2018-06-19 | 2020-09-01 | Cisco Technology, Inc. | Distributed authentication and authorization for rapid scaling of containerized services |
US11019083B2 (en) | 2018-06-20 | 2021-05-25 | Cisco Technology, Inc. | System for coordinating distributed website analysis |
US10819571B2 (en) | 2018-06-29 | 2020-10-27 | Cisco Technology, Inc. | Network traffic optimization using in-situ notification system |
US10904342B2 (en) | 2018-07-30 | 2021-01-26 | Cisco Technology, Inc. | Container networking using communication tunnels |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339425A (en) * | 1990-12-11 | 1994-08-16 | Fisher Controls International, Inc. | Operating system for a process controller |
US5428779A (en) * | 1992-11-09 | 1995-06-27 | Seiko Epson Corporation | System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions |
US6948172B1 (en) * | 1993-09-21 | 2005-09-20 | Microsoft Corporation | Preemptive multi-tasking with cooperative groups of tasks |
US5528513A (en) * | 1993-11-04 | 1996-06-18 | Digital Equipment Corp. | Scheduling and admission control policy for a continuous media server |
US6055559A (en) * | 1994-03-07 | 2000-04-25 | Fujitsu Limited | Process switch control apparatus and a process control method |
JPH0895807A (ja) * | 1994-09-21 | 1996-04-12 | Toyota Motor Corp | タスク実行制御方法 |
US6466962B2 (en) * | 1995-06-07 | 2002-10-15 | International Business Machines Corporation | System and method for supporting real-time computing within general purpose operating systems |
US5825770A (en) * | 1996-06-06 | 1998-10-20 | Northern Telecom Limited | Multiple algorithm processing on a plurality of digital signal streams via context switching |
US6385637B1 (en) * | 1997-08-21 | 2002-05-07 | Rockwell Science Center, Inc. | Periodic process timer |
US6345287B1 (en) * | 1997-11-26 | 2002-02-05 | International Business Machines Corporation | Gang scheduling for resource allocation in a cluster computing environment |
KR100594187B1 (ko) * | 1998-12-26 | 2006-10-25 | 삼성전자주식회사 | 쓰레드 호 처리 구조를 채용한 유닉스 시스템 환경하의 지능망교환시스템에서 타이머 구동 방법 |
US7165252B1 (en) * | 1999-06-21 | 2007-01-16 | Jia Xu | Method of scheduling executions of processes with various types of timing properties and constraints |
US6754690B2 (en) * | 1999-09-16 | 2004-06-22 | Honeywell, Inc. | Method for time partitioned application scheduling in a computer operating system |
GB2370131C (en) * | 2000-12-12 | 2006-09-06 | Advanced Risc Mach Ltd | Exclusive access control to a processing resource |
WO2002069174A1 (fr) * | 2001-02-28 | 2002-09-06 | Fujitsu Limited | Procede d'execution en parallele de processus et ordinateur a processeurs multiples |
EP1377903A2 (en) * | 2001-03-05 | 2004-01-07 | Koninklijke Philips Electronics N.V. | Method of and system for withdrawing budget from a blocking task |
JP2003131892A (ja) | 2001-10-25 | 2003-05-09 | Matsushita Electric Ind Co Ltd | タスク実行制御装置及びタスク実行制御方法 |
JP3938343B2 (ja) * | 2002-08-09 | 2007-06-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | タスク管理システム、プログラム、及び制御方法 |
-
2002
- 2002-05-28 JP JP2002154313A patent/JP2003345612A/ja active Pending
-
2003
- 2003-04-17 EP EP03717625A patent/EP1508856A4/en not_active Ceased
- 2003-04-17 WO PCT/JP2003/004886 patent/WO2003100613A1/ja active Application Filing
- 2003-04-17 US US10/485,007 patent/US7647594B2/en not_active Expired - Fee Related
- 2003-04-17 CN CNB038007177A patent/CN1270239C/zh not_active Expired - Fee Related
- 2003-04-17 AU AU2003227411A patent/AU2003227411A1/en not_active Abandoned
- 2003-04-17 KR KR1020047001185A patent/KR100934533B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1508856A4 (en) | 2006-10-25 |
EP1508856A1 (en) | 2005-02-23 |
KR20040105685A (ko) | 2004-12-16 |
US7647594B2 (en) | 2010-01-12 |
CN1537274A (zh) | 2004-10-13 |
US20050039181A1 (en) | 2005-02-17 |
AU2003227411A1 (en) | 2003-12-12 |
JP2003345612A (ja) | 2003-12-05 |
KR100934533B1 (ko) | 2009-12-29 |
WO2003100613A1 (fr) | 2003-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1270239C (zh) | 处理系统或计算机系统的任务控制方法 | |
CN1188794C (zh) | 到一个共享的协处理器资源的多个逻辑接口 | |
CN105453044B (zh) | 用于分布式处理任务部分指配的技术 | |
TWI233545B (en) | Mechanism for processor power state aware distribution of lowest priority interrupts | |
US8433931B2 (en) | Integrating energy budgets for power management | |
CN1097228C (zh) | 信息处理系统 | |
CN1589431A (zh) | 基于pmi和smi的调度执行框架中用于并发处理程序执行的方法和系统 | |
JP2008506187A (ja) | 複数のカーネルの並列実行のための方法およびシステム | |
CN1906584A (zh) | 信息处理装置、处理控制方法和计算机程序 | |
EP1062578A1 (en) | Method and apparatus for handling multiple level-triggered and edge-triggered interrupts | |
CN86100690A (zh) | 处理机输入/输出和中断过滤器 | |
CN1910554A (zh) | 多处理器系统中处理器任务迁移的方法与装置 | |
CN1316074A (zh) | 中断/软件控制的线程处理 | |
CN113645300A (zh) | 一种基于Kubernetes集群的节点智能调度方法和系统 | |
CN1719375A (zh) | 微处理器 | |
CN1097237C (zh) | 信息处理系统 | |
CN1097236C (zh) | 信息处理系统 | |
US9122521B2 (en) | Enabling multiple operating systems to run concurrently using barrier task priority | |
CN113132456A (zh) | 一种基于截止时间感知的边云协同任务调度方法及系统 | |
CN1794183A (zh) | Java操作系统中实时任务调度的实现方法 | |
CN1945541A (zh) | 处理操作信息传送控制系统和方法 | |
EP3662368B1 (en) | Method and apparatus for managing scheduling of services during boot-up | |
JP2002529850A (ja) | システムにおける要求のスケジューリング | |
CN1816800A (zh) | 程序处理系统、程序处理方法以及计算机程序 | |
CN1245921A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060816 Termination date: 20150417 |
|
EXPY | Termination of patent right or utility model |