CN101027647A - 在计算机系统上执行计算机程序的方法 - Google Patents

在计算机系统上执行计算机程序的方法 Download PDF

Info

Publication number
CN101027647A
CN101027647A CN200580032522.9A CN200580032522A CN101027647A CN 101027647 A CN101027647 A CN 101027647A CN 200580032522 A CN200580032522 A CN 200580032522A CN 101027647 A CN101027647 A CN 101027647A
Authority
CN
China
Prior art keywords
working time
target program
program
computer system
mistake
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.)
Granted
Application number
CN200580032522.9A
Other languages
English (en)
Other versions
CN101027647B (zh
Inventor
W·普菲弗
R·维伯勒
B·穆勒
F·哈特维奇
W·哈特
R·安格鲍尔
E·博尔
T·科克
Y·科拉尼
R·格梅利彻
K·格拉比兹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN101027647A publication Critical patent/CN101027647A/zh
Application granted granted Critical
Publication of CN101027647B publication Critical patent/CN101027647B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)
  • Storage Device Security (AREA)

Abstract

在执行可以在计算机系统(1)上运行的包含至少一个运行时间目标程序时,可能出现能够由一个错误识别单元(5)识别的错误。为了能够特别灵活地处理一个所识别的错误并且尽可能地保持计算机系统(1)处于可供使用的状态,本发明提出依据配属给该运行时间目标程序的一个识别码从一个预先给定的出错处理例程集合中选取一个出错处理例程并且执行该出错处理例程。

Description

