对用于录入和重放确定性事件序列的指令进行计数的方法

文档序号:6566475阅读:169来源:国知局
专利名称:对用于录入和重放确定性事件序列的指令进行计数的方法
技术领域
本发明涉及一种用于对在一个或者多个计算机处理器中、特别
是在具有并行架构的多处理器系统中执行的任务的运行进行监视和 管理的透明和非侵入式方法。本发明具体地应用于在网络中执行的 多任务事务应用的各种任务。这一管理特别地实现以录入数据的开
'7
式来记录这些任务的运行以及根据这样的录入数据重放这一运行以
本发明也涉及一种系统,该系统在它批j亍的对软件应用的运作 管理中实施这样的方法。
背景技术
实施就受管理的应用而言是非侵入式和透明的运作管理是很有 用的,特别是对于实现在多个现存应用的原状态下("旧应用")以 更多的灵活性或者可靠性或者性能来使用它们更是如此。
与本申请同一的申请人已经在专利申请FR 04 07180中提出通 过中间捕获以及通过在同步点或者重启点("检查点")恢复应用的 状态来进行非入侵式运作管理的技术。以补充的方式,相同申请人 已经具体地在专利申请FR05 00605至FR 05 00613中提出非入侵式 录入和重放技术。
然而, 一个或者多个事件的录入对于所录入的应用或者执行它 的系统而言仍然代表工作开销,并且尽可能最小化工作开销非常引 人关注。
在构成应用执行的事件之中,相对于应用的状态具有非确定性 行为的事件必须通过在录入数据中存储它们的结果来录入和重放, 以^更在以后重》文过程中实现这一结果的强制或者再注入。因此关注
于尽可能减少必须被视为非确定性的事件的数目。
在应用外部或者在执行它的系统外部的事件常常具有本质上非 确定性的行为,并且一般而言必须加以存储,例如在前文引用的申 请中描述的那样。
比较而言,内部事件最经常地具有确定性行为并且也构成在应 用的运行中执行的大多数操作。因此关注于对非确定性事件、特别 是内部的非确定性事件的录入进行聚集和优化。
如果来自 一部分运行的所有事件都是确定性的,则可以简单地 通过例如以重启点的形式存储应用的开始状态,以经济的方式录入 全部这一部分。然后例如通过将应用恢复到如存储的重启点状态中 以及通过起动这些确定性事件的执行来获得重放。于是可以使用术 语"逐件确定性执行模型",该模型包括仅由确定性事件组成的确定 性部分的分组。确定性部分的边界由此一^殳由非确定性事件构成, 例如以一个外部消息的到达开始而以另一非确定性事件结束。

发明内容
本发明的 一 个目的在于筒化或者优化这样的确定性部分的录入 和重放。
另外,某些类型的计算机架构可以包括有时继承于它们自有性 质的非确定性起因,特别是并行架构系统,有时限定为物理并行或 者实际并行。
本发明的另一目的因此在于有助于或者优化录入和重放功能的 实施以及特别是针对多任务应用在并行环境内减少非确定性的起 因。
在冗余架构中的运作管理的背景下,本发明的另一目的于是在 于使在并行环境中执行的多任务应用的运作可靠化。
确定性部分按照它的性质将在它始于同 一情形并且执行相同指 令时总是给出同一结果。为了录入和重放这样的确定性部分,因此 有可能仅存储和恢复开始情形并且在数目与这一部分的长度相对应 的指令过程中根据同 一可执行文件发生执行。
然而,如果在原应用中没有设想到这一点,则对执行的指令进 行计数的实施方式对于执行这些指令的一个或者多个机器而言代表 了大量工作负荷。对于已知技术,这样的超负荷常常不可接受或者 将这样的实施限于实验情形并且在开发利用情形下几乎无用。
本发明的一个目的在于克服这些不足中的所有或者一些不足。 为此,本发明提出 一 种用于在计算机处理器中在计算机系统内 在称为活动时段的给定执行时段期间管理称为目标任务的计算机任 务,该计算机处理器具有监视或者估计性能的装置,这些装置包括 具有加上或者减去称为相对误差的给定可能误差的计数器。
这一方法包括在一方面使用所述计数器来评估直至所述活动 时段的至少一个给定点所执行的指令的数目;以及在另一方面生成 从处理器或者计算机系统的状态中读取或者计算的并且与所述活动 时段的至少 一 个给定点相对应的称为签名的数据。
有利地,对于从受管理的时段的开始起执行的指令的数目的评 估结合所述计数器(PMC)而使用了至少一个系统调用指令作为同 步障。
这一方法对于在由两个非确定性操作之间的一连串确定性操作 组成的活动时段期间管理任务特别地有用。
本发明由此提出了管理在称为录入处理器的处理器中录入的任 务,并且包括存储与称为录入时段的所述任务的这一活动时段相对 应的录入数据。这样的录入数据于是包括所执行指令的数目的至少名。
由此有可能通过在称为处理器日志的至少一个文件中以有序的 方式存储录入数据来录入处理器的使用,所述录入数据代表了来自 在所述处理器中执行的多个任务的 一 连串活动时段的录入,并且包 括针对这些时段中各时段的标识所执行任务的数据项。
根据这样的录入数据,本发明也提出了从与录入处理器或者录
入系统在录入时段开始时的状态相对应的状态开始,通过在重放计 算机系统内管理由称为重放处理器的处理器执行的称为重放任务的
任务来重放录入时段。所述方法于是也包括
-受监视的执行阶段,从重放时段的开始起执行计数器所评估的 数目的指令,该数目小于或者等于录入时段的指令数目的假设值减 去所述计数器的相对误差;
-确认阶段,包括如下步骤的重复
-在重放中的给定点处中断重放任务的执行;
-在录入签名和与重放中断点相对应的签名之间进行比较测试。
具体而言,录入签名包括称为录入指针的数据,该数据代表了 在录入时段结束时录入任务的指令指针的值。该方法于是也包括在 与录入指针数据相对应的重放指令上设置断点。
根据本发明,对重放任务的执行的监视特别地包括计数器的溢 出,该计数器被预先初始化以便确定必须从重放时段的开始起执行 的指令的数目,并且该计数器的溢出引起了重放任务的中断。
然而,由于没有针对这样的确切使用而设想这一类计数器,所 以这样的中断可能在计数器溢出之后以某一延迟而出现。
本发明因此提出了以某一裕度在重放时段开始时初始化计数器 以便足够早地溢出,从而在计数器的溢出与已经引起该溢出的任务 的中断之间存在延时时段的情况下,重放任务所执行的指令的数目 小于或者等于录入时段的指令数目的假设值减去所述计数器的相对 误差。
另外,作为一种安全措施,确认阶段可以包括安全步骤如果 重放指令的数目超过录入指令的数目的假设值加上给定的指令数目 则发送错误信号。
根据代表以这一方式录入的数个时段的日志,本发明可以由此 在称为重放处理器的处理器中实现通过使用来自在所述录入处理器 中录入的一连串活动时段的有序录入数据集来重放对录入处理器的 使用。
本发明也提供了对与多个录入任务所访问的称为目标资源的共 享资源有关的 一 连串归属独占性访问的录入,这 一 方法也发送或者 存储称为资源日志的至少一个文件。这一资源日志由此包括代表了 已经获得这些独占性访问的各不同连续任务的标识的录入数据。
从这些技术出发,本发明提出了管理在系统软件内至少两个应 用任务的运作,该系统软件通过顺序激活来管理所述任务在具有并 行结构的计算机系统中的执行,该并行结构包括能够在至少两个算 术单元中同时执行数个应用任务的计算装置。对于访问至少 一个共
享资源的这样的应用任务,该方法在 一 个方面包括如下步骤
-在第一算术单元中录入这些任务中的一个任务或者其它任务 的第一串激活时段;以及
-在第二算术单元中录入这些任务中的一个任务或者其它任务 的第二串激活时段;
-以及录入响应于对访问所述目标资源的请求而把对所述目标 资源的称为独占性访问的访问 一连串地归属到所述任务之中的所谓 访问任务,即这样的归属排除了在紧接于所述访问请求之后的所述 访问任务的激活时段的整个其余时段期间这些任务中的另一任务对 所述目标资源的任何访问。
在另一方面,该方法也包括在称为重放串行的有序结构中将 代表了各算术单元中多个一连串激活时段的录入数据与代表了 一连 串归属独占性访问的录入数据相组合。安排这一组合是为了维持各 任务内一连串激活任务相对于所述共享资源而言的次序。
根据本发明,可以在用于重放录入任务的录入运行的重放计算 机系统中使用重放串行数据。
另外,该方法可以包括在重放计算机系统内虚拟化可由录入任 务在录入期间访问的软件资源中的所有或者部分软件资源。
根据本发明的方法特别地实现了对于包括至少两个任务的录入 应用的运作的称为活动复制的复制,该至少两个任务在具有计算机 网络的并行结构的称为主要节点的至少 一个节点上执行并且访问至
少 一 个共享资源。这一 复制包括在重放系统上的至少 一 个重放应用 中重放源自于录入数据的重放串行,该录入数据在被生成时从主要 节点被立即发送到第二节点。
在一个实施例中,本发明然后可以使包括至少两个任务的应用
可靠化(reliabilization),该至少两个任务在具有计算机网络的并行结 构的称为主要节点的至少 一 个节点上执行并且访问至少 一 个共享资 源。这一可靠化由此也包括将服务从主要节点切换到在主要节点内 检测到故障或者给定事件时启动的取代主要节点的至少一个辅节 点。
在另一实施例中,本发明也可以实现通过在至少一个辅节点上 执行在主要节点上执行的目标应用的活动副本来平衡或者调节计算 机网络内的工作负荷。这一负荷平衡由此包括将受管理的目标应用 所提供的所有或者部分服务切换到活动副本。
因此,根据本发明的方法可以实施于计算机网络的至少一个节 点内,该计算机网络例如是构成了通过中间件型的 一 个或者多个运 作管理应用来管理的集群的网络。该方法由此特别地通过指令序列 的录入和重放来实现扩展或者优化这一运作管理的性能和功能。
在同一背景下,本发明也提出一种应用于并行类型的或者构成 并行系统的一个或者多个计算机系统并且可能用于网络中的实施该 方法的系统。


