计算机系统技术方案

技术编号:2890433 阅读:242 留言:0更新日期:2012-04-11 18:40
本发明专利技术提出一种具有抑制中断能力的计算机系统,免除了再启动时的闭锁运行尽序列从而大大降低制作成本。在具有抑制中断性能的、包括有检验点再启动功能的计算机系统中,每个包含在此计算机系统中的处理器各自设定有获取检验点的特殊进程(21)。在取一检验点时,此获取检验点的特殊进程(21)被唤醒部分(23)引导进就绪状态,在取得一检查点之后,此特殊进程又被重新引导进睡眠状态。(*该技术在2016年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术是关于具有检验点和再启动功能的计算机系统,更具体点说是关于一因为其中设置有处理检验点的特殊进程而无需在再启动时执行闭锁运行尽(Lock-run-out)序列、并因此其成本也会降低的计算机系统。本专利技术还涉及这样一计算机系统,它由具有检验点和再启动功能的多处理器系统组成,其中即使该多处理器系统中所结合应用的某些处理器无法工作时其余的处理器亦能继续运行。下面说明通常的计算机系统,这种系统在获取的检验点都处于正常状态时处理过程继续前进,而在发生故障时由故障前的最后一检查点重新启动,以此来消除故障。在这种计算机系统中,在系统正常运行期间,在执行进程的同时取检验点。而如果发生了故障等,系统就从最后一个取得的检验点返回。这些检验点是按下述情况获取的(1)程序代码中明确指定读取一检验点;(2)在获取最后一检验点之后经过了一预定的时间周期;(3)发生了某一事件(中断)要求取检验点。上述这些情况在执行一程序时,在任一时刻均会发生。一般,在这些情况中任一个发生的时刻,亦即在执行一程序期间任意时刻,都可能获取检验点。图1表示在在处理器执行正常处理过程中进行检验点处理的状态。在时间t1,伴随发生一要求在程序期间读取一检验点的事件的中断处理(图1中的(1))中,进行检验点处理(图1中的(2))。在时间t2,在取得最后一检验点之后过去一预定时间开始的定时中断过程(即图1中的(3))期间进行检验点处理(即图1中的(4))。这就是说,检验点是在一随意的进程中读取的。图2表示在进程前进中发生故障时取检验点的状态,此进程由最后一检验点开始重新执行。如果故障发生在已于时间t1和时间t2取得检验点之后(图2中的(1)),进程即由最后取的检验点(t2)开始重新执行(图2中的(2))。但在通常情况下,考虑到发生故障时的返回,进程正常要包括“要作为一定的单元组来对待的处理部分”。这样的处理部分之一被叫做一“闭锁运行尽区域”(″Lock-run-out region″)。此闭锁运行尽区域是指一程序块,如果系统由该区域期间所取的检验点重新起动,则在进程恢复正常情况前的故障恢复处理中必须“运行尽”该程序块,即使其中能设置检验点。这就是其中采取自旋闭锁(spin-Lock)的程序块。要获取自旋闭锁的进程是不能被优先占有的。在取此自旋闭锁时必须注意到不致发生死锁。正常情况,为了方便,系统被这样设计的,即对每个自旋闭锁都加上分级别的闭锁等级,而在已经采取有一自旋闭锁的情况下取另一自旋闭锁时,仅有即些闭锁等级远低于当前取的自旋闭锁的最低级别的自旋闭锁才被采取。依靠对这种形式的自旋闭锁搜索的控制,来保证各处理器中取闭锁的顺序。例如,在将闭锁等级的级别设置为图3中所示即样,其中伴随有闭锁操作的“进程A”和“进程B”是同时执行的并且二者的闭锁必须同时重叠地获得,各处理器就必须按照这一次序即首先取得“进程D”的闭锁(水平L5),然后取“取进程A”的闭锁。现在参照图4和5解释为什么需要使用闭锁运行尽的理由图4表明一因为未执行闭锁运行尽而发生的死锁的示例。这里假定,在进程T0和进程T1分别在处理器(0)和(1)中执行的情况下取一检查点,和进程T0取自旋闭锁L5和L3而进程T1取自旋闭锁L4。另外,将考虑一种其后在一处理器(0)中发生一持久的故障的情况,在这一情况中,处理器(1)是正常运行的唯一的一个处理器,并因此进程T0和T1必须均由处理器(1)执行。当前由进程T0和T1获得的自旋闭锁可被加以识别。但是不能预测进程T0和T1此后如何运作,亦即这些进程以后将如何取得自旋闭锁。而后认为在进行恢复,当前得到一低水平的自旋闭锁L3的进程T0锁分配到处理器(1)。并认为这一进程T0释放已得到的自旋闭锁L3,然后准备重新接收自旋闭锁L4。但由于此自旋闭锁L4已被在发生故障前执行的进程T1所获取,进程T0总不会得到这一自旋闭锁。结果就发生死锁。这种问题是由于各处理器所恒守的获取自旋闭锁的顺序被打破而引起的,因为虽然获取自旋闭锁的顺序已为各处理器所保证,但由于一处理器出现故障这种次序也就被打乱了。闭锁的运行尽功能被认为是解决这一问题的一种方法。这一功能的运行使得在获取一检验点由此检查点恢复之前释放所有被获取的自旋闭锁,并使所有过程都不依赖任一特定的处理器。这一功能按下列过程运行(1)在获取一检验点时,选择具有所有已被获取的那些自旋锁定中级别最低的自旋闭锁的进程;(2)将一处理器作为正在运行被选择进程的处理器,此过程被执行直至该进程的自旋闭锁被释放为止;(3)在释放此自旋闭锁的处理中,测试获取此自旋闭锁的进程是否仍然存在;(4)如果存在,即由(1)方面开始重复此处理过程;如果不存在,此闭锁运行尽处理即终止。具体说,如果如图5A中所示获得自旋闭锁,首先选择进程T0(因为级别L3最低),执行此进程T0直到自旋闭锁L3被释放。接着,选择获取级别最低的L4的进程T1(如图5B中所示),并且进而在进程T1释放后选择获取L5的进程T0(如图5C中所示),由此完成闭锁运行尽操作。在闭锁运行尽完成之后,系统进行再启动。为了实现在上述这一进程中执行的闭锁运行尽处理,必须将释放自旋闭锁的处理安排得能在此闭锁运行尽处理期间调用一特殊的分配机制。这样,在一普通的取检验点的方法中,在一软件(OS,操作系统)中提取象闭锁运行尽区域的处理部分,而且必须设置上述特殊的分配机制以便来保护以上说过的一“组单元”。因此,如果不可避免地要增加计算机系统的成本的话,就会限制软件的安装。本专利技术的一个目的是提供一种计算机系统,无需为取得其中设置的检验点而由特殊进程在再启动时执行闭锁运行尽序列,因此能以低成本组成系统。本专利技术的另一目的是提供一计算机系统,它由具有检验点和再启动功能的多处理器系统组成,而在其中即使结合应用的多处理器系统中某些处理器无法工作,其余的处理器亦能继续运行。按照本专利技术的第一个方面,所提出的计算机系统包括有至少一处理器;至少一个各自对应于该至少一个处理器的检验点处理手段,用于获取为再启动因故障而中断的进程中所用的检验点;中断手段,用于在进程执行中进行中断和使该检验点处理手段由睡眠状态转到就绪状态;调度手段,对被该中断手段带入就绪状态的检验点处理手段进行调度;和睡眠状态转移手段,用于在经调度手段调度的检验点处理手段取检查点之后,将该检验点处理手段再次导入睡眠状态。因此,按照本专利技术,在执行进程当中由中断手段进行中断,由此使获取检验点的特殊进程由睡眠状态进入就绪状态。调度手段对被中断手段引入就绪状态的获取检验点的特殊进程进行调度,由此来获取检验点。这样,在获取检验点时其他任何进程均不处于运行状态,从而就不存在发生死锁的可能性。在由调度装置进行调度的检验点处理手段中取检查点之后,睡眠状态转移手段将此获取检验点的特殊进程重新设置成睡眠状态。按照本专利技术的第二个方面,所提出的一计算机系统包括至少一处理器;一检验点获取指令手段,用于指示取一检验点以再启动因故障被中断的进程,此时满足一检验点获取条件;设置在操作系统的调度程序中的检验点获取手段,用于取得对应于至少一个处理器的至少一个检验点;执行准备手段,使检验点获取手段由睡眠状态成为可执行状态,此时由检验点获取指令手段指示取检验点;调度手段,对由执行准备手段本文档来自技高网...

【技术保护点】
一计算机系统,其特征是包括: 至少一处理器(10); 至少一检验点处理手段-获取检验点的特殊进程(21),各自对应于所述至少一处理器,用于取得为再启动一因故障中断的进程所用的检验点; 中断手段(13、10、23),用于在执行进程中进行中断,和用于将所述检验点处理手段-获取检验点的特殊进程由睡眠状态引导到就绪状态; 调度手段(124),用于调度被所述中断手段引导进就绪状态的所述检验点处理手段-获取检验点的特殊进程;和 睡眠状态转移手段(122),用于在被所述调度手段调度的所述检验点处理手段-获取检验点的特殊进程取得检验点后再将所述检验点处理手段-获取检验点的特殊进程重新引导进睡眠状态。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:平山秀昭清水邦保
申请(专利权)人:株式会社东芝
类型:发明
国别省市:JP[日本]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1