在计算机系统上执行计算机程序的方法
本发明涉及在计算机系统上执行计算机程序的方法,所述计算机系统具有至少一个计算单元。该计算机程序包含至少一个运行时间目标程序。可以通过一个错误识别单元识别在执行该运行时间目标程序过程中出现的错误。在识别出错误的情况下,所述错误识别单元产生一个出错识别信号。
本发明还涉及可以在其上执行计算机程序的计算机系统。该计算机程序包含至少一个运行时间目标程序。可以通过一个错误识别单元识别出在执行该运行时间目标程序的过程中出现的错误。
此外本发明还涉及一种计算机程序以及一种可机读的数据载体,所述计算机程序可以在一个计算机系统上运行,而所述数据载体可以存储一计算机程序。
在计算机上执行一个计算机程序时会出现错误。这些错误还可以根据其是由于硬件(处理器、总线系统、外围设备等等)还是由于软件(应用程序、操作系统、BIOS等等)而进行区别。
此外出现的错误还可以区分为永久错误和暂态错误。永久错误永久地存在并且例如基于一个有故障的硬件或者一个有故障的软件。与之相反,暂态错误只是暂时地出现并且从而也明显地难于复制和预测。在二进制存储、二进制传输和/或二进制处理数据的情况下,暂态错误例如由于电磁影响或者辐射(α射线、中子射线)改变单个字位而出现。
通常把一个计算机程序划分成多个运行时间目标程序,所述运行时间目标程序串行地或者并行地在计算机系统中执行。运行时间目标程序例如是过程、任务或者线程。在执行计算机程序时出现的错误从而在原理上配属于执行的运动时间目标程序。
永久错误的一种典型的处理方式是基于关闭计算机系统或者至少关闭子系统。这样做的缺点是,不再提供该计算机系统或者该子系统的功能。为了能够保证可靠的运行,特别是在一个安全性相关的环境中保证可靠的运行,例如冗余地设计一个计算机系统的子系统。
往往还通过关闭子系统处理暂态错误。此外还公知,在出现错误的情况下关闭一个或者多个子系统,然后重新启动并且通过自检推断此时无错误的计算机程序执行。如果没有识别新的错误,该子系统就继续其工作。在此有可能,不进一步执行由于错误中断的任务或者说在该时间执行的运行时间目标程序(所谓的前向恢复)。例如在实时系统中采用这种前向恢复。
特别是在非实时性应用的情况下公知,在一个计算机程序或者说运行时间目标程序的可预先给定的位置上设置检验点。如果出现一个暂态错误并且接着在其后重新启动该子系统,就在最后执行的检验点重新进行该任务。一个这样的称为后向恢复的方法例如用于金融市场上用于执行交易的计算机系统上。
处理出现的暂态错误的该公知方法的缺点是,在当时不再能够把整个计算机系统,至少是子系统,提供使用,这可以导致延缓计算机执行并且可能导致数据丢失。
因此本发明的技术问题是,尽可能灵活地处理在一个计算机上执行一个计算机程序时出现的错误,并且在此保证一个尽可能高的计算机系统的可供使用性。
为了解决该技术问题从开篇部分所述种类的方法着手,依据配属于运行时间的识别码从一个可预先给定的出错处理例程集合中选出一个出错处理例程并且执行所选出的处理例程。
根据本发明给在所述计算机系统上执行的一个或者多个运行时间配属一个识别码,再由该识别码标识至少一个出错处理例程。如果在执行所述运行时间目标程序的过程中出现一个错误,就选取对应于该运行目标程序的出错处理例程的识别码。该识别码例如可以在编程所述运行时间目标程序或者在计算机系统上安装该运行时间目标程序时就已经确定了。从而在编程所述运行时间目标程序或者在计算机系统上安装该运行时间目标程序时就已经可以确定出现一个错误时要执行的出错处理例程了。
例如可以对一个涉及安全性相关的和/或时间紧要的功能运行时间目标程序配属与涉及一个非实时性功能的识别码不同的一个运行时间目标程序的一个识别码。这使得能够非常灵活地处理所出现的不同运行时间目标程序的错误。
特别地可以用根据本发明所述的方法达到,如果执行一个运行时间目标程序时出现一个错误,不必总是重新启动一个子系统或者甚至整个系统。从而可以明显地提高整个系统的可供使用性。相反地可以灵活地选择一个出错处理机制。从而可以明显地提高整个系统的可供使用性。
根据本发明的方法的一个有利的扩展方案,附加地依据错误识别单元所产生的出错识别信号来选取所述出错处理例程。所述错误识别单元例如可以确定,是涉及一个硬件故障还是涉及一个软件错误,或者说,确定哪个硬件单元(处理器、总线系统、存储器等等)引发了该错误。此外还可以,该错误识别单元确定所出现的错误到底是涉及一个永久的错误还是涉及一个暂态的错误。为此所述错误识别单元可以为每个运行时间目标程序设置一个计数器,该计数器计入出现的错误的数量。如果特别是在执行一个确定的运行时间目标程序时出现许多错误,该错误识别单元就可以推断出一个永久的错误,并且产生一个与计数器只有一个非常低的值时的出错识别信号所不同的出错识别信号。特别地可以设想,所述识别信号包含一个关于所得到参量的信息,例如在执行所述运行时间目标程序的情况下至此时所出现的错误的当前的计数器状态。这使得可以特别灵活地选择出错处理例程。
例如,如果该计算机系统包含多个计算单元,可以提出,借助于所述出错识别信号识别在其上执行该运行时间目标程序并且出现错误的那个计算单元。如果同一个运行时间目标程序例如运行在多个不同的计算单元上,并且这些计算单元配属不同安全相关性的不同环境,就可能在处理该运行时间目标程序的过程中在出现错误时,视在哪个计算单元上执行该运行时间目标程序而异选择不同的出错处理例程,尽管总是对该运行时间目标程序配属同一识别码。
如果冗余地设计多个计算单元并且所述运行时间目标程序冗余地在该计算单元上执行,例如可以提出一种出错处理,在进一步处理时(例如在一个接着进行的表决时)忽略在其上出现该错误的那个计算单元所提供的结果。从而可以有一个更加灵活的出错处理。
有利地依据至少一个表征所执行的运行时间目标程序和/或表征执行该运行时间目标程序的参量进行所述出错处理。例如这样一种参量可以是配属于所述运行时间目标程序的优先权。从而可以附加地依据所执行的运行时间目标程序进行一种出错处理。
一个表征运行时间目标程序的执行的参量还可以标明已经进行的或者还可供使用的执行时间长度。例如如果在加载该运行时间目标程序不久出现一个错误,就可以提出再一次加载和执行该全部的运行时间目标程序。如果该运行时间目标程序已经快到了可供使用的执行时间结束时,或者如果应当急于执行另一个运行时间目标程序,可以提出,简单地结束在该执行过程中出错的运行时间目标程序。
所述表征执行该运行时间目标程序的特性的参量还可以说明是否已经与其它运行时间目标程序进行了一个数据交换或者已经进行了一个存储器访问。于是出错处理例程的选择选择可以对此加以考虑。
在根据本发明的方法的一个优选实施方式中,计算机系统包含多个计算单元。所述运行时间目标程序在这些计算单元的至少两个上冗余地执行。把该至少两个计算单元的冗余产生的结果进行比较,并且在这些结果不相符时产生一个出错识别信号。
一个包含多个计算单元的计算机系统例如称为双核结构(两个计算单元)或者多处理器结构(多个计算单元)。借助于如本发明所述的方法可以特别地在冗余处理运行时间目标程序的情况下执行一种特别灵活的出错处理。
所述方法最好被应用于一辆汽车中,特别是应用于一个汽车控制设备中,或者应用于一个安全相关的系统中。安全相关的系统例如用于控制飞机。在此领域内,系统而灵活地处理暂态错误并且从而达到对应系统的尽可能高的可供使用性是至关重要的。
有利地在该计算机系统的至少一个计算单元上运行一个操作系统,其中通过该操作系统进行识别码分析和/或出错识别信号的分析和/或出错处理例程的选择。这使得有一个特别快速和可靠的识别的错误的处理,因为操作系统普遍地有处理出现的错误所需要的资源。例如操作系统具有所谓的调度程序,所述调度程序判断在什么时间在一个处理器上执行什么运行时间目标程序。这使得一个操作系统能够特别快速地结束一个运行时间目标程序、重新启动一个运行时间目标程序、或者取代于该运行时间目标程序启动一个出错处理例程。
根据所述方法的一个优选的实施方式,由预先给定的出错处理例程集合中的至少一个出错处理例程实现以下出错处理的多种可能性之
-不进行任何操作:忽略出现的错误。
-中断运行时间目标程序的执行:
-中断该运行时间目标程序的执行并且例如取而代之执行另一个运行时间目标程序。
-中断该运行目标程序的执行并且禁止重新激活该运行时间目标程序:
因此不重新执行在其执行过程中出现错误的运行时间目标程序。
-重复该运行时间目标程序的执行。
-后向恢复;在执行运行时间目标程序的过程中设置检验点并且在出现一个错误的情况下回跳到最后的一个检验点。
-前向恢复:中断该运行时间目标程序的执行并且继续到另一个、后接的点或者重新初始化该运行时间目标程序并且用当前的输入数据开始该运行时间目标程序。
-复位:重新开始整个计算机系统或者一个子系统。
-这些出错处理例程使得能够有一种特别灵活的出现的错误的处理。
优选地根据本发明所述的方法用于处理暂态的错误。然而有利地,根据识别出的错误是一个暂态的错误还是一个永久的错误来进行出错处理例程的选择。
例如可以通过不再执行该运行时间目标程序或者持续地关闭一个子系统处理所识别的永久错误。相反,可以简单地忽略或者借助于一个前向恢复处理一个所识别的暂态错误。
有利地借助于一个检测例程进行一种硬件检测。然后依据检测例程的执行结果产生所述出错识别信号。从而例如可以特别可靠地识别一个硬件缺陷,并且从而推断一个永久的错误。
在一个优选的实施方式中,对不同的错误类型给运行时间目标程序配属不同的识别码。例如在执行一个运行时间目标程序的过程中识别出一个永久的错误,可以选择一个与执行该运行时间目标程序的过程中出现一个暂态错误时不同的出错处理例程。
此外可以针对不同的运行时间环境给运行时间目标程序配属不同的识别码。例如可以为一个在安全相关环境中的执行而给一个运行时间目标程序配属一个识别码,对一个在一个冗余地设置的计算单元上的一个冗余处理配属另一个识别码,以及为在一个时间紧要的环境中的处理配属又一个识别码。该实施方式使得能够有一个更加灵活的在处理一个运行时间目标程序时出现的错误的处理,并且可以更加地提高可供使用性。
所述技术问题还通过开篇中所述类型的一种计算机系统如下地完成:向所述运行时间目标程序配属一个识别码,并且可以依据该识别码从一个预先给定的出错处理例程集合中选择一个可执行的出错处理例程。
有特别意义的是以一个计算机程序的形式实现如本发明所述的方法。在此所述计算机程序可以在一个计算机系统上,特别是在一个计算设施上运行,并且为实施如本发明所述的方法而进行编程。
在此情况下本发明通过该计算机程序实现,从而所述计算机程序以与该计算机程序适用于其实施的所述方法相同的方式产生本发明。该计算机程序优选地存储在一个可机读的数据载体上。作为可机读的数据载体例如可以使用一个随机存储寄存器、一个只读存储器、一个闪存、一个数字通用盘或者一个压缩盘。
本发明的其它应用可能性和优点在以下对附图中所示的实施例的说明中给出。其中:
图1示出一个用于实施如本发明所述的方法的一个计算机系统的部件的示意图;
图2示出一个用于大致示出一个第一实施方式的根据本发明所述的方法的流程图;
图3示出一个用于大致示出一个第二实施方式的根据本发明所述的方法的流程图。
在图1中大致示出一个适用于实施如本发明所述方法的计算机系统1。该计算机系统1具有两个计算单元2、3。所述计算单元例如可以是完整的处理器(CPU)(所谓的双核结构)。该双核结构使得能够如此冗余地运行这两个计算单元2、3:在两个计算单元2、3上同时执行一个过程或者一个运行时间目标程序。所述计算单元2、3还可以是算术逻辑单元,即所谓的算术Iocial单元(ALS)(双ALU结构)。
对这两个计算单元2、3配属一个共同的程序存储器4和一个错误识别单元5。在程序存储器4中存储多个可执行的运行时间目标程序。该错误识别单元5例如构成为比较器,所述比较器使得能够比较由处理器2和3计算的值。
为了进行计算机系统1的基本控制,在计算机系统1上运行一个操作系统6。该操作系统6具有一个调度器7和一个界面8。该调度器7管理由计算单元2、3提供的计算时间,其中,它判断在什么时候哪个过程或者说哪个运行时间目标程序在计算单元2和3上执行。该界面8使错误识别单元5能够借助于一个出错识别信号把识别出的错误告知操作系统6。
操作系统6可以访问一个存储区域9。存储区域9对每个可执行的运行时间目标程序具有配属给该运行时间目标程序的识别码或者一些配属给该运行时间目标程序的识别码。既可以把存储区域9和程序存储器4映射到同一个存储器元件下也可以映射到不同的存储器元件上。该存储器元件或者该一些存储器元件例如可以是配属给计算单元2或者计算单元3的工作存储器或者一个高速缓冲存储器。
可以设想计算机系统1的许多其它的安排。例如计算机系统1可以只有一个计算单元。这样在执行一个运行时间目标程序时的错误例如可以通过错误识别单元5借助于一个边缘检查进行识别。
特别地同一个运行时间目标程序可以在计算单元2、3上多次相继地执行。这样错误识别单元5可以比较相应地产生的结果并且在这些结果相互偏离时推断存在一个错误。
此外可以设想,计算机系统1具有两个以上的计算单元2、3。这样一个运行时间目标程序例如可以在现有的计算单元2、3的三个上冗余地执行。通过比较如此得到的结果错误识别单元5可以识别存在一个错误。
在图2中示意地示出如本发明所述的方法的一个流程图。该方法开始于步骤100。在一个步骤101中调度器7发起计算单元2、3从程序存储器4中读取一个运行时间目标程序并且执行它。
在一个步骤102中检验是否在执行该运行时间目标程序时存在错误。这由比较计算单元2、3冗余计算的结果的错误识别单元5进行。如果不存在错误,就返回步骤101并且在计算单元2、3中执行另一个运行时间目标程序。
然而如果在步骤102中识别出一个错误,就在步骤103中由错误识别单元5产生一个出错识别信号并且通过界面8通知操作系统6。
在一个步骤104中操作系统6查明出错的运行时间目标程序。该信息例如可以从调度器7得到。
在步骤105中确定配属给在步骤104中确定的出错的运行时间目标程序的识别码。为此例如可以在存储器区域9中设置一个列表,在所述列表中对每个可执行的运行时间目标程序存储配属于它的识别码。
此外还可以把配属给运行时间目标程序的识别码与运行时间目标程序本身一起存储在程序存储器4中。如果把一个运动时间目标程序加载进计算单元2、3去执行,可以提出把该识别码存放进配属给相应的计算单元2、3的存储区域中,例如在一个寄存器中。在此情况下,操作系统6可以从相应的计算单元2、3请求该运行时间目标程序的识别码。
还可以设想,错误识别单元确定配属给该运行时间目标程序的识别码并且与所述出错识别信号一起,例如作为参数,通过界面8向所述操作系统提供。
在一个步骤106中依据所述出错识别信号和配属给该运行时间目标程序的识别码选取一个出错处理例程。在此配属给该运行时间目标程序的识别码可以单义地确定要选取的出错处理例程。例如所述识别码确定,应当中断该出现的运行时间目标程序,并且不应当再激活。该识别码同样可以确定应当回跳到一个预先给定的检验点,并且应当从该点重新地执行该运行时间目标程序(后向恢复)。
此外该识别码还可以确定是进行一个前向恢复、重复执行该运行时间目标程序还是不应当进行任何其它的出错处理。
如果从由错误识别单元5向操作系统6传输的出错识别信号提取所出现的错误的类型是特别有利的。例如所述类型可以说明,所述错误涉及一个暂态的还是一个永久的错误。此外还可以如此地安排所述错误信号:从中提取一个在计算单元2、3关于在哪个上出现所述错误的信息。在此例如可以向运行时间目标程序配属多个识别码。在此一个第一识别码可以说明出现永久错误时要执行的出错处理例程。在此一个第二识别码可以标示出现暂态错误时要执行的出错处理例程。
特别在计算机系统1安排成多处理器系统或者安排成多ALU系统时,使出错处理例程的选取取决于运行时间目标程序是否出现在一个或者多个处理器上或者ALS上可能是有利的。该信息例如可以从出错识别信号中提取。因此在运行时间目标程序只在一个计算单元2、3上执行并且该该运行目标程序错误地在多个计算单元2、3上执行的情况下,该运行时间目标程序可能有不同的识别码。
在一个步骤107中进行出错处理,其中执行由操作系统6选取的出错处理例程。依据选取的出错处理例程,例如该操作系统可以发动中断当前在计算单元2、3上执行的运行时间目标程序的调度器7屏弃所有中断的值并且重新开始该运行时间目标程序。在一个步骤108中如本发明所述的方法终止出错处理。然而在图2中所示的一个串行地执行运行时间目标程序并且接着在该位置上检验存在一个错误的程序处理不必同样地结束。如果在达到步骤108时该程序的执行还没有结束,可以回跳到步骤101(虚线)。
在图3中借助于一个流程图示意地示出如本发明所述方法的另一个实施方式,其中考虑在选择要执行的出错处理例程时的其它的参量。
该方法开始于一个步骤200。步骤201至205可以对应于在图2中所示和说明的步骤101至105。
在步骤206中查明表征所述运行目标程序或者该运行目标程序的执行的参量。一种表征运行时间目标程序的参量例如可以描述一个配属给该运行时间目标程序的安全相关性。此外表征所述运行目标程序的参量还可以描述是否其它的运行时间目标程序和其它运行时间目标程序的那个需要由当前的运行时间目标程序计算出的参量,或者是否其它的运行时间目标程序和其它运行时间目标程序的那个与由当前的运行时间目标程序计算的参量相关。从而可以因此相互地描述运行时间目标程序的相关性。
所述表征一个运行目标程序执行的参量例如可以说明:是否在出现错误的时间就已经由该运行时间目标程序进行了一次存储器访问,是否在加载该运行时间目标程序后不久出现的该错误,是否要由该运行时间计算的参量由其它运行时间目标程序所急需和/或者为还能够为执行该运行时间目标程序所提供使用的时间段有多长。然后可以在选择出错处理例程时考虑这些参量。例如如果还有足够的时间供重新执行整个的该运行时间目标程序使用,就可以提出进行一个后向恢复或者一个前向恢复。
在一个步骤207中查明,是存在一个永久的错误还是存在一个暂态的错误。为此可以一起引导一个出错计数器,所述计数器表明在执行一定的运行时间目标程序时一个错误出现得多频繁。
步骤206和207暂时彼此相关联并且可以相应地单个执行。还可以按相反的顺序执行。此外还可以设想,在步骤207中使用于步骤206中查明的表征该运行时间目标程序或者表征该运行时间目标程序执行的参量查明错误类型的输入值。在此情况下这两个步骤206和207必须按所说明的顺序执行。最后步骤206和207不必串行地执行;还可以并行地执行它们。
此外还可以对计算机系统1的单个硬件单元,也就是说例如计算单元2、3,配属一个出错计数器。例如如果确定在计算机系统1的计算单元2、3上特别是许多运行时间目标程序的执行是错误的,就可以推断存在一个永久的错误(例如一个硬件故障)。
在步骤208中选择出错处理例程。为此把在步骤205至207中查明的参量,特别是配属一个或者多个出错的运行时间目标程序的识别码,考虑一个或者多个表征该运行时间目标程序或者该运行时间目标程序的参量以及出现的错误的类型。
出错处理例程例如通过操作系统6选择。该选择可以借助于上述的参量用一种判断树进行。
在一个步骤209中进行出错处理并且在一个步骤201中结束如本发明所述的方法。然而在此处不必同样地结束在图3中所示的以串行执行运行时间目标程序的程序的处理和接着的对存在一个错误的检验。如果在达到步骤210时还没有结束该程序的执行,可以回跳到步骤201(虚线)。
因此用如本发明所述的方法可以在计算机系统上编程或者执行或者安装一个运行时间目标程序时就已经确定在出现一个错误时应当执行哪个出错处理例程。这使得可以有特别灵活的并且适配于所执行的运行时间目标程序的出错处理。特别地,根据本发明可以对一个运行时间目标程序配属多个识别码。从而可以更加灵活地安排错误例程的选择。
优选地,可以运用一个表征错误类型(暂态的/永久的),一个表征运行时间目标程序本身或者该运行目标程序的执行的参量去选择出错处理例程。此外还可以在选择出错处理例程时考虑由错误识别单元5查明的信息,例如出现该错误时运行在其上执行该时间目标程序的计算单元2、3的标识。在此可以从所考虑的运行时间目标程序是只在一个计算单元2、3上执行还是同时在这两个计算单元2、3上执行的信息推断该运行时间目标程序在当前的工作时间点的安全相关性。此外还可以调用计算机系统和/或该计算机系统的外围设备(例如传感器当前值域和/或输出量的值域)的其它信息估算该运行时间环境的当前的安全相关性。从而可以有在一个计算机系统上的一个更加灵活的出错处理。
在步骤107或者209中进行出错处理的过程中还可以检验例如是否一个由该出错处理例程发起的出错的运行时间目标程序的重新执行又导致一个错误。在此情况下可以提出,重新地选择一个出错处理例程,在此次然而是选择另一个出错处理例程。例如在此情况下可以提出,关闭整个系统或者一个子系统。

