(57)【要約】【課題】ＯＳ状態情報が破壊された場合にもＯＳが復元されるようにする。【解決手段】クライアント装置１００は、ＯＳ状態情報をサーバ装置２００に送信し、サーバ装置２００にＯＳ状態情報を保管させ、ＯＳ機能１０３の実行が再開される再開タイミングに先立ち、サーバ装置２００に送信されたＯＳ状態情報をサーバ装置２００から受信し、再開タイミングに、サーバ装置２００から受信されたＯＳ状態情報を用いてＯＳ機能１０３の状態を復元することができるため、ＯＳ状態情報が破壊された場合にも確実にＯＳ機能１０３を復元することができる。【選択図】図１
2012198728.tif 000002
【特許請求の範囲】
【請求項１】
実行中のプログラムの中断と、中断された前記プログラムの実行の再開とを繰り返す、情報保管装置と通信を行うプログラム実行装置であって、
前記プログラムの実行が中断される中断タイミングにおける前記プログラムの状態が記述される状態情報を生成する状態情報生成部と、
前記状態情報生成部により生成された状態情報を退避領域に退避させる退避実行部と、
前記状態情報生成部により生成された状態情報を前記情報保管装置に送信し、前記情報保管装置に状態情報を保管させる状態情報送信部と、
前記プログラムの実行が再開される再開タイミングに先立ち、前記状態情報送信部により前記情報保管装置に送信された状態情報を前記情報保管装置から受信する状態情報受信部と、
前記再開タイミングに、前記退避領域に退避された状態情報及び前記状態情報受信部により前記情報保管装置から受信された状態情報の少なくともいずれかを用いて、前記中断タイミングにおける前記プログラムの状態を復元するプログラム復元部とを有することを特徴とするプログラム実行装置。
【請求項２】
前記プログラム復元部は、
前記プログラムの実行を正常に再開できる正常時には、前記再開タイミングに、前記退避領域に退避された状態情報を用いて、前記中断タイミングにおける前記プログラムの状態を復元し、
前記プログラムの実行を正常に再開できない非正常時には、前記再開タイミングに先立ち前記情報保管装置に状態情報の送信を要求し、前記情報保管装置から送信された状態情報を前記状態情報受信部に受信させ、前記再開タイミングに、前記状態情報受信部により前記情報保管装置から受信された状態情報を用いて、前記中断タイミングにおける前記プログラムの状態を復元することを特徴とする請求項１に記載のプログラム実行装置。
【請求項３】
前記状態情報送信部は、
前記状態情報生成部により生成された状態情報を分割して、前記情報保管装置に送信し、
前記状態情報受信部は、
前記情報保管装置から、分割された状態情報を受信することを特徴とする請求項１又は２に記載のプログラム実行装置。
【請求項４】
実行中のプログラムの中断と、中断された前記プログラムの実行の再開とを繰り返すプログラム実行装置と、通信を行う情報保管装置であって、
前記プログラムの実行が中断される中断タイミングにおける前記プログラムの状態が記述される状態情報を、前記プログラム実行装置から受信する状態情報受信部と、
前記状態情報受信部により受信された、前記プログラム実行装置からの状態情報を記憶する状態情報記憶部と、
前記プログラムの実行が再開される再開タイミングに先立ち、前記プログラム実行装置から、状態情報の送信要求を受信する送信要求受信部と、
前記送信要求受信部により状態情報の送信要求が受信された場合に、前記プログラム実行装置からの状態情報を前記状態情報記憶部から抽出する状態情報抽出部と、
前記状態情報抽出部により抽出された状態情報を、前記プログラム実行装置に送信する状態情報送信部とを有することを特徴とする情報保管装置。
【請求項５】
前記送信要求受信部は、
前記プログラム実行装置において前記プログラムの実行を正常に再開できない非正常時に、前記再開タイミングに先立ち、前記プログラム実行装置から、状態情報の送信要求を受信することを特徴とする請求項４に記載の情報保管装置。
【請求項６】
前記状態情報受信部は、
前記プログラム実行装置から、分割された状態情報を受信し、
前記状態情報送信部は、
前記プログラム実行装置に、分割された状態情報を送信することを特徴とする請求項４又は５に記載の情報保管装置。
【請求項７】
実行中のプログラムの中断と、中断された前記プログラムの実行の再開とを繰り返す、情報保管装置と通信を行うコンピュータが実施する情報処理方法であって、
前記コンピュータが、前記プログラムの実行が中断される中断タイミングにおける前記プログラムの状態が記述される状態情報を生成する状態情報生成ステップと、
前記コンピュータが、前記状態情報生成ステップにより生成された状態情報を退避領域に退避させる退避実行ステップと、
前記コンピュータが、前記状態情報生成ステップにより生成された状態情報を前記情報保管装置に送信し、前記情報保管装置に状態情報を保管させる状態情報送信ステップと、
前記コンピュータが、前記プログラムの実行が再開される再開タイミングに先立ち、前記状態情報送信ステップにより前記情報保管装置に送信された状態情報を前記情報保管装置から受信する状態情報受信ステップと、
前記コンピュータが、前記再開タイミングに、前記退避領域に退避された状態情報及び前記状態情報受信ステップにより前記情報保管装置から受信された状態情報の少なくともいずれかを用いて、前記中断タイミングにおける前記プログラムの状態を復元するプログラム復元ステップとを有することを特徴とする情報処理方法。
【請求項８】
実行中のプログラムの中断と、中断された前記プログラムの実行の再開とを繰り返すプログラム実行装置と、通信を行うコンピュータが実施する情報処理方法であって、
前記コンピュータが、前記プログラムの実行が中断される中断タイミングにおける前記プログラムの状態が記述される状態情報を、前記プログラム実行装置から受信する状態情報受信ステップと、
前記コンピュータが、前記状態情報受信ステップにより受信された、前記プログラム実行装置からの状態情報を記憶する状態情報記憶ステップと、
前記コンピュータが、前記プログラムの実行が再開される再開タイミングに先立ち、前記プログラム実行装置から、状態情報の送信要求を受信する送信要求受信ステップと、
前記コンピュータが、前記送信要求受信ステップにより状態情報の送信要求が受信された場合に、前記状態情報記憶ステップにより記憶された状態情報のうち、前記プログラム実行装置からの状態情報を抽出する状態情報抽出ステップと、
前記コンピュータが、前記状態情報抽出ステップにより抽出された状態情報を、前記プログラム実行装置に送信する状態情報送信ステップとを有することを特徴とする情報処理方法。
【請求項９】
実行中のプログラムの中断と、中断された前記プログラムの実行の再開とを繰り返す、情報保管装置と通信を行うコンピュータに、
前記プログラムの実行が中断される中断タイミングにおける前記プログラムの状態が記述される状態情報を生成する状態情報生成ステップと、
前記状態情報生成ステップにより生成された状態情報を退避領域に退避させる退避実行ステップと、
前記状態情報生成ステップにより生成された状態情報を前記情報保管装置に送信し、前記情報保管装置に状態情報を保管させる状態情報送信ステップと、
前記プログラムの実行が再開される再開タイミングに先立ち、前記状態情報送信ステップにより前記情報保管装置に送信された状態情報を前記情報保管装置から受信する状態情報受信ステップと、
前記再開タイミングに、前記退避領域に退避された状態情報及び前記状態情報受信ステップにより前記情報保管装置から受信された状態情報の少なくともいずれかを用いて、前記中断タイミングにおける前記プログラムの状態を復元するプログラム復元ステップとを実行させることを特徴とするコンピュータプログラム。
【請求項１０】
実行中のプログラムの中断と、中断された前記プログラムの実行の再開とを繰り返すプログラム実行装置と、通信を行うコンピュータに、
前記プログラムの実行が中断される中断タイミングにおける前記プログラムの状態が記述される状態情報を、前記プログラム実行装置から受信する状態情報受信ステップと、
前記状態情報受信ステップにより受信された、前記プログラム実行装置からの状態情報を記憶する状態情報記憶ステップと、
前記プログラムの実行が再開される再開タイミングに先立ち、前記プログラム実行装置から、状態情報の送信要求を受信する送信要求受信ステップと、
前記送信要求受信ステップにより状態情報の送信要求が受信された場合に、前記状態情報記憶ステップにより記憶された状態情報のうち、前記プログラム実行装置からの状態情報を抽出する状態情報抽出ステップと、
前記状態情報抽出ステップにより抽出された状態情報を、前記プログラム実行装置に送信する状態情報送信ステップとを実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実行の中断と実行の再開とが繰り返されるプログラムの退避と復元に関する。
【背景技術】
【０００２】
組み込み機器では、放射線や宇宙線などによりメモリセルに蓄えられた電荷に異常を来すＳｉｎｇｌｅ  Ｅｖｅｎｔ  Ｕｐｓｅｔと呼ばれる問題がある。
このＳｉｎｇｌｅ  Ｅｖｅｎｔ  ＵｐｓｅｔによりソフトウェアがＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）例外となり動作継続不能に陥る可能性もある。
特に、人工衛星などメンテナンスが困難な組み込み機器に搭載する計算機では、この問題を回避するために、人工衛星に搭載された姿勢制御計算機など、信頼性が必要な機能では、周期的にプロセッサをリセットさせることで初期化を行い、異常処理後にすぐに正常処理に戻す処理を行っている。
また、従来ではこのように周期リセットを必要とする機能と周期リセットを必要としないデータ処理などの機能は、それぞれの機能を異なるプロセッサに分けて実現している。
【０００３】
また、計算機の低価格化および小型化を目的とした場合、それぞれの機能を同一プロセッサで動作することが考えられる。
たとえば、その実現方法として、図８のように基本的には周期Ｔでプロセッサをリセットすることで、周期リセットを必要とする高信頼ソフトウェア機能を周期的にリセットする。
一方で、周期リセットを必要としないＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）機能の動作を継続させるために、リセット信号の前にプレリセットＮＭＩ（マスク不可能割込：Ｎｏｎ−Ｍａｓｋａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ  以下、ＮＭＩ）を発生させ、その時点でのプログラムカウンタ値や各種レジスタ値（ＯＳ状態情報と呼ぶ）の保存を行い、リセット後にＯＳ状態情報を復元する手法が考えられる。
【０００４】
特許文献１では、周期ＴでＣＰＵをリセットするシステムにおいて、「処理中断要求信号」と呼ばれる、周期の終了前に終了間近であることを示す信号を発生させ、これによって処理中断プログラムを起動し、プログラムカウンタ、各種レジスタ値を退避し、リセット後にそれを取り出して再開する手法が記載されている。
【０００５】
特許文献２では、汎用ネットワークと複数の計算機で構築された多重系システムにおいて、リセットの前に退避動作を起動するためにマスク不可能割込み（Ｎｏｎ−Ｍａｓｋａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ：以下、ＮＭＩ）を発生させ、ＮＭＩ時点におけるメインメモリの内容をディスク装置に保存する手法が記載されている。
【０００６】
特許文献３では、特性測定データを地上局の解析装置に伝送し、地上局で解析した後、性能が劣化した部位に応じて各制御回路のパラメータを再設定するパラメータ情報を衛星に伝送する手法が記載されている。
【０００７】
特許文献４では、データ送信装置の電子計算機に格納され実行される搭載プログラムの各処理毎に処理正常終了レジスタを設け、処理が正常に終了する度にレジスタ値を設定し直すようにし、地上局でレジスタ値をモニタすることで搭載プログラムの動作を確認できるようにしており、搭載プログラムの各処理前に処理正常終了レジスタの値をチェックし異常終了する処理の実行を回避するようにする手法が記載されている。
【０００８】
特許文献５では、人工衛星の推進装置での推薬弁と遮断弁との間に圧力センサを設置し、推薬弁開故障に対する圧力低下を検知することにより衛星単体で推薬弁開故障への判定・対処を行う手法が記載されている。
【０００９】
特許文献６では、データファイル名、該データファイルのディレクトリ名及びファイルバージョン識別情報を連結した電子媒体管理ファイルを地上側で生成して、この電子媒体管理ファイルを宇宙航行体に転送し、この電子媒体管理ファイルを受信した宇宙航行体側で分解処理して、そのデータファイル名、ディレクトリ名及びファイルバージョン識別情報が電子媒体内に格納される情報と比較してデータファイルの追加／削除／更新を行う手法について記載されている。
【００１０】
特許文献７では、衛星に搭載されたテレメトリパラメータの遠隔制御調整を使用して衛星の制御を行う衛星コマンドシステム及び方法により、プロセッサユニットのコマンド経路に影響を及ぼすハードウェア障害の存在を回避する方法について記載されている。
【００１１】
特許文献８では、低軌道周回衛星のように地上局の支援を常に受けられない人工衛星の統合制御システムにおいて、一部機器の異常が人工衛星全体の損傷を誘発することがないシステムを実現するため、冗長系を作る複数のコマンド受信インターフェースにおいてコマンドの送信数と受信数の比較結果により冗長系に切り替える手法について記載されている。
【００１２】
特許文献９では、衛星内機器の状態をテレメトリ収集装置を介してモニタし、所定の条件に合致すると、新たなミッションシーケンスとして割り込ませることで、コマンドの実行時刻を動的に変更可能な自律コマンド運用処理方法について記載されている。
【００１３】
特許文献１０では、衛星のテレメトリ情報とその代表値を送出し、衛星シミュレータの入力として与え、そのシミュレーション結果とテレメトリ代表値を比較することで衛星電子機器の異常を検出する方法が記載されている。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開平６−２３０９８８号公報
【特許文献２】特開２００７−５８７０８号公報
【特許文献３】特開２００２−２３６５１５号公報
【特許文献４】特開２００２−１３５１９２号公報
【特許文献５】特開２０００−２５５４９９号公報
【特許文献６】特開２００１−２６５６３７号公報
【特許文献７】特開２００１−３２２５９９号公報
【特許文献８】特開２００２−２０５６９７号公報
【特許文献９】特開２００３−２２６２９８号公報
【特許文献１０】特開２００８−７００７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
例えば、図９のようにＯＳ機能が動作している途中でＣＰＵレジスタなど、ＯＳ状態情報が宇宙線などの外的要因により破壊されたと仮定する。
このとき、ＣＰＵ例外が発生、あるいは、ＣＰＵ例外が発生しないとしても、壊れたＯＳ状態情報を退避し、再び復元するため、いつかＣＰＵ例外が発生してしまう可能性がある。
特許文献１〜１０では、ＯＳ状態情報が破壊された場合には、ＣＰＵ例外発生直後に実行される例外ハンドラに処理が遷移し、処理の継続が不能となるという課題がある。
【００１６】
この発明は、上記のような課題を解決することを主な目的の一つとしており、状態情報が破壊された場合にもプログラムが再開されるようにすることを主な目的とする。
【課題を解決するための手段】
【００１７】
本発明に係るプログラム実行装置は、
実行中のプログラムの中断と、中断された前記プログラムの実行の再開とを繰り返す、情報保管装置と通信を行うプログラム実行装置であって、
前記プログラムの実行が中断される中断タイミングにおける前記プログラムの状態が記述される状態情報を生成する状態情報生成部と、
前記状態情報生成部により生成された状態情報を退避領域に退避させる退避実行部と、
前記状態情報生成部により生成された状態情報を前記情報保管装置に送信し、前記情報保管装置に状態情報を保管させる状態情報送信部と、
前記プログラムの実行が再開される再開タイミングに先立ち、前記状態情報送信部により前記情報保管装置に送信された状態情報を前記情報保管装置から受信する状態情報受信部と、
前記再開タイミングに、前記退避領域に退避された状態情報及び前記状態情報受信部により前記情報保管装置から受信された状態情報の少なくともいずれかを用いて、前記中断タイミングにおける前記プログラムの状態を復元するプログラム復元部とを有することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、状態情報を情報保管装置に送信し、情報保管装置に状態情報を保管させ、プログラムの実行が再開される再開タイミングに先立ち、情報保管装置に送信された状態情報を情報保管装置から受信し、再開タイミングに、情報保管装置から受信された状態情報を用いてプログラムの状態を復元することができるため、状態情報が破壊された場合にも確実にプログラムを再開することができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態１のシステム構成例を示す図。
【図２】実施の形態１のクライアント装置のハードウェア構成例を示す図。
【図３】実施の形態１のサーバ装置のハードウェア構成例を示す図。
【図４】実施の形態１において、クライアント装置からサーバ装置に送信するデータのフォーマット例を示す図。
【図５】実施の形態１において、サーバ装置からクライアント装置に送信するデータのフォーマット例を示す図。
【図６】実施の形態１において、クライアント装置により退避したＯＳ状態情報をサーバ装置に送信するまでの流れを示すシーケンス図。
【図７】実施の形態１において、クライアント装置においてＣＰＵ例外が発生した場合のＯＳ動作の継続のための復元方法を示すシーケンス図。
【図８】従来システムにおける、ＯＳ動作継続を実現するためのＯＳ状態の保存と復元方法を示す図。
【図９】従来システムにおける、ＯＳ動作継続を実現するためのＯＳ状態の保存と復元方法において、ＯＳ状態情報が破壊された場合の処理継続不可を示す図。
【発明を実施するための形態】
【００２０】
実施の形態１．
本実施の形態では、周期的にリセットさせて動作するソフトウェアと、同リセット動作を必要としないソフトウェアが同一プロセッサ上で動作する計算機において、ＣＰＵ例外発生後もソフトウェア動作を継続させるための、レジスタ退避・復元方法を説明する。
【００２１】
前述したように、外因による計算機、ソフトウェアの誤動作を回避するために、特に信頼性が必要な機能では、周期的にプロセッサをリセットして動作させることがある。
また、周期リセットを必要とする高信頼ソフトウェア機能と、周期リセットを必要としないＯＳ機能を同一プロセッサで動作させる場合、ＯＳ機能に対して、その時点でのプログラムカウンタ値や各種レジスタ値（ＯＳ状態情報）を退避し復元することで、動作継続性を確保することができる。
ただし、何らかの外的要因でＯＳ状態情報が破壊され、その状態のまま退避、あるいは、退避しているＯＳ状態情報が破壊され、その状態で復元を行う場合、例えばレジスタ値不正によりＣＰＵ例外が発生しＯＳ機能の処理が継続できなくなる可能性がある。
【００２２】
本実施の形態では、このような課題を解決するために、任意の時点でのＯＳ状態情報を退避し、そのＯＳ状態情報をサーバ装置に送信するクライアント装置と、そのクライアント装置に対して、退避したＯＳ状態情報を送信し、復元命令を送信するサーバ装置と、で構成することで、クライアント装置側においてＣＰＵ例外が発生した場合においても、ＯＳ機能の動作を継続させるための、レジスタ退避・復元方式を提供する。
つまり、本実施の形態では、周期的リセットを必要とする高信頼ソフトウェア機能と、周期リセットを必要としないＯＳ機能を同一プロセッサで動作するクライアント装置において、プレリセットＮＭＩなどのタイミングで退避したＯＳ状態情報をサーバ装置に送信する。
そして、クライアント装置がＣＰＵ例外で動作継続不能に陥った場合に、サーバ装置にて、蓄積したＯＳ状態情報から任意のＯＳ状態情報を抽出し、クライアント装置に送信する。
次にクライアントは受信したＯＳ状態情報を使用して復元することで、ＯＳ機能の動作継続性を確保する。
【００２３】
図１は、実施の形態１におけるシステム構成例を示す。
本実施の形態に係るシステム構成は、クライアント装置１００とサーバ装置２００から構成される。
また、クライアント装置１００とサーバ装置２００との間は、通信路３００により接続される。
通信路３００は、有線通信路であっても無線通信路であってもよい。
本実施の形態において、クライアント装置１００はプログラム実行装置の例であり、サーバ装置２００は情報保管装置の例である。
【００２４】
クライアント装置１００は、周期リセットを必要とする機能と、周期リセットを必要としない機能を共存させた計算機である。
【００２５】
１０１は周期リセットを必要とする機能で、高信頼ソフトウェア１０２で構成される。
【００２６】
１０３は周期リセットを必要としない機能で、処理を継続させる必要がある機能である。
これはアプリケーション１０４とサーバ装置２００にデータを送信するためのデータ送信手段１０５と、サーバ装置２００からデータを受信するためのデータ受信手段１０６と、オペレーティングシステム１０７（以下、ＯＳ１０７ともいう）から構成されるＯＳ機能である。
ＯＳ１０７は、例えば、リアルタイムＯＳである。
【００２７】
１０８はブートローダである。
ブートローダ１０８には、Ｓ／Ｗ（ソフトウェア）起動手段１０９と、受信ＯＳ状態情報復元手段１１０と、自ＯＳ状態情報退避・復元手段１１１が含まれる。
Ｓ／Ｗ起動手段１０９は、高信頼ソフトウェア１０２とオペレーティングシステム１０７を起動するために用いられる。
受信ＯＳ状態情報復元手段１１０は、サーバ装置２００から受信したＯＳ状態情報を復元するために用いられる。
自ＯＳ状態情報退避・復元手段１１１は、オペレーティングシステム１０７の動作を継続するためにプレリセットＮＭＩにてＯＳ状態情報を退避し、リセット後高信頼ソフトウェアの動作終了後にそのＯＳ状態情報を復元することでＯＳ１０７の動作を継続する。
なお、ＯＳ状態情報は、前述したように、プログラムカウンタ値や各種レジスタ値である。
【００２８】
受信ＯＳ状態情報保存領域１１２は、サーバ装置２００から受信したＯＳ状態情報を保存するための保存領域である。
自ＯＳ状態情報保存領域１１３は、自ＯＳ状態情報退避・復元手段１１１のＯＳ状態情報を保存するための保存領域である。
【００２９】
図１のクライアント装置１００の構成要素のうち、受信ＯＳ状態情報保存領域１１２及び自ＯＳ状態情報保存領域１１３以外は、ソフトウェアである。
【００３０】
サーバ装置２００は、クライアント装置１００との間でデータの送受信を行う。
２０１はデータ送信手段で、クライアント装置１００に対してデータを送信するための手段である。
２０２はデータ受信手段で、クライアント装置１００から送信されたデータを受信するための手段である。
２０３はＯＳ状態情報保存領域で、クライアント装置１００から受信したＯＳ状態情報を保存するための領域で、複数のＯＳ状態情報を蓄積することを目的としている。
２０４はＯＳ状態情報解析手段で、ＯＳ状態情報保存領域２０３から任意のＯＳ状態情報を抽出するためのデータ解析手段である。
【００３１】
図１のサーバ装置２００の構成要素のうち、ＯＳ状態情報保存領域２０３以外は、ソフトウェアである。
【００３２】
図２は、実施の形態１におけるクライアント装置１００の最小限のハードウェアの構成例を示す。
なお、図２の構成は、あくまでもクライアント装置１００のハードウェア構成の一例を示すものであり、クライアント装置１００のハードウェア構成は図２に記載の構成に限らず、他の構成であってもよい。
【００３３】
図２において、１００１はＣＰＵで、高信頼ソフトウェア１０２、ＯＳ機能１０３、および、ブートローダ１０８の実行および各種機器の制御を行うための中央演算装置である。
１００２はリセット回路で、リセット信号を発生させる機能のほか、そのリセット信号を発生させる前にプレリセットと呼ぶＮＭＩをブートローダ１０８に対して発生させる手段である。
１００３はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で、高信頼ソフトウェア１０２やＯＳ機能１０３、ブートローダ１０８が動作する上で使用する変数、レジスタ値などのデータを保存する手段である。
１００４はＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）で、上述のソフトウェアのプログラムコードおよび変数の初期値を格納するためのメモリ領域である。
１００５は各種センサーで、クライアント装置１００自身の状態及び外界の状態を監視するための装置で、カメラ、温度計、圧力計、レーダー装置などがそれに当たる。
１００６はサーバ装置２００と通信を行う通信装置である。
【００３４】
ＣＰＵ１００１は、高信頼ソフトウェア１０２の実行及び周期リセットを行うとともに、ＯＳ１０７を含むＯＳ機能１０３の実行の中断と、中断されたＯＳ機能１０３の実行の再開とを繰り返す。
より具体的には、ＣＰＵ１００１は、ブートローダ１０８を実行して、ＯＳ機能１０３の実行が中断される中断タイミングにおけるＯＳ機能１０３の状態が記述されるＯＳ状態情報を生成し、ＯＳ状態情報を退避領域である自ＯＳ状態情報保存領域１１３に退避させる。
また、通信装置１００６は、ＣＰＵ１００１の指示により、生成されたＯＳ状態情報をサーバ装置２００に送信し、サーバ装置２００にＯＳ状態情報を保管させる。
ＣＰＵ１００１は、ＯＳ機能１０３を正常に再開できる正常時には、ブートローダ１０８を実行して、ＯＳ機能１０３の実行が再開される再開タイミングに、自ＯＳ状態情報保存領域１１３に退避されたＯＳ状態情報を用いて、中断タイミングにおけるＯＳ機能１０３の状態を復元する。
一方、ＯＳ機能１０３を正常に再開できない非正常時には、ＣＰＵ１００１は、再開タイミングに先立ちサーバ装置２００にＯＳ状態情報の送信を要求し、サーバ装置２００から送信されたＯＳ状態情報を通信装置１００６に受信させ、再開タイミングに、通信装置１００６によりサーバ装置２００から受信されたＯＳ状態情報を用いて、中断タイミングにおけるＯＳ機能１０３の状態を復元する。
このように、本実施の形態では、ＣＰＵ１００１は、状態情報生成部と退避実行部とプログラム復元部の例に相当する。
また、本実施の形態では、通信装置１００６は、状態情報送信部と状態情報受信部の例に相当する。
また、ＣＰＵ１００１による動作が、状態情報生成ステップと退避実行ステップとプログラム復元ステップの例に相当する。
また、通信装置１００６による動作が、状態情報送信ステップと状態情報受信ステップの例に相当する。
【００３５】
図３は、実施の形態１におけるサーバ装置２００の最小限のハードウェアの構成例を示す。
なお、図３の構成は、あくまでもサーバ装置２００のハードウェア構成の一例を示すものであり、サーバ装置２００のハードウェア構成は図３に記載の構成に限らず、他の構成であってもよい。
【００３６】
図３において、２００１はＣＰＵで、内蔵Ｓ／Ｗ（ソフトウェア）を動作させるための中央演算装置である。
２００２はサーバ管理者がＣＰＵに命令を実行させるための入力装置で、マウスやキーボードなどである。
２００３はサーバ管理者がＣＰＵの状況を把握するための出力装置で、ディスプレイなどである。
２００４はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で、内蔵Ｓ／Ｗが動作する上で使用する変数、レジスタ値などのデータを保存する手段である。
２００５はＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）で、上述のソフトウェアのプログラムコードおよび変数の初期値を格納するためのメモリ領域である。
２００６は大容量記憶装置で、ハードディスクなどで構成されるが、クライアント装置１００から受信したＯＳ状態情報を複数蓄積するための保存領域である。
２００７はクライアント装置１００と通信を行う通信装置である。
【００３７】
通信装置２００７は、ＣＰＵ２００１の制御により、クライアント装置１００のＯＳ状態情報を、クライアント装置１００から受信する。
そして、大容量記憶装置２００６は、クライアント装置１００から受信したＯＳ状態情報を記憶する。
また、通信装置２００７は、ＣＰＵ２００１の制御により、クライアント装置１００におけるＯＳ機能１０３の再開タイミングに先立ち、クライアント装置１００から、ＯＳ状態情報の送信要求を受信する。
ＣＰＵ２００１は、ＯＳ状態情報の送信要求が受信された場合に、ＯＳ状態情報解析手段２０４を実行して、ＯＳ状態情報を大容量記憶装置２００６から抽出する。
そして、通信装置２００７は、ＣＰＵ２００１の制御により、抽出されたＯＳ状態情報をクライアント装置１００に送信する。
このように、本実施の形態では、ＣＰＵ２００１は状態情報抽出部の例に相当し、大容量記憶装置２００６は状態情報記憶部の例に相当し、通信装置２００７は状態情報受信部と送信要求受信部と状態情報送信部の例に相当する。
また、ＣＰＵ２００１による動作が状態情報抽出ステップの例に相当し、大容量記憶装置２００６による動作が状態情報記憶ステップの例に相当し、通信装置２００７による動作が状態情報受信ステップと送信要求受信ステップと状態情報送信ステップの例に相当する。
【００３８】
図４に、図６のＳ８及び図７のＴ６でクライアント装置１００からサーバ装置２００に送信するデータのデータフォーマット例を示す。
【００３９】
図４において、例外発生有無４０１は、クライアント装置１００においてＣＰＵ例外が発生しているか否かを判断するためのフラグ情報である。
分割ＯＳ状態情報４０３は、自ＯＳ状態情報保存領域１１３に保存されたＯＳ状態情報そのもの、あるいは、１回のデータ送信で送信可能なサイズに分割されたＯＳ状態情報である。
そして、分割番号４０２は、その分割されたＯＳ状態情報を復元するため、分割された情報の何番目かを示す通し番号である。
センサー情報  観測データ４０４は、各種センサー１００５から得られた観測データを格納する領域である。
【００４０】
図５に、図７のＴ７でサーバ装置２００からクライアント装置１００に送信するデータのデータフォーマット例を示す。
【００４１】
図５において、コマンド識別番号５０１は、そのコマンドの種別を識別するためのＩＤ番号である。
分割ＯＳ状態情報５０３は、ＯＳ状態情報解析手段２０４により抽出したＯＳ状態情報そのもの、あるいは、１回のデータ送信で送信可能なサイズに分割されたＯＳ状態情報である。
そして、分割番号５０２はその分割されたＯＳ状態情報を復元するため、分割された情報の何番目かを示す通し番号である。
【００４２】
実施の形態１のＯＳ状態情報送信の処理シーケンスを図６を用いて説明する。
ここで前提として、高信頼ソフトウェア１０２、ＯＳ機能１０３が同一ＣＰＵ１００１上で動作しているものとする。
また、リセット回路１００２は一定周期毎にリセット信号をブートローダ１０８に発信するが、その前にプレリセット信号を発信するものとする。
【００４３】
まず、リセット回路１００２はプレリセット信号をブートローダ１０８に送信する（Ｓ１）。
次に、ブートローダ１０８は自ＯＳ状態情報退避・復元手段１１１により現在のＣＰＵ１００１のレジスタやＲＡＭ１００３に格納したデータの一部をＯＳ状態情報として抽出し、自ＯＳ状態情報保存領域１１３に保存する（Ｓ２）。
次に、一定の周期毎に設定されたリセットタイミングにてリセット回路１００２はＣＰＵ１００１をリセットする（Ｓ３）。
そして、ブートローダ１０８のＳ／Ｗ起動手段１０９が高信頼ソフトウェア１０２を起動する（Ｓ４）。
次に、高信頼ソフトウェア１０２の動作終了後、ブートローダ１０８のＳ／Ｗ起動手段１０９が、Ｓ２において自ＯＳ状態情報保存領域１１３に保存したＯＳ状態情報を自ＯＳ状態情報保存領域１１３からＣＰＵ１００１およびＲＡＭ１００３に復元することで（Ｓ５）、ＯＳ機能１０３を起動する（Ｓ６）。
起動されたＯＳ機能１０３は前状態からの継続処理を行う。
例えば、ＯＳ１０７で動作するアプリケーション１０４は、中断をしていた各種センサー１００５による外界の環境測定の実施を再開する（Ｓ７）。
そして、アプリケーション１０４は、データ送信手段１０５によりその測定結果をサーバ装置２００に送信する。
ここで、ＯＳ１０７は、自ＯＳ状態情報保存領域１１３からＯＳ状態情報を取り出し、取り出したＯＳ状態情報を測定結果と同時に送信する。
そして、サーバ装置２００は、そのＯＳ状態情報をＯＳ状態情報保存領域２０３に保存・蓄積する（Ｓ８）。
なお、このとき、ＯＳ状態情報が１回の送信サイズを超える場合は複数周期で複数回に送信することも可能である。
そして、定期的にリセット回路１００２より送信されるプレリセット信号により、ブートローダ１０８がＳ１の時と同様の処理を行い、ＯＳ状態情報を退避する（Ｓ１０）。
【００４４】
次に、ＣＰＵ例外が発生した場合におけるＯＳ機能１０３の復帰シーケンスを図７を用いて説明する。
【００４５】
まず、クライアント装置１００において、ＣＰＵ例外が発生したと仮定する（Ｔ１）。
このときＯＳ機能１０３はＣＰＵ例外ハンドラによりブートローダ１０８に対してＣＰＵ例外通知を送信する（Ｔ２）。
これによりブートローダ１０８はＣＰＵ例外が発生し、ＯＳ機能１０３が継続動作をできないことを判断する。
次に、リセット回路１００２より周期的に送信されるリセット信号によりＣＰＵ１００１をリセットする（Ｔ３）。
そして、ブートローダ１０８のＳ／Ｗ起動手段１０９により高信頼ソフトウェア１０２が起動され、所定時間の経過後に、高信頼ソフトウェア１０２の処理が終了する（Ｔ４）。
次に、ブートローダ１０８のＳ／Ｗ起動手段１０９はＣＰＵ例外が発生したと判断したため、ＯＳ機能１０３の処理の初期化を実施する（Ｔ５）。
これにより、クライアント装置１００とサーバ装置２００との間のデータ送信手段１０５とデータ受信手段１０６の動作を確保する。
次に、ＯＳ機能１０３はデータ送信手段１０５により、ＣＰＵ例外が発生したことをサーバ装置２００に通知する例外発生通知を送信する。
この例外発生通知は、サーバ装置２００にＯＳ状態情報の送信を要求する役割を有しており、送信要求の例に相当する。
サーバ装置２００は、データ受信手段２０２により例外発生通知を受信する（Ｔ６）。
次に、サーバ装置２００では管理者が例外発生通知を出力装置２００３より確認し、入力装置２００２と、ＯＳ状態情報解析手段２０４を使用し、ＯＳ状態情報保存領域２０３に格納されたＯＳ状態情報を抽出する。
そして、データ送信手段２０１によりＯＳ状態情報をクライアント装置１００に送信する（Ｔ７）。
クライアント装置１００はデータ受信手段１０６によりＯＳ状態情報を受信し、受信したＯＳ状態情報を受信ＯＳ状態情報保存領域１１２に保存する。
受信ＯＳ状態情報保存領域１１２はＯＳ状態情報の保存後、ＯＳ状態情報受信完了通知をブートローダ１０８に通知する（Ｔ８）。
次に、リセット回路１００２より周期的に送信されるリセット信号によりＣＰＵ１００１がリセットされ（Ｔ９）、ブートローダ１０８のＳ／Ｗ起動手段１０９により再び高信頼ソフトウェア１０２が起動される（Ｔ１０）。
次に、ブートローダ１０８のＳ／Ｗ起動手段１０９が、受信ＯＳ状態情報保存領域１１２に保存されたＯＳ状態情報をＣＰＵ１００１およびＲＡＭ１００３に復元することで（Ｔ１１）、ＯＳ機能１０３を起動する（Ｔ１２）。
【００４６】
以上の流れにより、サーバ装置２００に格納されたＯＳ状態情報から管理者が任意のＯＳ状態情報を選択し、クライアント装置１００に送信することで、クライアント装置１００にＣＰＵ例外が発生したとしても、ＯＳ機能１０３の動作を継続することができる。
【００４７】
なお、図６のシーケンス図では、Ｓ８において測定結果の送信とともに、Ｓ２で生成されたＯＳ状態情報を送信することとしているが、これに代えて、例えば、測定結果の送信タイミングをＳ１０の後とすることで、Ｓ１０で生成されたＯＳ状態情報を測定結果とともに送信するようにしてもよい。
【００４８】
以上、本実施の形態では、
クライアント装置のＯＳ状態情報をクライアント装置自身だけでなく、サーバ装置に退避し、蓄積し、ＯＳ状態情報が破壊されＣＰＵ例外が発生した場合に、サーバ装置に蓄積されたＯＳ状態情報をクライアント装置に送信し、復元することで、退避したＯＳ状態情報の時点に処理を戻しクライアント装置のＯＳ機能の動作継続性を確保することを説明した。
【００４９】
より具体的には、
周期的にリセットを行う、リセット回路と、
周期リセットを必要とする、高信頼ソフトウェアと、
周期リセットを必要としない、リアルタイムＯＳ（以下、ＲＴＯＳ）と、
ＲＴＯＳ上で動作するアプリケーションと、
サーバ装置にデータを送信する、データ送信手段と、
サーバ装置からデータを受信する、データ受信手段と、
ＲＴＯＳや高信頼ソフトウェアを起動する、Ｓ／Ｗ起動手段と、
受信ＯＳ状態情報復元手段と自ＯＳ状態情報退避・復元手段を備える、ブートローダと、
受信ＯＳ状態情報を保存するための、受信ＯＳ状態情報保存領域と、
自ＯＳ状態情報を保存するための、自ＯＳ状態情報保存領域と、
から構成されるクライアント装置と、
クライアント装置にデータを送信する、データ送信手段と、
クライアント装置からデータを受信する、データ受信手段と、
蓄積したＯＳ状態情報から復元するためのＯＳ状態情報を抽出するための、ＯＳ状態解析手段と、
クライアント装置から受信したＯＳ状態情報を保存するための、ＯＳ状態情報保存領域と、
から構成されるサーバ装置と、
から構成されるシステムを説明した。
【符号の説明】
【００５０】
１００  クライアント装置、１０２  高信頼ソフトウェア、１０３  ＯＳ機能、１０４  アプリケーション、１０５  データ送信手段、１０６  データ受信手段、１０７  オペレーティングシステム、１０８  ブートローダ、１０９  Ｓ／Ｗ起動手段、１１０  受信ＯＳ状態情報復元手段、１１１  自ＯＳ状態情報退避・復元手段、１１２  受信ＯＳ状態情報保存領域、１１３  自ＯＳ状態情報保存領域、２００  サーバ装置、２０１  データ送信手段、２０２  データ受信手段、２０３  ＯＳ状態情報保存領域、２０４  ＯＳ状態情報解析手段、１００１  ＣＰＵ、１００２  リセット回路、１００３  ＲＡＭ、１００４  ＲＯＭ、１００５  各種センサー、１００６  通信装置、２００１  ＣＰＵ、２００２  入力装置、２００３  出力装置、２００４  ＲＡＭ、２００５  ＲＯＭ、２００６  大容量記憶装置、２００７  通信装置。
【図１】
2012198728.tif 000003
【図２】
2012198728.tif 000004
【図３】
2012198728.tif 000005
【図４】
2012198728.tif 000006
【図５】
2012198728.tif 000007
【図６】
2012198728.tif 000008
【図７】
2012198728.tif 000009
【図８】
2012198728.tif 000010
【図９】
2012198728.tif 000011