进程转换装置和进程转换方法 本发明涉及适用于例如使用设置检查点和重新运行、能修复故障的计算机系统的进程调度器等的较佳进程转换装置和进程转换方法,特别涉及将确保一致性所需的各种处理延迟的影响抑制到最低限度从而能提高系统的总处理能力,并能大幅度减少选用检查点后的高速缓存失误的进程转换装置和进程转换方法。
在以往的数据库管理系统中,为了将事务处理记录写入磁盘装置等中,专门地设计用于进行这种写入的进程(下面称为记录写入程序),并进行运转。这种记录写入程序接受来自其它进程的指示、或者用本身规定的定时,执行将存储器上确保的记录缓冲区域中写入的数据写入磁盘装置的处理。
为了保持数据库的连续性,在提交事务处理时,必须将其提交记录写入磁盘装置等。因此,执行事务处理的进程一进入提交事务处理,就指示记录写入程序将其提交记录写入磁盘装置等。然后,将该记录写入磁盘装置等,并在记录写入程序响应该写入时,执行事务处理的进程结束上述提交处理。
这里,考虑在将对磁盘装置的写入延迟到检查点那样的计算机系统中,使这种数据库管理系统动作的情况,这种检查点是在因为故障等而进行中断处理时,为了保持系统整体的一致性并能再启动而适当选用的时刻,每个这种时刻都记录继续执行处理所需地系统的状态(程序、数据和CPU的状态)的全部或者一部分。
如图9所示,执行事务处理1(T1)的进程一进入提交处理(图9中(1)),该进程就指示记录写入程序将其提交记录写入磁盘装置中。然后,记录写入程序发出将该指示的数据写入磁盘装置的操作(图9中(2))。然而,在这种计算机系统中因向磁盘装置的写入延迟到下一个检查点(图9中(3)),所以到达下一个检查点之前、记录写入程序为写入结束等待状态(休眠)。
在这种状态,执行其它的事务处理2(T2)的进程进入提交处理(图9中(5))时,即使指示此记录写入程序写入提交记录,该写入的受理也要延迟到前一写入结束(图9中(6))。而且,会使受理该写入的记录写入程序的记录写入,延迟到再下一个检查点(图9中(7))的时刻(图9中(8))。
在这种计算机系统中,处理器中执行用于选取检查点的专用进程(下面称为检查点进程),其它的进程在检查点的选用中不动作。因为按最高的优先度安排这种检查点进程,所以优先在检查点前已执行的进程之前、执行检查点进程。这种检查点进程在硬件将高速缓冲存储器内的占用行写回存储器时,仅仅进行空循环,大体上不置换高速缓冲存储器内的数据。因此,在检查点的结束时刻,检查点前执行的进程存取的数据,原样保持在高速缓冲存储器内。然而,因在检查点处理结束的时刻,并不优先执行前面执行的进程,所以在执行其它进程的场合,不能使用已高速缓存的命令和数据,也就是说,高速缓存失误增多。
前述以往的第一个问题,是在检查点前早已进行对记录写入程序的进程变换。也就是说,如果使对记录写入程序的进程变换延迟到即将进入检查点前,则即使对后面指示的提交记录,也能作为一组提交与前面指示的提交记录同时,在其后的检查点的时刻汇总并写入磁盘装置中,能提高总处理能力。
第二个问题,是在检查点结束的时刻,不优先执行在检查点前执行的进程。也就是说,如果考虑检查点进程大体上不置换高速缓冲存储器内的数据,则借助于优先执行即将进入检查点前执行的进程,能大幅度地减少高速缓存失误。
鉴于前述情况,本发明的目的在于提供将确保一致性所需的处理延迟的影响抑制到最低限度,从而能提高系统的总处理能力,并能大幅度减少选用检查点后的高速缓存失误的进程转换装置和进程转换方法。
本发明的计算机系统中的进程转换装置,该计算机系统适当设置再启动中断处理用的检查点,使对应于连续两个检查点间所发生对包含网络和磁盘等在内的外部装置的输出要求对应的输出操作,延迟到后面的检查点,其特征在于,包括:存储包含仅在即将进入所述检查点前应该执行的处理和发布预先指定的所述输出要求的进程的存储手段;检测所述检查点的选用点的检测手段;在所述检测手段检测到检查点的选用点时,在即将进入该检查点前执行所述存储手段所存进程中处于可执行状态的进程的执行控制手段。
采用本发明,则如前述的记录写入程序那样,能将对专用的磁盘写入的进程的转换,延迟到即将进入检查点前,能在一次写入中汇总在一个检查点间隔之间指示的写入要求,并在下一个检查点的时刻发出。由此,在例如记录写入程序的场合,不仅能缩短提交处理的应答时间,而且能利用成组提交提高总处理能力。
本发明的计算机系统中的进程转换装置,该计算机系统适当选用再启动中断处理用的检查点,其特征在于,包括:记录即将进入所述检查点前可执行的进程的存储手段;在选用所述检查点刚结束后,存储于所述存储手段中的进程为可执行状态时,优先执行该进程的执行控制手段。
本发明中,在即将进入检查点前执行的进程为可执行状态时,优先执行该进程。在检查点结束的时刻,因即将进入检查点前执行的进程的存取数据很多残存在高速缓冲存储器中,所以与执行其它进程的情况相比,能提高高速缓存命中率并改善性能。
本发明的计算机系统中的进程转换装置,该计算机系统适当选用再启动中断处理用的检查点,其特征在于,包括:存储所述检查点前执行的进程的执行顺序的存储手段;选用所述检查点刚结束后,参照存储于所述存储手段中的执行顺序,优先执行较接近所述检查点的时刻执行的进程的执行控制手段。
本发明中,优先执行较接近检查点的时刻执行的进程。因较接近检查点的时刻执行的进程的数据,通常残存在高速缓冲存储器中的可能性较大,所以能提高高速缓存命中率并改善性能。
本发明的计算机系统中的进程转换装置,该计算机系统适当选用再启动中断处理用的检查点,具备对进程的各个执行命令进行计数的计数功能的处理器,其特征在于,包括:将所述检查点以前执行的进程和利用所述计数功能测定的执行命令数一起存储的存储手段;在选用所述检查点刚结束后,存储于所述存储手段中的进程为可执行状态时,优先执行它们中间执行命令数多的进程的执行控制手段。
本发明中,在检查点前执行的进程内,优先执行当前时刻处于可执行状态的进程中执行命令数多的进程。因与在处理器连续执行的命令数多的进程相关的命令和数据,通常在高速缓冲存储器中保持较多,所以如果在检查点结束后优先执行那样的进程,则能提高高速缓存命中率。
本发明的进程转换装置,其特征还在于,执行控制手段包括:根据介于从所述存储手段中存储的进程的执行结束时刻到当前时刻之间执行的其它进程的执行命令数,决定存储于所述存储手段中的进程和没有存储于所述存储手段中的进程相互间的优先关系的手段。
可以认为某个进程在结束处理器的执行到下一次开始执行之间,执行其它的进程越多,再启动的进程的高速缓存失误率越高。这里,因借助于由计数功能测定再启动前的执行命令数,能推断再启动时的高速缓存失误率,所以在与其它进程的关系中,能仅优先执行高速缓存失误率低的进程。
本发明的进程转换装置,其特征还在于,所述处理器的计数功能包含对高速缓存失误数进行计数的功能;所述存储手段包括存储所述进程各连续执行区间的失误率的手段;所述执行控制手段包括检查所述优先度高的进程的失误率是否比通常时低的检查手段,以及使该结果反映在所述优先度的决定中的手段。
这样,借助于测定提高了优先度的进程的失误率,并与通常时的失误数比较,能知道提高了优先度的效果。于是,如果将其结果返馈到优先度决定中,则能加上较适当的优先度。
图1表示本发明实施例1的概略结构。
图2表示实施例1的处理步骤。
图3是表示实施例1的进程转换单元动作的流程图。
图4表示本发明实施例2的概略结构。
图5是表示实施例2的进程转换单元动作的流程图。
图6例示存在于实施例2的可执行队列中的各进程优先度状态。
图7例示实施例2的执行进程记录表的记录状态。
图8例示存在于实施例2的可执行队列中的各进程优先度的变更结果。
图9表示以往计算机系统中包含记录写入器的处理步骤。
下面,参照附图对本发明的实施例进行说明。
实施例1
图1表示本发明实施例1的概略结构。作为本实施例的对象的计算机系统中,在选用检查点时,各处理器中最高优先度的检查点,以禁止中断的状态进行工作。图1中,在检查点记录表6上,预先记录检查点进程的标识符。在延迟进程记录表5上,预先记录指示仅在检查点时刻即将到来前执行的进程标识符。
进程排队单元1检查可执行状态进程是否延迟进程记录表5上记录的进程,不是的场合,将该进程排列可执行队列3,是的场合,则排到可延迟执行队列4。进程转换单元2首先在可执行队列3中选择最高优先度的进程。这时,进程转换单元2参照检查点记录表6,在上述选择的进程为检查点进程的场合,检查可延迟执行队列4。而且,在可延迟执行队列4中没有进程的场合,使检查点进程脱离可执行队列3,并照原样加以执行。另一方面,在可延迟执行队列4中有进程的场合,使该进程脱离可延迟执行队列4,按最高优先度和禁止中断状态加以执行。
一结束这种延迟进程的执行,进程转换单元2选择可执行队列3中最高优先度的进程(必然为检查点进程),并重复与前述相同的动作。
这里,参照图2示出本实施例的处理步骤。在图2中,在事务处理1(T1)要求提交的时刻(图2中(1)),记录写入程序可能执行状态,并接到可延迟执行队列4(记录写入程序为记录在延迟进程记录表5中的程序)。在事务处理2(T2)要求提交的时刻(图2中(2)),记录写入程序还未执行,在记录缓存器中记录事务处理2(T2)写入的提交记录。然后,在进程转换单元2选择可执行状态的检查点进程的时刻,应开始进入检查点(图2中(3)),但这时因在可延迟执行队列4中存在记录写入程序,所以,本实施例中,在该时刻记录写入程序可执行(图2中(4))。根据参照检查点进程记录表6,进行进程的读出(这种检查点进程为预先记录在检查点进程记录表6中)。记录写入程序为了将在记录缓存器中写入的事务处理1(T1)、事务处理2(T2)的提交记录写入磁盘,发出系统写入请求,并停止执行,等待写入结束(图2中(5))。在该时刻因在可延迟执行队列4中没有进程,所以进程转换单元2执行检查点进程。
这里,参照图3对本实施例的进程转换单元的动作进行说明。
进程转换单元2从可执行队列3选择最高优先度的进程(步骤A1),参照检查点进程记录表6,检查这种进程是否为检查点进程(步骤A2)。
在这种进程不是检查点进程的场合(步骤A3的N),该进程脱离可执行队列3,并加以执行(步骤A4)。另一方面,在是检查点进程的场合(步骤A3的Y),参照可延迟执行队列4,检查是否为应该在即将进入该检查点进程前执行的进程(步骤A5)。
在进程存在于可延迟执行队列4中的场合(步骤A6的N),该进程脱离可延迟执行队列4,加以执行(步骤A7)后,重复从步骤A5开始的操作。然后,在可延迟执行队列4中不存在和已不存在进程的场合(步骤A6的Y),检查点进程脱离可执行队列3,并加以执行(步骤A8)。
由此,能将确保一致性所需的各种处理延迟的影响抑制到最低限度。其结果,能提高系统整体的总处理能力。
实施例2
下面,参照图4至图8对本发明的实施例2进行说明。
图4表示本发明实施例2的概略结构。图4中,在检查点进程记录表6上预先记录检查点进程的标识符。然后,进程转换单元2参照这种检查点进程记录表6,检查转换的进程是否为检查点进程。如果不是检查点进程,进程转换单元2在执行进程记录表7上记录接着转换的进程。另一方面,如果是检查点进程,则不记录在执行进程记录表7上。进程转换单元2又参照执行进程记录表7,检查当前执行的进程是否为检查点进程,如果是检查点进程则进程转换单元2查阅检查点进程记录表6,并检索在检查点进程记录表6中记录的进程是否在可执行队列3中。然后,如果该进程是在可执行队列3中,就执行它,否则执行优先度最高的进程。
图5表示本实施例的进程转换单元的动作。
进程转换单元2从可执行队列3选择优先度最高的进程(步骤B1),参照检查点进程记录表6,检查这种进程是否为检查点进程(步骤B2)。
在这种进程是检查点进程的场合(步骤B3的Y),该进程(检查点进程)脱离可执行队列3,并加以执行(步骤B10)。另一方面,在不是检查点进程的场合(步骤B3的N),检查当前执行中的进程是否为检查点进程(步骤B4)。然后,在是检查点进程的场合(步骤B5的Y),检查可执行队列3中是否存在执行进程记录表7上记录的进程(步骤B6),在存在进程的场合(步骤B7的N),记录在执行进程记录表7上的进程脱离队列3并加以执行(步骤B8)。
另一方面,在可执行队列3中不存在执行进程记录表7上记录的进程(步骤B7的Y)的场合,和当前执行中的进程不是检查点进程的场合(步骤B5的N),在执行进程记录表7上记录从可执行队列3选择的进程后(步骤B9),该进程脱离可执行队列3,并加以执行(步骤B10)。
由此,在检查点进程之后,如果紧接该进程之前执行的进程为可执行状态,则加以执行,从而能大幅度地减少高速缓存失误率。
此外,这种执行进程记录表7设置多个表目,能记录最近执行的几个进程。这样做也是有效的。这种场合,进程转换单元2在检查点进程结束时参照执行进程记录表7,如果即将进入检查点前执行的进程为可执行状态,则执行它,否则提高执行进程记录表7上记录的进程中处于可执行状态的进程的优先度。这时,在较接近检查点的时间上执行的进程给予较高的优先度。例如,考虑以下情况:可执行队列3中存在的各进程的优先度为图6所示的状态,且检查点结束时的执行进程记录表7的记录状态为图7所示的状态。此外,执行进程记录表7示出循环使用(rotate)的指针总是指向最新的记录位置的下一个表目(改写点)。
上述情况下,执行进程记录表7中记录的进程中,例如“P1”、“P3”、“P4”为可执行时,将这种可执行进程“P1”、“P3”、“P4”优先度按其执行顺序,分别提高5、3、2。其结果,所得优先度如图8所示,在检查点结束时,选择对进程“P1”的执行,并转换到该进程。
在处理器能对执行命令进行计数的场合,对各进程的连续执行区间的命令进行计数也是有效的。这是因为,可考虑连续执行的命令数多的进程其相关命令和数据在高速缓冲存储器中保持较多这种情况,进行优先度控制。此外,例如,在记录在执行进程记录表7中的进程和没有记录在执行进程记录表7中的进程之间决定优先度的场合,也能进行下列控制。即不仅总是优先执行这种执行进程记录表7中记录的进程,而且考虑从结束记录于该执行进程记录表7中记录的进程的时刻到当前时刻为止所执行的其它进程的执行命令数,并根据该数,先执行按原来优先度没有记录在执行进程记录表7中的进程。此外,在这种优先度控制中,最好不是在检查点结束时提高了进程的优先度,而是在转换进程的选择时,根据执行命令数求得临时的优先度并暂时地进行使用。
在处理器可对失误数进行计数的场合,能判定根据前面所示的方法优先执行的进程的失误率是否比通常的场合要低。在失误率比通常低时,可以保持原样,但不是这样时,根据紧接在进程前执行过来的命令数和失误率的相关关系,求得每个进程执行命令数的上限,并在执行命令数高于该上限时不提高优先度。
由此,能实现反映计算机系统运转状况的较佳的进程转换。
如前所述,采用本发明,则因能管理成仅在即将进入选用检查点前执行规定的进程,所以能将确保一致性所需的各种处理延迟的影响抑制到最低限度,从而能提高系统的总处理能力。
又,借助于在选用检查点刚结束后优先执行即将进入检查点前执行的进程,能大幅度地减少高速缓存失误率。