Claims (17)

1、用于在计算机系统(1)上执行计算机程序的方法,所述计算机系统包含至少一个计算单元(2、3),其中所述计算机程序包含至少一个运行时间目标程序,其中通过一个错误识别单元(5)识别在执行该运行时间目标程序的过程中出现的错误,并且在识别出错误的情况下,所述错误识别单元(5)产生一个出错识别信号,
其特征在于,
依据配属给该运行时间目标程序的一个识别码,从一个预先给定的出错处理例程中选取一个出错处理例程并且执行该所选取的出错处理例程。
2、根据权利要求1所述的方法,
其特征在于,
附加地,依据出错识别信号来选取所述出错处理例程。
3、根据权利要求1或2所述的方法,
其特征在于,
依据至少一个表征所执行的运行时间目标程序和/或表征执行该运行时间目标程序的参量来进行所述出错处理。
4、根据以上权利要求之一所述的方法,
其特征在于,
所述计算机系统包含多个计算单元(2、3),所述运行时间目标程序在至少两个计算单元(2、3)的上冗余地执行,把该至少两个计算单元(2、3)的冗余产生的结果进行比较,并且在这些结果不相符时产生一个出错识别信号。
5、根据以上权利要求之一所述的方法,
其特征在于,
所述方法被应用于一辆汽车中,特别是用于一个汽车控制设备中。
6、根据以上权利要求之一所述的方法,
其特征在于,
所述方法被应用于一个安全相关的系统中。
7、根据以上权利要求之一所述的方法,
其特征在于,
在计算机系统(1)的至少一个计算单元(2、3)上运行一个操作系统(6),并且通过该操作系统(6)进行识别码分析和/或出错识别信号的分析和/或出错处理例程的选择。
8、根据以上权利要求之一所述的方法,
其特征在于,
预先给定的出错处理例程集合中的至少一个出错处理例程实现以下出错处理的多种可能性之一:
a.不进行任何操作;
b冲断运行时间目标程序的执行;
c.中断该运行目标程序的执行并且禁止重新激活该运行时间目标程序;
d.重复该运行时间目标程序的执行;
e.后向恢复;
f.前向恢复;
g.复位。
9、根据以上权利要求之一所述的方法,
其特征在于,
所述出现的错误是暂态的错误。
10、根据以上权利要求之一所述的方法,
其特征在于,
附加地依据所识别的错误是一个暂态的错误还是一个永久的错误来进行出错处理例程的选择。
11、根据以上权利要求之一所述的方法,
其特征在于,
借助于一个检测例程进行一种硬件检测,并且依据该检测例程的执行结果产生所述出错识别信号。
12、根据以上权利要求之一所述的方法,
其特征在于,
针对不同的错误类型给运行时间目标程序配属不同的识别码。
13、计算机程序,所述计算机程序可以在一个计算机系统(1)上运行,
其特征在于,
当该计算机程序在所述计算机系统(1)上运行时,所述计算机程序可以实施根据权利要求1至12之一所述的方法。
14、根据权利要求13所述的计算机程序,
其特征在于,
所述计算机程序被构成为操作系统(6)。
15、可机读的数据载体,在其上存储一种计算机程序,其中该计算机程序可以在计算机系统(1)上执行,
其特征在于,
当在所述计算机系统(1)上执行该计算机程序时,它可以实施根据权利要求1至12之一所述的方法。
16、计算机系统(1),在其上可以执行一种计算机程序,所述计算机程序包含至少一个运行时间目标程序,并且可以通过一个错误识别单元(5)识别一个在执行该运行时间目标程序过程中出现的错误,
其特征在于,
向所述运行时间目标程序配属一个识别码,并且依据该识别码从一个预先给定的出错处理例程集合中选取一个可执行的出错处理例程。
17、根据权利要求16所述的计算机系统(1),
其特征在于,
所述计算机系统(1)具有一个用于实施一个如权利要求1至12之一所述方法的计算机程序。
CN200580032522.9A 2004-09-25 2005-09-12 在计算机系统上执行计算机程序的方法 Expired - Fee Related CN101027647B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102004046611A DE102004046611A1 (de) 2004-09-25 2004-09-25 Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem
DE102004046611.4 2004-09-25
PCT/EP2005/054513 WO2006032617A1 (de) 2004-09-25 2005-09-12 Verfahren zur abarbeitung eines computerprogramms auf einem computersystem

