(57)【要約】少なくとも１つのランタイムオブジェクトを備えるコンピュータプログラムをコンピュータシステム（１）上で実行するに際して、エラー認識ユニット（５）によって認識可能なエラーが生じる場合がある。本発明の目的は、認識されたエラーを特に柔軟に処理し、かつコンピュータシステム（１）の可用性を可能な限り維持することにある。本目的を達成するために、ランタイムオブジェクトに対応づけられた識別子に応じて、予め設定可能なエラー処理ルーチン群から１つのエラー処理ルーチンが選択され、選択されたエラー処理ルーチンが実行されることが提案される。【選択図】図１
2008513900.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの計算ユニット（２、３）を備えるコンピュータシステム（１）上でコンピュータプログラムを処理する方法であって、前記コンピュータプログラムが少なくとも１つのランタイムオブジェクトを備え、前記ランタイムオブジェクトの実行中に生じたエラーがエラー認識ユニット（５）によって認識され、かつエラーの認識に際して前記エラー認識ユニット（５）がエラー認識信号を生成する、前記方法において、
前記ランタイムオブジェクトに対応づけられた識別子に応じて、予め設定可能なエラー処理ルーチン群から１つのエラー処理ルーチンが選択され、選択された前記エラー処理ルーチンが実行されることを特徴とする、コンピュータプログラムを処理する方法。
【請求項２】
前記エラー処理ルーチンが、付加的に、前記エラー認識信号に応じて選択されることを特徴とする、請求項１に記載の方法。
【請求項３】
実行される前記ランタイムオブジェクトおよび／または前記ランタイムオブジェクトの実行を特徴づける少なくとも１つの変数に応じて、前記エラー処理が実行されることを特徴とする、請求項１または２に記載の方法。
【請求項４】
前記コンピュータシステム（１）が複数の計算ユニット（２、３）を備え、前記ランタイムオブジェクトが少なくとも２つの前記計算ユニット（２、３）上で冗長的に実行され、少なくとも２つの前記計算ユニット（２、３）で冗長的に生じた結果の比較が実行され、前記結果が一致しない場合には、エラー認識信号が生成されることを特徴とする、請求項１〜３のいずれかに記載の方法。
【請求項５】
車両内、特に車両制御装置内で用いられることを特徴とする、請求項１〜４のいずれかに記載の方法。
【請求項６】
安全上重要なシステム内で用いられることを特徴とする、請求項１〜５のいずれかに記載の方法。
【請求項７】
前記コンピュータシステム（１）の少なくとも１つの計算ユニット（２、３）上で駆動システム（６）が動作し、前記識別子の評価および／または前記エラー認識信号の評価および／または前記エラー処理ルーチンの選択が駆動システム（６）によって行われることを特徴とする、請求項１〜６のいずれかに記載の方法。
【請求項８】
予め設定可能な前記エラー処理ルーチン群内の少なくとも１つのエラー処理ルーチンが、次のエラー処理可能性、すなわち、ａ）動作を実行しない、ｂ）前記ランタイムオブジェクトの実行の中断、ｃ）前記ランタイムオブジェクトの実行の中断と前記ランタイムオブジェクトの新たな起動の禁止、ｄ）前記ランタイムオブジェクトの実行の繰返し、ｅ）バックワードリカバリー、ｆ）フォワードリカバリー、ｇ）リセットのいずれかを実現することを特徴とする、請求項１〜７のいずれかに記載の方法。
【請求項９】
発生した前記エラーが過渡的エラーであることを特徴とする、請求項１〜８のいずれかに記載の方法。
【請求項１０】
前記エラー処理ルーチンの選択が、付加的に、認識された前記エラーが過渡的エラーおよび恒久的エラーのいずれであるかに応じて実行されることを特徴とする、請求項１〜９のいずれかに記載の方法。
【請求項１１】
テストルーチンを用いてハードウェアテストが実行され、前記テストルーチンの処理結果に応じて前記エラー認識信号が生成されることを特徴とする、請求項１〜１０のいずれかに記載の方法。
【請求項１２】
前記ランタイムオブジェクトに、異なるエラー種類および／または異なるランタイム環境についての異なる識別子が対応づけられることを特徴とする、請求項１〜１１のいずれかに記載の方法。
【請求項１３】
コンピュータシステム（１）上で実行可能なコンピュータプログラムであって、前記コンピュータシステム（１）上で実行された場合に、請求項１〜１２のいずれかに記載の方法を実行することを特徴とする、コンピュータプログラム。
【請求項１４】
が駆動システム（６）として形成されることを特徴とする、請求項１３に記載のコンピュータプログラム。
【請求項１５】
コンピュータシステム（１）上で実行可能なコンピュータプログラムが記憶されたコンピュータ読取可能なデータ媒体であって、
前記コンピュータシステム（１）上で前記コンピュータプログラムが実行された場合に、請求項１〜１２のいずれかに記載の方法を実行することを特徴とするコンピュータ読取可能なデータ媒体。
【請求項１６】
コンピュータプログラムを実行可能なコンピュータシステム（１）であって、前記コンピュータプログラムが少なくとも１つのランタイムオブジェクトを備え、前記ランタイムオブジェクトの実行中に生じたエラーがエラー認識ユニット（５）によって認識可能である、前記コンピュータシステムにおいて、
前記ランタイムオブジェクトに識別子が対応づけられ、前記識別子に応じて、予め設定可能なエラー処理ルーチン群から１つの実行可能な前記エラー処理ルーチンが選択可能であることを特徴とするコンピュータシステム。
【請求項１７】
請求項１〜１２のいずれかに記載の方法を実行するためのコンピュータプログラムを備えることを特徴とする、請求項１６に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つの計算ユニットを備えるコンピュータシステム上でコンピュータプログラムを処理する方法に関する。コンピュータプログラムは、少なくとも１つのランタイムオブジェクトを備える。ランタイムオブジェクトの実行中に生じたエラーは、エラー認識ユニットによって認識される。エラーの認識に際してエラー認識ユニットがエラー認識信号を生成する。
【０００２】
本発明は、また、コンピュータプログラムを実行可能なコンピュータシステムに関する。コンピュータプログラムは、少なくとも１つのランタイムオブジェクトを有する。コンピュータシステム上でランタイムオブジェクトを実行中に生じたエラーは、エラー認識ユニットによって認識可能である。
【０００３】
本発明は、さらに、コンピュータシステム上で実行可能なコンピュータプログラムと、コンピュータプログラムが記憶されたコンピュータ読取可能なデータ媒体に関する。
【背景技術】
【０００４】
コンピュータ上でコンピュータプログラムを処理する際には、エラーが生じる場合がある。エラーは、ハードウェア（プロセッサ、バスシステム、周辺機器等）に起因するか、またはソフトウェア（アプリケーションプログラム、駆動システム、ＢＩＯＳ等）に起因するかで区別される。
【０００５】
エラーの発生に際して、さらに、恒久的エラーと過渡的エラーとが区別される。恒久的エラーは、常に存在し、例えばエラーを伴うハードウェアまたはエラーを伴ってプログラミングされたソフトウェアに起因する。対照的に、過渡的エラーは、一時的にのみ発生し、よって再現可能性および予測可能性が極めて低い。二進値により格納、伝送および／または処理されるデータでは、過渡的エラーは、例えば電磁的な影響または放射（アルファ放射、中性子放射）によって個々のビットが変化されることによって生じる。
【０００６】
通常、コンピュータプログラムは、複数のランタイムオブジェクトに分割され、それらが逐次的または並列的にコンピュータシステム上で実行される。ランタイムオブジェクトは、例えばプロセス、タスクまたはスレッドである。よって、コンピュータプログラムの実行中に生じるエラーは、実行されるランタイムオブジェクトに原理的に対応づけ可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
恒久的エラーの処理は、通常、コンピュータシステムの終了または少なくとも部分システムの終了に基づく。しかし、これらは、コンピュータシステムまたは部分システムの機能性がもはや提供されなくなるという欠点を有する。それにもかかわらず、特に安全上重要な環境で確実な動作を保証可能にするために、コンピュータシステムの部分システムが、例えば冗長的に設けられる。
【０００８】
過渡的エラーも、部分システムの終了によって頻繁に処理される。さらに、過渡的エラーの発生に際して、１つまたは複数の部分システムを終了し、新たに開始し、例えばセルフテストによってコンピュータプログラムのエラーを伴わない処理を論理的に決定（schliessen）することが知られている。新たなエラーが認識されなければ、部分システムは当該作業を続行する。この場合、エラーによって中断されたタスクもしくはその時点までに処理されたランタイムオブジェクトがさらに実行されないようにできる（いわゆるフォワードリカバリー）。フォワードリカバリーは、例えばリアルタイム処理可能なシステムに適用される。
【０００９】
特にリアルタイム処理不能なアプリケーションでは、コンピュータプログラムもしくはランタイムオブジェクトの予め設定可能な箇所にチェックポイントを設定することが知られている。過渡的エラーが生じ、その結果部分システムが新たに開始されると、タスクは、最後に処理されたチェックポイントで再び開始される。この種のバックワードリカバリーと称される方法は、例えば金融市場でトランザクションを実行するために用いられるコンピュータシステムに適用される。
【００１０】
発生した過渡的エラーを処理するための既知の方法は、コンピュータシステム全体または少なくとも部分システムが一時的に可用性を失うので、コンピュータプログラムの処理遅延およびデータ損失を生じる場合があるという欠点を有する。
【００１１】
よって、本発明の課題は、コンピュータシステム上でコンピュータプログラムを処理する際に生じるエラーを可能な限り柔軟に処理するとともに、コンピュータシステムの可用性を可能な限り高く保証することである。
【発明を解決するための手段】
【００１２】
上記課題を解決するために、冒頭に記載された種類の方法に基づいて、予め設定可能なエラー処理ルーチン群からランタイムオブジェクトに対応づけられた識別子に応じて１つの処理ルーチンが選択され、選択された処理ルーチンが実行されることが提案される。
【００１３】
本発明によれば、コンピュータシステム上で実行される１つまたは複数のランタイムオブジェクトに、少なくとも１つのエラー処理ルーチンを示す識別子が対応づけられる。ランタイムオブジェクトの実行中にエラーが生じると、ランタイムオブジェクトの識別子に相当するエラー処理ルーチンが選択されて実行される。識別子は、例えばランタイムオブジェクトのプログラミングの時点で、あるいはランタイムオブジェクトのコンピュータシステム上へのインストールの時点で、すでに決定可能である。よって、コンピュータシステムのプログラミングの時点、もしくはコンピュータプログラムのコンピュータシステム上へのインストールの時点で、エラーが生じた場合に実行すべきエラー処理ルーチンがすでに決定可能となる。
【００１４】
例えば、安全上重要および／またはクリティカルな機能に関するランタイムオブジェクトには、リアルタイム処理不能な機能に関するランタイムオブジェクトと異なる識別子が対応づけ可能である。これが、異なるランタイムオブジェクトで生じるエラーの非常に柔軟な処理を可能にする。
【００１５】
特に、本発明に基づく方法によれば、ランタイムオブジェクトの処理に際してエラーが生じた場合に、部分システムまたはさらにコンピュータシステム全体を常に再起動する必要がなくなる。むしろ、エラー処理機構の柔軟な選択が可能となる。よって、システム全体の可用性が著しく向上される。
【００１６】
本発明に基づく方法の望ましい展開によれば、エラー処理ルーチンは、付加的に、エラー認識ユニットによって生成されたエラー認識信号に応じて選択される。エラー認識ユニットは、例えば、エラーがハードウェアエラーであるか、もしくはソフトウェアエラーであるか、またはいずれのハードウェアユニット（プロセッサ、バスシステム、メモリ等）がエラーを生じさせたかを決定可能である。さらに、エラー認識ユニットは、発生したエラーが恒久的エラーであるか、または過渡的エラーであるかを決定可能である。このために、エラー認識ユニットは、各ランタイムオブジェクトに関して、発生したエラーの数を計数するカウンタを設けうる。所定のランタイムオブジェクトの実行に際して特に多くのエラーが生じれば、エラー認識ユニットは、恒久的エラーを論理的に決定（schliessen）可能であり、カウンタが非常に小さな値のみを有する場合とは異なるエラー認識信号を生成可能である。特に、エラー認識信号は、確定された変数に関する情報、例えばランタイムオブジェクトの処理に際してすでに生じたエラーの数の現在のカウンタ状態を内容として含むことが考えられる。これは、エラー処理ルーチンの特に柔軟な選択を可能にする。
【００１７】
コンピュータシステムが、例えば複数の計算ユニットを備えれば、ランタイムオブジェクトが実行されてエラーを生じた計算ユニットがエラー認識信号を用いて識別可能となる。同一のランタイムオブジェクトが、例えば複数の計算ユニット上で実行され、かつ計算ユニットが安全上の重要性を異にする様々な環境に対応づけられていれば、ランタイムオブジェクトに常に同一の識別子が対応づけられているにもかかわらず、ランタイムオブジェクトの処理中におけるエラーの発生に際して、ランタイムオブジェクトの各々が実行された計算ユニットに応じて、異なるエラー処理ルーチンを選択可能となる。
【００１８】
複数の計算ユニットが冗長的に設けられ、かつ計算ユニット上でランタイムオブジェクトが冗長的に実行されれば、エラー処理は、例えば、エラーを生じた計算ユニットから提供される結果を、後続処理に際して（例えば続いて多数決（Voting）により論理的に決定する際には）無視可能である。よって、発生したエラーの更なる柔軟な処理が可能となる。
【００１９】
望ましくは、実行されるランタイムオブジェクトおよび／またはランタイムオブジェクトの実行を特徴づける少なくとも１つの変数に応じて、エラー処理が実行される。この種の変数は、例えばランタイムオブジェクトに対応づけられた優先順位でありうる。よって、付加的に、実行されるランタイムオブジェクトの優先順位に応じて、エラー処理が実行可能となる。
【００２０】
ランタイムオブジェクトの実行を特徴づける変数は、すでに行われた、または与えられた処理時間を表すこともできる。例えばランタイムオブジェクトのロード直後にエラーが生じれば、ランタイムオブジェクト全体をもう一度ロードして実行させることもできる。しかし、ランタイムオブジェクトが与えられた処理時間のすでに終了直前にあり、あるいは他のランタイムオブジェクトが早急に処理されるべきであれば、処理中にエラーが生じたランタイムオブジェクトを単純に終了させることもできる。
【００２１】
ランタイムオブジェクトの実行を特徴づける変数は、さらに、他のランタイムオブジェクトとのデータ交換またはメモリアクセスが行われているか否かを記述することができる。この場合、エラー処理ルーチンの選択がこの記述を考慮することができる。
【００２２】
本発明に基づく方法の望ましい実施形態では、コンピュータシステムが複数の計算ユニットを備える。ランタイムオブジェクトは、少なくとも２つの計算ユニット上で冗長的に実行される。少なくとも２つの計算ユニットで冗長的に生じた結果の比較が実行され、結果が一致しない場合には、エラー認識信号が生成される。
【００２３】
複数の計算ユニットを備えるコンピュータシステムは、例えばデュアルコアアーキテクチャ（２つの計算ユニット）またはマルチプロセッサアーキテクチャ（複数の計算ユニット）と称される。本発明に基づく方法を用いて、特にランタイムオブジェクトの冗長的な処理に際して、特に柔軟なエラー処理が実行可能となる。
【００２４】
望ましくは、本方法は、車両内、特に車両制御装置内、または安全上重要なシステム内で用いられる。安全上重要なシステムは、例えば航空機の制御に用いられる。この分野では、過渡的エラーを系統的かつ柔軟に処理し、よって該当するシステムの可用性を可能な限り高くすることが特に重要である。
【００２５】
望ましくは、コンピュータシステムの少なくとも１つの計算ユニット上で駆動システムが動作し、識別子の評価および／またはエラー認識信号の評価および／またはエラー処理ルーチンの選択が駆動システムによって行われる。これにより、認識されたエラーの特に迅速かつ確実な処理が可能となる。というのは、駆動システムは、通常、発生したエラーの処理に必要とされるリソースへのアクセスを備えるためである。例えば、駆動システムは、いずれのランタイムオブジェクトがプロセッサ上でいつ実行されるかを決定する、いわゆるスケジューラを有する。スケジューラは、駆動システムに、特にランタイムオブジェクトを迅速に終了し、新たに開始し、またはランタイムオブジェクトの代りにエラー処理ルーチンを開始することを促すことができる。
【００２６】
本方法の望ましい実行形態では、予め設定可能なエラー処理ルーチン群内の少なくとも１つのエラー処理ルーチンが、次のエラー処理可能性のいずれかを実現する：
−動作を実行しない：発生したエラーが無視される。
−ランタイムオブジェクトの実行の中断：ランタイムオブジェクトの実行が中断され、例えば代りに他のランタイムオブジェクトが実行される。
−ランタイムオブジェクトの実行の中断およびランタイムオブジェクトの新たな起動の禁止：よって、実行中にエラーが生じたランタイムオブジェクトが再び実行されない。
−ランタイムオブジェクトの実行の繰返し。
−バックワードリカバリー：ランタイムオブジェクトの実行中にチェックポイントが設定され、エラーの発生に際して最後のチェックポイントへジャンプバックされる。
−フォワードリカバリー：ランタイムオブジェクトの実行が中断されて後続する他の時点で再び続行され、もしくはランタイムオブジェクトが新たに初期化されて現在の入力量で開始される。
−リセット：コンピュータシステム全体または部分システムが新たに開始される。
【００２７】
これらのエラー処理ルーチンは、発生したエラーの特に柔軟な処理を可能にする。
【００２８】
望ましくは、本発明に基づく方法は、過渡的エラーの処理に用いられる。しかし、望ましくは、エラー処理ルーチンの選択は、認識されたエラーが過渡的エラーおよび恒久的エラーのいずれであるかに応じて実行される。
【００２９】
認識された恒久的エラーは、例えば、ランタイムオブジェクトがもはや実行されず、または部分システムが恒久的に終了されることによって処理可能である。対照的に、認識された過渡的エラーは、単純に無視され、またはフォワードリカバリーを用いて処理可能である。
【００３０】
望ましくは、テストルーチンを用いてハードウェアテストが実行される。この場合、エラー認識信号は、テストルーチンの処理の結果に応じて生成される。よって、例えば、特にハードウェア障害が確実に認識可能となり、よって恒久的エラーが論理的に決定（geschlossen）可能となる。
【００３１】
望ましい実施形態では、ランタイムオブジェクトに、異なるエラー種類について異なる識別子が対応づけられる。例えば、ランタイムオブジェクトの処理中に恒久的エラーが認識されれば、ランタイムオブジェクトの処理中に過渡的エラーが生じた場合と異なるエラー処理ルーチンが選択可能となる。
【００３２】
さらに、ランタイムオブジェクトに、異なるランタイム環境について異なる識別子が対応づけられる。例えば、ランタイムオブジェクトに、安全上重要な環境で処理するための識別子、冗長的に設計された計算ユニット上で冗長的に処理するための他の識別子、およびさらにタイムクリティカルな環境で処理するための他の識別子が対応づけ可能である。本実施形態では、ランタイムオブジェクトの処理に際して生じたエラーのさらに柔軟な処理が可能となり、可用性がさらに向上される。
【００３３】
課題は、また、冒頭に記載された種類のコンピュータシステムによって、ランタイムオブジェクトに識別子が対応づけられ、予め設定可能なエラー処理ルーチン群から識別子に応じて１つの実行可能なエラー処理ルーチンが選択可能となることによって解決される。
【００３４】
本発明に基づく方法をコンピュータプログラムの形式で実現することが特に重要である。この場合、コンピュータプログラムは、コンピュータシステム上、特に計算ユニット上で実行可能であって、本発明に基づく方法を実行するためにプログラミングされている。この場合、本発明がコンピュータプログラムによって実行されるので、コンピュータプログラムは、コンピュータプログラムによる実行に適した方法と同様に、本発明を表す。コンピュータプログラムは、望ましくはコンピュータ読取可能なデータ媒体上に記憶されている。コンピュータ読取可能なデータ媒体として、例えばランダムアクセスメモリ、リードオンリーメモリ、フラッシュメモリ、デジタル多用途ディスクまたはコンパクトディスクの使用が可能である。
【発明を実施するための最良の形態】
【００３５】
本発明の他の適用可能性および利点は、図面に示す実施例についての以下の説明から明らかにされる。
【００３６】
図１には、本発明に基づく方法の実施に適したコンピュータシステム１が図式的に示される。コンピュータシステム１は、２つの計算ユニット２、３を備える。計算ユニットは、例えば完全なプロセッサ（ＣＰＵ）でありうる（いわゆるデュアルコアアーキテクチャ）。デュアルコアアーキテクチャは、プロセスもしくはランタイムオブジェクトが２つの計算ユニット２、３上でほぼ同時に実行されるように、２つの計算ユニット２、３を冗長的に動作させることを可能にする。計算ユニット２、３は、算術論理ユニット、いわゆるＡＬＵ（Arithmetic Logical Unit）でありうる（デュアルＡＬＵアーキテクチャ）。
【００３７】
２つの計算ユニット２、３には、共通のプログラムメモリ４およびエラー認識ユニット５が対応づけられる。プログラムメモリ４内には、複数の実行可能なランタイムオブジェクトが格納される。エラー認識ユニット５は、例えば、プロセッサ２とプロセッサ３とにより計算された値の比較を可能にする比較器として形成される。
【００３８】
コンピュータシステム１の基本的な制御を行うために、コンピュータシステム１上で駆動システム６が実行される。駆動システム６は、スケジューラ７およびインターフェイス８を備える。スケジューラ７は、いずれのプロセスもしくはランタイムオブジェクトがいずれの計算ユニット２、３上でいつ実行されるかを決定することによって、計算ユニット２、３に与えられる計算時間を管理する。インターフェイス８は、エラー認識ユニット５が認識したエラーをエラー認識信号を用いて駆動システム６に報告することを可能にする。
【００３９】
駆動システム６は、メモリ領域９へのアクセスを有する。メモリ領域９は、実行可能なランタイムオブジェクトの各々について、ランタイムオブジェクトに対応づけられた１つもしくは複数の識別子を内容として含む。メモリ領域９とプログラムメモリ４とを同一のメモリ素子上に形成することも、また異なるメモリ素子上に形成することも可能である。１つもしくは複数のメモリ素子は、例えば計算ユニット２もしくは計算ユニット３に対応づけられた作業メモリまたはキャッシュでありうる。
【００４０】
コンピュータシステム１については、他の多数の形態が考えられる。例えば、コンピュータシステム１が計算ユニットを１つのみ備えることも可能である。この場合、ランタイムオブジェクトの処理に際するエラーは、例えばエラー認識ユニット５によって蓋然性検査を用いて認識可能である。
【００４１】
特に、同一のランタイムオブジェクトを計算ユニット２、３上で連続して何回も実行可能である。この場合、エラー認識ユニット５は、各々に生じた結果を比較し、結果が互いに異なる際にエラーの存在を論理的に決定（schliessen）可能である。
【００４２】
さらに、コンピュータシステム１が３つ以上の計算ユニット２、３を備えることも考えられる。この場合、ランタイムオブジェクトは、例えば存在する３つの計算ユニット２、３上で冗長的に実行可能である。このようにして得られた結果の比較によって、エラー認識ユニット５がエラーの存在を認識可能である。
【００４３】
図２には、本発明に基づく方法のフロー図が示される。方法は、ステップ１００で開始される。ステップ１０１では、スケジューラ７は、計算ユニット２、３に、ランタイムオブジェクトをプログラムメモリ４から読出して実行するように促す。
【００４４】
ステップ１０２では、ランタイムオブジェクトの処理に際してエラーの存在の有無が検査される。これは、例えば、計算ユニット２、３によって冗長的に計算された結果を比較するエラー認識ユニット５によって行われる。エラーが存在しなければ、ステップ１０１に戻って、計算ユニット２、３内で他のランタイムオブジェクトが実行される。
【００４５】
一方、ステップ１０２でエラーが認識されれば、ステップ１０３でエラー認識ユニットによってエラー認識信号が生成され、インターフェイス８を介して駆動システム６に伝達される。
【００４６】
ステップ１０４では、駆動システム６がエラーを伴うランタイムオブジェクトを確定する。この情報は、例えばスケジューラ７から取得可能である。
【００４７】
ステップ１０５では、ステップ１０４で確定されたランタイムオブジェクトに対応づけられた識別子が確定される。このために、例えば、メモリ領域９には、実行可能なランタイムオブジェクトの各々に対応づけられた識別子が記憶されるテーブルが格納可能である。
【００４８】
さらに、ランタイムオブジェクトに対応づけられた識別子がランタイムオブジェクト自体と共にプログラムメモリ４に記憶されることも可能である。ランタイムオブジェクトが実行のために計算ユニット２、３にロードされると、計算ユニット２、３の各々に対応づけられたメモリ領域、例えばレジスタに識別子が記憶可能である。この場合、駆動システム６は、計算ユニット２、３の各々にランタイムオブジェクトの識別子を要求可能である。
【００４９】
また、エラー認識ユニットがランタイムオブジェクトに対応づけられた識別子を確定し、例えばパラメータとして、エラー認識信号と共にインターフェイス８を介して駆動システムに提供することも考えられる。
【００５０】
ステップ１０６では、エラー認識信号およびランタイムオブジェクトに対応づけられた識別子に応じて、エラー処理ルーチンが選択される。この場合、ランタイムオブジェクトに対応づけられた識別子は、選択すべきエラー処理ルーチンを一義的に決定可能である。例えば、識別子は、エラーを伴うランタイムオブジェクトが中断されるべきであり、再び起動されるべきではないことを決定可能である。識別子は、同様に、予め設定されたチェックポイントにジャンプバックされて、そこからランタイムオブジェクトが新たに実行されるべきである（バックワードリカバリー）ことを決定可能である。
【００５１】
識別子は、さらに、フォワードリカバリーが実行されて、ランタイムオブジェクトの実行が繰り返されるべきであること、または更なるエラー処理が実行されるべきではないことを決定可能である。
【００５２】
特に、エラー認識ユニット５から駆動システム６に伝達されたエラー認識信号に、発生したエラーの種類に関する情報を含む（entnehmen）ことが効果的である。この種類は、例えば、それが過渡的エラーであるか、または恒久的エラーであるかを示すことができる。エラー信号は、さらに、このエラー信号に、エラーが生じた計算ユニット２、３に関する情報を含む（entnehmen）ように形成可能である。この場合、ランタイムオブジェクトに、例えば複数の識別子が対応づけ可能である。この場合、第１の識別子は、恒久的エラーの発生に際して実行すべきエラー処理ルーチンを記述可能である。一方、第２の識別子は、過渡的エラーの発生に際して実行すべきエラー処理ルーチンを記述可能である。これが結果として、さらに柔軟なエラー処理を可能にする。
【００５３】
特に、コンピュータシステム１がマルチプロセッサシステムとして、またはマルチＡＬＵシステムとして構成されている場合には、ランタイムオブジェクトが１つもしくは複数のプロセッサ上またはＡＬＵ上で実行されているかに応じて、エラー処理ルーチンを選択することが効果的でありうる。この情報は、例えばエラー認識信号に含まれうる（entnommen）。この場合、ランタイムオブジェクトは、ランタイムオブジェクトが１つの計算ユニット２、３上でのみエラーを伴って実行された場合と、ランタイムオブジェクトが複数の計算ユニット２、３上でエラーを伴って実行された場合とで異なる識別子を備えうる。
【００５４】
ステップ１０７では、駆動システム６によって選択されたエラー処理ルーチンが実行されることでエラー処理が実行される。選択されたエラー処理ルーチンに応じて、駆動システムは、例えばスケジューラ７に、現在、計算ユニット２、３上で実行されているランタイムオブジェクトを中断し、計算された全ての値を棄却し、ランタイムオブジェクトを新たに開始させることを促すことが可能である。ステップ１０８では、エラー処理のための本発明に基づく方法が終了する。もちろん、ランタイムオブジェクトを逐次的に実行してエラーの存在を検査するという、図２に示すプログラムの処理は、この時点で必ずしも同様に終了しない。ステップ１０８に到達した際にプログラムの処理がまだ終了していない場合には、ステップ１０１にジャンプバック可能である（破線）。
【００５５】
図３には、実行すべきエラー処理ルーチンの選択に際して他の変数が考慮される、本発明に基づく方法の他の実施形態がフロー図を用いて示される。
【００５６】
方法は、ステップ２００で開始される。ステップ２０１〜２０５は、図２に示されて説明されたステップ１０１〜１０５に相当する。
【００５７】
ステップ２０６では、ランタイムオブジェクトもしくはランタイムオブジェクトの実行を特徴づける変数が確定される。ランタイムオブジェクトを特徴づける変数は、例えばランタイムオブジェクトに対応づけられた安全上の重要性でありうる。ランタイムオブジェクトを特徴づける変数は、さらに、当該ランタイムオブジェクトによって計算された変数が必要とされるか、そして他のいずれのランタイムオブジェクトによって必要とされるか、または当該ランタイムオブジェクトによって計算された変数が他のランタイムオブジェクトに依存するか、そしていずれのランタイムオブジェクトに依存するかを記述可能である。よって、結果として、ランタイムオブジェクト相互の依存性を記述可能である。
【００５８】
ランタイムオブジェクトの実行を特徴づける変数は、例えば、エラーの発生時にランタイムオブジェクトによるメモリアクセスがすでに行われていたか、ランタイムオブジェクトのロード後に比較的すぐにエラーが生じたか、ランタイムオブジェクトによって計算すべき変数が他のランタイムオブジェクトによって差し迫って必要とされるか、および／またはランタイムオブジェクトの実行のためにさらに与えられる処理時間がどの程度であるかを記述可能である。この場合、これらの変数は、エラー処理ルーチンの選択に際して考慮可能である。例えば、ランタイムオブジェクト全体を新たに実行するために、もはや十分な時間が与えられなければ、バックワードリカバリーまたはフォワードリカバリーを実行するようにできる。
【００５９】
ステップ２０７では、恒久的エラーまたは過渡的エラーの区別が確定される。このために、所定のランタイムオブジェクトの実行に際してどの程度の頻度でエラーが生じるかを表す、例えばエラーカウンタを連動可能である。エラーは、特に頻繁にまたは常に生じるようであれば、恒久的エラーとして見なすことも可能である。
【００６０】
ステップ２０６と２０７とは、互いに独立しており、各々に個別に実行可能である。しかし、逆の順序でも実行可能である。さらに、ステップ２０６で確定された、ランタイムオブジェクトまたはランタイムオブジェクトの実行を特徴づける変数は、ステップ２０７でエラー種類を確定するための入力値として使用されることが考えられる。この場合、２つのステップ２０６および２０７は、記載の順序で処理される必要がある。そして、ステップ２０６および２０７は、必ずしも逐次的に処理される必要はなく、並列的にも処理可能である。
【００６１】
さらに、コンピュータシステム１の個々のハードウェアユニット、従って例えば計算ユニット２、３にエラーカウンタを対応づけることも可能である。例えば、コンピュータシステム１の計算ユニット２、３上で特に複数のランタイムオブジェクトの実行に際してエラーを伴うことが検出されれば、恒久的エラー（例えばハードウェアエラー）の存在が論理的に決定（geschlossen）可能である。
【００６２】
ステップ２０８では、エラー処理ルーチンが選択される。このために、ステップ２０５〜２０７で確定された変数、特にエラーを伴うランタイムオブジェクトに対応づけられた１つもしくは複数の識別子、ランタイムオブジェクトまたはランタイムオブジェクトの実行を特徴づける１つもしくは複数の変数、および発生したエラーの種類が考慮される。
【００６３】
エラー処理ルーチンは、例えば駆動システム６によって選択される。選択は、前述した変数を用いてデシジョンツリーの形式で実行可能である。
【００６４】
ステップ２０９では、エラー処理が実行されて、ステップ２１０ではエラー処理のための本発明に基づく方法が終了する。もちろん、ランタイムオブジェクトを逐次的に実行してエラーの存在を検査するという、図３に示すプログラムの処理は、この時点で必ずしも同様に終了しない。ステップ２１０に到達した際にプログラムの処理がまだ終了していない場合には、ステップ２０１にジャンプバック可能である（破線）。
【００６５】
よって、本発明に基づく方法によれば、コンピュータシステム上にランタイムオブジェクトをプログラミングもしくは実装またはインストールする時点ですでに、エラーの発生に際していずれのエラー処理ルーチンが実行されるべきであるかを決定可能である。これが、特に柔軟で、実行されるランタイムオブジェクトに適合されたエラー処理を可能にする。特に、本発明によれば、ランタイムオブジェクトに複数の識別子が対応づけ可能である。よって、エラー処理ルーチンの選択がさらに柔軟に構成可能となる。
【００６６】
望ましくは、エラーの種類（過渡的／恒久的）、ランタイムオブジェクト自体またはランタイムオブジェクトの実行を特徴づける変数を、エラー処理ルーチンの選択のために援用可能である。さらに、エラー認識ユニット５によって確定された情報、例えばエラーの発生時にランタイムオブジェクトが実行されていた計算ユニット２、３の識別（Identitaet）を、エラー処理ルーチンの選択に際して考慮可能である。この場合、考察されるランタイムオブジェクトが１つの計算ユニット２、３上でのみ、または２つの計算ユニット２、３上で同時に処理されるか／されていたかに関する情報から、ランタイムオブジェクトの当該処理時点で安全重要性が論理的に決定（geschlossen）可能である。さらに、コンピュータシステムおよび／またはコンピュータシステムの周辺（例えばセンサ変数の現在の値範囲および／または出力変数の値範囲）に関する他の情報を、ランタイム環境の現時点で安全重要性を評価するために援用可能である。よって、コンピュータシステム上でさらに柔軟なエラー処理が可能となる。
【００６７】
ステップ１０７もしくは２０９でエラー処理を実行中に、さらに、例えばエラー処理ルーチンによって促されたエラーを伴うランタイムオブジェクトの新たな実行が再びエラーをもたらすかを検査可能である。この場合、新たなエラー処理ルーチンを、しかし今度は他のエラー処理ルーチンを選択するようにできる。例えば、この場合には、システム全体もしくは部分システムを終了するようにできる。
【図面の簡単な説明】
【００６８】
【図１】本発明に基づく方法を実行するためのコンピュータシステムのコンポーネントを示すブロック図である。
【図２】本発明に基づく方法の第１の実施形態を示すフロー図である。
【図３】本発明に基づく方法の第２の実施形態を示すフロー図である。
【符号の説明】
【００６９】
１    コンピュータシステム
２、３    計算ユニット
４    プログラムメモリ
５    エラー認識ユニット
６    駆動システム
７    スケジューラ
８    インターフェイス
９    メモリ領域
【図１】
2008513900.tif 000003
【図２】
2008513900.tif 000004
【図３】
2008513900.tif 000005
【国際調査報告】
2008513900.tif 000006
2008513900.tif 000007
2008513900.tif 000008
2008513900.tif 000009
2008513900.tif 000010
2008513900.tif 000011
2008513900.tif 000012
2008513900.tif 000013
2008513900.tif 000014
2008513900.tif 000015