(57)【要約】【課題】  検査対象となるアプリケーションの動作を任意の時点で停止させることのできるＯＳエミュレータ時間経過制御装置を提供する。【解決手段】  ＯＳエミュレータ１０４は、ホストＯＳ１０３上にターゲットＯＳの機能を実現し、ターゲットＯＳ向けに開発された組み込みアプリケーション１０５を検査のために動作させる。ホストＯＳ１０３とＯＳエミュレータ１０４との間に設けられたクロック管理プログラム１０６は、ホストＯＳ１０３の時間経過をＯＳエミュレータ１０４に伝達し、あるいは伝達しない。時間経過が伝達されないと、ＯＳエミュレータ１０４内の時間の進行が停止し、その上で動作する組み込みアプリケーション１０５も動作を停止する。クロック操作プログラム１０７は、利用者からの指示に従ってクロック管理プログラム１０６の前記伝達の動作を制御する。【選択図】  図１
2006293515.tif 000002
【特許請求の範囲】
【請求項１】
ホストＯＳ上でターゲットＯＳの機能を実現し前記ターゲットＯＳ向けのアプリケーションプログラムを動作させるＯＳエミュレータと前記ホストＯＳとの間に設けられ、前記ホストＯＳの時間経過を前記ＯＳエミュレータに伝達するクロック管理手段と、利用者からの指示に従って前記クロック管理手段の前記伝達の動作を制御するクロック操作手段とを備えることを特徴とするＯＳエミュレータ時間経過制御装置。
【請求項２】
前記クロック管理手段は、前記ホストＯＳの時間経過を前記ＯＳエミュレータに継続して伝達する通常動作、前記ホストＯＳの時間経過を前記ＯＳエミュレータに伝達しない停止動作、および指定された時間経過分だけ前記ホストＯＳの時間経過を前記ＯＳエミュレータに伝達する単発動作のうち、外部から与えられた指令で指示された動作を実行するものであり、前記クロック操作手段は、前記通常動作、前記停止動作および前記単発動作のうち利用者から指示された動作を前記クロック管理手段に対して指令するものであることを特徴とする請求項１記載のＯＳエミュレータ時間経過制御装置。
【請求項３】
前記クロック管理手段は、特定周期のタイマがタイムアウトした旨の通知を前記ホストＯＳから受信したか、前記指令を前記クロック操作手段から受信したかを判定する入力判定部と、前記タイムアウトした旨の通知を前記ホストＯＳから受信した場合に、前記ＯＳエミュレータ内の時間経過を管理するクロックカウンタを単位時間分だけ進める通常歩進部と、受信した前記指令を解析する指令解析部と、解析した指令が前記停止動作を指示するものである場合に前記タイマを停止させるタイマ停止部と、解析した指令が前記通常動作を指示するものである場合に前記タイマを起動するタイマ起動部と、解析した指令が前記単発動作を指示するものである場合に前記指令で指定された時間経過分だけ前記クロックカウンタを進める単発歩進部とを備えることを特徴とする請求項２記載のＯＳエミュレータ時間経過制御装置。
【請求項４】
前記クロック操作手段は、利用者からの指示を入力する入力判定部と、入力された指示を解析する指示解析部と、指示の解析結果に応じて再開指令、停止指令および利用者から指定された経過時間を指定した単発歩進指令を前記クロック管理部に発行する指令出力部とを有することを特徴とする請求項３記載のＯＳエミュレータ時間経過制御装置。
【請求項５】
ホストＯＳ上でターゲットＯＳの機能を実現し前記ターゲットＯＳ向けのアプリケーションプログラムを動作させるＯＳエミュレータの時間経過を制御する装置を構成するコンピュータを、特定周期のタイマがタイムアウトした旨の通知を前記ホストＯＳから受信したか、クロック操作手段から指令を受信したかを判定する入力判定部、前記タイムアウトした旨の通知を前記ホストＯＳから受信した場合に、前記ＯＳエミュレータ内の時間経過を管理するクロックカウンタを単位時間分だけ進める通常歩進部、受信した前記指令を解析する指令解析部、解析した指令がクロック停止を指示するものである場合に前記タイマを停止させるタイマ停止部、解析した指令がクロック再開を指示するものである場合に前記タイマを起動するタイマ起動部、解析した指令が指定した時間だけクロックを進めることを指示するものである場合に指定された時間だけ前記クロックカウンタを進める単発歩進部、として機能させるためのクロック管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストＯＳ上でターゲットＯＳの機能を実現するＯＳエミュレータの時間経過を制御する装置に関する。
【背景技術】
【０００２】
或る計算機のＯＳ（オペレーティングシステム）上で別のＯＳの機能を実現するソフトウェアをＯＳエミュレータと呼び、ＯＳエミュレータが動作するＯＳをホストＯＳ、再現するＯＳをターゲットＯＳと呼ぶ。ＯＳエミュレータは、ターゲットＯＳと同じＡＰＩを持っており、ＯＳエミュレータ上で動作するアプリケーションプログラムは見かけ上ターゲットＯＳ上で動作する場合と同じ動作を行うことができる。このため、ターゲットＯＳ向けに開発された組み込みアプリケーションプログラムなどのアプリケーションをＯＳエミュレータ上で実行させ、その振る舞いを観察することにより、アプリケーションを検査する用途などに広く利用されている。
【０００３】
従来のこの種検査の一例が特許文献１、２に記載されている。特許文献１では、ハードウェアとソフトウェアが混在するシステムで、複数のハードウェアモデルを連動して行うシミュレーションによるソフトウェアの動作検証において、個々のハードウェアモデルの時間経過のシミュレーションを可変とし、またハードウェアモデルの状態を監視して、特定の事象を契機に自動的に特定のハードウェアモデルの時間経過を加速することにより、ソフトウェア検証に要する時間を短縮している。また、特許文献２では、複数のシミュレータの論理時刻を監視し、論理時刻の進行が実時刻の進行より遅くなった時には、論理時刻を強制的に進行させている。
【０００４】
他方、ソフトウェアのデバッグを支援するための装置として、インサーキットエミュレータ（ＩＣＥ）がある。例えば、特許文献３では、擬似的な事象を記述したシナリオデータをＭＰＵのＩＣＥ上で逐次読み込んで、そのＭＰＵの組み込みソフトウェアに自動的に事象を与えている。
【特許文献１】特開２０００−２６７８８９号公報
【特許文献２】特開２０００−１６３３９２号公報
【特許文献３】特開平１１−２０３１６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ターゲットＯＳ向けに開発された組み込みアプリケーションプログラムをＯＳエミュレータ上で実行して検査する場合、通常のソフトウェアブレークポイントによるデバッガと組み合わせれば、任意のアドレスで実行を停止させることができ、停止時点のプログラムの情報を取得することで、デバッグを進めることができる。しかし、デバッガが存在する場合と存在しない場合とで、実行速度が相違するなどの問題が生じる。他方、ＩＣＥを使用すれば、そのような問題は解消されるが、ＩＣＥという特別なハードウェアが必要になる。
【０００６】
本発明の目的は、ＩＣＥといった特別なハードウェアを必要とせず、且つソフトウェアデバッガを用いる場合のような実行速度の低下なしに、検査対象となるアプリケーションプログラムの動作を任意の時点で停止させることのできるＯＳエミュレータ時間経過制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の第１のＯＳエミュレータ時間経過制御装置は、ホストＯＳ上でターゲットＯＳの機能を実現し前記ターゲットＯＳ向けのアプリケーションプログラムを動作させるＯＳエミュレータと前記ホストＯＳとの間に設けられ、前記ホストＯＳの時間経過を前記ＯＳエミュレータに伝達するクロック管理手段と、利用者からの指示に従って前記クロック管理手段の前記伝達の動作を制御するクロック操作手段とを備えることを特徴とする。
【０００８】
本発明の第２のＯＳエミュレータ時間経過制御装置は、第１のＯＳエミュレータ時間経過制御装置において、前記クロック管理手段は、前記ホストＯＳの時間経過を前記ＯＳエミュレータに継続して伝達する通常動作、前記ホストＯＳの時間経過を前記ＯＳエミュレータに伝達しない停止動作、および指定された時間経過分だけ前記ホストＯＳの時間経過を前記ＯＳエミュレータに伝達する単発動作のうち、外部から与えられた指令で指示された動作を実行するものであり、前記クロック操作手段は、前記通常動作、前記停止動作および前記単発動作のうち利用者から指示された動作を前記クロック管理手段に対して指令するものであることを特徴とする。
【０００９】
本発明の第３のＯＳエミュレータ時間経過制御装置は、第２のＯＳエミュレータ時間経過制御装置において、前記クロック管理手段は、特定周期のタイマがタイムアウトした旨の通知を前記ホストＯＳから受信したか、前記指令を前記クロック操作手段から受信したかを判定する入力判定部と、前記タイムアウトした旨の通知を前記ホストＯＳから受信した場合に、前記ＯＳエミュレータ内の時間経過を管理するクロックカウンタを単位時間分だけ進める通常歩進部と、受信した前記指令を解析する指令解析部と、解析した指令が前記停止動作を指示するものである場合に前記タイマを停止させるタイマ停止部と、解析した指令が前記通常動作を指示するものである場合に前記タイマを起動するタイマ起動部と、解析した指令が前記単発動作を指示するものである場合に前記指令で指定された時間経過分だけ前記クロックカウンタを進める単発歩進部とを備えることを特徴とする。
【００１０】
本発明の第４のＯＳエミュレータ時間経過制御装置は、第３のＯＳエミュレータ時間経過制御装置において、前記クロック操作手段は、利用者からの指示を入力する入力判定部と、入力された指示を解析する指示解析部と、指示の解析結果に応じて再開指令、停止指令および利用者から指定された経過時間を指定した単発歩進指令を前記クロック管理部に発行する指令出力部とを有することを特徴とする。
【００１１】
また本発明のクロック管理プログラムは、ホストＯＳ上でターゲットＯＳの機能を実現し前記ターゲットＯＳ向けのアプリケーションプログラムを動作させるＯＳエミュレータの時間経過を制御する装置を構成するコンピュータを、特定周期のタイマがタイムアウトした旨の通知を前記ホストＯＳから受信したか、クロック操作手段から指令を受信したかを判定する入力判定部、前記タイムアウトした旨の通知を前記ホストＯＳから受信した場合に、前記ＯＳエミュレータ内の時間経過を管理するクロックカウンタを単位時間分だけ進める通常歩進部、受信した前記指令を解析する指令解析部、解析した指令がクロック停止を指示するものである場合に前記タイマを停止させるタイマ停止部、解析した指令がクロック再開を指示するものである場合に前記タイマを起動するタイマ起動部、解析した指令が指定した時間だけクロックを進めることを指示するものである場合に指定された時間だけ前記クロックカウンタを進める単発歩進部、として機能させることを特徴とする。
【００１２】
『作用』
ＯＳエミュレータは、その上で動作するアプリケーションプログラムに対してタイムアウトの発生など各種の時間事象を提供する。アプリケーションプログラム内のタスクは、タイムアウトの発生などの時間事象を契機に状態が遷移し、例えば、”待ち状態”から”実行待ち状態”または”実行状態”に遷移する。ＯＳエミュレータはアプリケーションプログラムに与える時間事象を、ホストＯＳから伝達される時間事象に基づいて生成している。従って、ホストＯＳからＯＳエミュレータへの時間事象の伝達を停止させてＯＳエミュレータ内の時間の進行を止めると、結果としてアプリケーションプログラムの動作が停止する。反対に、ホストＯＳからＯＳエミュレータへの時間事象の伝達を再開させると、ＯＳエミュレータ内の時間の進行が再開し、アプリケーションプログラムの動作が再開する。これにより、ＩＣＥといった特別なハードウェアを使用せず、且つソフトウェアデバッガを用いる場合のような実行速度の低下なしに、ＯＳエミュレータ上で動作するアプリケーションプログラムの動作を任意の時点で停止、再開させることができる。
【発明の効果】
【００１３】
本発明によれば、利用者はＯＳエミュレータ上で動作するアプリケーションプログラムの動作を任意の時点で停止することができる。その理由は、ホストＯＳの時間経過をＯＳエミュレータに伝達するクロック管理手段の動作をクロック操作手段を通じて利用者が制御でき、ホストＯＳからＯＳエミュレータへの時間経過の伝達を任意の時点で停止させることで、結果としてＯＳエミュレータ上のアプリケーションプログラムの動作を任意の時点で停止させることができるからである。これによって、ＩＣＥといった特別なハードウェアを使用せず、且つソフトウェアデバッガを用いる場合のような実行速度の低下なしに、アプリケーションプログラムの検査が可能になる。
【発明を実施するための最良の形態】
【００１４】
次に本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００１５】
図１を参照すると、本発明の第１の実施の形態にかかる計算機システム１０１は、計算機ハードウェア１０２と、ホストＯＳ１０３と、ＯＳエミュレータ１０４と、組み込みアプリケーション１０５と、クロック管理プログラム１０６と、クロック操作プログラム１０７と、その他のプログラム１０８とを含んで構成される。ＯＳエミュレータ１０４、クロック管理プログラム１０６および組み込みアプリケーション１０５で１つのエミュレーションシステムＡが構成される。
【００１６】
計算機ハードウェア１０２は、ＣＰＵ、メモリ（主記憶）、磁気ディスク等の外部記憶装置、キーボードやマウスなどの入力装置、ＬＣＤなどの表示装置等で構成される。
【００１７】
ホストＯＳ１０３は、ＯＳエミュレータ１０４、クロック管理プログラム１０６、クロック操作プログラム１０７およびその他のプログラム１０８の実行環境を提供する。
【００１８】
ＯＳエミュレータ１０４は、本来ならばターゲットハードウェアのターゲットＯＳ上で動作する組み込みアプリケーション１０５をホストＯＳ１０３上で動作するための実行環境を提供する。つまり、ホストＯＳ１０３上にターゲットＯＳの機能を再現する。
【００１９】
組み込みアプリケーション１０５は、ターゲットＯＳ向けに開発された検査対象となるアプリケーションプログラムである。ここでは、組み込みアプリケーションを検査対象としたが、組み込みアプリケーションに限らず、あらゆる種類のプログラムを検査対象とすることが可能である。
【００２０】
クロック管理プログラム１０６は、ホストＯＳ１０３の時間経過をＯＳエミュレータ１０４に伝達するプログラムである。本実施の形態の場合、クロック管理プログラム１０６は、ホストＯＳ１０３の時間経過をＯＳエミュレータ１０４に継続して伝達する通常動作、ホストＯＳ１０３の時間経過をＯＳエミュレータ１０４に伝達しない停止動作、および指定された時間経過分だけホストＯＳ１０３の時間経過をＯＳエミュレータ１０４に伝達する単発動作のうち、クロック操作プログラム１０７から与えられた指令で指示された動作を実行する。
【００２１】
クロック操作プログラム１０７は、例えば計算機ハードウェア１０２を構成するキーボード等の入力装置を通じて利用者から与えられる指示に従って、クロック管理プログラム１０６に対して指令を発行し、その動作を制御するプログラムである。
【００２２】
その他のプログラム１０８は、組み込みアプリケーション１０５を検査するために必要な場合に設けられる。例えば、組み込みアプリケーション１０５が読み出す値をメモリ等に設定したり、組み込みアプリケーション１０５のプログラム状態を読み出して表示するプログラムなどが使用される。
【００２３】
上記のホストＯＳ１０３、その上で動作するＯＳエミュレータ１０４、クロック管理プログラム１０６、クロック操作プログラム１０７およびその他のプログラム１０８、ＯＳエミュレータ１０４上で動作する組み込みアプリケーション１０５は、計算機ハードウェア１０２を構成する磁気ディスク等の外部記憶装置に記憶され、計算機の立ち上げ時などに主記憶に読み込まれて実行される。
【００２４】
次に本実施の形態の動作について説明する。
【００２５】
クロック管理プログラム１０６がホストＯＳ１０３の時間経過をＯＳエミュレータ１０４に伝達しない停止動作状態になっている場合、ＯＳエミュレータ１０４内の時間の進行は停止している。この状態では、ＯＳエミュレータ１０４上で動作する組み込みアプリケーション１０５に対してタイムアウトの発生などの時間事象は一切提供されず、組み込みアプリケーション１０５は動作を停止している。
【００２６】
上記の動作停止状態において、利用者がクロック操作プログラム１０７に対して通常動作を指示すると、クロック操作プログラム１０７はクロック管理プログラム１０６に対して、通常動作を行うよう指令を発する。この指令を受信したクロック管理プログラム１０６は、ホストＯＳ１０３の時間経過をＯＳエミュレータ１０４に継続して伝達する通常動作状態となる。これにより、ＯＳエミュレータ１０４内の時間の進行が再開し、組み込みアプリケーション１０５に対する時間事象の提供が再開され、組み込みアプリケーション１０５が動作を再開する。この通常動作状態において、任意の時点で利用者がクロック操作プログラム１０７に対して停止動作を指示すると、クロック操作プログラム１０７がクロック管理プログラム１０６に対して停止動作を行うよう指令を発し、クロック管理プログラム１０６は再びホストＯＳ１０３の時間経過をＯＳエミュレータ１０４に伝達しない停止動作状態になり、組み込みアプリケーション１０５の動作が再び停止する。
【００２７】
また上記の動作停止状態において、利用者がクロック操作プログラム１０７に対して或る時間経過分Ｔを指定して単発動作を指示すると、クロック操作プログラム１０７はクロック管理プログラム１０６に対して、単発動作を行うよう指令を発する。この指令には利用者から指定された時間経過分Ｔが付加される。この指令を受信したクロック管理プログラム１０６は、ホストＯＳ１０３の時間経過をＯＳエミュレータ１０４に伝達する動作を再開する。これにより、ＯＳエミュレータ１０４内の時間の進行が再開し、組み込みアプリケーション１０５に対する時間事象の提供が再開され、組み込みアプリケーション１０５が動作を再開する。クロック管理プログラム１０６は、指定された時間経過分ＴだけホストＯＳ１０３の時間経過をＯＳエミュレータ１０４に伝達すると、再びホストＯＳ１０３の時間経過をＯＳエミュレータ１０４に伝達しない停止動作状態になり、組み込みアプリケーション１０５の動作が再び停止する。
【００２８】
上述のようにして、任意の時点で動作を停止させた組み込みアプリケーション１０５のプログラム状態を、その他のプログラム１０８等を使用して観察することにより、組み込みアプリケーション１０５の検査を行う。
【実施例１】
【００２９】
次に本発明の第１の実施の形態の一実施例について図面を参照して詳細に説明する。
【００３０】
図２を参照すると、ホストＯＳ１０３には特定周期のタイマ２０１が設けられ、ＯＳエミュレータ１０４にはクロックカウンタ２０２が設けられている。
【００３１】
タイマ２０１は、クロック管理プログラム１０６から設定（起動）および停止が可能であり、起動されると、予め定められた時間が経過する毎に、タイムアウト通知をホストＯＳ１０３からクロック管理プログラム１０６に送出する。タイムアウト通知が出てから次のタイムアウト通知が出るまでの時間はクロックチックと呼ばれ、抽象化されたクロックの１クロック時間に相当する。１クロックチックは、例えば1msecあるいは10msecである。
【００３２】
クロックカウンタ２０２は、ＯＳエミュレータ１０４内の時間の進行を管理するカウンタであり、クロック管理プログラム１０６からカウントアップすることができる。このクロックカウンタ２０２を歩進することで、ＯＳエミュレータ１０４内の時間が進行する。
【００３３】
クロック管理プログラム１０６には、クロック操作プログラム１０７から指令が入力され、ホストＯＳ１０３からはタイムアウト通知が入力される。クロック管理プログラム１０６は、クロック操作プログラム１０７からの指令に従って、タイマ２０１の停止や設定を行う。また、ホストＯＳ１０３からタイムアウト通知を受信する毎にクロックカウンタ２０２を１だけカウントアップする。クロック管理プログラム１０６の一例を図３に示す。
【００３４】
図３を参照すると、クロック管理プログラム１０６は、入力判定部３０１、通常歩進部３０２、指令解析部３０３、タイマ停止部３０４、タイマ起動部３０５および単発歩進部３０６を有する。
【００３５】
入力判定部３０１は、タイマ２０１がタイムアウトした旨の通知をホストＯＳ１０３から受信したか、指令をクロック操作プログラム１０７から受信したかを判定する（ステップＳ３１１、Ｓ３１２）。
【００３６】
通常歩進部３０２は、タイムアウトした旨の通知をホストＯＳ１０３から受信した場合に、クロックカウンタ２０２を単位時間分だけ進める（ステップＳ３１３）。
【００３７】
指令解析部３０３は、クロック操作プログラム１０７から受信した指令が、クロック再開指令、クロック停止指令、ｎクロック歩進指令の何れであるかを判定する（ステップＳ３１４〜Ｓ３１６）。
【００３８】
タイマ停止部３０４は、クロック停止指令を受信した場合に、ＯＳエミュレータ１０４に対して現在クロック供給中、つまり通常動作状態であれば、タイマ２０１を停止させる（ステップＳ３１７、Ｓ３１８）。クロック供給中でなく停止中であれば、何も処理しない。
【００３９】
タイマ起動部３０５は、クロック再開指令を受信した場合に、ＯＳエミュレータ１０４に対して現在クロック供給中でない、つまり停止動作状態であれば、タイマ２０１を起動させる（ステップＳ３１９、Ｓ３２０）。クロック供給中であれば、何も処理しない。
【００４０】
単発歩進部３０６は、ｎクロック歩進指令を受信した場合に、ＯＳエミュレータ１０４に対して現在クロック供給中でない、つまり停止動作状態であれば、指令で指定されたクロック数ｎだけクロックカウンタ２０２をカウントアップする（ステップＳ３２１〜Ｓ３２８）。具体的には、指令で指定された時間ｎを内部変数ｘに格納し（ステップＳ３２２）、タイマ２０１を起動し（ステップＳ３２３）、ホストＯＳ１０３からタイムアウト通知を受信する毎にクロックカウンタ２０２を１だけカウントアップすると共に内部変数ｘの値から１だけ減じ（ステップＳ３２４〜Ｓ３２６）、内部変数ｘの値が０になったら（ステップＳ３２７）、タイマ２０１を停止させる（ステップＳ３２８）。
【００４１】
図４を参照すると、計算機ハードウェア１０２に含まれる表示装置に表示されるＧＵＩ画面４０１の一例は、クロック操作画面４０２と状態設定観測画面４０３とで構成される。クロック操作画面４０２は、クロック操作プログラム１０７用の画面であり、再開ボタン４１１、停止ボタン４１２、単発ボタン４１３および時間入力欄４１４が設けられている。利用者は、ＯＳエミュレータ１０４のクロックを停止する場合には停止ボタン４１２を操作し、クロックの供給を再開する場合には再開ボタン４１１を操作する。また、ｎクロック分だけＯＳエミュレータ１０４のクロックを進める場合には、値ｎを時間入力欄４１４に入力した後、単発ボタン４１３を操作する。
【００４２】
また状態設定観測画面４０３は、その他のプログラム１０８に含まれる検査プログラム用の画面であり、組み込みアプリケーション１０５に対するデータの入力欄４２１やそのプログラム状態の表示欄４２２を備えている。検査プログラムは、入力欄４２１に記述されたデータに従って、組み込みアプリケーション１０５がデータを入力するメモリアドレスに入力データを設定する。また、組み込みアプリケーション１０５のプログラム状態を読み出し、表示欄４２２に表示する。
【００４３】
図５を参照すると、クロック操作プログラム１０７は、入力判定部５０１、指示解析部５０２および指令出力部５０３を有する。
【００４４】
入力判定部５０１は、図４のＧＵＩ画面４０１において、再開ボタン４１１、停止ボタン４１２または単発ボタン４１３が操作されたかどうかを判定する。
【００４５】
指示解析部５０２は、操作されたボタンが、何れのボタンであるか、つまり指示内容を解析する。
【００４６】
指令出力部５０３は、再開ボタン４１１が操作された場合に、再開指令をクロック管理プログラム１０６へ送出し、停止ボタン４１２が操作された場合に、停止指令をクロック管理プログラム１０６へ送出する。また、単発ボタン４１３が操作された場合、時間入力欄４１４に入力されたクロック数を指定したｎクロック歩進指令をクロック管理プログラム１０６へ送出する。
【００４７】
次に本発明の第２の実施の形態について図面を参照して詳細に説明する。
【００４８】
図６を参照すると、本発明の第２の実施の形態にかかる計算機システム６０１は、ホストＯＳ１０３の上に、ＯＳエミュレータ１０４とクロック管理プログラム１０６と組み込みアプリケーション１０５とで構成されるエミュレーションシステムＡに加え、それと同様なＯＳエミュレータ１０４'とクロック管理プログラム１０６'と組み込みアプリケーション１０５'とで構成されるエミュレーションシステムＢを設け、クロック操作プログラム１０７は２つのエミュレーションシステムＡ、Ｂ内のクロック管理プログラム１０６、１０６'を同時に同じように操作する点で、第１の実施の形態と相違する。
【００４９】
複数の組み込みアプリケーション１０５、１０５'に対する検査として、時間事象に関する相関関係の検査がある。例えば、特定クロックにイベントを送り、特定クロック時にそれを受信するといったような処理の検査である。このような検査では、ホストＯＳ１０３上の複数の組み込みアプリケーション１０５、１０５'は時間的に同期がとれている必要がある。しかし、ホストＯＳ１０３はその上で実行するプログラムを微少な時間で切り替えながら擬似的に並行動作させるため、エミュレーションシステムＡ、Ｂに対して局所的には均等に時間を割り当てることができない。これに対して、本実施の形態では、クロック操作プログラム１０７により２つのエミュレーションシステムＡ、Ｂ内の経過時間を同じにすることができるため（つまり各ＯＳエミュレータ内のクロックカウンタの値を同じにする）、複数の組み込みアプリケーション１０５、１０５'の時間事象に関する相関関係の検査を正しく実施することができる。
【００５０】
以上、本発明の実施の形態および実施例について説明したが、本発明は以上の例に限定されず、その他各種の付加変更が可能である。例えば、前記実施例では、クロック操作プログラム１０７に対する指示をＧＵＩ画面から与えたが、クロック操作プログラム１０７を汎用スクリプト言語から呼び出すようにしても良い。
【産業上の利用可能性】
【００５１】
本発明は、ＯＳエミュレータを使用した検査が必要な組み込みソフトウェアの開発や検査工程全般において適用可能である。またＯＳの時間経過を一時的に停止、再開する機能は組み込みソフトウェアに限らず、あらゆるソフトウェア開発にも適用可能である。
【図面の簡単な説明】
【００５２】
【図１】本発明の第１の実施の形態にかかる計算機システムの構成図である。
【図２】本発明の第１の実施の形態の一実施例の要部ブロック図である。
【図３】本発明の第１の実施の形態の一実施例におけるクロック管理プログラムの一例を示すフローチャートである。
【図４】本発明の第１の実施の形態の一実施例におけるＧＵＩ画面例を示す図である。
【図５】本発明の第１の実施の形態の一実施例におけるクロック操作プログラムの一例を示すフローチャートである。
【図６】本発明の第２の実施の形態にかかる計算機システムの構成図である。
【符号の説明】
【００５３】
１０１…計算機システム
１０２…計算機ハードウェア
１０３…ホストＯＳ
１０４…ＯＳエミュレータ
１０５…組み込みアプリケーション
１０６…クロック管理プログラム
１０７…クロック操作プログラム
１０８…その他のプログラム
【図１】
2006293515.tif 000003
【図２】
2006293515.tif 000004
【図３】
2006293515.tif 000005
【図４】
2006293515.tif 000006
【図５】
2006293515.tif 000007
【図６】
2006293515.tif 000008