Publications (2)

Publication Number Publication Date
CN101027647A true CN101027647A (zh) 2007-08-29
CN101027647B CN101027647B (zh) 2013-05-01

Family

ID=35447817

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200580032522.9A Expired - Fee Related CN101027647B (zh) 2004-09-25 2005-09-12 在计算机系统上执行计算机程序的方法

Country Status (6)

Country Link
US (1) US8316261B2 (zh)
EP (1) EP1794680A1 (zh)
JP (1) JP4903149B2 (zh)
CN (1) CN101027647B (zh)
DE (1) DE102004046611A1 (zh)
WO (1) WO2006032617A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102460396A (zh) * 2009-06-27 2012-05-16 宝马股份公司 计算机辅助地检测由部件构成的系统中一个或多个基于软件的程序运行中的错误的方法
CN102937921A (zh) * 2011-11-14 2013-02-20 新游游戏株式会社 处理异常终止的方法和执行该方法的服务器
CN108349081A (zh) * 2015-11-11 2018-07-31 库卡德国有限公司 用于修正操纵器系统的错误的方法和计算机程序
CN116319269A (zh) * 2023-05-19 2023-06-23 南方电网数字电网研究院有限公司 具备通讯故障自检及快速隔离的新能源边缘侧通信模块

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294584A1 (en) * 2006-04-28 2007-12-20 Microsoft Corporation Detection and isolation of data items causing computer process crashes
US20090024870A1 (en) * 2007-07-20 2009-01-22 Telefonaktiebolaget Lm Ericsson System and method for managing application server responses in ip multimedia subsystem
DE102007056218A1 (de) * 2007-11-22 2009-05-28 Robert Bosch Gmbh Verfahren zur Behandlung von transienten Fehlern in Echtzeitsystemen, insbesondere in Steuergeräten von Kraftfahrzeugen
DE102013208666A1 (de) 2013-05-13 2014-11-13 Zf Friedrichshafen Ag Verfahren und Vorrichtung zur Absicherung eines Errorhandlers für eine Abarbeitung eines Computerprogramms auf einem Rechnersystem
DE102015222164A1 (de) 2015-11-11 2017-05-11 Kuka Roboter Gmbh Verfahren und Computerprogramm zur Erzeugung einer grafischen Benutzerschnittstelle eines Manipulatorprogramms
US10216521B2 (en) * 2017-06-20 2019-02-26 Nvidia Corporation Error mitigation for resilient algorithms
KR102259928B1 (ko) * 2017-06-26 2021-06-03 에스케이하이닉스 주식회사 오류 관리 시스템 및 이를 포함하는 데이터 처리 시스템
WO2019174709A1 (de) 2018-03-12 2019-09-19 Celonis Se Verfahren zur behebung von prozessanomalien

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155729A (en) * 1990-05-02 1992-10-13 Rolm Systems Fault recovery in systems utilizing redundant processor arrangements
JP2779559B2 (ja) * 1991-09-04 1998-07-23 本田技研工業株式会社 レーダ装置
JPH0635758A (ja) 1992-07-20 1994-02-10 Fujitsu Ltd プログラム監視制御装置
DE4439060A1 (de) 1994-11-02 1996-05-09 Teves Gmbh Alfred Mikroprozessoranordnung für ein Fahrzeug-Regelungssystem
US5619409A (en) * 1995-06-12 1997-04-08 Allen-Bradley Company, Inc. Program analysis circuitry for multi-tasking industrial controller
JPH09120368A (ja) 1995-10-25 1997-05-06 Unisia Jecs Corp Cpu監視装置
US5928369A (en) 1996-06-28 1999-07-27 Synopsys, Inc. Automatic support system and method based on user submitted stack trace
US6012148A (en) * 1997-01-29 2000-01-04 Unisys Corporation Programmable error detect/mask utilizing bus history stack
DE19720618A1 (de) * 1997-05-16 1998-11-19 Itt Mfg Enterprises Inc Mikroprozessorsystem für Kfz-Regelungssysteme
US6334193B1 (en) * 1997-05-29 2001-12-25 Oracle Corporation Method and apparatus for implementing user-definable error handling processes
JPH11259340A (ja) 1998-03-10 1999-09-24 Oki Comtec:Kk コンピュータの再起動制御回路
US6948092B2 (en) * 1998-12-10 2005-09-20 Hewlett-Packard Development Company, L.P. System recovery from errors for processor and associated components
US6393582B1 (en) * 1998-12-10 2002-05-21 Compaq Computer Corporation Error self-checking and recovery using lock-step processor pair architecture
US6366980B1 (en) * 1999-06-04 2002-04-02 Seagate Technology Llc Disc drive for achieving improved audio and visual data transfer
US6615374B1 (en) * 1999-08-30 2003-09-02 Intel Corporation First and next error identification for integrated circuit devices
CN1141644C (zh) * 1999-11-20 2004-03-10 深圳市中兴通讯股份有限公司 一种嵌入处理机内存的检测和监控方法
US6625749B1 (en) * 1999-12-21 2003-09-23 Intel Corporation Firmware mechanism for correcting soft errors
JP2001357637A (ja) 2000-06-14 2001-12-26 Sony Corp 情報再生装置、情報処理方法及び情報記録媒体
DE10056408C1 (de) 2000-11-14 2002-03-07 Bosch Gmbh Robert Vorrichtung zur Überwachung eines Prozessors
US7058927B2 (en) * 2000-12-21 2006-06-06 Veritas Operating Corporation Computer software run-time analysis systems and methods
US6950978B2 (en) * 2001-03-29 2005-09-27 International Business Machines Corporation Method and apparatus for parity error recovery
US6931571B2 (en) * 2001-11-20 2005-08-16 Hewlett-Packard Development Company, L.P. Method and apparatus for handling transient memory errors
US7194671B2 (en) * 2001-12-31 2007-03-20 Intel Corporation Mechanism handling race conditions in FRC-enabled processors
US7418618B2 (en) * 2003-01-08 2008-08-26 Transpacific Ip Ltd. Error reporting and correcting method for peripheral
US20040078650A1 (en) * 2002-06-28 2004-04-22 Safford Kevin David Method and apparatus for testing errors in microprocessors
US7251755B2 (en) * 2004-02-13 2007-07-31 Intel Corporation Apparatus and method for maintaining data integrity following parity error detection
US7716652B2 (en) * 2004-03-30 2010-05-11 Symantec Corporation System and methods for tracing transactions
US7263631B2 (en) * 2004-08-13 2007-08-28 Seakr Engineering, Incorporated Soft error detection and recovery
DE102004046288A1 (de) 2004-09-24 2006-03-30 Robert Bosch Gmbh Verfahren zur Abarbeitung eines Computerprogramms auf einem Computersystem

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102460396A (zh) * 2009-06-27 2012-05-16 宝马股份公司 计算机辅助地检测由部件构成的系统中一个或多个基于软件的程序运行中的错误的方法
CN102460396B (zh) * 2009-06-27 2016-03-02 宝马股份公司 计算机辅助地检测由部件构成的系统中一个或多个基于软件的程序运行中的错误的方法
CN102937921A (zh) * 2011-11-14 2013-02-20 新游游戏株式会社 处理异常终止的方法和执行该方法的服务器
CN108349081A (zh) * 2015-11-11 2018-07-31 库卡德国有限公司 用于修正操纵器系统的错误的方法和计算机程序
US11065766B2 (en) 2015-11-11 2021-07-20 Kuka Deutschland Gmbh Method and computer program for correcting errors in a manipulator system
CN108349081B (zh) * 2015-11-11 2021-08-03 库卡德国有限公司 用于修正操纵器系统的错误的方法和计算机程序
CN116319269A (zh) * 2023-05-19 2023-06-23 南方电网数字电网研究院有限公司 具备通讯故障自检及快速隔离的新能源边缘侧通信模块
CN116319269B (zh) * 2023-05-19 2023-09-15 南方电网数字电网研究院有限公司 具备通讯故障自检及快速隔离的新能源边缘侧通信模块

