(57)【要約】【課題】タスクが関数を呼び出す場面において、より適切な実行時間管理を行うことが可能な情報処理装置、及びその制御方法、並びに当該情報処理装置を機能させるためのプログラムを提供すること。【解決手段】基本制御部と実行するタスクに実行時間が設定されるアプリケーションとアプリケーションに関数を提供可能な関数提供部とが動作する情報処理装置であって、基本制御部は、アプリケーションが関数提供部から特定の関数を呼び出す際に、アプリケーションが実行しているタスクの処理経過時間と特定の関数の処理所要時間に基づいて特定の関数に基づく処理が実行時間内に終了するか否かを判定し、実行時間内に終了しないと判定した場合に所定の例外処理を行うことを特徴とする。【選択図】図４
2012226446.tif 000002
【特許請求の範囲】
【請求項１】
基本制御部と、
前記基本制御部によって制御され、実行するタスクの少なくとも一部に実行時間が設定されるアプリケーションと、
前記アプリケーションに関数を提供可能な関数提供部と、が動作する情報処理装置であって、
前記基本制御部は、
前記アプリケーションが前記関数提供部から特定の関数を呼び出す際に、前記アプリケーションが実行しているタスクの処理経過時間と前記特定の関数の処理所要時間に基づいて前記特定の関数に基づく処理が前記実行時間内に終了するか否かを判定し、
前記特定の関数に基づく処理が前記実行時間内に終了しないと判定した場合に所定の例外処理を行うことを特徴とする、
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記所定の例外処理は、ユーザにより設定変更可能なフック関数を呼び出す処理を含む、
情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記特定の関数は、ドライバ処理を行うための関数である、
情報処理装置。
【請求項４】
請求項１ないし３のいずれか１項に記載の情報処理装置であって、
前記特定の関数は、信頼関数である、
情報処理装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の情報処理装置であって、
前記基本制御部は、スケジューラ機能を備え、前記所定の例外処理を行った後、前記アプリケーションにより実行されるタスクについて再スケジューリングを行うことを特徴とする、
情報処理装置。
【請求項６】
請求項１ないし５のいずれか１項に記載の情報処理装置であって、
タイマー手段と、
前記特定の関数の処理所要時間が格納されたテーブルと、を備え、
前記基本制御部は、前記タイマー手段を用いて前記タスクの処理経過時間を認識すると共に、前記テーブルを参照して前記特定の関数の処理所要時間を取得することを特徴とする、
情報処理装置。
【請求項７】
情報処理装置の基本制御部が、実行するタスクの少なくとも一部に実行時間が設定されるアプリケーションと、前記アプリケーションに関数を提供可能な関数提供部と、を制御する情報処理装置の制御方法であって、
前記アプリケーションが前記関数提供部から特定の関数を呼び出す際に、前記アプリケーションが実行しているタスクの処理経過時間と前記特定の関数の処理所要時間に基づいて前記特定の関数に基づく処理が前記実行時間内に終了するか否かを判定するステップと、
前記特定の関数に基づく処理が前記実行時間内に終了しないと判定した場合に所定の例外処理を行うステップと、
を備えることを特徴とする、
情報処理装置の制御方法。
【請求項８】
コンピュータを、
基本制御部によって制御され、実行するタスクの少なくとも一部に実行時間が設定されるアプリケーションと、
前記アプリケーションに関数を提供可能な関数提供部と、
前記アプリケーションが前記関数提供部から特定の関数を呼び出す際に、前記アプリケーションが実行しているタスクの処理経過時間と前記特定の関数の処理所要時間に基づいて前記特定の関数に基づく処理が前記実行時間内に終了するか否かを判定し、前記特定の関数に基づく処理が前記実行時間内に終了しないと判定した場合に所定の例外処理を行う基本制御部と、
として機能させるためのコンピュータ読み取り可能なプログラム。
【請求項９】
コンピュータに搭載され、アプリケーションを制御する基本制御部を、
アプリケーションが関数提供部から特定の関数を呼び出す際に、前記アプリケーションが実行しているタスクの処理経過時間と前記特定の関数の処理所要時間に基づいて前記特定の関数に基づく処理が前記実行時間内に終了するか否かを判定し、前記特定の関数に基づく処理が前記実行時間内に終了しないと判定した場合に所定の例外処理を行う基本制御部として機能させるためのコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイムＯＳ（オペレーティングシステム）等の制御主体によってアプリケーションの動作が制御される情報処理装置及びその制御方法、並びにコンピュータを当該情報処理装置として機能させるためのコンピュータ読み取り可能なプログラムに関する。
【背景技術】
【０００２】
従来、リアルタイムＯＳと称されるオペレーティングシステムが普及しつつある。その一種として、AUTOSAR  OS(SC4)に代表される、タイミング保護・メモリ保護機能付のリアルタイムＯＳが知られている。
【０００３】
タイミング保護機能とは、アプリケーションにより実行されるタスク等に実行時間（最大実行時間）又は処理期限を設けて管理する機能である。このようなタイミング保護機能を有する情報処理装置についての発明が以下のように開示されている。
【０００４】
特許文献１には、リアルタイム・コンピュータ・システムにおいて、タスク・スケジューリング手法を改良する方法について記載されている。この方法では、タスクの拡張コストを繰り返し増加させる処理を、サイクル内で実行できるまで行っている。そして、延長された拡張コストを、当該タスクが有する延長可能時間としている。また、タスクの実行が拡張コストを超えた場合は、締め切り時間までタスクを実行させ、その後にタスクを停止させている。
【０００５】
特許文献２には、マルチタスクシステムにおけるタスク管理方法について記載されている。この方法では、品質サービス制御用タスクの実行開始時に、実行される周期と実行時間を規定した管理テーブルを参照して当該周期に実行可能であるか否かが判断され、実行できないと判断された場合には、当該品質サービス制御用タスクではなく一般タスクが実行されるように制御される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−２５９１４４号公報
【特許文献２】特開平１１−２４９９１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、AUTOSAR  OS(SC4)に代表されるタイミング保護・メモリ保護機能付のリアルタイムＯＳにより制御されるシステム（情報処理装置）では、信頼ＯＳアプリケーションが提供する信頼関数を、非信頼ＯＳアプリケーションが呼び出すことが可能となっている。AUTOSAR（Automotive  Open  System  Architecture）とは、自動車メーカーや自動車部品メーカー等により設立された標準化団体であり、車載電子制御装置用ソフトウエア・インターフェースやソフトウエア・モジュールの標準化活動を行っている。AUTOSAR  OSとは、AUTOSARによって提供・使用されているオペレーティングシステムである。
【０００８】
AUTOSAR  OSに関連する信頼ＯＳアプリケーションとは、オペレーティングシステムにおけるライブラリ機能に近いものである。非信頼ＯＳアプリケーションとは、一般的にはアプリケーションと称されるものであり、各種タスクを実行する。また、信頼関数とは、関数に基づく処理が途中で停止するのを回避する必要があるものであり、ユーザによって予め特定されている関数である。一般的には、共有メモリやＩ／Ｏ等の周辺機器とのアクセスを行うドライバ処理等が、信頼関数の呼び出しによって実現されるように設定される。
【０００９】
ここで、非信頼ＯＳアプリケーションが信頼関数を呼び出した際に、信頼関数に基づく処理は、実行時間に関しては非信頼ＯＳアプリケーションが実行中のタスク処理に包含されるものとして扱われる。従って、当該タスクの残り実行時間が十分でない場合、信頼関数に基づく処理が呼び出し側のタスクと共に強制終了される場合がある。
【００１０】
前述のように、信頼関数に基づく処理は、共有メモリやＩ／Ｏの操作を含む。従って、これが処理の途中で強制終了されると、他のアプリケーション又はプロセッサ等から共有メモリやＩ／Ｏにアクセスされたときに、制御の整合性が失われる可能性がある。
【００１１】
図１は、信頼関数を呼び出した側のタスクの残り実行時間が十分でないために信頼関数の処理が強制終了される様子を示すシーケンス図である。
【００１２】
図示するように、時刻Ｔ１０において非信頼ＯＳアプリケーションが実行中のタスクＡがオペレーティングシステム（図中、「ＯＳ」と表記した）に信頼関数の呼び出しを要求すると、時刻Ｔ１１において信頼ＯＳアプリケーションにこれが通知され、信頼関数が起床する。ところが、時刻Ｔ１２においてタスクＡの残り実行時間がゼロとなると、信頼関数は強制終了され、終了処理用のプロテクションフック（Protection  Hook）が呼び出され、強制終了に伴う処理が実行される。時刻Ｔ１３にプロテクションフックの処理が終了すると、その後、オペレーティングシステムはタスクＡを強制終了させ、再スケジューリングを行う。
【００１３】
このような一連の流れにおいて、信頼関数に基づき処理されていた共有メモリやＩ／Ｏへのアクセスは、自動的に中断されてしまうため、データの復元等を行うことが困難となる。従って、何らかの処理を講じなければ、制御の整合性が失われてしまう可能性がある。
【００１４】
この点、上記各特許文献に記載の発明は、タスクの実行時間に基づきタスクの管理を行うことについての考慮はされているものの、タスクが呼び出す可能性がある関数、特に処理が途中で停止するのを回避すべき特定の関数が呼び出された際における実行時間管理（タイミング保護）については、何ら考慮されていない。
【００１５】
本発明はこのような課題を解決するためのものであり、タスクが関数を呼び出す場面において、より適切な実行時間管理を行うことが可能な情報処理装置、及びその制御方法、並びに当該情報処理装置を機能させるためのプログラムを提供することを、主たる目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するための本発明の第１の態様は、
基本制御部と、
前記基本制御部によって制御され、実行するタスクの少なくとも一部に実行時間が設定されるアプリケーションと、
前記アプリケーションに関数を提供可能な関数提供部と、が動作する情報処理装置であって、
前記基本制御部は、
前記アプリケーションが前記関数提供部から特定の関数を呼び出す際に、前記アプリケーションが実行しているタスクの処理経過時間と前記特定の関数の処理所要時間に基づいて前記特定の関数に基づく処理が前記実行時間内に終了するか否かを判定し、
前記特定の関数に基づく処理が前記実行時間内に終了しないと判定した場合に所定の例外処理を行うことを特徴とする、
情報処理装置である。
【００１７】
この本発明の第１の態様によれば、アプリケーションが関数提供部から特定の関数を呼び出す際に、アプリケーションが実行しているタスクの処理経過時間と特定の関数の処理所要時間に基づいて特定の関数に基づく処理が実行時間内に終了するか否かを判定し、特定の関数に基づく処理が実行時間内に終了しないと判定した場合に所定の例外処理を行うため、タスクが関数を呼び出す場面において、より適切な実行時間管理を行うことができる。
【００１８】
ここで、「タスクの処理経過時間と特定の関数の処理所要時間に基づいて特定の関数に基づく処理が実行時間内に終了するか否かを判定」する処理は、タスクの実行時間がタスクの開始時に初期値として設定されるデクリメントタイマーを用いて直接的に残り実行時間を算出し、算出した残り実行時間と処理所要時間を比較する処理を含む。
【００１９】
本発明の第１の態様において、
前記所定の例外処理は、ユーザにより設定変更可能なフック関数を呼び出す処理を含むものとしてもよい。
【００２０】
また、本発明の第１の態様において、
前記特定の関数は、例えばドライバ処理を行うための関数である。
【００２１】
また、本発明の第１の態様において、
前記特定の関数は、例えば信頼関数である。
【００２２】
また、本発明の第１の態様において、
前記基本制御部は、スケジューラ機能を備え、前記所定の例外処理を行った後、前記アプリケーションにより実行されるタスクについて再スケジューリングを行うことを特徴とするものとしてもよい。
【００２３】
また、本発明の第１の態様において、
タイマー手段と、
前記特定の関数の処理所要時間が格納されたテーブルと、を備え、
前記基本制御部は、前記タイマー手段を用いて前記タスクの処理経過時間を認識すると共に、前記テーブルを参照して前記特定の関数の処理所要時間を取得することを特徴とするものとしてもよい。
【００２４】
本発明の第２の態様は、
情報処理装置の基本制御部が、実行するタスクの少なくとも一部に実行時間が設定されるアプリケーションと、前記アプリケーションに関数を提供可能な関数提供部と、を制御する情報処理装置の制御方法であって、
前記アプリケーションが前記関数提供部から特定の関数を呼び出す際に、前記アプリケーションが実行しているタスクの処理経過時間と前記特定の関数の処理所要時間に基づいて前記特定の関数に基づく処理が前記実行時間内に終了するか否かを判定するステップと、
前記特定の関数に基づく処理が前記実行時間内に終了しないと判定した場合に所定の例外処理を行うステップと、
を備えることを特徴とする、
情報処理装置の制御方法である。
【００２５】
この本発明の第２の態様によれば、アプリケーションが関数提供部から特定の関数を呼び出す際に、アプリケーションが実行しているタスクの処理経過時間と特定の関数の処理所要時間に基づいて特定の関数に基づく処理が実行時間内に終了するか否かを判定し、特定の関数に基づく処理が実行時間内に終了しないと判定した場合に所定の例外処理を行うため、タスクが関数を呼び出す場面において、より適切な実行時間管理を行うことができる。
【００２６】
本発明の第３の態様は、
コンピュータを、
基本制御部によって制御され、実行するタスクの少なくとも一部に実行時間が設定されるアプリケーションと、
前記アプリケーションに関数を提供可能な関数提供部と、
前記アプリケーションが前記関数提供部から特定の関数を呼び出す際に、前記アプリケーションが実行しているタスクの処理経過時間と前記特定の関数の処理所要時間に基づいて前記特定の関数に基づく処理が前記実行時間内に終了するか否かを判定し、前記特定の関数に基づく処理が前記実行時間内に終了しないと判定した場合に所定の例外処理を行う基本制御部と、
として機能させるためのコンピュータ読み取り可能なプログラムである。
【００２７】
この本発明の第３の態様によれば、アプリケーションが関数提供部から特定の関数を呼び出す際に、アプリケーションが実行しているタスクの処理経過時間と特定の関数の処理所要時間に基づいて特定の関数に基づく処理が実行時間内に終了するか否かを判定し、特定の関数に基づく処理が実行時間内に終了しないと判定した場合に所定の例外処理を行うため、コンピュータに、タスクが関数を呼び出す場面において、より適切な実行時間管理を行わせることができる。
【００２８】
本発明の第４の態様は、
コンピュータに搭載され、アプリケーションを制御する基本制御部を、
アプリケーションが関数提供部から特定の関数を呼び出す際に、前記アプリケーションが実行しているタスクの処理経過時間と前記特定の関数の処理所要時間に基づいて前記特定の関数に基づく処理が前記実行時間内に終了するか否かを判定し、前記特定の関数に基づく処理が前記実行時間内に終了しないと判定した場合に所定の例外処理を行う基本制御部として機能させるためのコンピュータ読み取り可能なプログラムである。
【００２９】
この本発明の第４の態様によれば、アプリケーションが関数提供部から特定の関数を呼び出す際に、アプリケーションが実行しているタスクの処理経過時間と特定の関数の処理所要時間に基づいて特定の関数に基づく処理が実行時間内に終了するか否かを判定し、特定の関数に基づく処理が実行時間内に終了しないと判定した場合に所定の例外処理を行うため、コンピュータに搭載された基本制御部に、タスクが関数を呼び出す場面において、より適切な実行時間管理を行わせることができる。
【発明の効果】
【００３０】
本発明によれば、タスクが関数を呼び出す場面において、より適切な実行時間管理を行うことが可能な情報処理装置、及びその制御方法、並びに当該情報処理装置を機能させるためのプログラムを提供することができる。
【図面の簡単な説明】
【００３１】
【図１】信頼関数を呼び出した側のタスクの残り実行時間が十分でないために信頼関数の処理が強制終了される様子を示すシーケンス図である。
【図２】本発明の一実施例に係る情報処理装置１の各機能部を概念的に示す機能ブロック図である。
【図３】本実施例に係る非信頼ＯＳアプリケーション３０が信頼関数を呼び出した際に、オペレーティングシステム１０により実行される処理の流れを示すフローチャートである。
【図４】非信頼ＯＳアプリケーション３０が実行するタスクＡによって信頼関数が呼び出されたが、タスクＡの残り処理時間が信頼関数の処理所要時間を超えないと判定された場面における、各要素の処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【００３２】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００３３】
以下、図面を参照し、本発明の一実施例に係る情報処理装置及びその制御方法、並びにプログラムについて説明する。
【００３４】
［機能構成］
図２は、本発明の一実施例に係る情報処理装置１の各機能部を概念的に示す機能ブロック図である。情報処理装置１は、例えばＣＰＵ（Central  Processing  Unit）、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）やフラッシュＲＯＭに代表されるプログラムメモリ等がバス等を介して接続されたマイクロコンピュータである。情報処理装置１のハードウエア構成に関しては特段の制限はなく、シングルコア・プロセッサ、マルチコア・プロセッサ、マルチプロセッサ、マルチスレッド処理装置等、如何なる態様のマイクロコンピュータが用いられてもよい。
【００３５】
情報処理装置１は、プログラムメモリに格納されたプログラムが実行されることにより機能する機能ブロックとして、オペレーティングシステム１０と、信頼ＯＳアプリケーション２０と、非信頼ＯＳアプリケーション３０と、を備える。
【００３６】
また、情報処理装置１は、オペレーティングシステム１０その他のソフトウエアによって利用可能なタイマー４０を備え、ソフトウエアによって参照可能なデータテーブルとして実行時間バジェットテーブル５０と、信頼関数処理所要時間テーブル６０と、を備える。これらのデータテーブルは、例えばＲＯＭに格納されており、必要に応じて、フラッシュメモリやレジスタ、ＲＡＭ等にロードされて用いられる。
【００３７】
オペレーティングシステム１０は、主に、一般的にカーネル、スケジューラと称される基本制御機能を有する。本実施例においては、特に、非信頼ＯＳアプリケーション３０が実行するタスクの実行時間管理や例外処理のためのプロテクションフック（Protection  Hook）の呼び出し等を行う。なお、オペレーティングシステム１０は、非信頼ＯＳアプリケーション３０が実行するタスクの実行開始時刻を把握している。
【００３８】
信頼ＯＳアプリケーション２０は、非信頼ＯＳアプリケーション３０に対して関数を提供するライブラリ機能を有する。信頼ＯＳアプリケーション２０が提供する関数には、信頼関数と非信頼関数を区別するための識別子が付与されている。信頼関数とは、共有メモリやＩ／Ｏ等の周辺機器とのアクセスを行うドライバ処理等、関数に基づく処理が途中で停止するのを回避する必要があるものであり、ユーザによって予め選択・特定されている。
【００３９】
非信頼ＯＳアプリケーション３０は、オペレーティングシステム１０によって制御され、情報処理装置１の用途に応じた各種タスクを実行する。非信頼ＯＳアプリケーション３０が実行するタスクの少なくとも一部には、実行時間（最大実行時間）が設定されている。以下、この実行時間を、実行時間バジェットと称する。実行時間バジェットは、タスクの実行が開始してから休止状態又は待ち状態になるまでに、タスクが実行するのを許可されている最大時間である。なお、本実施例では単独の非信頼ＯＳアプリケーション３０を備えるものとして説明するが、他の複数のアプリケーションが同時に動作してもよい。
【００４０】
実行時間バジェットテーブル５０は、タスク毎に、実行時間バジェットが規定されている。なお、実行時間バジェットが設定されていないタスクも存在してよく、この場合、実行時間バジェットテーブル５０における当該タスクに対応した実行時間バジェットはブランク等に設定されてよい。
【００４１】
信頼関数処理所要時間テーブル６０は、信頼ＯＳアプリケーション２０が提供する信頼関数毎に、処理に要する時間（処理所要時間）が規定されている。以下、この処理所要時間を、単に処理所要時間と称する。
【００４２】
実行時間バジェットテーブル５０及び信頼関数処理所要時間テーブル６０の内容は、システムコンフィギュレーション時に、情報処理装置１の用途や性能に応じて適切に設定される。
【００４３】
［処理フロー］
以下、非信頼ＯＳアプリケーション３０が信頼関数を呼び出した際に、オペレーティングシステム１０により実行される処理について説明する。図３は、本実施例に係る非信頼ＯＳアプリケーション３０が信頼関数を呼び出した際に、オペレーティングシステム１０により実行される処理の流れを示すフローチャートである。本フローは、信頼関数が呼び出された（図では、Call  Trusted  Functionと表記した）タイミングで開始される。
【００４４】
まず、オペレーティングシステム１０は、呼び出し元のタスクにより通知されたコールレベル及びサービスＩＤが正しいか否かを判定する（Ｓ１００、Ｓ１０２）。コールレベルとは、タスクの呼び出し可能なレベルかどうかを判定するための値であり、サービスＩＤとは、信頼関数を指定するＩＤである。
【００４５】
コールレベルとサービスＩＤの少なくとも一方が正しくない場合は、エラーフック（Error  Hook）を呼び出し（Ｓ１０４）、信頼関数の呼び出し処理が終了する。
【００４６】
コールレベルとサービスＩＤの双方が正しい場合は、実行時間バジェットテーブル５０を参照し、呼び出し元のタスクの実行時間バジェットを取得する（Ｓ１０６）。
【００４７】
そして、呼び出し元のタスクの実行開始時刻とタイマー４０の値から、呼び出し元のタスクの処理経過時間を認識し（Ｓ１０８）、実行時間バジェットから処理経過時間を差し引いて、呼び出し元のタスクの残り実行時間を算出する（Ｓ１１０）。
【００４８】
なお、タイマー４０の値は、タスクの実行開始と共にリセットされるように制御されてもよい。この場合、タイマー４０の値がそのまま処理経過時間となる。
【００４９】
また、タイマー４０がデクリメントタイマーであり、タスクの実行開始と共に実行時間バジェットが初期値として設定される場合、タイマー４０の値がそのままタスクの残り実行時間となる。この場合、Ｓ１０６〜Ｓ１１０の処理は統合され、タイマー４０の値をタスクの残り時間として取得する処理となる。
【００５０】
タスクの残り実行時間を算出又は取得すると、信頼関数処理所要時間テーブル６０を参照し、サービスＩＤによって指定された信頼関数の処理所要時間を取得する（Ｓ１１２）。
【００５１】
そして、タスクの残り実行時間と信頼関数の処理所要時間を比較し、タスクの残り実行時間が信頼関数の処理所要時間を超えるか否か、すなわち、信頼関数に基づく処理が実行時間バジェット内に終了するか否かを判定する（Ｓ１１４）。
【００５２】
タスクの残り実行時間が信頼関数の処理所要時間を超えると判定した場合には、サービスＩＤで指定された信頼関数に基づく処理を実行させる（Ｓ１１６）。
【００５３】
一方、タスクの残り実行時間が信頼関数の処理所要時間を超えないと判定した場合には、プロテクションフックを呼び出し（Ｓ１１８）、保護違反処理を呼び出した後（Ｓ１２０）、タスクの再スケジューリングを行う（Ｓ１２２）。
【００５４】
ここで、Ｓ１０４及びＳ１１８で呼び出されるフック関数は、強制終了の可否・程度、再スケジューリングの際の優先度等を決定するものであり、ユーザによって設定変更可能となっている。これによって、ユーザは、所望のタイミングでフック関数のパラメータ変更等を行い、情報処理装置１の仕様変更を行うことができる。
【００５５】
［動作例］
以下、上記のようなフローを実行することにより、オペレーティングシステム１０が適切な実行時間管理を行う動作について説明する。
【００５６】
図４は、非信頼ＯＳアプリケーション３０が実行するタスクＡによって信頼関数が呼び出されたが、タスクＡの残り処理時間が信頼関数の処理所要時間を超えないと判定された場面における、各要素の処理の流れを示すシーケンス図である。
【００５７】
図示するように、時刻Ｔ０において非信頼ＯＳアプリケーション３０が実行中のタスクＡがオペレーティングシステム（図中、「ＯＳ」と表記した）１０に信頼関数の呼び出しを要求すると、オペレーティングシステム１０は図３で示したフローを実行し、タスクＡの残り実行時間が信頼関数の処理所要時間を超えるか否かを判定する。
【００５８】
本図では、タスクＡの残り実行時間が信頼関数の処理所要時間を超えないと判定されたものとする。この場合、信頼ＯＳアプリケーション２０に信頼関数の起床通知は行われず、時刻Ｔ１においてプロテクションフックが呼び出される。
【００５９】
時刻Ｔ２にプロテクションフックの処理が終了すると、その後、オペレーティングシステム１０は、時刻Ｔ３においてタスクＡを強制終了させ、時刻Ｔ４において、タスクの再スケジューリングを行う。
【００６０】
このように、本実施例の情報処理装置１では、信頼関数が最後まで処理を行うことができないと判断された場合には、信頼関数は起床しないように制御される。このため、信頼関数に基づき処理されていた共有メモリやＩ／Ｏへのアクセスが自動的に中断されるという事態が生じるのを抑止することができ、制御の整合性が維持されることになる。
【００６１】
すなわち、タスクが関数を呼び出す場面において、より適切な実行時間管理を行うことができる。
【００６２】
以上説明した本実施例の情報処理装置１、及びその制御方法、並びに情報処理装置１を機能させるためのプログラムによれば、タスクが関数を呼び出す場面において、より適切な実行時間管理を行うことができる。
【００６３】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【００６４】
１    情報処理装置
１０  オペレーティングシステム
２０  信頼ＯＳアプリケーション
３０  非信頼ＯＳアプリケーション
４０  タイマー
５０  実行時間バジェットテーブル
６０  信頼関数処理所要時間テーブル
【図１】
2012226446.tif 000003
【図２】
2012226446.tif 000004
【図３】
2012226446.tif 000005
【図４】
2012226446.tif 000006