本发明的其它特征和优点将从不以任何方式具有限制性的具体 实施例以及附图中变得明显,在附图中
-图l和图2根据本发明图示了通过对处理器内的任务进行计数 来录入对任务执行的调度;
-图3和图4根据本发明图示了通过对处理器中的指令进行计数 来重放任务的活动时段;
-图5根据本发明图示了从通过对指令进行计数而进行的对处
理器中任务调度的录入中获得的在单处理器系统中多任务应用的确
定性重放;
-图6是根据现有技术对于在来自单一环境的两个不同处理器 所并行执行的两个任务之间共享的存储器的访问的运作;
-图7根据本发明图示了在任务内创建和维护如下结构,该结构 实现了控制对于在来自单一环境的数个不同处理器上并行执行的多 个任务之间共享的存储器页面的访问;
-图8根据本发明图示了对于在来自单一环境的两个不同处理 器上并行执行的两个任务之间共享的存储器页面的访问的控制的运 作;
-图9根据本发明图示了在多处理器计算机上多任务应用的录 入以及它在单处理器机器上的立即重放。
具体实施例方式
这里描述的技术对应于使用在PC型计算机中所用类型的处理 器的某些特征的本发明实施例,这些处理器例如是AMD公司的 Athlon型处理器或者Intel公司的Pentium处理器。例如在工作站中 使用的其它当前的处理器或者将来的处理器理所当然可以呈现这些 特征或者相似特征中的所有或者一些特征并且可以用来实现本发 明。
图1至图2呈现了一种用于录入单个pProX处理器或者算术单 元连续执行的确定性内部事件的不同部分的技术。
如图1中所示,不同任务TA和TV可以由称为激活时段Schl 至Sch3的部分来执行,这些激活时段由形成系统代理中如下部分的 调度器SCH连续地起动,该部分称为上下文管理器并且管理这些交 替或者交织。
在计算机系统或者处理器内执行的不同任务之间, 一 些任务可 能是应用中人们寻求管理的一部分并且将被限定为"受监视的"任 务。这些任务通过任务描述符内在这里称为管理位MmA或者MmB
(见图7)的通常未用的数据位的状态(设置为1)来标识。受监视 的任务以及未受监视的其它任务可以于在处理器中执行的一连串激 活时段内交替。
对于在图2中标记以字母"m,,的受监视的任务TA和TB而言, 选择激活时段使得它们仅由确定性事件组成。这些确定性时段通过 一个或者多个录入软件代理来定义。这一录入代理可以包括作为运 作管理应用的任务的、在计算机系统的用户存储器空间中执行的单 元。这一录入代理也可以包括或者使用在系统软件内、例如在调度 器内修改或者添加的单元。
由于应用的事件中的多数是内部事件,并且它们之中的许多事 件是确定性的,所以各个受管理的任务中的大部分由确定性事件组 成。每当出现非确定性事件,录入代理就关闭确定性时段。非确定 性事件然后可能以未受监视的任务的形式来加以执行,并且根据已 知方法利用它的结果来加以录入。在完成这一非确定性事件时,录 入代理定义新的确定性部分的开始并且再次起动对指令的计数。
非确定性事件的录入以及可能的处理是在确定性激活时段以外 进行的,或者是例如在内核模式Klv下的执行时段Kl或者K2中、 即在相对于用于用户模式UIv的值3而言处理器特许模式处于值0 的时候进行的。
为了能够以与录入时的方式相同的方式重放各激活时段,本发 明在录入时执行对于在这一确定性部分期间执行的指令的计数。由 此,在以后重放RSCH (见图3和图4)这些任务期间,只需从与录 入时的状态相同的状态起动这一录入部分以便它自行执行数目总计 与在录入时由此同一部分执行并且针对此同一任务的指令的数目准 确对应的重放指令。因此进行这一重放而不会有任何干预强加于确 定性部分内的结果,因为该确定性部分仅含确定性事件。
当确定性部分延展到调度器所建立的多个激活时段时,这些激 活时段各包括这一确定性部分的一部分,这些部分可以作为完整的 确定性部分来自行处理。在其余描述中,将仅描述确定性激活时段
的录入,但是不言而喻,许多确定性激活时段可以一个接一个地在 单个确定性部分之内。
根据本发明,对确定性激活时段的指令的这一计数使用了性能 和监视计数器,该计数器目前是很多处理器中的现有硬件特征,例
如自Intel公司的Pentium家族的Pentium 2之后。提供这一性能和监 视计数器是为了在持续时间中或者在多个事件中测量处理器的运 作,并且该计数器主要用来测量性能,例如以便通过对它的值的定 期采样来进行对应用简档(profile)的统计分析。处理器制造商也指 明这些性能计数器没有受保障的准确度并且必须用于相对或者差分 测量以求应用的优化。
与能够出于性能原因而使某些指令预先执行的各种推测性或者 高速緩存技术无关地,本发明提出使用这一性能计数器PMC的特征 之一,也就是对于称为退役(retired)指令的指令的计数,即这些指 令被解析或者已经离开待执行的指令列表。
然而,对退役指令的这一计数呈现出在Intel和AMD公司的文 档中描述的某些限制性特征。这些特征之一是用于这一计数器的读 指令("RDPWC")没有直接结合于待解析的指令中,这对于与本 发明有联系的对这一计数器的使用没有直接影响。
另一方面,两个其它限制性特征可能引起用于录入和重放的指 令计数的不准确性并且应当加以考虑。
能够构成障碍的第四特征是如下事实计数器溢出所引起的执 行中断可能在已经造成这一溢出的指令之后以某一延迟出现。
这些不准确性限制在一方面涉及到某些复杂指令如果在解析之 前被中断则可能对该指令计数两次的情况,而在另一方面涉及到具 有可能造成指令无法计数的硬件中断的指令。为了克服这一不准确 性,本发明使用 一种实现消除与激活时段的结束的准确确定有关的 不确定度的补充确认技术。
如图1中所示,在日志文件J|iProX中录入和记录在|iProX处理 器中执行的一连串确定性激活时段Schl、 Sch2和Sch3。在处理器正在执行受监视的任务TA的录入激活时段Sch3期间, 计数器PMC的值UICX的一个或者多个读数RDPMC供应退役指令 的数目NJ3。在这一时段Sch3的挂起(结束Sch3 )时,录入代理JSCH 使用任务TA及其上下文的状态所输出的一项或者多项状态数据,以 便计算以基本上单义的方式代表这一状态的一项或者多项数据,从 而去除可能存在的与在这一激活时段Sch3期间执行的指令的准确数 目有关的不确定度。这一状态数据构成与这一时段结束(结束Sch3 ) 相对应的签名SG3。这一签名特别地包括紧接在这一时段的最后指 令之后的指令指针的准确值IPJX3,即最后执行的程序指令在任务 TA的可执行文件内的位置的准确标识。这一签名也包括根据来自在 这一桂起(结束Sch3 )时任务TA的上下文的寄存器RegJX3和调用 栈PileJX3中读取的值而计算的控制数据("校验和(checksum)")。
对于各录入时段SchJ (图3 ),这一处理器的日志JpProX由此 包括特别地与下述内容相关联的行
-在这一时段中执行的任务TJ的标识idJ,例如这一任务的 "PID";
-计数器PMC所发送的撤消(withdraw )指令NJ的数目的值; -为这一时段的结束而计算的签名SGJ。
由此,对于图1中所示的一连串任务,首先TA、然后TB、然
后TA,处理器nProX的日志JpProX包括如下连续行 " MA: NJ3: SG3 idB: NJ2: SG2
fdA:肌S61w
如图2中所示,在给定jiProX处理器内录入应用APPJ的一连串 不同录入任务也可以由录入代理JSCH初始地传输到FIFO("先入先 出")型的录入队列QJ(aProX。通过一个存储任务的日志TJ(iProX来 读取在这一 队列的输出处的录入行,这启动了要么通过本地MEM要 么通过传输TRANS到另一节点或者备份站或者外设在这一处理器 的日志J(iProX中以有序的方式存储这些行。这种录入队列的使用特 别地充当緩存器区以便调节录入数据的流量以及避免干扰被录入的应用或者进行这一录入的应用。
这一益处在如下全局架构的情况下特别地明显,在该全局架构 中立即将录入数据如它出现的那样传输到例如在备用机器上重放同 一运行的另一应用以便进行具有容错性和服务连续性的运作。
在这 一 计数技术中使用系统调用指令作为用于指令计数的同步 点可能是有利的。因此这涉及到实施系统调用例程使得它们递增系
统调用计数器。硬件计数器PMC对指令的计数因此可以作用于保持 较低的值,这改进了它的性能。
图3和图4呈现了一种录入时段SchJ的在重放处理器^ProZ中 的重放技术。图3代表在处理器内的被重放任务TR的最近状态TR 至TR4。图4代表用来实施这样的重放的方法的流程图。视实施例 或者使用参数而定,也可以根据与用于不同重放处理器的原理相同 的原理,在与例如用于应用跟踪类型的运作管理的录入处理器相同 的处理器中完成重放。
例如,在这样的重放过程中,作为由可能加以〗奮改以便包括重 放代理RSCH的调度器SCH所调度的激活时段,所讨论的任务TJ 利用它在所提及的处理器中的上下文来加以恢复,然后释放这一任 务(41 )并且起动它的执行。
为了能够在与完成录入的计算机系统不同的重放计算机系统中 加以恢复和执行,任务或者应用所能访问的所有或者部分资源必须 净皮虚拟化(即例如以虛拟方式^皮实例化或者一皮重建),以^便针对重 放的应用以与在录入时相同的方式来表现。 一般涉及到的项是用于 线程或者进程的任务标识符TIP或者PID以及应用所访问的并且视 主机系统而定的大部分资源。这 一 虚拟化在重放任务或者应用开始 时加以执行,并且根据在录入过程中存储的数据在重放过程中加以 修改以便以与在录入过程中相同的方式改变。
有利地,在内核模式下完成这一虚拟化,这特别地实现了避免 它的操作在性能计数器PMC对指令进行计数时被纳入考虑之中。
Intel公司的文档规定了归因于硬件中断的误差限于加上或者减
去一个指令的相对误差。对于包括至多一个单硬件中断(即造成它 的关闭的中断)的录入确定性时段而言,监视需要将计数器PMC的
下述两个值纳入考虑之中在重放时段开始时的值和在监视点处的 值。最大相对误差因此是加上或者减去两个指令。
在用于重放录入任务TJ的重放任务TR的整个执行中,重放代 理RSCH监视通过读取RDPMC进行重放的处理器^ProZ的计数器 PMC并且比较这一读数和与这一录入任务TJ相对应的录入凄史据 IdJ、 NJ、 SGJ来监视退役指令的数目。安排这一监视是为了一旦达 到其在这一重放执行中的顺序值等于NJ-2的指令就中断重放任务 TR的执行。例如通过在预期值对计数器PMC的溢出进行编程来完 成这一中断。
由于上文引用的第四限制性特征,可以通过以某一裕度对溢出 进行编程(41,图4)来补偿在溢出与中断之间存在的延时,以便确 信在预期值NJ-2之前产生中断。这一裕度取决于实-验并且可以例如 是50个指令的级别。
因此在NJ-50与NJ-20之间的指令数目时中断重方文时段SchR的 初始执行。重放代理RSCH然后在与签名SGJ中存储的指令指针的 值IPJ相对应的程序指令BKI上在重放任务TR的可执行文件内设置
(42) 执行断点BK。然后重新起动执行直至被这一断点BK中断
(43) ,继续测试(44)来自计数器PMC的指令的数目,直至重放 指令的数目大于或者等于录入指令的数目减去两个指令,即NR-NJ-2。
录入时段SchJ的实际结束的准确位置由此位于具有相应顺序值 NJ-1至NJ+2的四次后续单位指令执行InstrO至Instr3中,即处于在 相较于这一同一时段SchJ的假设结束的位置NJ而言减去二与加上 二之间包含的相对位置。
确认阶段40 (图4)然后实现通过在签名SGJ与根据重放任务 TR在后续单位指令执行Instrl至Instr4之后的状态TR1至TR4以同 一方式计算的值SG1至SG4 (图3)之间的比较来确定这一实际位
置。
在这一确认阶段开始时,重放代理检查(45)根据重放任务TR 紧接在先前监视所引起的中断之后的状态而计算的重放签名SGR的 值SG0。
才艮据本发明,如果SGJ和SG0不对应,则任务TR的执行:故重 新起动并且在这一断点指令BKI的第一次新的执行TR2上停止 (46)。
然而关于这一新的停止位置TR2可能有不确定度,例如录入任 务TJ在被挂起之前是否已经通过数次执行这一断点指令BKI来进行 很短的循环。在这一断点指令BKI上的执行的各间断TR2、 TR4处, 重迖文代理再次验证(47 )签名SGJ和SGR的匹配并且重新起动扭J亍 直至获得这一匹配。当签名对应时(在本例中SGJ-SG4),意味着 断点指令BKI的最后执行Instr4对应于在录入时段SchJ中录入的最 后操作。重放代理然后关闭(48)重放时段SchR。
本发明也设想一种安全机制,例如测试49,该测试中断重i文TR 并且在某一数目的具体指令执行之后(例如在八次单位指令执行结 束时)返回(401)重放错误以便避免在错误的情况下无限循环。
为了例如在与录入应用APPJ相对应的重》文应用APPR (图5) 的重放时重放多个录入时段,重放代理RSCH连续地读取日志 JpProX的不同行并且使用这些行中的各行以4更重放与有关行相对应 的激活时段。
如图5中所示,通过在重放处理器uProZ中执行的日志读取任 务T>ProZ直接接收TRANS或者本地读取MEM这一 日志J|iProX的
不同行。
这一 日志JiaProX中各自与录入时段相对应的所有行然后以它们 被录入的次序而^皮传输到FIFO型的重方文队列QJ(iProZ。在这一队列 的输出处,重放代理RSCH使用这些日志行中的各行以使它所代表 的时段由与录入任务TA、 TB和TC相对应的重放任务TA,、 TB,和 TC,加以重i文。
为了进行这些时段在重放处理器^ProZ内的调度,重放代理 RSCH在无语义变化的情况下与调度器SCH在标准系统软件中存在 时 一 样地使用它的运作。这 一 方面特别地实现了维持与在同 一 处理 器中执行的其它TNM,任务的兼容性。为了获得与在录入的同时相同 的调度而不干扰调度器SCH的正常运作,重放代理RSCH仅要求阻 止(55b, 55c)各重放任务TB,、 TB,的释放,只要它们的标识符TID 或者PID不对应于在它必须获得其重;^文的行中存储的标识符idA。
正如在上文引用的申请中描述的那样,用于确定性时段的录入 和重放的这些技术实现了优化运作管理应用在一个或者多个单处理
器计算机内的性能和功能性。
在比如多处理器计算机或者包括并行工作的多个计算机的网络 这样的并行架构情况下,使用可由多个任务访问的共享资源增添了 非确定性起因,该起因可能是在这一运作管理的背景下显著性能损 失的起源或者甚至是无法实施某些重要和有用功能的起源。
为了去除所有或者一些这些非确定性起因,本发明提出一种如 下方法,该方法实现了管理或者控制对共享资源、特别是直接访问 资源的访问,使得各任务可以在它被系统激活的整个时段都获得对 共享资源的独占性访问。
在图6中图示了并行多处理器环境的运作例子,该环境在例如 Linux型系统这样的多处理器环境下包括第一处理器pProX和第二 处理器^ProY。这两个处理器各自可以在单个工作存储器空间RAM 内分别并行执行任务TA和TB,并且通过调度器来加以协调。在各 任务TA和TB的激活时段期间,将在处理器pProX、 pProY中执行 来自它的程序EXEA、 EXEB的指令序列SchA、 SchB。在来自这一 序列的指令InstrA、 InstrB的执行过程中,处理器将能够使用在它内 部的资源,比如寄存器RegA、 RegB、栈PilA、 PilB。
在工作存储器RAM内数个共享存储器区ShMPi至ShMPk例如 按照"映射,,型指令来定义并且直接按照它们的物理地址可由不同任 务TA和TB访问。
图6图示了现有技术的如下情形,在该情形中任务TA和TB在 公共时段被并行执行并且各自包括请求对单个共享存储器区ShMPi 进4亍访问的指令InstrA和InstrB。这两个访问请求将由各处理器的存 储器管理器单元MMU以独立方式加以处理(11, 13)并且将彼此 独立地到达(12, 14)这一共享存储器区。
对于仅可从某些系统调用型指令来访问的资源,有可能实施进 行这些指令的系统例程,即修改这些例程或者把截获这些系统调用 或者对这些系统调用做出反应的单元插入到系统中。在通过录入和 重放所进行的运作管理背景下,这一实施可以特别地实现对它们行 为的记录以便能够以后相同地重放或者修改这一行为使得它变得具 确定性并且无需加以记录。
反言之,对于无需系统调用、因此潜在地从任何程序指令可直 接访问的资源,大多数操作系统、特别是Unix或者Linux型操作系 统不能实现控制这些访问到达这 一 共享存储器区ShMPi的级别。
为了解决这一问题,如图7和图8中所示,本发明提出修改某 些系统软件单元的代码或者添加某些其它代码以便修改或者拓展当 前用于其它功能的某些现存硬件功能。
具体而言,有可能通过修改Unix或者Linux型系统软件的少量 单元而不修改当前处理器的硬件特征来解决这一问题。因此有可能
软件带来增添功能J而l损于它们的^上兼容性的少许修改来^行 和管理略有修改或者未经修改的多任务应用。
本发明为此使用在许多新近微处理器中存在的某些机制,这些 微处理器比如是在PC型的架构中使用的处理器,例如Intel公司的 Pentium处理器或者AMD公司的Athlon处理器。特别是自Pentium 2 起的这些处理器在它们的存储器管理单元内集成了虚拟存储器管理 机制。使用这一机制是为了将工作存储器中定义的某些页面在它们 不被使用时"卸载"到硬盘上并且将它们存储于此以便释放物理存储 器内的对应空间。对于当前运行的应用,在工作存储器中仍然列出
这些页面,但是必须从硬盘到该物理存储器中再次"加载"它们以便 任务能够实际访问该页面。
为了管理这一虚拟存储器,如图8中所示,系统软件包括虚拟
存储器管理器VMM,该VMM针对可虚拟化存储器的各页面在各不 同应用进程中创建页面表条目("P.T.E.,,)。由此,对于各自以进程 形式来执行的、即具有专属于它的执行上下文的两个任务TA和TB, 页面ShMPi至ShMPk将各自获得在任务TA的进程中的页面表条目 PTEiA至PTEkA以及在任务TB的进程中的页面条目表PTEiB至 PTEkB。
虛拟存储器管理器VMM包括页面加载器软件PL,该PL加载 和卸载存储器页面到硬盘上的"交换"文件中,例如在Microsoft 7>司 的Windows系统中具有扩展名".swp"的文件。在ShMPi页面的每次 加载或者卸载过程中,它在物理存储器中的存在或者不存在状态由 VMM管理器存储和维护(30)于与它相对应的各页面表条目PTEiA 和PTEiB中。在这些表PTEiA和PTEiB中,这一存在状态分别以数 据位PriA和PriB的形式来存储,值为1表示存在而值为O表示不存 在。
在各处理器pProX和pProY内,存储器管理器MMUX或者 MMUY包括页面故障中断机制PFIntX或者PFIntY,通过该才几制来 传递源自于所执行的程序指令InstrA或者InstrB的任何访问:清求。 如果来自由处理器pProX的任务TA的指令InstrA请求(33 )与存 储器页面ShMPi有关的访问,则处理器的中断机制PFIntX通过读取 这一页面在对应条目表PTEiA中的存在位PriA的值来验证该页面是 否存在于物理存储器RAM中。
如果这一位PriA指示了页面的存在,则中断机制PFIntX批准访 问。在相反情况下,中断机制PFINtA中断任务TA的执行并且将错 误参数发送到在系统软件的虚拟存储器管理器VMM中包含的"页面 故障处理器"软件代理PFH。这一故障处理器PFH然后被执行并且管 理这一错误在系统软件和相对应用内的结果。
图7图示了如何修改和改变或者转换这些现存机制以便根据本 发明管理对共享资源的访问。
为了管理来自在这样的并行环境下^丸行的应用APP的这些访
问,如图7中所示,起动器软件LCH被用来起动这一应用例如在 Unix或者Linux型的系统中的执行。在应用APP的起动时,以如下 进程的形式利用第一任务TA来创建该应用APP,该进程包括执行 "线程"ThrAl并且使用形成任务描述符TDA的数据表。
在这一任务描述符TDA内,起动器存储(21 )如下事实必须 通过将通常未用数据位(这里称为管理位MmA)的状态修改成1来 管理或者"监视"这一任务TA。
在形成页面存储器结构PMStrA的数据表中在任务TA内列出在 这里限定为共享存储器页面ShMPi、 ShMPj和ShMPk的在工作存储 器中的不同共享存储器区。在这一结构PMStrA中,以页面表条目 PTEiAl至PTEkAl的形式来描述和更新共享页面,其中各条目并入 有如前所述由虛拟存储器管理器VMM使用的数据位PriAl至 PrKAl。通常,这一页面结构PMStrA与任务TA同时被创建,并且 通过确保共享存储器中任何变化的不同系统例程(比如"映射,,型的 例程)随同这些变化一起被更新(20)。
在受管理的应用APP的执行过程中,可以通过来自这一第一任 务TA或者来自以相同方式创建的其它任务的"创建"型指令CRE来 创建其它任务。任何新创建的任务TB也可以包括线程TrBl和任务 描述符TB以及页面存储器结构PMStrB。通过源于它的父任务的继 承关系INH,新页面存储器结构PMStrB也包括以相同方式维持最新 的不同页面表条目PTEiBl至PTEkBl,这些条目具有它们的存在位 PriBl至PrkBl。
在从受监视的任务TA创建CRE新任务TB时,新任务描述符 TDB也包括管理位MmB,该管理位的值是从来自父任务的管理位 MmA的il继岸义INH的。
在受管理的应用APP的执行过程中,可以在起初以具有单个线
程THrBl的进程的形式来运作的任务TB内创建其它线程。
在现存的受监视的任务TB内,通过系统调用如"克隆"指令来创 建任何新线程ThrB2。通常,形式为多线程进程的任务在它的页面结 构PMStrB内仅包括一组条目表PTEiBl至PTEkBl。根据本发明, 能够创建新线程的任何系统例程如"克隆"系统调用的运作例如通过 在它之中结合一个补充部分CSUP来加以修改。这一修改被设计为 使得在现存任务TB中创建任何新线程ThrB2都包括读取(22 )现存 的一组表PTEiBl至PTEkBl以及创建(23)与相同共享页面ShMPI 至ShMPk相对应并且针对新线程ThrB2来运作的新的一组页面表条 目PTEiB2至PTEkB2。正如在相同申请人的专利FR 2 820 221中描 述的那样,这 一 修改例如可以通过在系统内加载共享库而使用动态 插入技术实施这些例程CLONE来完成。
以如下方式来完成这一创建,该方式确保了新表PTEiB2至 PTEkB2以与它们的父表PTEiBl至PTEkBl相似的方式也维持为最 新(24, 25),这或者通过对它们进行登记以^便将它们更新到管理 这一更新的系统例程MAP中来完成,或者例如也通过在这些系统例 程MAP中结合补充部分MSUP而实施这些系统例程来完成。
图8图示了使用这一结构的访问管理的运作,其中该结构被应 用于包括在两个处理器^ProX和^ProY中并行执行的两个单线程任 务TA和TB的例子。应当注意,将页面表条目PTE的结构扩展到在 各任务内克隆的各线程ThrB2也实现了以同一方式管理来自属于受 监视的任务的所有线程的任何访问,无论这些任务是单线程的还是 多线程的。
在这里描述的实施例中,安排根据本发明的访问管理是为了就 进程TA或者TB而言以及就各线程ThrB 1或者ThrB2而言向各任务 保证其对共享存储器页面的访问在激活时段的整个持续时间内都是 独占性的,其中在该激活时段期间共享存储器页面的连贯性(或者 一致性)由系统软件保证。这样的时段在这里被描述为由系统软件 的调度器SCH分配和管理的激活时段。不言而喻可以在同一精神下
选择其它类型的连贯时段。
另外,在这里以定义为具体存储器区或者存储器页面的共享存 储器的形式来描述所受访问被管理或者被控制的共享资源。同 一概 念也可以借助与资源相对应的系统例程的相似实施而应用于其它类 型的资源。
本发明的实施可以包括修改系统软件的某些单元,^吏得它们如 下文描述的那样运作。必要的修改级别当然可以视系统软件的类型
或者版本而变化。在Linux型系统的情况下,这些修改一般包括如 先前描述的"克隆"和"映射"型例程的实施以及在产生调度器SCH、 页面故障处理器PFH和页面加载器PL的代理内的修改和代码添加。 有待加以修改以产生这里所述的访问控制类型的系统功能性可以有 利地构成相较于标准系统的功能性而言的纯粹扩展,即无需去除功 能性或者至少无损于为标准系统版本而开发的应用的向上兼容性。
另外,虽然使用在用于虚拟存储器管理的处理器中设想的硬件 机制,但是所述访问控制可能并不 一 定需要这 一 虛拟存储器的去激 活并且可以与它兼容。页面加载器PL可以例如被实施或者修改为使 得如果虛拟页面ShMPi已经被另一任务TA使用则受监视的任务TB 在这一页面的存在位PriB中并不反映这一页面到物理存储器RAM 中的加载。
如图8中所示,在任务TA的激活时段SchA之一开始时,调度 器SCH在时刻SCHAL释放任务TA。在释放这一任务之前,调度器 SCH测试(31 )这一任务TA的管理位MmA以确定是否必须对该任 务施加访问控制。如果必须对该任务施加访问控制,则调度器SCH 然后会将与这 一 访问控制器所涉及的所有共享页面相对应的页面表 条目PTEiA至PTEkA的所有存在位PriA至PrkA设置为0 ( 32 ), 以便这一任务TA的任何访问请求对于能够执行这一任务TA的所有 处理器nProX都会在中断机制PFIntX中缺省地引起页面错误。
在处理器^ProX内的这一激活时段SchA期间,指令InstrA请求 (33)对共享存储器页面ShMPi的访问。由于对应存在位PriA为0,
所以处理器i^ProX的中断机制PFIntX挂起这一访问请求的执行并且 调用系统软件的故障页面处理器PFH,同时向它发送有关页面和任 务的标识。
当处理这一错误时,页面故障处理器PFH的补充功能性PFHSUP 因此在如下数据表内进行测试和/或修改,该数据表在系统软件的虚 拟存储器管理器VMM内形成内核存储器结构KMStr ("内核存储器 结构")代理。
通常,这一内核存储器结构KMStr以单义的方式为全部工作环 境或者全部工作存储器存储如下数据,该数据代表了存储器资源及 其发展的结构。根据本发明,这一内核存储器结构KMStr也包括在 这里称为访问位KSi、 KSj和KSk的一组数据位,这些数据位对于各 有关共享页面ShMPi至ShMPk而言代表了如下事实目前向任务准 予(该位为1 )或者不准予(该位为0)对这一页面的访问。
当页面故障处理器PFH处理处理器pProX所发送的错误时,它 查询(34)与有关ShMPi页面相对应的访问位KSi。如果这一访问 位不指示任何当前访问,则它修改(34)这一访问位KSi以便存储 它准予对这一页面的访问,并且也^"改(35)与请求任务TA相对应 的存在位PriA (将该位改变为1)以便存储如下事实这一任务TA 现在具有对有关页面ShMPPi的独占性访问。
应当注意,内核存储器结构KMStr的访问位KSI的这些测试和 修改操作构成了以原子(atomic)方式来实施的操作34,即确保即 使在多处理器环境下也仍然要么完全地实现该操作要么完全不实现 该操作。
一旦页面故障处理器PFInt已经确定了关于所^清求的页面ShMPi 的独占性的归属,它就重新起动指令InstrA的执行使得它实际访问 (36)这一页面的内容。
此后,如果来自由另一处理器^ProY并行执行的任何另一受监 牙见的任务TB的指令InstrB请求(37)对这一已经确定归属的页面 ShMPi的访问,则这一处理器的中断机制PFIntY也将查询这一页面 中用于请求任务TB的存在位PriB。由于任务TB是受监视的任务, 所以所查询的存在位PriB处于不存在位置(值为0 )。中断机制PFIntY 因此将终止请求指令InstrB并且发送(38)错误到页面故障处理器 PFH。
此时,这一页面故障处理器PFH注意到这一页面的访问位KSi 为1,指示了已经将对于这一页面ShMPi的独占性准予给另一任务。 页面故障处理器PFH因此将例如通过结束请求任务TB的激活时段 来启动(39 )将整个请求任务TB挂起到系统软件上下文改变管理器 中。在它的下一激活时段期间,这一任务TB因此会把它的执行准确 地重复到它被中断过的点并且将能够再一次尝试访问该同一页面 ShMPi 。
在请求任务是属于多线程进程的线程ThrB2 (图7)的情况下, 这一单个线程ThrB2所特有的一组页面表条目PTEiB2的存在使得仅 挂起请求对已经在独占性访问中分配的页面进行访问的线程而不挂 起不会与这一独占性相沖突的其它线程ThrBl 。
在各任务的激活时段ScliA完成SCHAS时,调度器挂起这一任 务的执行并且备份它的执行上下文。
关于这一挂起SCHAS或者关于对已经分配的页面请求的挂起 (39),本发明也设想了这一任务所收到的独占性访问所针对的所 有共享存储器页面的释放阶段。由此,如果调度器SCH通过管理位 MmA注意到(301)在挂起过程中的任务TA受到监视,则它扫描 这一任务的所有页面表条目PTEiA至PTEkA以通过查询不同存在位 PriA至PrKA的状态来确定该任务具有对哪些页面的独占性访问。 基于这一信息,它然后将通过在内核存储器结构KMStr中把所有这 些页面ShMPi的访问位KSi重置为0来释放所有这些页面ShMPi。
在其它未述及的变型中,也有可能例如通过在单个任务描述符 内设想数个管理位而将管理或者监视的概念分离为数种管理类型。 因此可以监视任务以便就某些任务类别而言使任务受益于独占性访 问。类似地,可以仅就某些任务类别而言排除任务。
为请求这一 页面的第 一任务获得对该页面的独占而不干扰由此挂起 的其它任务的执行连贯性。
通过避免对同时执行的两个任务所共享的单个存储器区的任何 修改,因此这避免了在这一存储器区的内容有变时在它们之间的任 何冲突。从用于这一存储器区的给定初始状态起,在访问该存储器 区的任务的各激活时段开始时,它的内容的变化由此仅依赖于这一 任务在这 一 激活时段期间的动作。对于由这 一 任务例如在调度的激 活时段所执行的给定指令序列,并且通过从已知的初始状态开始, 由此有可能获得相对于这一任务而言具确定性并且可重复的这一序 列的执行。
特别是由于将原子操作用于存储对于所访问的存储器区的独占 性的分配,所以该方法实现了避免或者减少在竟相寻求访问的多个 任务之间共享的单个资源的死锁风险。
有利地,当把在这一时段的其余时间对共享存储器页面ShMPi 的独占性访问归属于访问任务TA时,页面故障处理器PFH、PFHSUP 可以预备代表这一 归属的录入数据。这一录入数据包括这一独占性 访问所归属于的任务TA的标识以及可能包括如下其它补充数据,该 补充数据应用于上下文或者代表了请求指令InstrA在有关任务TA 的执行中的位置以及在所得独占性访问的持续时间中这一任务TA 所执行的指令的数目。
在系统软件内,可以在如下访问日志中对这一录入数据进4亍分 组,该访问日志代表了在某一时间段或者某一执行时段期间确定归 属的一连串独占性访问。这一日志特别地包括如下有序数据集,该 数据集例如按照已经获得这些独占性访问的一连串任务的PID或者 TID来标识这些任务。受监视的任务所访问的各资源因此可以使得 开始建立专属于它的日志,并且对已经获得对这一资源的独占性访 问的 一连串任务进行分组。
通过将这些访问控制技术(图7至图8)与上述用于录入确定性
时段的技术(图1至图5)以及与在上文引用的申请中描述的检查点 设置以及录入和重放技术相组合,本发明提出在并行架构系统中也 实施前述不同类型的运作管理。
图9因此根据本发明图示了多任务应用APPJ在多处理器系统 MP1上的录入以及它根据需要在单处理器系统UP2中的重放。
对于录入的应用APPJ,录入代理JSCH为各处理器pProX或者 jiProY录入用于不同受监视的任务TA、 TB和TC的一连串所有激活 时段。如上所述,它将这些任务分别作为队列QJpProX和QJ(iProY 来单独地发送。应当注意,如果任务在一个处理器中被执行一次以 及在另 一处理器中被执行一次,则用于这一任务的激活时段将存在 于两个队列中。
利用由录入的应用APPJ所访问的共享资源ShMPi至ShMPk, 录入代理JVMM为这些资源中的各资源记录如下录入数据,该数据 代表了针对这一资源而分配的 一连串独占性访问。页面故障处理器 PFH在虛拟存储器管理器VMM内连同它向不同任务所分配的独占 性访问 一起生成这一独占性访问录入数据。
这 一 访问录入数据的各次记录特另ij地包括
-有关共享资源的单义标识符,例如用于共享存储器区的地址;
-获得这一访问的任务的标识符(PID或者TIP);
-例如通过这里描述的计数技术而获得的这一独占性访问的持 续时间;
-允许补偿这一技术的不准确性的补充数据,例如前述签名; -以及例如对于系统资源以及不同外部事件或者输入/输出事件
的虚拟化而言有用的某些补充数据。
这一录入数据被发送到FIFO型的录入队列QJShMPi。 视实施例而定,有可能在一个或者多个日志文件中存储这些队
列QJ^ProX、 QJ(iProY、 QJ(iMPi的内容例如以供以后使用。
不同录入数据通过通信装置如计算机通信网络从这些队列中被
发送到重放系统UP2。
来自各录入队列QJpProX、 QJjiProY、 QJpMPi的数据由与发出 队列相对应的重放队列QR(iProX、 QR(iProY、 QR41MPi分别接收。
在这些重放队列的输出中,不同录入处理器^ProX以及^ProY 的录入数据根据访问录入数据被组合在一起,以便恢复录入的激活 时段和分配的(连续)独占性访问的组合串行。
在重放系统内,在定义这一重放串行或者重放调度之后,在重 放处理器中起动重放的执行。
应当注意, 一旦以不打破对这一重放串行的调度的方式在这些 重放处理器之间分布任务,重放处理器的数目可能就不具有重要性 (除了会影响在重放时的性能之外)。
因此,由在多处理器系统MP1中的录入应用APPJ,有可能在重 放机器UP2中以重放任务TA,、 TB,、 TC,的形式获得它的应用的不 同任务TA、 TB、 TC的确定性时段的重放。通过将确定性时段的这 一重放与非确定性事件以及特别是外部事件的录入和重放相组合, 本发明实现了以高性能的方式获得一种再现对录入应用APPJ的执 行的重i文应用APPJ。
通过将录入数据一经生成就从录入系统发送到重放系统(立 即),有可能产生一种以与录入应用完全相同的方式(仅有时间延 迟)生成后续或者"影像"重放应用。例如与存储应用的状态作为未 来储备的技术相对照,可以在两个应用均在执行之中的这一 类情形 下使用术语"活动-活动"配置。
在这样的"活动-活动"配置中,可以认为重放应用APPR构成了 主应用或者主要应用的活动副本。这一活动副本呈现出主要添加了 录入数据的传输和处理时间、可以视比如两个系统的比较性能这样 的因素而定的少量时间延迟。典型延迟是少数几个通常为几毫秒的 调度时段。
在第一考虑下,这里描述的技术可以允许实施运作管理,该运 作管理仅代表了相较于原应用或者旧应用而言的较小开销以及仅代 表了在开发利用情形下可能接受的某种性能的损失。
本发明有利地实现了将这一类"活动-活动"配置应用于对应用可
靠化(reliabilization )的实施,其中活动副本可以用作原应用的镜4象 应用并且在故障情况下或者在特定事件时从它进行接管。相较于镜 像系统的硬件实施而言,本发明由于相对于所用机器的硬件特征的 改进的独立性而在运作中以及硬件管理中实现了多得多的灵活性。
这样的配置由此实现了即使在并行架构中仍以灵活和非入侵式 同时限制性能损失的方式给现存应用带来容错功能。
在使用这样的"活动-活动"配置以便通过将所有或者部分服务从 录入应用重新分布到活动副本来产生工作负荷的平衡或者调整("负 荷平衡")的同时也存在这些优点。这可以例如优化硬件的使用或者 释方丈硬件的 一 部分以便实施重定位的维护。
应当注意,这里描述的不同机制以与石更件部分无联系的方式来 使用软件部分。于是获得相对于硬件的良好独立性,这特别地使实 施更简易和更可靠并且通过允许该架构最佳地自行管理不同计算单 元(这些单元可以是处理器或者计算机)的并行性来保留良好性能。
另外,由于本发明最经常是纯软件实施的,所以有可能使用具 有所述所有优点的标准硬件。
本发明特别地实现了将为在单个计算单元上在共享时间内运作 的多任务应用而开发的运作管理技术扩展到并行环境。由此,本发 明实现了将这样的并行环境结合到如下网络或者集群中,在该网络 或者集群中这一运作管理在中间件类型的应用内被实施以便例如管 理分布式应用或者提供"按需"服务的可变部署应用。
不言而喻,本发明不限于刚才描述的例子,并且可以对本发明 做出许多修改而不脱离本发明的框架。
权利要求
1.一种用于在计算机处理器中在计算机系统内在称为活动时段(SchJ,SchR)的给定执行时段期间管理称为目标任务的计算机任务的方法,所述计算机处理器具有监视或者估计性能的装置并且包括具有加上或者减去称为相对误差的给定可能误差的计数器(PMC),这一过程包括在一方面使用所述计数器来评估直至所述活动时段的至少一个给定点所执行的指令的数目(NR,NJ);以及在另一方面生成从所述处理器或者计算机系统的状态中读取或者计算的并且与所述活动时段的至少一个给定点相对应的称为签名(SGJ,SGR)的数据。
2. 根据权利要求1所述的方法,其特征在于对于从受管理的时 段的开始起执行的指令的数目(NJ, NR)的评估结合所述计数器(PMC)而使用了至少一个系统调用指令作为同步障。
3. 根据权利要求1或2之一所述的方法,其特征在于它在由两 个非确定性操作之间的 一连串确定性操作组成的活动时段期间管理 任务。
4. 根据权利要求1至3之一所述的方法,其特征在于它管理在 称为录入处理器(pProX)的处理器中录入的任务(TJ),以及它包 括存储与称为录入时段(Sch3, SchJ)的所述任务的这一活动时段 相对应的录入数据,这一录入数据包括所执行指令的数目的至少一的所述签名(SGJ)。
5. 根据权利要求1至4之一所述的方法,其特征在于它通过在 称为处理器日志(J(iProX)的至少一个文件中以有序的方式存储代 表了在处理器(nProX)中执行的多个任务(TA, TB, TA)的一连 串活动时段(Schl, Sch2, Sch3)的录入的录入数据来录入所述处 理器(pProX)的使用,所述录入数据包括针对这些时段中的各时段 的标识所述所执行任务(TJ)的数据(idJ)。
6. 根据权利要求5所述的方法,其特征在于它根据所述录入数 据,从与所述录入处理器或者所述录入系统在所述录入时段开始时的状态相对应的状态开始,通过在重放计算机系统内管理由称为重 放(pProZ)处理器的处理器执行的称为重放(TR)任务的任务来进 行所述录入时段(SchJ)的重放,所述方法也包括-受监视的执行阶段,从所述重放时段的开始起执行所述计数器 (PMC)所评估的数目(NR)的指令,所述数目小于或者等于所述 录入时段的所述指令的数目的所述假设值(NJ)减去所述计数器的 所述相对误差;-确认阶段,包括如下步骤的重复-在所述重》文中的给定点(TRIO, TRI2, TRI4)处中断(46) 所述重放任务的执行;-在所述录入签名(SGJ)和与重放中断点相对应的签名(SGR) 之间进行比较(47)测试。
7. 根据权利要求6所述的方法,其特征在于所述录入签名(SGJ) 包括称为录入指针的数据(IPJ),该数据代表了在所述录入时段(SchJ)结束时所述录入任务的指令指针的值(IPJX3),所述方法也包括在与所述录入指针数据(IPJ)相对应的所述重 放指令(BKI)上设置(42)断点(BK)。
8. 根据权利要求6或7之一所述的方法,其特征在于对所述重 放任务(TR)的执行的所述监视特别地包括所述计数器(PMC)的 溢出,所述计数器被预先初始化以便确定必须从所述重放时段的开 始起执行的指令的数目(NR),并且所述计数器的所述溢出引起了 所述重放任务的中断(41 )。
9. 根据权利要求8所述的方法,其特征在于以某一裕度在所述 重放时段开始时初始化所述计数器(PMC )以便足够早地溢出(41 ), 从而在所述计数器的所述溢出与已经引起所述溢出的任务的中断之 间存在延时时段的情况下,所述重放任务(TR)所执行的指令的数 目(NR)小于或者等于所述录入时段的所述指令的数目的所述假设 值(NJ)减去所述计数器的所述相对误差。
10. 根据权利要求6至9之一所述的方法,其特征在于所述确认 阶段包括安全步骤,如果所述重放指令的数目(NR)超过所述录 入指令的数目的所述假设值(NJ)加上给定的指令数目则发送错误 信号。
11. 根据权利要求6至10之一所述的方法,其特征在于它在重 放处理器(pProZ)中通过使用在所述录入处理器(pProX)中录入 的一连串活动时段(Schl,Sch2,Sch3 )的录入数据的有序集合("ProX)来重放所述录入处理器的使用。
12. 根据前述权利要求之一所述的方法,其特征在于它实现对与 多个录入任务所访问的称为目标(ShMPi)资源的共享资源有关的一 连串归属独占性访问的录入,这一方法也发送或者存储称为资源日 志(JShmPi)的至少一个文件,该文件包括已经获得这些独占性访 问的所述连续任务的至少 一 个标识。
13. 根据权利要求1至12之一所述的管理方法,其特征在于它 管理在系统软件内实施的至少两个应用任务(TA, TB)的运作,所 述系统软件通过顺序激活来管理所述任务(TA, TB)在具有并行结 构的计算机系统中的执行,所述并行结构包括能够在至少两个算术 单元(^ProX, ^ProY)中同时执行多个应用任务的计算装置,这两 个应用任务(TA, TB)访问至少一个共享资源(ShMPi),所迷方 法包括-在第一算术单元(pProX)中录入这些任务中的一个任务或者 其它任务的第一串激活时段;以及-在第二算术单元(pProY)中录入这些任务中的一个任务或者 其它任务的第二串激活时段;-以及录入响应于对访问所述目标资源的请求(InstrA)而把对 所述目标资源的称为独占性访问的访问 一 连串地归属到所述任务之 中的所谓访问任务,即这样的归属排除了在紧接于所述访问请求之后的所述访问任务的所述激活时段(SchA)的整个其余时段期间这 些任务中的另一任务对所述目标资源(ShMPi)的任何访问;所述方法也包括在称为重放串行的有序结构中将代表了各所述 算术单元中多个一连串激活时段的录入数据(QJjaProX, QJ|aProY) 与代表了所述一连串归属独占性访问的录入数据(QJShmPi )相组合, 以便维持各任务(TA, TB, TC)内所述一连串激活时段相对于所述 共享资源(ShmPi)而言的次序。
14. 根据权利要求13所述的方法,其特征在于在用于重放(TA,, TB,, TC,)所述录入任务(TA, TB, TC)的所述录入运行的重放 计算机系统(UP2)中使用所述重^:串行数据。
15. 根据权利要求13或14之一所述的方法,其特征在于它包括 在所述重放计算机系统(UP2)内虛拟化可由所述录入任务在所述录
16. 根据权利要求14至15之一所述的方法,其特征在于它实现 对于包括至少两个任务的录入应用(APPJ)的运作的称为活动复制 的复制,所述至少两个任务在具有计算机网络的并行结构的称为主 要节点的至少 一 个节点上执行并且访问至少 一 个共享资源,这 一 复 制包括在重放系统上在至少一个重放应用中重放源自于录入数据的 重放串行,所述录入数据在被生成时从所述主要节点被立即发送到 辅节点。
17. 根据权利要求16所述的方法,其特征在于它使包括至少两 个任务的应用可靠化,所述至少两个任务在具有计算机网络的并行 结构的称为主要节点的至少一个节点来执行并且访问至少一个共享 资源,这一可靠化包括将服务从所述主要节点切换到在所述主要节 点内检测到故障或者给定事件时启动的取代所述主要节点的至少一 个辅节点。
18. 根据权利要求16所述的方法,其特征在于它实现通过在至 少一个辅节点之上执行在主要节点之上执行的目标应用(APPJ)的 活动副本(APPR)来平衡或者调节计算机网络内的工作负荷,这种 负荷平衡包括将所述受管理的目标应用提供的全部或部分服务切换 到所述活动副本。
19.一种实施根据权利要求1至18之一所述的方法的系统。
全文摘要
本发明涉及一种用于对在一个或者多个计算机处理器中、特别是在具有并行架构的多处理器系统中执行的任务的运行进行监视和管理的透明和非入侵式方法。本发明提出一种用于在计算机处理器中 在计算机系统内在称为活动时段(SchJ,SchR)的给定执行时段期间管理称为目标任务的计算机任务的系统和方法,该计算机处理器具有监视或者估计性能的装置并且包括具有加上或者减去称为相对误差的给定可能误差的计数器(PMC),这一过程包括在一方面使用所述计数器来评估直至所述活动时段的至少一个给定点所执行的指令的数目(NR,NJ);以及在另一方面生成从处理器或者计算机系统的状态中读取或者计算的并且与所述活动时段的至少一个给定点相对应的称为签名(SGJ,SGR)的数据。
文档编号G06F11/34GK101103338SQ200680002251
公开日2008年1月9日 申请日期2006年1月24日 优先权日2005年1月28日
发明者M·韦尔特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1