Also Published As

Publication number Publication date
CN101027647B (zh) 2013-05-01
WO2006032617A1 (de) 2006-03-30
US8316261B2 (en) 2012-11-20
JP2008513900A (ja) 2008-05-01
JP4903149B2 (ja) 2012-03-28
DE102004046611A1 (de) 2006-03-30
US20080201618A1 (en) 2008-08-21
EP1794680A1 (de) 2007-06-13

Similar Documents

Publication Publication Date Title
CN101027647B (zh) 在计算机系统上执行计算机程序的方法
CN109891393B (zh) 使用检查器处理器的主处理器错误检测
CN1095115C (zh) 在超标量处理器中检测和执行俘获的装置
CN112015599B (zh) 错误恢复的方法和装置
CN100549946C (zh) 用于执行数据处理操作的装置和方法
CN1993679B (zh) 执行计算机程序的方法、操作系统和计算设备
CN101243407A (zh) 用于控制具有至少两个执行单元和一个比较单元的计算器系统的方法和装置
CN101763291A (zh) 一种程序控制流错误检测方法
CN104335186A (zh) 处理器辅助设施
CN101373450B (zh) 处理cpu异常的方法及系统
US20080133975A1 (en) Method for Running a Computer Program on a Computer System
US6553512B1 (en) Method and apparatus for resolving CPU deadlocks
US20090307526A1 (en) Multi-cpu failure detection/recovery system and method for the same
CN100538644C (zh) 执行计算机程序的方法、计算设备
US20110208948A1 (en) Reading to and writing from peripherals with temporally separated redundant processor execution
CN109885489A (zh) 驱动程序中数据竞争检测方法及装置
US7613950B2 (en) Detecting floating point hardware failures
CN100511165C (zh) 执行计算机程序的方法、操作系统以及计算设备
US7353343B2 (en) Memory management system for preventing program execution when CPU fetches execution code from unoccupied region of memory
CN103713881A (zh) 推测性特权提升
KR102202633B1 (ko) 오류 처리 프로세서 및 이를 이용한 오류 처리 방법
WO2016147334A1 (ja) プロセッサの診断装置及び診断方法
US20240045854A1 (en) Method for checking a processing of payload data
CN113434247B (zh) 一种java卡虚拟机的安全防护方法
Rodríguez et al. A watchdog processor architecture with minimal performance overhead

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130501

Termination date: 20170912