CN100483351C - 信息处理装置、进程控制方法、以及计算机程序 - Google Patents
信息处理装置、进程控制方法、以及计算机程序 Download PDFInfo
- Publication number
- CN100483351C CN100483351C CNB2004800006820A CN200480000682A CN100483351C CN 100483351 C CN100483351 C CN 100483351C CN B2004800006820 A CNB2004800006820 A CN B2004800006820A CN 200480000682 A CN200480000682 A CN 200480000682A CN 100483351 C CN100483351 C CN 100483351C
- Authority
- CN
- China
- Prior art keywords
- subregion
- interrupt
- interrupt process
- request
- interrupt request
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
在基于作为与多个操作***(OS)相对应的进程的分区设置的进程控制中,有可能实现中断请求的有效处理。在根据多个OS而切换/控制进程的进程控制中,将中断进程分区设置为与中断进程请求相对应的中断进程运行周期,同时与预定分区切换定时相匹配。此外,在设置处理时间表时,考虑最大可允许延迟时间和最小可允许延迟时间。通过此配置,有可能将分区切换进程的增加基本上抑制为仅一次,由此允许有效的数据处理。
Description
技术领域
本发明涉及信息处理装置、进程控制方法、以及计算机程序。更具体地,本发明涉及通过管理运行中断请求处理的定时来实现最优数据处理的信息处理装置、进程控制方法、以及计算机程序。
背景技术
通常,计算机***具有这种机制,其中,当***硬件上出现涉及软件冲突(intervention)的事件时,***硬件将中断请求发送到处理器,以立刻暂停正在运行的程序的运行,并开始中断处理程序。
另一方面,近来的处理器通过采用例如下面的机制a-c,而使它们的性能显著增强。
a.高速缓冲存储器
b.很多寄存器
c.分支预测(branch prediction)机制
然而,这些机制呈现出相对低的处理性能,如会在不可预知的定时改变控制流的中断处理。
另一方面,在其中会例如每12μsec出现中断的高速通信机制,如所谓的千兆比特以太网(注册商标)中,中断请求非常频繁地出现。例如,在以1Gbps的通信速率来接收1500字节的分组的情况中,每12微秒接收每一个分组。在采用普通硬件配置的情况中(其中每次接收分组时产生中断),必须每12微秒执行中断处理。
此外,甚至在例如机顶盒的***中,其中必须内部存储很多中断请求产生源(originating source),中断处理的耗时对总处理时间的比例趋向增大。
如果中断请求出现时间间隔是可预知的,则可通过由操作***来轮询定时器设备而克服此问题。例如,在非专利文献1(Mohit Aron and Peter Druschel,Soft Timers:efficient Microsecond Software Timer Support for NetworkProcessing(软定时器:支持网络处理的有效微秒软件定时器),ACMTransactions on Computer Systems,Vol.18,No.3,August 2000)中公开了此配置。
然而,这种技术不能应用于其中中断请求出现时间间隔是不可预知的中断请求产生源。***开销随者中断出现频率的增加而增加的问题不仅会导致涉及各个操作***(OS)的问题,还会使为了在单个***中同时操作多个OS而运行OS调度的分区(partition)管理软件产生严重问题。
在单个***中安装多个OS的情况中,OS运行的进程利用***共有的硬件,即CPU、存储器等,并由此,在以时间顺序对进程进行切换时,需要由OS运行它们。分区管理软件运行这种OS调度。分区是与每个OS相对应的进程。
例如,假定两个OS(α)和OS(β)一起驻留在单个***中,并且,对OS(α)的进程指定分区A,而对OS(β)的进程指定分区B,随后分区管理软件为分区A和B确定运行时间表,并基于确定的时间表而运行OS的进程。
因此,在单个***中运行多个OS的环境中,在仅由在特定分区中运行的OS(α)可以运行中断进程的情况中,以及在中断请求时运行的分区是不能接纳中断进程的OS(β)的分区(B)的情况中,执行将分区(B)的处理暂停的进程;通过应用OS(α)来运行中断进程;并且,在完成中断进程之后恢复分区(B)的处理。因此,在处理中断请求中,会频繁发生分区切换。
此外,作为传统分区管理方案,存在这种配置,其中,不考虑中断的出现而确定与管理下的OS相对应的分区的运行定时。在这种方案中,在出现中断请求的情况中,要设置与中断请求相对应的分区,而不改变与管理下的OS相对应的已经调度的分区。在已经调度的分区停止(dwell)了较长的时间周期的情况中,中断请求进程可能必须等待较长的时间,直到开始其运行。
因此,在对管理下的OS的进程(分区)赋予优先权,并由此使中断请求进程保持等待、直到在管理下的OS的进程(分区)之间存在空时隙(time slot)的传统的分区管理方案中,在存在要求严格响应时间的中断请求产生源的情况中,不能正确地执行中断请求进程,使得很可能引起数据处理错误,如通信错误。
发明内容
考虑到上面提到的涉及相关技术的问题而做出了本发明,并由此,本发明具有的目的在于,提供一种信息处理装置、进程控制方法、以及计算机程序,其中,在安装了多个OS、并通过分区管理来运行每个OS的处理的***中,在确定它们的最优处理定时之后运行中断请求,由此避免中断请求处理开销的增大,以总体上实现***的有效处理,并避免由于等待时间超过了中断请求的可允许时间而造成的处理错误的出现等。
本发明的第一方面为一种信息处理装置,其具有:存储部件(section),用于存储多个操作***(OS);处理器,用于运行基于上面提到的多个OS的进程;以及进程管理组件(means),用于按照时间轴而调度定义为上面提到的多个OS中的每个的进程的分区,并运行用于按照该调度而基于分区切换控制来切换上面提到的多个OS的控制,该进程管理组件包括:用于确定预设的分区切换定时是否存在于从设置了最大可允许延迟时间的中断请求的出现起到所述最大可允许延迟时间的时间周期内的部件;以及用于在确定了预设的分区切换定时存在于所述最大可允许延迟时间内的情况中执行进程控制的部件,其中将中断处理分区设置为与中断处理请求相对应的中断处理周期,以便使该中断处理分区与预设的分区切换定时相一致,并使所述OS中的任一个运行中断进程,该中断进程是分区时间表中的调度分区的结束之后的进程。
此外,在本发明的信息处理装置的实施例中,上面提到的进程管理组件的特征在于,其被配置为运行设置上面提到的中断处理分区的进程,以便使该中断处理分区与在出现中断请求之后出现的最早分区切换定时相一致。
此外,在本发明的信息处理装置的实施例中,上面提到的进程管理组件的特征在于,其被配置为执行进程控制,其中,在对中断处理请求设置最大可允许延迟时间、并且预设的分区切换定时不在从出现中断请求起的最大可允许延迟时间内出现的情况中,将正在运行的分区暂停,以运行中断进程。
此外,在本发明的信息处理装置的实施例中,运行基于上面提到的多个OS的进程的处理器的特征在于,其被配置为具有能够以并行方式操作的多个处理器,并且,上面提到的进程管理组件的特征在于,其被配置为按照上面提到的多个处理器中的每个相关的时间轴来调度上面提到的分区,以按照每个处理器相关的分区时间表来运行分区切换控制,并且,运行以下进程:选择与上面提到的多个处理器相对应的多个分区时间表中的一个,并设置上面提到的中断处理分区,以便使该中断处理分区与所选的分区时间表中的分区切换定时相一致。
此外,在本发明的信息处理装置的实施例中,上面提到的进程管理组件的特征在于,其被配置为运行以下进程:选择多个分区时间表中的一个,其中在出现中断请求之后出现最早分区切换定时,并设置上面提到的中断处理分区,以便使该中断处理分区与最早分区切换定时相一致。
此外,在本发明的信息处理装置的实施例中,上面提到的进程管理组件的特征在于,其被配置为,在中断请求是设置了最小可允许延迟时间的请求的情况中,运行设置上面提到的中断处理分区的进程,以便使该中断处理分区与在从出现中断请求起经过最小可允许延迟时间之后出现的预设分区切换定时相一致。
此外,在本发明的信息处理装置的实施例中,上面提到的进程管理组件的特征在于,其被配置为,在与中断处理请求相对应的中断进程可在由预设的分区时间表定义的调度分区中运行的情况中,执行在上面提到的调度分区中运行中断进程的进程。
此外,在本发明的信息处理装置的实施例中,运行基于上面提到的多个OS的进程的处理器的特征在于,其被配置为具有能够并行操作的多个处理器,并且,上面提到的进程管理组件的特征在于,其被配置为具有处理器对应分区切换模块,该模块被安排为运行与每个处理器相对应的进程控制。
此外,在本发明的信息处理装置的实施例中,上面提到的分区切换模块的特征在于,其被配置为具有中断群信息,作为分区切换模块与其相对应的处理器可接纳的中断请求产生源信息,并且,运行为每个中断群提供一个的多个中断群对应保留队列中、与由所述中断群信息识别出的处理器可接纳的群相对应的保留队列中存储的中断请求条目相关的进程。
此外,本发明的第二方面为用于控制基于多个操作***(OS)的进程的切换的进程控制方法,其包括:
检测中断处理请求的出现的步骤,
中断处理分区设置步骤,将中断处理分区设置为与上面提到的中断处理请求相对应的中断处理运行周期,以便使该中断处理分区与预设的分区切换定时相一致,以及
中断处理运行步骤,使上面提到的OS中的任一个根据上面提到的中断处理分区设置信息,而运行中断进程,该中断进程是分区时间表中调度的分区的结束之后的进程。
此外,在本发明的进程控制方法的实施例中,上面提到的中断处理分区设置步骤的特征在于,运行设置上面提到的中断处理分区的进程,以便使该中断处理分区与在出现中断请求之后出现的最早分区切换定时相一致。
此外,在本发明的进程控制方法的实施例中,上面提到的中断处理分区设置步骤的特征在于,在对中断处理请求设置最大可允许延迟时间、并且预设的分区切换定时不在从出现中断请求起的最大可允许延迟时间内出现的情况中,暂停正在运行的分区,并在暂停点设置中断处理分区。
此外,在本发明的进程控制方法的实施例中,上面提到的进程控制方法包括步骤:按照运行基于上面提到的多个OS的进程的多个处理器中的每个相关的时间轴来调度上面提到的分区,以按照每个处理器相关的分区时间表而运行分区切换控制,并且,上面提到的中断处理分区设置步骤的特征在于,选择与上面提到的多个处理器相对应的多个分区时间表中的一个,并设置中断处理分区,以便使该中断处理分区与所选的分区时间表中的分区切换定时相一致。
此外,在本发明的进程控制方法的实施例中,上面提到的中断处理分区设置步骤的特征在于,运行以下进程:选择多个分区时间表中的一个,其中在出现中断请求之后出现最早分区切换定时,并设置上面提到的中断处理分区,以便使该中断处理分区与最早分区切换定时相一致。
此外,在本发明的进程控制方法的实施例中,上面提到的中断处理分区设置步骤的特征在于,在中断处理请求是设置了最小可允许延迟时间的请求的情况中,运行设置上面提到的中断处理分区的进程,以便使该中断处理分区与从出现中断处理请求起经过最小可允许延迟时间之后出现的预设分区切换定时相一致。
此外,在本发明的进程控制方法的实施例中,进程控制方法的特征在于,执行一进程,以在与中断处理请求相对应的中断进程可在由预设的分区时间表定义的调度分区中运行的情况中,运行与在上面提到的调度分区中的中断处理请求相对应的中断进程。
此外,本发明的第三方面为运行用于控制基于多个操作***(OS)的进程的切换的进程控制的计算机程序,其包括:
检测中断处理请求的出现的步骤,
中断处理分区设置步骤,将中断处理分区设置为与上面提到的中断处理请求相对应的中断处理运行周期,以便与预设的分区切换定时相一致,以及
中断处理运行步骤,使OS中的任一个根据上面提到的中断处理分区设置信息,来运行作为分区时间表中调度的分区的结束之后的进程的中断进程。
根据本发明的配置,在用于切换基于多个操作***(OS)的进程的进程控制中,其被配置为将中断处理分区设置为与中断处理请求相对应的中断处理运行周期,以便与预设的分区切换定时相一致。因此,与中断请求相对应的分区切换进程的数目的增加可保持为1,由此避免了处理负载的增加,并可运行有效的数据处理。
此外,根据本发明的配置,在对中断处理请求设置最大可允许延迟时间或最小可允许延迟时间的情况中,其被配置为,如果分区切换定时出现在这些可允许时间内,则在分区切换定时设置中断处理分区,并且,例如,在分区切换时间未出现在这些可允许时间内的情况中,执行强制中断进程,由此运行接纳各种中断处理请求的处理。因此,实现了没有处理错误的配置。
此外,根据本发明的配置,在可在多处理器***中并行运行多个OS的进程的配置中,其被配置为,选择与多个处理器相对应的多个分区时间表中的一个,并设置中断处理分区,以便与所选的分区时间表中的分区切换定时相一致。因此,可在多个分区时间表之中的、出现中断处理请求之后的最早分区切换定时运行中断请求,并且,由此更有效的数据处理成为可能。
注意,本发明的计算机程序为可由存储介质、通信介质提供的计算机程序,例如,诸如CD、DVD、MO的存储介质,或例如网络的通信介质,以计算机可读形式将其提供到例如可运行各种程序代码的通用计算机***。通过以计算机可读形式提供这种程序,可在计算机***中实现根据该程序的处理。
通过基于后面要描述的本发明的实施例和附图的更为详细的描述,本发明的其它目的、特征和优点将变得更为清楚。注意,在本说明书中,***表示其中多个装置被逻辑分组的配置,并且,由此不限于其中在单个封装中安排具有特定配置的装置的配置。
附图说明
图1为说明应用于本发明的进程控制组件、进程控制方法的操作***(OS)的配置的图。
图2为示出基于分区的示例调度的图。
图3为说明单处理器***中的中断请求的示例调度的图。
图4为说明一出现中断请求便立刻开始中断处理分区的示例传统中断请求进程的图。
图5为说明最大延迟时间受限的处理示例的图。
图6为说明用于多处理器***中的中断请求的示例调度的图。
图7为说明用于设置最小延迟时间的中断请求的调度进程的图。
图8为说明等待能够执行要调度的中断进程的分区、并在调度的分区中运行中断进程的进程的图。
图9为说明本发明的进程管理组件的配置的图。
图10为说明中断请求产生源信息的数据结构的图。
图11为说明设置中断群(group)号码的示例的图。
图12为说明存储保留队列的示例的图。
图13为说明由分区切换模块在分区切换进程时引用的信息的图。
图14为说明在出现中断请求时的进程的流程图。
图15为说明将中断请求加入到保留队列的进程的流程图。
图16为说明强制中断进程的流程图。
图17为说明分区切换进程的流程图。
图18为示出可应用本发明的信息处理装置的结构示例的图。
具体实施方式
下面将描述本发明的信息处理装置、信息控制方法、以及计算机程序的细节。注意,将以下面部分的顺序来给出描述。
1.根据本发明的进程管理的概述
2.用于中断请求的进程示例1
3.用于中断请求的进程示例2
4.多处理器***中的进程
5.设置了最小延迟时间的中断请求进程
6.使用常规时间表的中断请求进程
7.进程管理组件的配置
8.中断进程设置和运行序列
9.信息处理装置的示例硬件配置
[1.根据本发明的进程管理的概述]
首先将参照图1来描述本发明的信息处理装置、进程控制方法的概述。图1为图解应用于本发明的信息处理装置、进程控制方法的操作***(OS)的配置的图。
如图1所示,配置了应用于本发明的信息处理装置、进程控制方法的操作***(OS),以便在0级上安排的0级OS(0)102上设置1级OS(1α)(1β)(1γ)103。在1级OS 103上设置作为各种特定处理程序的应用104,并运行该应用,以便与1级OS 103中的任一个相对应。尽管在图1中示出了三个1级OS 103,但这仅为示例;可将本发明应用于具有任意数目(两个或更多)的OS的所谓的多OS***。这些OS被存储在信息处理装置的存储部件中,并由处理器运行。
注意,在下面的描述中,OS(1)、OS(1α)、OS(1β)......表示1级OS,而OS(0)表示0级OS。
硬件(HW)101是在OS中共用的诸如处理器(CPU)、存储器的硬件。
0级OS(0)102运行与由三个OS(1)(即本示例中的OS(1α)、OS(1β)、OS(1γ))运行的进程相关的调度。0级OS(0)102使用被称为分区的划分,来以时间顺序调度与1级OS(1)相对应的进程。
图2中示出了基于分区的调度示例。图2(a)为在仅有一个可应用于1级OS(1)的进程的处理器的单处理器***的配置中的分区调度的示例。
在仅有一个可应用于1级OS(1)的进程的处理器的单处理器***中,作为1级OS(1)的OS(1α)、OS(1β)、OS(1γ)不能并行运行它们的进程,并由此,将它们的进程调度到单个时间顺序进程中。
在图2(a)中示出的示例中,***在时间t0-t1期间通过OS(1α)(即分区A)来运行进程,在时间t1-t2期间通过OS(1β)(即分区B)来运行进程,在时间t2-t3期间通过OS(1γ)(即分区C)来运行进程。之后,将按照时间轴来运行各个OS的进程。
图2(b)为在具有两个可应用于1级OS的进程的处理器的多处理器***的配置中的分区调度的示例。
在存在多个可应用于1级OS的进程的处理器的情况中,作为1级OS(1)的OS(1α)、OS(1β)、OS(1γ)可以根据处理器的数目而并行运行它们的进程。因此,0级OS(0)根据处理器的数目,调度作为多个时间顺序进程的1级OS的运行进程。
在图2(b)中示出的示例中,处理器1在时间t10-t11期间通过OS(1α)(即分区A)来运行进程,在时间t11-t12期间通过OS(1β)(即分区B)来运行进程。另一方面,处理器2在时间t20-t21期间通过OS(1β)(即分区B)来运行进程,而在时间t21-t22期间通过OS(1γ)(即分区C)来运行进程。
[2.用于中断请求的进程示例1]
接下来将描述在中断请求的情况中的分区管理。在出现中断请求的情况中,0级OS(0)102运行确定应当在哪个定时由哪个1级OS(1)来运行中断进程的进程。也就是说,作为进程管理组件的0级OS(0)102执行将中断处理分区设置为与中断请求相对应的中断进程的运行时间的进程。
在设置了中断处理分区的情况中,1级OS(1)根据设置的分区时间表而执行进程。
将参照图3来描述中断请求的调度示例,在处理器数目为1或处理器对于中断处理而彼此独立的***(即单处理器***)中执行该调度。
图3中示出的示例中断请求调度为这样的示例,其中,在不能由在中断请求时正在运行分区的OS(1α)来处理中断请求的情况中,0级OS(0)将中断分区设置到能够在终止了正在运行的分区之后处理中断请求的OS(1x)(x≠α),同时使中断请求保持等待,直到终止了正在运行的分区为止。图3(a)示出了尚未出现中断时的调度。
在图3(b)中,中断请求在作为OS(1α)的进程的分区A的运行期间出现,并且,在中断请求不能由OS(1α)运行但可由另一个OS(1x)(x≠α)运行的情况中,阻止执行中断请求进程的运行,直到出现了调度的分区切换时间。在完成了中断请求进程之后,运行分区B的进程。
如图3(b)所示,尽管在作为OS(1α)的进程的分区A的运行期间出现中断请求201,0级(OS)仍推延处理中断请求201的开始,直到终止了分区A的运行。
也就是说,0级OS使中断请求201保持等待,直到从出现中断请求起经过了时间Td之后出现的分区A的结束时间,并设置作为与中断请求相对应的进程的中断处理分区。此延迟时间Td是直到出现从分区A到分区时间表中的另一个分区的切换的定时的时间,其中在尚未出现中断时生成该分区时间表。在本实施例中,设置中断处理分区,以便与在出现中断请求之后出现的最早分区切换定时相一致。
上面提到的用于中断请求的调度进程提供了相比传统的方案减少了分区切换数目的优点。
图4中示出了传统的中断请求进程示例,其中,一出现中断请求便立刻开始中断处理分区。
图4中示出的进程示例为这样的示例,其中,在与图3中示出的定时相类似的定时出现中断请求。图4(a)示出了尚未出现中断时的调度。
在图4(b)中,在作为OS(1α)的进程的分区A的运行周期期间出现中断请求211、并且此中断请求不能由OS(1α)运行但可由另一个OS(1x)(x≠α)运行的情况中,一出现中断请求便立刻开始中断处理分区212。
如图4(b)所示,在作为OS(1α)的进程的分区A的运行周期期间出现中断请求211,并在之后立即设置中断处理分区212。
此时,暂停分区A,并且,两个分区A221、A222要在中断处理分区212之前和之后运行。结果,需要从分区A221到中断处理分区212的切换、以及从中断处理分区212到分区A222的切换,将与运行中断进程有关的分区切换数目增加到2。
在图3中示出的示例中,仅在终止了分区A之后运行中断处理分区,并由此,与运行中断进程有关的分区切换数目的增加仅为1。由此,通过以这种方式延迟中断进程,提供了可将分区切换数目的增加减少到1的优点。
另一个优点在于提高指令运行效率。在图4中,为两个分开的分区A221、A222设置的时间分别为T1、T2,并且,T1+T2等于在尚未出现中断时设置的时间T。也就是说,T=T1+T2。
然而,尽管事实上周期T的长度等于周期T1和T2的长度的总和,但可在周期T期间可运行的指令的数目变得大于在周期T1和T2期间运行的指令的总数。由于并非由中断处理分区的运行而分割分区A的运行,所以会发生这种现象。当正由中断处理分区将分区A的运行暂停时,中断处理分区更新了各种高速缓冲存储机制和缓冲器(高速缓冲存储器和TLB、分支预测缓冲器)的状态。作为更新的结果,相比连续运行分区A,损害了在***已回到分区A之后的指令运行效率。
如通过参照图3所描述的,通过将中断请求处理分区设置到在中断请求时正在运行的分区的调度结束时间之后出现的定时,提供了诸如减小分区切换开销和提高指令运行效率的优点。
[3.用于中断请求的进程示例2]
当应用上面提到的中断请求进程延迟技术时,在对在中断请求时正在运行的分区设置较长的运行时间的情况中,将推延中断请求进程的开始时间,并且,甚至会在一些中断进程中引起错误。
作为克服这点的进程,将参照图5来描述最大延迟时间受限的示例。
图5(a)示出了与上面提到的实施例等同的示例进程,其中,将中断进程的运行开始位置设置到在中断请求301时正在运行的分区(分区A)的结束时间。在终止了分区A之后设置中断处理分区302。
图5(a)中示出的示例为这种进程,其中,从出现中断请求301起到分区A的调度结束时间的时间Td比中断请求的最大可允许延迟时间Tmax短,即Td<Tmax,并由此,其为即使将中断请求的运行延迟直到分区A的调度结束时间也不会引起问题的进程。
一些中断请求具有最大可允许延迟时间设置。最大可允许延迟时间由0级OS(0)作为例如信息设置而保存,以便与中断请求产生源相对应。后面将描述这些配置。
在出现设置了最大可允许延迟时间的中断请求的情况中,并且,如图5(b)所示,如果到在中断请求311时正在运行的分区的调度结束时间的时间比中断请求的最大可允许延迟时间Tmax长,则0级OS(0)在中断请求的最大可允许延迟时间Tmax内暂停分区A,而不等待该分区的处理结束,并且,设置并运行中断处理分区312。
此进程被称为强制中断进程。作为此强制中断进程的结果,通过将分区A划分为前半分区A321和后半分区322来处理分区A。
因此,在即使已经过了中断请求的最大可允许延迟时间也不发生分区切换的情况中,在经过最大可允许延迟时间时或之前,暂停正在运行的分区,以切换到用于运行的中断处理分区。
因此,在其中会出现具有受限的最大响应时间(最大可允许延迟时间)的中断请求的***中,可通过在考虑可允许延迟时间的同时推延中断进程,来保证最大响应时间(最大可允许延迟时间)内的中断请求进程的运行,以避免由于中断请求的过度延迟而造成的数据处理错误的出现。
[4.多处理器***中的进程]
在上面提到的实施例中,其描述以仅具有一个处理器或处理器对于中断处理彼此独立的***作为前提。在其中多个处理器可并行执行进程的***中,更有效的处理成为可能。
将通过参照图6来描述多处理器***中的中断请求的调度示例。在图6中,存在能够并行处理的三个处理器(处理器1、处理器2、处理器3),并且,由0级OS(0)来分别调度处理器1、2、3的处理序列。
图6(a)示出了用于应用处理器1的进程的基于分区的调度;而图6(b)示出了用于应用处理器2的进程的基于分区的调度;并且图6(c)示出了用于应用处理器3的进程的基于分区的调度。
在此示例中,中断请求X401和中断请求Y402出现在处理器1。处理器1继续其分区A的运行,同时让中断处理分区推延。此后,处理器2终止其分区B的处理,于是出现了分区切换定时411。
每个处理器的分区配置由0级OS(0)来管理,并且,0级OS(0)由此识别设置了分区切换定时中最早的一个的处理器,所述最早的分区切换定时在处理器1中出现的中断请求X401或中断请求Y402之后出现。
此时,可对其设置中断进程X的最早分区切换定时为:与处理器2的分区B的处理的结束相一致的分区切换定时411。0级OS(0)将在处理器1保留的中断进程X转移到处理器2,并做出时间表,以便在分区B之后处理中断进程X,并由此设置中断处理分区412,以便在处理器2终止了分区B的处理之后处理,以使中断进程X由处理器2运行。
此外,可对其设置中断进程Y的最早分区切换定时为:与处理器3的分区D的处理的结束相一致的分区切换定时421。0级OS(0)将在处理器1保留的中断进程Y转移到处理器3,并做出时间表,以便在分区D之后处理中断进程Y,并由此设置中断处理分区422,以便在处理器3终止了分区D的处理之后处理,以使中断进程Y由处理器3运行。
因此,在能够由多个处理器来运行并行处理的多处理器***中,可在处理器之间转移正在延迟的中断进程,以使正在延迟的中断进程由设置了在出现中断请求之后出现的最早分区切换定时的处理器运行,并且,因此具有更短的延迟时间的中断进程的运行成为可能。因此,可以较高概率来实现使用由预定分区时间表设置的分区切换定时的中断进程的运行,而不暂停正在运行的分区来处理强制中断。
[5.设置了最小延迟时间的中断请求进程]
如前面提到的,一些中断请求具有最大可允许延迟时间设置。此外,其它中断请求具有最小延迟时间设置。例如,为每个中断请求产生源设置最小延迟时间,并将其设置为作为0级OS(0)的管理信息的中断请求产生源信息。后面将描述这些信息项。
在出现设置了最小延迟时间的中断请求的情况中,即使发生了分区切换,该中断请求的进程也不会开始,直到经过了最小延迟时间。
将参照图7来描述调度进程,其基于由0级OS(0)为设置了最小延迟时间的中断请求而运行的分区设置。
在图7中,在分区A的运行期间出现了中断请求501。根据前面提到的实施例,中断处理分区会被设置在从分区A切换到分区B的时间。然而,中断请求501是设置了最小延迟时间的中断请求。
因此,对于设置了最小延迟时间的中断请求,0级OS(0)使中断请求保持等待,直到从出现中断请求501起经过了最小延迟时间,并将中断处理分区511设置到之后出现的分区切换定时。在图7中示出的分区B终止之后设置中断处理分区511。
注意,在另外设置了最大延迟时间的中断请求的情况中,进行进一步考虑了最大延迟时间的进程。也就是说,如果在从出现中断请求起的最小延迟时间之后、且在最大延迟时间之内出现切换分区的定时,则设置中断处理分区。然而,在切换分区的定时未出现在从出现中断请求起的最小延迟时间之后、且在最大延迟时间之内的情况中,0级OS(0)暂停该分区的运行,并在其中设置中断处理分区。
[6.使用常规时间表的中断请求进程]
迄今为止描述的方案为这样的示例,其中,中断进程基本上被推迟,直到在出现中断之后出现切换分区的第一个定时,并且在无权限(permission)的情况中,通过暂停分区来运行中断进程。
然而,一些中断请求产生源具有比分区切换出现的时间间隔足够长的可允许延迟时间。另一方面,对于执行中断进程的分区来说,极少仅执行中断进程,并由此,经常给这种分区分配与分配给其它分区的处理器时间相类似的处理器时间。在这种情况中,在由0级OS(0)运行的常规调度进程中,其可被配置为使得0级OS(0)阻止调度能够执行中断进程的分区,并在调度的分区中运行中断进程。然而,在此情况中,并且,在不超过中断请求的可允许延迟时间的范围内推延的分区的调度是有条件的。
根据此配置,不再需要单独为中断请求的运行而设置分区,并且,由此可进一步减少中断处理开销。
当前配置为这种技术,通过该技术,在可预知由0级OS(0)设置的分区时间表的情况中,使用此预知的时间表来推迟中断进程。将参照图8来描述根据本实施例的中断请求进程及其与分区时间表的对应关系。
在图8中,在分区A的运行期间出现中断请求601。对此中断请求601设置最大可允许延迟时间(Tmax)。
不妨假定,在出现中断请求601之后,在最大可允许延迟时间(Tmax)内调度能够处理中断请求601的分区。接下来,设置此中断请求601,以便由该分区处理。
在图8中,分区D611为能够处理中断请求601的分区,并且还由0级OS(0)通过常规分区调度进程来调度该分区。设置中断请求601,以便在分区D611中运行。
根据此配置,不再需要单独为中断请求的运行而设置分区,并且,由此可减少中断处理开销,以实现有效的数据处理。
[7.进程管理组件的配置]
上面已描述了本发明的几个进程管理进程的示例。下面将描述用于运行这些进程的进程管理组件的配置。
将参照图9来描述本发明的进程管理组件的信息管理配置。图9中示出的示例配置为具有多个处理器的多处理器***中的信息配置,其中,在图1中示出的0级OS(0)的控制下管理每项信息,并还控制每个模块的操作。处理器1 731、处理器2 732、处理器3 733可并行运行根据1级OS(1)的进程。注意,0级OS(0)还使用任一处理器来运行其进程。
将管理信息的存储器划分为:共享存储器710,作为处理器共用的存储区;以及处理器对应模块720,设置该模块以便分别与所述处理器相对应。
存储在共享存储器710中的是中断请求产生源信息711、保留队列712、713......、以及通知的中断请求信息714。
设置到处理器对应模块720中的每个的是定时器721、分区切换模块722、本地存储器723。
将描述每个结构元件。存储在共享存储器710中的中断请求产生源信息711是与产生中断请求的中断请求产生源相对应的信息,并包括图10中示出的信息。
在运行数据处理的装置中,产生中断请求的中断请求产生源将为预定元件,例如网络接口。中断请求产生源信息711是为每个产生这种中断请求的中断请求产生源而列出的信息的记录。
如图10所示,设置下面的信息项a-d,以便与每个中断请求产生源相对应。
a.中断群号码
b.中断处理分区ID
c.最大可允许延迟时间
d.最小可允许延迟时间
“a.中断群号码”项是有关一群中断请求产生源的信息,与分区切换模块相对应的处理器可为所述中断请求产生源而执行进程,其中,设置所述分区切换模块以便与每个所述处理器相对应。例如,设置如图11所示的群号码。在图11中示出的示例中,将群1设置为产生中断请求的一群中断请求产生源a、b、c,而将群2设置为产生中断请求的一群中断请求产生源d、e、f。
被设置以便与每个处理器相对应的分区切换模块将仅运行与下述中断请求条目相关的进程,其中,所述中断请求条目被存储在多个中断群对应保留队列712、713......中、与可由中断群信息识别出的处理器来处理的群相对应的保留队列中,其中,将中断群对应保留队列712、713......中的每个设置为:为每个中断群而设置的中断请求队列。
回到图10,将继续描述中断请求产生源信息的配置,“b.中断处理分区ID”项是作为用于运行由该中断请求产生源产生的中断请求的分区的标识符的ID。在上面提到的示例进程的每一个中调度中断处理分区的情况中,0级OS(0)设置中断处理分区ID,作为分区调度数据。根据此设置来运行中断分区。
“c.最大可允许延迟时间”、“d.最小可允许延迟时间”项是最大可允许延迟时间和最小可允许延迟时间,设置所述时间以便与由该中断请求产生源产生的中断请求相对应。在一些情况中可能不设置这些信息项。如在上面提到的进程示例中所描述的,在设置了这些信息项的情况中,0级OS(0)设置中断处理分区,以便可以在这些可允许时间内运行进程。
如图9所示,共享存储器710存储为每个中断群设置的保留队列712、713。如上面参照图11所描述的,中断群是有关一群中断请求产生源的信息,与分区切换模块相对应的处理器可为所述中断请求产生源而执行进程,其中,设置所述分区切换模块,以便与每个所述处理器相对应。
例如,设置为保留队列712中的条目的仅是由群号码1,即产生中断请求的中断请求产生源a、b、c产生的中断请求。设置为保留队列713中的条目的仅为由群号码2,即产生中断请求的中断请求产生源d、e、f产生的中断请求。
在每个保留队列中,作为有关已经产生的中断请求的信息而分别存储了作为中断请求的标识符的中断请求ID、与中断请求相对应的最大可允许延迟时间和最小可允许延迟时间。将它们以较短的最大可允许延迟时间的顺序存储。在调度中断处理分区的情况中,0级OS(0)通过提取保留队列中的第一个(即以较短最大可允许延迟时间的顺序),来设置中断处理分区,或执行设置用于运行中断进程的分区的进程。
图9中示出的共享存储器710中的通知中断请求信息714是存储中断请求信息的区域,其中已经将所述中断请求信息通知给了将实际处理中断请求的1级OS。
也就是说,在0级OS(0)的控制下,将存储在保留队列712、713中的中断请求信息依次通知给1级OS(1x),以便指定其处理中断请求。在通知之后,将该信息存储在通知中断请求信息714中,并且,当完成中断处理分区并发生确定分区切换时,清除通知中断请求信息714中对应的一个。注意,在中断请求时正在由处理器运行的分区能够立刻运行中断请求的情况中,0级OS(0)通知分配处理中断请求的OS(1x),而不在保留队列中保存中断请求,并且,随后将中断请求信息存储在通知中断请求信息714中。
接下来将描述图9中示出的处理器对应模块720。在处理器对应模块720中设置的为定时器721、分区切换模块722、本地存储器723。
分区切换模块722是为每个处理器设置的模块,并执行分区切换,以便随着由对应定时器721测定的时间的经过,以时分方式来运行每个分区。
如在上面提到的示例进程中所描述的,该模块根据由0级OS(0)设置的分区时间表,在调度的分区切换时间执行到调度的分区的切换。例如,该模块将分区A切换到分区B,或切换到中断处理分区。
图9中示出的示例涉及三个处理器,并且,与各个处理器相对应的分区切换模块将根据在例如前面分别描述的图6(a)、(b)、(c)中示出的分区时间表来运行分区切换。
分区切换模块通过引用存储在对应的本地存储器723中的图13中示出的信息来运行进程。
也就是说,该模块通过引用下面的变量和数据结构来运行分区切换。
a.当前分区;当前正在运行的分区的ID
b.中断群组:可由操作分区切换模块的处理器处理的一组中断群
c.分区上下文:每个分区的上下文
除了恢复暂停的进程所需的信息,如寄存器的内容之外,存储在分区上下文中的是下面的值。
c-1.通知的中断组:要由此分区处理的一组中断
c-2.预知的开始时间:调度的时间,在该时间接下来开始此分区(控制此分区,以便不晚于调度时间而开始)
此外,存储在本地存储器723中的是用于根据分区时间表而运行进程的时间信息、用于运行程序的地址信息。具体地,
设置时间信息:开始设置进程的时间
要在设置时间开始的例程地址:例程的地址,其中写入了要运行的进程
附加信息地址:在开始例程时作为参数而传递的附加信息地址
以设置时间的顺序排列,而存储这些信息片段。每个处理器基于要在设置时间开始的例程地址和附加信息地址,而在作为设置时间信息而设置的设置时间(即在分区切换之后运行新分区的时间)获取运行程序、运行程序所需的参数等,以开始处理新分区。
[8.中断进程设置和运行序列]
接下来转到图14到17的流程,将描述要在本发明的进程管理进程中运行的与中断请求相对应的进程的过程。通过划分为下面的四个进程而给出该描述。注意,由0级OS(0)来运行这些进程。
a.在中断请求时的进程(图14)
b.将中断请求加入到保留队列的进程(图15)
c.强制中断进程(图16)
d.分区切换进程(图17)
a.在中断请求时的进程
首先参照图14的流程图,将描述进程的过程,在某个中断请求产生源将中断请求发送到处理器时执行该过程。
当中断请求产生源将中断请求发送到处理器时,0级OS(0)在步骤S101中确定正在由处理器运行的当前分区是否为能够运行中断请求的分区。由0级OS(0)基于前面参照图10而描述的中断请求产生源信息来对此进行确定。
在当前分区是能够运行中断请求的分区的情况中,进程前进到步骤S102,其中0级OS(0)向运行当前分区的OS(1x)通知用于处理中断请求的请求,并将其注册在通知中断请求信息中。
因此,被通知了用于处理中断请求的请求的1级OS(1x)借助其自身的时间表,在当前分区内执行中断请求进程。
如果在步骤S101中确定由处理器正在运行的当前分区不是能够运行中断请求的分区,则进程前进到步骤S103,其中确定是否将用于运行中断请求的分区调度到在被设置以便与中断请求产生源相对应的最大可允许延迟时间之前运行。由0级OS(0)基于预设的分区时间表信息来对此进行确定。
在将用于运行中断请求的分区调度到在被设置以便与中断请求产生源相对应的最大可允许延迟时间之前运行的情况中,进程前进到步骤S104,以向用于运行被调度到在最大可允许延迟时间之前运行的分区的OS(1x)通知用于处理中断请求的请求,并将其注册在通知中断请求信息中。
因此,被通知了用于处理中断请求的请求的1级OS(1x)借助其自身的时间表,在调度运行的分区内执行中断请求进程。
另一方面,在步骤S103中确定未将用于运行中断请求的分区调度到在被设置以便与中断请求产生源相对应的最大可允许延迟时间之前运行的情况中,进程前进到步骤S105,以设置定时器,以便在经过了被设置以便与中断请求产生源相对应的最小可允许延迟时间之后运行“到保留队列的添加进程”。
如前面通过参照图10所描述的,最小可允许延迟时间为包括在中断请求产生源信息中的信息。0级OS(0)基于最小可允许延迟时间而设置定时器,并在经过了最小可允许延迟时间之后运行“到保留队列的添加进程”。后面将通过参照图15来描述此“到保留队列的添加进程”。
注意,如前面提到的,为每个中断群而设置要添加到保留队列的信息,并且,因此,基于包括在中断请求产生源信息中的中断群号码,将中断请求信息加入到与中断群相对应的保留队列中。如前面通过参照图12所描述的,在该队列中设置的信息是中断请求ID、最大可允许延迟时间、最小可允许延迟时间。
在将该信息添加到保留队列中之后,0级OS(0)以第一个的顺序,从该队列中依次获取中断请求,并根据前面提到的示例进程而运行分区设置进程,其中考虑它们的最大可允许延迟时间和最小可允许延迟时间。
b.将中断请求加入到保留队列的进程(图15)
下面将通过参照图15的流程来描述将中断请求加入到保留队列的进程。
在步骤S201中指定中断请求产生源S,并且在步骤S202中,通过引用基于中断请求产生源S的中断请求产生源信息而指定中断群g,以确定要加入中断请求的群的归属。
此外,在步骤S203中,将与中断请求相对应的最大可允许延迟时间(Tmax)加到中断请求出现时间(t),以计算中断请求的最大延迟运行时间信息Td(截止时间),并且在步骤S204中,将定时器设置到最大延迟运行时间信息Td(截止时间)。在不能在此时间周期内设置中断分区(如分区切换)的情况中,使用此定时器设置信息来运行强制中断。
在能够在定时器设置的时间限制之前设置中断分区(如分区切换)的情况中,重置定时器。在不能够在定时器设置的时间限制之前设置中断分区(如分区切换)的情况中,在定时器设置的时间限制到期时,暂停正在运行的分区,以运行中断进程,即执行强制中断进程。
c.强制中断进程
接下来参照图16,将描述用于运行强制中断进程的过程。如前面通过参照图5所描述的,此强制中断进程为在分区切换未在最大可允许延迟时间内执行的情况中执行的进程,其中设置所述最大可允许延迟时间以便与中断请求(中断请求产生源)相对应。
在步骤S301中,0级OS(0)将与正在由被促使运行中断进程的1级OS(1x)运行的分区相对应的上下文存储在存储器中,同时暂停当前分区。上下文包括在暂停之后恢复进程所需的信息,例如寄存器值。
在步骤S302中,删除与要由强制中断运行的中断进程相对应的保留队列中的条目,并且,在步骤S303中,将中断请求信息加入到通知中断请求信息中。注意,在执行此进程中,0级OS(0)通过强制中断的方式通知用于运行中断分区的OS(1x),以运行中断请求。被通知了用于处理中断请求的请求的1级OS(1x)执行中断请求进程。
此外,在步骤S304中,0级OS(0)重建暂停分区的上下文,并且,在步骤S305中,跳转到暂停分区的中断向量。步骤S304、S305的此处理将使1级OS(1x)恢复由中断请求进程暂停的分区,并将执行所述处理,以便在步骤S304中将分区复原到暂停之前的状态,并且,在步骤S305中,使分区返回到暂停之前的其进程步骤。
d.分区切换进程
接下来将通过参照图17的流程图来描述分区切换进程。
在根据由0级OS(0)设置的分区时间表的定时运行分区切换。或者,其还是在上面提到的强制中断的情况中运行的进程。
在步骤S401中,0级OS(0)将要关闭的当前分区的上下文存储在存储器中,以运行分区切换。上下文包括恢复分区所需的信息,例如寄存器值。
在步骤S402中,确定存储有关与现在正在运行当前分区的处理器相关的中断群的保留队列的条件的队列。
在该队列为空的情况中,将不运行中断进程,而将运行根据预设的分区时间表的进程。因此,进程前进到步骤S403,其中,重建被调度接下来运行的分区的上下文,并且,基于重建的上下文,由1级OS(1x)运行接下来的分区。
在步骤S402中确定在与现在正在运行当前分区的处理器相关的中断群的保留队列中存在中断请求的情况中,进程前进到步骤S411,其中,以第一个的顺序从保留队列中获取中断请求条目。如前面提到的,每个保留队列具有以它们较短的最大可允许延迟时间的顺序排列的中断请求。
在步骤S412中,通知用于运行与从保留队列获取的中断请求相对应的中断分区的OS(1x)来运行中断请求。被通知了用于处理中断请求的请求的1级OS(1x)执行中断请求进程。在步骤S413中,将中断信息加入到通知中断请求信息中。
在步骤S414中,将用于处理强制中断的定时器设置释放,其中设置该定时器设置,以便与通知的中断请求的最大可允许延迟时间相对应。
此外,在步骤S415中,将状态值复原到它们在运行中断进程之前的状态,即重建分区的上下文,并且,在步骤S416中,运行跳转到分区的中断向量的进程。步骤S415、S416的处理会使1级OS(1x)正常运行被调度在由中断请求进程所延迟的分区之后运行的分区,并由此,执行步骤S415的处理,作为将由于中断的出现而改变的各种状态值复原到它们在未出现中断的情况中的状态的进程,并且,运行步骤S416的处理,作为将1级OS(1x)设置到未出现中断的进程步骤的进程。
[9.信息处理装置的示例硬件配置]
接下来将描述信息处理装置的示例硬件配置,该配置具有运行上面提到的进程的进程管理组件。上面提到的进程管理通过普通的PC来实现,并且,因此通过存储具有图1中示出的分层配置的OS(即和应用程序配合、实际运行处理的多个1级OS(1x)),并通过存储在这些多个1级OS(1x)程序上运行分区管理的0级OS(0)程序,来以包括PC的各种信息处理装置来实现上面提到的进程管理。
图18示出了能够运行上面提到的进程管理的信息处理装置的配置示例。
CPU(中央处理单元)951、952、953根据存储在ROM(只读存储器)902、HDD 904等中的程序而运行各种进程,并由此起到数据处理组件的作用。
在上面提到的实施例中,它们在1级OS(1x)的控制下运行各种进程。此外,还将它们应用于由0级OS(0)运行的进程。处理器(CPU)被分别提供有用于分区调度管理、中断请求的最大延迟时间和最小延迟时间的测定的定时器961、962、963。
RAM 903适当地存储由CPU 961、962、963中的每个运行的程序和处理的数据。该程序包括由0级OS(0)运行的分区管理程序,并且,将基于分区管理程序来运行上面提到的各种进程。
此外,存储在其中的是共享存储器内的中断群对应保留队列、中断请求产生源信息、通知中断请求信息,以及存储在与各个处理器相对应的本地存储器中的进一步的信息,如在分区切换时重建的要存储的上下文信息、各种时间信息、地址信息。尽管在图9中作为独立实体而描述了本地存储器和共享存储器,但可通过将单个存储器划分为对应的存储区来存储这些信息。通过总线905来互连CPU 951、952、953、ROM 902、以及RAM 903、HDD 904。
连接到总线905的是输入/输出接口906,而连接到输入/输出接口906的是例如处理来自用户操纵的键盘、鼠标等的输入信息的输入部件907,由LCD、CRT、扬声器等构成并将各种信息呈现给用户的输出部件908。此外,与其连接的是起到数据交换组件作用的通信部件909、具有可移动记录介质911(如磁盘、光盘、磁光盘、或其附带的半导体存储器)、并运行从或向可移动记录介质911的数据读取或写入的驱动器910。
图18中示出的硬件配置是PC的硬件配置示例,该PC为可应用上面提到的进程管理的信息处理装置中的一个。本发明的进程管理不仅可应用于此PC配置,还可应用于包括游戏机、通信终端装置等各种信息处理装置,其中安装了多个OS,并运行通过分区管理的进程管理。
上面已通过参照特定实施例来相当详细地描述了本发明。然而,对于本领域的技术人员来说不言自明的是,可对实施例做出修改和替换,而不背离本发明的范围和精髓。也就是说,以通过示例的方式公开了本发明,并由此不应当解释为限制性的含义。为了判断本发明的范围和精髓,应当考虑所附的权利要求。
注意,可由硬件、软件或两者组合的配置来执行在说明书中描述的一系列进程。在运行基于软件的进程的情况中,可通过将具有在其中记录的处理序列的程序安装在合并到专用硬件中的计算机内的存储器中,或通过将程序安装在可运行各种处理的通用计算机中,来运行进程。
例如,可将程序预先记录在作为记录介质的硬盘或ROM(只读存储器)上。可替换地,可将程序暂时或永久存储(记录)在可移动记录介质上,如软盘、CD-ROM(光盘只读存储器)、MO(磁光)盘、DVD(数字多用盘)、磁盘、半导体存储器。可作为所谓的封装软件来提供这种可移动记录介质。
注意,不仅可从诸如上面提到的可移动记录介质将程序安装在计算机中,还可通过从下载站点到计算机的无线传输、经由网络(如LAN、因特网)到计算机的有线传输来将程序安装在计算机中,以允许计算机将由此传送的用于安装的程序接收到存储介质中,例如合并在其中的硬盘。
注意,说明书中描述的各种进程不仅以根据描述的时间顺序来运行,还可根据分配运行进程的装置的处理能力,根据需要而并行或独立地运行。另外,本描述中的***表示多个装置的逻辑大规模结构(mass structure),并且,不限于具有单个壳体中的各自结构的装置的那些***。
工业应用性
如上所述,根据本发明的配置,在用于切换基于多个操作***(OS)的进程的进程控制中,其被配置为将中断处理分区设置为与中断处理请求相对应的中断处理运行周期,以便和预设的分区切换定时相一致。因此,与中断请求相对应的分区切换进程的数目的增加可保持为1,由此避免了处理负载的增加,并可运行有效的数据处理。
此外,根据本发明的配置,在对中断处理请求设置最大可允许延迟时间或最小可允许延迟时间的情况中,其被配置为,如果分区切换定时出现在这些可允许时间内,则在分区切换定时设置中断处理分区,并且,例如,在分区切换时间未出现在这些可允许时间内的情况中,执行强制中断进程,由此运行接纳各种中断处理请求的处理。因此,实现了没有处理错误的配置。
此外,根据本发明的配置,在可在多处理器***中并行运行多个OS的进程的配置中,其被配置为,选择与多个处理器相对应的多个分区时间表中的一个,并设置中断处理分区,以便和所选的分区时间表中的分区切换定时相一致。因此,可在多个分区时间表之中出现中断处理请求之后的最早分区切换定时运行中断请求,并且,由此更有效的数据处理成为可能。
Claims (16)
1、一种信息处理装置,其特征为具有:
存储部件,用于存储多个操作***OS,
处理器,用于运行基于所述多个OS的进程,以及
进程管理组件,按照时间轴调度被定义为所述多个OS中的每个的进程的分区,并运行控制,用于按照该调度、基于分区切换控制来切换所述多个OS,并且,其特征在于:
所述进程管理组件包括:
用于确定预设的分区切换定时是否存在于从设置了最大可允许延迟时间的中断请求的出现起到所述最大可允许延迟时间的时间周期内的部件,以及
用于在确定了预设的分区切换定时存在于所述最大可允许延迟时间内的情况中执行进程控制的部件,其中将中断处理分区设置为与中断处理请求相对应的中断处理周期,以便使该中断处理分区与预设的分区切换定时相一致,并使所述OS中的任一个运行中断进程,该中断进程是分区时间表中的调度分区的结束之后的进程。
2、如权利要求1所述的信息处理装置,其特征在于,所述进程管理组件被配置为运行设置所述中断处理分区的进程,以便使该中断处理分区与在出现中断请求之后出现的最早分区切换定时相一致。
3、如权利要求1所述的信息处理装置,其特征在于,所述进程管理组件被配置为执行进程控制,其中,在确定没有预设的分区切换定时出现在从出现中断请求起的最大可允许延迟时间内的情况中,暂停正在运行的分区,以运行中断进程。
4、如权利要求1所述的信息处理装置,其特征在于:
运行基于所述多个OS的进程的所述处理器被配置为具有能够并行操作的多个处理器,并且
所述进程管理组件被配置为按照关于所述多个处理器中的每个的时间轴来调度所述分区,以按照关于每个处理器的分区时间表来运行分区切换控制,并运行以下进程:选择与所述多个处理器相对应的多个分区时间表中的一个,并设置所述中断处理分区,以便使该中断处理分区与所选的分区时间表中的分区切换定时相一致。
5、如权利要求4所述的信息处理装置,其特征在于,所述进程管理组件被配置为运行以下进程:选择多个分区时间表中的一个,其中在出现中断请求之后出现最早分区切换定时,并设置所述中断处理分区,以便使该中断处理分区与最早分区切换定时相一致。
6、如权利要求1所述的信息处理装置,其特征在于,所述进程管理组件被配置为,在中断请求是设置了最小可允许延迟时间的请求的情况中,运行设置所述中断处理分区的进程,以便使该中断处理分区与从出现中断请求起经过最小可允许延迟时间之后出现的预设分区切换定时相一致。
7、如权利要求1所述的信息处理装置,其特征在于,所述进程管理组件被配置为,在与中断处理请求相对应的中断进程可在由预设的分区时间表定义的调度分区中运行的情况中,执行在所述调度分区中运行中断进程的进程。
8、如权利要求1所述的信息处理装置,其特征在于:
运行基于所述多个OS的进程的所述处理器被配置为具有能够并行操作的多个处理器,并且
所述进程管理组件被配置为具有处理器对应分区切换模块,该模块被安排为运行与每个处理器相对应的进程控制。
9、如权利要求8所述的信息处理装置,其特征在于,所述分区切换模块被配置为具有中断群信息,作为该分区切换模块与其相对应的处理器可接纳的中断请求产生源信息,并且,运行为每个中断群提供一个的多个中断群对应保留队列中的、与由所述中断群信息识别出的处理器可接纳的群相对应的保留队列中存储的中断请求条目相关的进程。
10、一种用于控制基于多个操作***OS的进程的切换的进程控制方法,其特征在于包括:
检测中断处理请求的出现的步骤,
中断处理请求模式确定步骤,确定中断处理请求是否是设置了最大可允许延迟时间的中断处理请求,
定时确定步骤,确定预设的分区切换定时是否存在于从出现设置了最大可允许延迟时间的中断处理请求起的所述最大可允许延迟时间内,
中断处理分区设置步骤,在确定了预设的分区切换定时存在于所述最大可允许延迟时间内的情况中,将中断处理分区设置为与所述中断处理请求相对应的中断处理运行周期,以便使该中断处理分区与预设的分区切换定时相一致,以及
中断处理运行步骤,使所述OS中的任一个根据由所述中断处理分区设置步骤设置的信息而运行中断进程,该中断进程是分区时间表中调度的分区的结束之后的进程。
11、如权利要求10所述的进程控制方法,其特征在于,所述中断处理分区设置步骤的特征在于,运行设置所述中断处理分区的进程,以便使该中断处理分区与出现中断请求之后出现的最早分区切换定时相一致。
12、如权利要求10所述的进程控制方法,其特征在于,在所述中断处理请求模式确定步骤中确定中断处理请求是设置了最大可允许延迟时间的中断处理请求、并且在所述定时确定步骤中确定了在所述最大可允许延迟时间内未出现预设的分区切换定时的情况中,所述中断处理分区设置步骤暂停正在运行的分区,并在暂停点设置中断处理分区。
13、如权利要求10所述的进程控制方法,其特征在于还包括步骤:
按照运行基于所述多个OS的进程的多个处理器中的每个相关的时间轴来调度所述分区,以按照每个处理器相关的分区时间表来运行分区切换控制,并且其特征在于:
所述中断处理分区设置步骤选择与所述多个处理器相对应的多个分区时间表中的一个,并设置中断处理分区,以便使该中断处理分区与所选的分区时间表中的分区切换定时相一致。
14、如权利要求13所述的进程控制方法,其特征在于,所述中断处理分区设置步骤运行以下进程:选择多个分区时间表中的一个,其中在出现中断请求之后出现最早分区切换定时,并设置所述中断处理分区,以便使该中断处理分区与最早分区切换定时相一致。
15、如权利要求10所述的进程控制方法,其特征在于,所述中断处理分区设置步骤在中断处理请求是设置了最小可允许延迟时间的请求的情况中,运行设置所述中断处理分区的进程,以便使该中断处理分区与从出现中断处理请求起经过最小可允许延迟时间之后出现的预设分区切换定时相一致。
16、如权利要求10所述的进程控制方法,其特征在于还包括步骤:在与中断处理请求相对应的中断进程可在由预设的分区时间表定义的调度分区中运行的情况中,运行与在所述调度分区中的中断处理请求相对应的中断进程。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP157565/2003 | 2003-06-03 | ||
JP2003157565A JP3952992B2 (ja) | 2003-06-03 | 2003-06-03 | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1698034A CN1698034A (zh) | 2005-11-16 |
CN100483351C true CN100483351C (zh) | 2009-04-29 |
Family
ID=33508394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004800006820A Expired - Fee Related CN100483351C (zh) | 2003-06-03 | 2004-05-11 | 信息处理装置、进程控制方法、以及计算机程序 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7818751B2 (zh) |
EP (1) | EP1548592B1 (zh) |
JP (1) | JP3952992B2 (zh) |
KR (1) | KR20060023514A (zh) |
CN (1) | CN100483351C (zh) |
WO (1) | WO2004109512A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4009602B2 (ja) * | 2004-03-02 | 2007-11-21 | 日本電気通信システム株式会社 | リアルタイムosを用いたタスク処理方法、装置、及びプログラム |
US8156493B2 (en) * | 2006-04-12 | 2012-04-10 | The Mathworks, Inc. | Exception handling in a concurrent computing process |
US8694999B2 (en) * | 2006-12-07 | 2014-04-08 | Wind River Systems, Inc. | Cooperative scheduling of multiple partitions in a single time window |
US7913009B2 (en) * | 2007-06-20 | 2011-03-22 | Microsoft Corporation | Monitored notification facility for reducing inter-process/inter-partition interrupts |
CN101546365B (zh) * | 2008-03-25 | 2011-01-26 | 联想(北京)有限公司 | 硬件安全单元逻辑切换方法、***及硬件安全单元 |
US8607020B2 (en) * | 2008-06-06 | 2013-12-10 | International Business Machines Corporation | Shared memory partition data processing system with hypervisor managed paging |
US8090911B2 (en) | 2009-04-16 | 2012-01-03 | International Business Machines Corporation | Selecting a target number of pages for allocation to a partition |
US20120198464A1 (en) * | 2011-01-31 | 2012-08-02 | Toyota Jidosha Kabushiki Kaisha | Safety controller and safety control method |
US8756606B2 (en) * | 2011-01-31 | 2014-06-17 | Toyota Jidosha Kabushiki Kaisha | Safety controller and safety control method in which time partitions are scheduled according to a scheduling pattern |
KR101773166B1 (ko) * | 2011-02-21 | 2017-08-30 | 삼성전자주식회사 | 가상 머신 스케줄 시점 조절 장치 및 방법 |
JP5829890B2 (ja) * | 2011-11-02 | 2015-12-09 | ルネサスエレクトロニクス株式会社 | 半導体データ処理装置、タイムトリガ通信システム及び通信システム |
US9104508B2 (en) * | 2012-01-18 | 2015-08-11 | International Business Machines Corporation | Providing by one program to another program access to a warning track facility |
US8850450B2 (en) * | 2012-01-18 | 2014-09-30 | International Business Machines Corporation | Warning track interruption facility |
US9110878B2 (en) * | 2012-01-18 | 2015-08-18 | International Business Machines Corporation | Use of a warning track interruption facility by a program |
US9229884B2 (en) | 2012-04-30 | 2016-01-05 | Freescale Semiconductor, Inc. | Virtualized instruction extensions for system partitioning |
US9152587B2 (en) * | 2012-05-31 | 2015-10-06 | Freescale Semiconductor, Inc. | Virtualized interrupt delay mechanism |
US9442870B2 (en) | 2012-08-09 | 2016-09-13 | Freescale Semiconductor, Inc. | Interrupt priority management using partition-based priority blocking processor registers |
US9436626B2 (en) | 2012-08-09 | 2016-09-06 | Freescale Semiconductor, Inc. | Processor interrupt interface with interrupt partitioning and virtualization enhancements |
US9311137B2 (en) * | 2012-09-28 | 2016-04-12 | International Business Machines Corporation | Delaying interrupts for a transactional-execution facility |
JP5866082B1 (ja) * | 2015-06-22 | 2016-02-17 | 三菱電機株式会社 | プログラマブルコントローラおよびプログラマブルコントローラの制御方法 |
CN109076570B (zh) * | 2016-05-13 | 2021-01-29 | 华为技术有限公司 | 一种业务数据传输方法、用户设备及网络设备 |
DE102016212808A1 (de) * | 2016-07-13 | 2018-01-18 | Robert Bosch Gmbh | Unterbrechungsanforderungs-Verteilereinrichtung und Betriebsverfahren hierfür |
CN106776056B (zh) * | 2016-11-10 | 2020-12-29 | 北京像素软件科技股份有限公司 | 游戏数据处理方法、装置及服务器 |
DE112018002331T5 (de) * | 2017-05-05 | 2020-01-16 | Microchip Technology Inc. | Vorrichtungen und verfahren zur priorisierung der übertragung von ereignissen auf seriellen kommunikationsverbindungen |
CN109032029B (zh) * | 2018-08-14 | 2020-12-08 | 北京东土科技股份有限公司 | 工业服务器对外通信方法、***、装置及工业服务器 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4912628A (en) | 1988-03-15 | 1990-03-27 | International Business Machines Corp. | Suspending and resuming processing of tasks running in a virtual machine data processing system |
US4965718A (en) * | 1988-09-29 | 1990-10-23 | International Business Machines Corporation | Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data |
JPH0659906A (ja) * | 1992-08-10 | 1994-03-04 | Hitachi Ltd | 並列計算機の実行制御方法 |
JPH06250850A (ja) * | 1993-02-26 | 1994-09-09 | Hitachi Ltd | 入出力割込み要因の処理方法 |
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 |
US5812844A (en) | 1995-12-07 | 1998-09-22 | Microsoft Corporation | Method and system for scheduling the execution of threads using optional time-specific scheduling constraints |
US6772419B1 (en) * | 1997-09-12 | 2004-08-03 | Hitachi, Ltd. | Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS |
US6105051A (en) * | 1997-10-23 | 2000-08-15 | International Business Machines Corporation | Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor |
JP3659062B2 (ja) * | 1999-05-21 | 2005-06-15 | 株式会社日立製作所 | 計算機システム |
JP2000347883A (ja) * | 1999-06-03 | 2000-12-15 | Matsushita Electric Ind Co Ltd | 仮想計算機装置 |
US6757897B1 (en) * | 2000-02-29 | 2004-06-29 | Cisco Technology, Inc. | Apparatus and methods for scheduling and performing tasks |
JP2001282558A (ja) | 2000-03-30 | 2001-10-12 | Hitachi Ltd | マルチオペレーティング計算機システム |
US20020019843A1 (en) * | 2000-04-26 | 2002-02-14 | Killian Robert T. | Multiprocessor object control |
US6715016B1 (en) * | 2000-06-01 | 2004-03-30 | Hitachi, Ltd. | Multiple operating system control method |
EP1162536A1 (en) * | 2000-06-09 | 2001-12-12 | Hitachi, Ltd. | Multiple operating system control method |
EP1176795A3 (en) * | 2000-07-25 | 2008-06-11 | Canon Kabushiki Kaisha | Information processing apparatus issuing job to peripheral device and method for issuing job to peripheral device |
US20020161961A1 (en) * | 2001-01-17 | 2002-10-31 | Ajile Systems, Inc. | Multiple virtual machine environment management system |
JP2002259155A (ja) * | 2001-02-26 | 2002-09-13 | Hitachi Ltd | 多重系計算機システム |
US6944736B2 (en) * | 2001-06-28 | 2005-09-13 | Hewlett-Packard Development Company, L.P. | Managing latencies in accessing memory of computer systems |
JP2003036176A (ja) * | 2001-07-24 | 2003-02-07 | Sony Corp | 割り込み処理システム |
US7191440B2 (en) * | 2001-08-15 | 2007-03-13 | Intel Corporation | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor |
ES2315469T3 (es) * | 2003-04-09 | 2009-04-01 | Virtuallogix Sa | Sistemas operativos. |
US7281075B2 (en) * | 2003-04-24 | 2007-10-09 | International Business Machines Corporation | Virtualization of a global interrupt queue |
US7177967B2 (en) * | 2003-09-30 | 2007-02-13 | Intel Corporation | Chipset support for managing hardware interrupts in a virtual machine system |
US20050132121A1 (en) * | 2003-12-16 | 2005-06-16 | Wind River Systems, Inc. | Partitioned operating system tool |
-
2003
- 2003-06-03 JP JP2003157565A patent/JP3952992B2/ja not_active Expired - Fee Related
-
2004
- 2004-05-11 US US10/523,094 patent/US7818751B2/en not_active Expired - Fee Related
- 2004-05-11 CN CNB2004800006820A patent/CN100483351C/zh not_active Expired - Fee Related
- 2004-05-11 EP EP04732211.0A patent/EP1548592B1/en not_active Expired - Fee Related
- 2004-05-11 KR KR1020057001912A patent/KR20060023514A/ko not_active Application Discontinuation
- 2004-05-11 WO PCT/JP2004/006608 patent/WO2004109512A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP1548592A4 (en) | 2008-04-30 |
WO2004109512A1 (ja) | 2004-12-16 |
JP3952992B2 (ja) | 2007-08-01 |
CN1698034A (zh) | 2005-11-16 |
JP2004362100A (ja) | 2004-12-24 |
KR20060023514A (ko) | 2006-03-14 |
US7818751B2 (en) | 2010-10-19 |
EP1548592B1 (en) | 2015-07-01 |
EP1548592A1 (en) | 2005-06-29 |
US20050278719A1 (en) | 2005-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100483351C (zh) | 信息处理装置、进程控制方法、以及计算机程序 | |
US8793695B2 (en) | Information processing device and information processing method | |
US6430594B1 (en) | Real-time operating system and a task management system therefor | |
KR0163234B1 (ko) | 데이타 스트리밍 메카니즘, 스트리밍 장치 어댑터, 컴퓨터 시스템 및 데이타 처리 시스템 | |
US9772879B2 (en) | System and method for isolating I/O execution via compiler and OS support | |
US9880875B2 (en) | Apparatus and method for hardware-based task scheduling | |
WO2002069174A1 (fr) | Procede d'execution en parallele de processus et ordinateur a processeurs multiples | |
US20080104296A1 (en) | Interrupt handling using simultaneous multi-threading | |
JP2003256221A (ja) | 並列プロセス実行方法、及びマルチプロセッサ型コンピュータ | |
CN102750132B (zh) | 多线程虚拟流水线处理器的线程控制和调用方法及其处理器 | |
CN101408853B (zh) | 一种虚拟机调度的装置及方法 | |
CN101968751A (zh) | 共享已空闲的处理器执行资源 | |
US8381210B2 (en) | Method and computer for synchronous scheduling of multiple virtual CPUs | |
CN103136047A (zh) | 一种多线程管理方法及架构 | |
US8930436B2 (en) | Apparatus and method of dynamically distributing load in multiple cores | |
CN110780999A (zh) | 一种多核cpu的调度***和方法 | |
US11307974B2 (en) | Horizontally scalable distributed system for automated firmware testing and method thereof | |
CN1997966A (zh) | 用于多个内核的并行执行的方法和*** | |
CN107408061B (zh) | 并行处理*** | |
US20120096245A1 (en) | Computing device, parallel computer system, and method of controlling computer device | |
KR102571782B1 (ko) | 리소스 관리 풀을 이용한 가상 머신 재배치를 위한 장치 및 방법 | |
JP7260820B2 (ja) | 処理装置、処理システム、処理方法、および処理プログラム | |
KR20100075116A (ko) | 복수의 프로세스를 멀티태스킹하기 위한 명령 실행 방법 및장치 | |
US6952826B1 (en) | Method for implementing a multi-level system model for deterministically handling selected data | |
CN116578509A (zh) | 一种可重构网络安全处理器专用dma及设计方法 |
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: 20090429 Termination date: 20150511 |
|
EXPY | Termination of patent right or utility model |