(57)【特許請求の範囲】
【請求項１】
オペレーティングシステムが複数の処理の実行状態の管理を適切に行うために、その複数の処理の実行時間を監視する時間監視装置であって、
前記複数の処理の内の一の処理が実行されるとき、当該一の処理が終了するまで、その処理の上限時間をカウントするタイマ手段と、
前記タイマ手段によって前記一の処理の実行時間をカウントしている最中に、前記複数の処理の内、前記一の処理の上限時間よりも早く終了する上限時間を有する他の処理を実行する必要が生じて、前記他の処理が実行される際、前記タイマ手段は前記他の処理の上限時間のカウントを開始するものであって、前記タイマ手段による前記他の処理の上限時間のカウントの開始前に、その時点までの前記一の処理の実行時間を示す前記タイマ手段によるカウント時間と、前記他の処理の上限時間との差分時間を算出して記憶する差分時間記憶手段と、
前記他の処理が終了すると、前記タイマ手段における前記他の処理の終了時点のカウント時間に、前記差分時間記憶手段に記憶された差分時間を加算時間として加算した時間を、前記タイマ手段がカウントすべき時間として設定する加算処理手段と、
前記一の処理が実行されている最中に前記他の処理が実行されるとき前記差分時間を計測するとともに、前記他の処理が終了したとき前記加算時間を計測する計測手段、及び前記一の処理が実行されている最中に前記他の処理が実行されるとき前記差分時間の算出回数を計測するとともに、前記他の処理が終了したとき、前記加算時間の加算回数を計測する計測手段の少なくとも一方を有し、前記計測手段によって計測された前記差分時間と前記加算時間とが一致するか否か、及び、前記計測手段によって計測された前記差分時間の算出回数と前記加算時間の加算回数とが一致するか否かの少なくとも一方を判定する一致判定手段と、を備え、
前記オペレーティングシステムにて、前記一致判定手段における判定結果に基づき、前記複数の処理が適切に実行されたか否かが検知されることを特徴とする時間監視装置。
【請求項２】
前記差分時間記憶手段は、相違する他の処理を実行する必要が生じるごとに、現在、実行中の処理の実行時間を示す前記タイマ手段によるカウント時間と、実行が必要な他の処理の上限時間との差分時間を算出して記憶する処理を繰り返し行い、その際、前記一致判定手段の計測手段も、前記差分時間及び前記差分時間の算出回数の少なくとも一方の計測を繰り返し行い、
前記加算処理手段は、前記他の処理が終了するごとに、その終了した他の処理が開始されるときに前記差分時間記憶手段により算出され記憶された差分時間を加算時間として、前記タイマ手段のカウント時間に加算した時間を、前記タイマ手段がカウントすべき時間として設定し、前記一致判定手段の計測手段は、前記タイマ手段にカウントすべき時間が設定されるごとに、前記加算時間及び前記加算時間の加算回数の少なくとも一方の計測を繰り返すことを特徴とする請求項１に記載の時間監視装置。
【請求項３】
前記オペレーティングシステムにおいて、前記一の処理が完了した時点での、前記一致判定手段における判定結果から、前記一の処理及び他の処理が適切に実行されたか否かが検知されることを特徴とする請求項１又は２に記載の時間監視装置。
【請求項４】
前記一致判定手段は、前記計測手段にて計測された前記加算時間が前記差分時間よりも大きくなるか、もしくは前記計測手段にて計測された前記加算時間の加算回数が前記差分時間の算出回数よりも大きくなると、即座に異常が発生したことを前記オペレーティングシステムに通知することを特徴とする請求項１乃至３のいずれかに記載の時間監視装置。
【請求項５】
前記一致判定手段の計測手段は、前記差分時間及び前記加算時間を計測するための共通の計測レジスタを有し、前記差分時間と前記加算時間とを符号を異ならせた上で積算した結果を前記共通の計測レジスタに保存し、その共通の計測レジスタの値に基づいて、前記差分時間と前記加算時間とが一致するか否かを判定することを特徴とする請求項１乃至４のいずれかに記載の時間監視装置。
【請求項６】
前記一致判定手段の計測手段は、前記差分時間を計測するための差分時間計測レジスタと、前記加算時間を計測するための加算時間計測レジスタを有し、前記差分時間計測レジスタにて計測された差分時間と、前記加算時間計測レジスタにて計測された加算時間とが一致するか否かにより、前記差分時間と前記加算時間とが一致するか否かを判定することを特徴とする請求項１乃至４のいずれかに記載の時間監視装置。
【請求項７】
前記一致判定手段の計測手段は、前記差分時間の算出回数及び前記加算時間の加算回数を計測するための共通の計測レジスタを有し、前記差分時間の算出回数と前記加算時間の加算回数とを符号を異ならせた上で積算した結果を前記共通の計測レジスタに保存し、その共通の計測レジスタの値に基づいて、前記差分時間の算出回数と前記加算時間の加算回数とが一致するか否かを判定することを特徴とする請求項１乃至４のいずれかに記載の時間監視装置。
【請求項８】
前記一致判定手段の計測手段は、前記差分時間の算出回数を計測するための算出回数計測レジスタと、前記加算時間の加算回数を計測するための加算回数計測レジスタを有し、前記算出回数計測レジスタにて計測された差分時間の算出回数と、前記加算回数計測レジスタにて計測された加算時間の加算回数とが一致するか否かにより、前記差分時間の算出回数と前記加算時間の加算回数とが一致するか否かを判定することを特徴とする請求項１乃至４のいずれかに記載の時間監視装置。
【請求項９】
前記複数の処理は、それぞれ、リソースを獲得するとともに獲得したリソースを解放するものであることを特徴とする請求項１乃至８のいずれかに記載の時間監視装置。
【請求項１０】
オペレーティングシステムが複数の処理の実行状態の管理を適切に行うために、その複数の処理の実行時間を監視する時間監視方法であって、
前記複数の処理の内の一の処理が実行されるとき、当該一の処理が終了するまで、その処理の上限時間をカウントするカウント工程と、
前記カウント工程によって前記一の処理の実行時間をカウントしている最中に、前記複数の処理の内、前記一の処理の上限時間よりも早く終了する上限時間を有する他の処理を実行する必要が生じて、前記他の処理が実行される際、前記カウント工程において、前記他の処理の上限時間のカウントを開始するものであって、前記カウント工程における前記他の処理の上限時間のカウントの開始前に、その時点までの前記一の処理の実行時間を示すカウント時間と、前記他の処理の上限時間との差分時間を算出して記憶する差分時間記憶工程と、
前記他の処理が終了すると、前記カウント工程における前記他の処理の終了時点のカウント時間に、前記差分時間記憶工程にて記憶された差分時間を加算時間として加算した時間を、前記カウント工程にてカウントすべき時間として設定する加算処理工程と、
前記一の処理が実行されている最中に前記他の処理が実行されるとき前記差分時間を計測するとともに、前記他の処理が終了したとき前記加算時間を計測する計測工程、及び前記一の処理が実行されている最中に前記他の処理が実行されるとき前記差分時間の算出回数を計測するとともに、前記他の処理が終了したとき前記加算時間の加算回数を計測する計測工程の少なくとも一方を行い、前記計測工程によって計測された前記差分時間と前記加算時間とが一致するか否か、及び、前記計測工程によって計測された前記差分時間の算出回数と前記加算時間の加算回数とが一致するか否かの少なくとも一方を判定する一致判定工程と、を備え、
前記オペレーティングシステムにて、前記一致判定工程における判定結果に基づき、前記複数の処理が適切に実行されたか否かが検知されることを特徴とする時間監視方法。
【請求項１１】
前記差分時間記憶工程では、相違する他の処理を実行する必要が生じるごとに、現在、実行中の処理の実行時間を示すカウント時間と、実行が必要な他の処理の上限時間との差分時間を算出して記憶する処理を繰り返し行い、その際、前記計測工程においても、前記差分時間及び前記差分時間の算出回数の少なくとも一方の計測を繰り返し行い、
前記加算処理工程では、前記他の処理が終了すると、その終了した他の処理が開始されるときに前記差分時間記憶工程において算出され記憶された差分時間を加算時間として、
前記他の処理の終了時点のカウント時間に加算した時間を、前記カウント工程にてカウントすべき時間として設定し、その際、前記計測工程において、前記カウント工程にてカウントすべき時間が設定されるごとに、前記加算時間及び前記加算時間の加算回数の少なくとも一方の計測を繰り返すことを特徴とする請求項１０に記載の時間監視方法。
【請求項１２】
前記オペレーティングシステムにおいて、前記一の処理が完了した時点での、前記一致判定工程における判定結果から、前記一の処理及び他の処理が適切に実行されたか否かが検知されることを特徴とする請求項１０又は１１に記載の時間監視方法。
【請求項１３】
前記一致判定工程では、前記計測工程にて計測された前記加算時間が前記差分時間よりも大きくなるか、もしくは前記計測手段にて計測された前記加算時間の加算回数が前記差分時間の算出回数よりも大きくなると、その時点で、異常が発生したことを前記オペレーティングシステムに通知することを特徴とする請求項１０乃至１２のいずれかに記載の時間監視方法。
【請求項１４】
前記一致判定工程の計測工程では、前記差分時間及び前記加算時間を計測するための共通の計測レジスタを用いて、前記差分時間と前記加算時間とを符号を異ならせた上で積算した結果を前記共通の計測レジスタに保存し、その共通の計測レジスタの値に基づいて、前記差分時間と前記加算時間とが一致するか否かを判定することを特徴とする請求項１０乃至１３のいずれかに記載の時間監視方法。
【請求項１５】
前記一致判定工程の計測工程では、前記差分時間を計測するための差分時間計測レジスタと、前記加算時間を計測するための加算時間計測レジスタとを用いて、前記差分時間計測レジスタにて計測された差分時間と、前記加算時間計測レジスタにて計測された加算時間とが一致するか否かにより、前記差分時間と前記加算時間とが一致するか否かを判定することを特徴とする請求項１０乃至１３のいずれかに記載の時間監視方法。
【請求項１６】
前記一致判定工程の計測工程では、前記差分時間の算出回数及び前記加算時間の加算回数を計測するための共通の計測レジスタを用いて、前記差分時間の算出回数と前記加算時間の加算回数とを符号を異ならせた上で積算した結果を前記共通の計測レジスタに保存し、その共通の計測レジスタの値に基づいて、前記差分時間の算出回数と前記加算時間の加算回数とが一致するか否かを判定することを特徴とする請求項１０乃至１３のいずれかに記載の時間監視方法。
【請求項１７】
前記一致判定工程の計測工程では、前記差分時間の算出回数を計測するための算出回数計測レジスタと、前記加算時間の加算回数を計測するための加算回数計測レジスタとを用いて、前記算出回数計測レジスタにて計測された差分時間の算出回数と、前記加算回数計測レジスタにて計測された加算時間の加算回数とが一致するか否かにより、前記差分時間の算出回数と前記加算時間の加算回数とが一致するか否かを判定することを特徴とする請求項１０乃至１３のいずれかに記載の時間監視方法。
【請求項１８】
前記複数の処理は、それぞれ、リソースを獲得するとともに獲得したリソースを解放するものであることを特徴とする請求項１０乃至１７のいずれかに記載の時間監視方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つのタイマ回路を用いて、複数の処理の実行時間を監視する時間監視装置及び時間監視方法に関する。
【背景技術】
【０００２】
例えば、特許文献１に記載されているように、複数のリソース管理を行うオペレーティングシステムにおいて、リソースの獲得が長時間に及んで保留状態にあることを検出することにより、リソース管理機能を向上したシステム管理方法が知られている。
【０００３】
このシステム管理方法では、オペレーティングシステム部が、複数のリソースを管理するリソース管理部を有し、リソース管理部のタイマにより、アプリケーションプログラムが獲得したリソースの使用時間を監視する。そして、この使用時間が監視時間を超えると、タイムアウトルーチンを呼び出し、システム異常状態に対する修復処理を行う。
【０００４】
また、このシステム管理方法では、リソース獲得時間を計測するためにリソース毎にタイマを設けると、タイマの数が膨大となるため、タイマの管理対象をリソース種別及び計測時間とし、差分法のロジックを用いて、１個のリソース管理タイマにより複数のリソースの獲得時間の計測を行っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−３４２０２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した従来のシステム管理方法によれば、１個のリソース管理タイマにて複数のリソースの獲得時間を監視することができる。しかしながら、リソース管理タイマの時間監視に差分法のロジックが用いられる場合、タイマが現在計測している時間を計測し終えたときに、さらに計測すべき残り時間（差分時間）をＲＡＭ等に記憶しておく必要がある。この記憶された差分時間が、例えばノイズ等の影響により変化してしまった場合、リソース獲得時間を適切に監視することができなくなってしまう。
【０００７】
本発明は、上述した点に鑑みてなされたものであり、１つのタイマ手段にて複数の処理の実行時間を監視する際に、その監視自体に異常が生じていないかを検知することが可能な時間監視装置及びその方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、請求項１に記載の時間監視装置は、オペレーティングシステムが複数の処理の実行状態の管理を適切に行うために、その複数の処理の実行時間を監視するものであって、
複数の処理の内の一の処理が実行されるとき、当該一の処理が終了するまで、その処理の上限時間をカウントするタイマ手段と、
タイマ手段によって一の処理の実行時間をカウントしている最中に、複数の処理の内、前記一の処理の上限時間よりも早く終了する上限時間を有する他の処理を実行する必要が生じて、他の処理が実行される際、タイマ手段は他の処理の上限時間のカウントを開始するものであって、タイマ手段による他の処理の上限時間のカウントの開始前に、その時点までの一の処理の実行時間を示すタイマ手段によるカウント時間と、他の処理の上限時間との差分時間を算出して記憶する差分時間記憶手段と、
他の処理が終了すると、タイマ手段における他の処理の終了時点のカウント時間に、差分時間記憶手段に記憶された差分時間を加算時間として加算した時間を、タイマ手段がカウントすべき時間として設定する加算処理手段と、
一の処理が実行されている最中に他の処理が実行されるとき差分時間を計測するとともに、他の処理が終了したとき加算時間を計測する計測手段、及び一の処理を実行している最中に他の処理が実行されるとき差分時間の算出回数を計測するとともに、他の処理が終了したとき加算時間の加算回数を計測する計測手段の少なくとも一方を有し、計測手段によって計測された差分時間と加算時間とが一致するか否か、及び、計測手段によって計測された差分時間の算出回数と加算時間の加算回数とが一致するか否かの少なくとも一方を判定する一致判定手段と、を備え、
オペレーティングシステムにて、一致判定手段における判定結果に基づき、複数の処理が適切に実行されたか否かが検知されることを特徴とする。
【０００９】
このように、請求項１に記載の時間監視装置では、一致判定手段の計測手段にて、差分時間と加算時間、及び、差分時間の算出回数と加算時間の加算回数の少なくとも一方を計測する。例えば、差分時間記憶手段に記憶された差分時間がノイズ等の影響により値が変化すると、その差分時間から求められる加算時間も変化するため、一致判定手段の計測手段にて計測される差分時間と加算時間とが一致しなくなる。また、ノイズやプログラムのバグなどにより差分時間自体が消去されてしまったような場合には、差分時間の算出回数と加算時間の加算回数が一致しなくなる。従って、一致判定手段における判定結果を用いることで、１つのタイマ手段によって複数の処理の実行時間を監視する場合であっても、オペレーティングシステムは、監視自体に異常が生じたことを検知することが可能となる。
【００１０】
請求項２に記載したように、差分時間記憶手段は、相違する他の処理を実行する必要が生じるごとに、現在、実行中の処理の実行時間を示すタイマ手段によるカウント時間と、実行が必要な他の処理の上限時間との差分時間を算出して記憶する処理を繰り返し行い、その際、一致判定手段の計測手段も、差分時間及び前記差分時間の算出回数の少なくとも一方の計測を繰り返し行い、加算処理手段は、他の処理が終了するごとに、その終了した他の処理が開始されるときに差分時間記憶手段により算出され記憶された差分時間を加算時間として、タイマ手段のカウント時間に加算した時間を、タイマ手段がカウントすべき時間として設定し、一致判定手段の計測手段は、タイマ手段にカウントすべき時間が設定されるごとに、加算時間及び前記加算時間の加算回数の少なくとも一方の計測を繰り返すことが好ましい。このようにすれば、同時期に３つ以上の処理を実行することが必要になった場合でも、１つのタイマ手段により、各処理の実行時間を監視しつつ、監視に異常が生じた場合には、その異常発生を検知することができる。
【００１１】
請求項３に記載したように、オペレーティングシステムにおいては、一の処理が終了した時点での、一致判定手段における判定結果から、一の処理及び他の処理が適切に実行されたか否かが検知されることが好ましい。これにより、同時期に実行することが必要であった一の処理及び他の処理がともに終了した後、一致判定手段により即座にそれらの処理が適切に実行されたか否かを検知することができる。
【００１２】
請求項４に記載したように、一致判定手段は、計測手段にて計測された加算時間が差分時間よりも大きくなるか、もしくは計測手段にて計測された加算時間の加算回数が差分時間の算出回数よりも大きくなると、即座に異常が発生したことをオペレーティングシステムに通知することが好ましい。先に一の処理が実行されている最中に他の処理の実行を開始し、そして、一の処理よりも上限時間の短い他の処理が先に終了する場合、必ず、差分時間の計測が加算時間の計測よりも先に行われ、また、差分時間の算出回数のカウントも、加算時間の加算回数のカウントよりも先に行われる。従って、複数の処理の実行時間の監視が正常に行われている限り、計測した加算時間が差分時間よりも大きくなったり、加算時間の加算回数が差分時間の算出回数よりも大きくなったりすることは起こりえない。このため、計測された加算時間が差分時間よりも大きくなるか、もしくは計測された加算時間の加算回数が差分時間の算出回数よりも大きくなった場合、何らかの異常が発生したとみなしえるので、即座にオペレーティングシステムに異常が発生したことを通知することが好ましい。
【００１３】
請求項５に記載したように、一致判定手段の計測手段は、差分時間及び加算時間を計測するための共通の計測レジスタを有し、差分時間と加算時間とを符号を異ならせた上で積算した結果を共通の計測レジスタに保存することにより、その共通の計測レジスタの値に基づいて、差分時間と加算時間とが一致するか否かを判定することができる。この場合、共通の計測レジスタは、差分時間が計測された時点で、その差分時間に対応する値を保持するが、その後、加算時間が計測され、その加算時間が積算されることにより、計測レジスタの値は０となるはずである。従って、一致判定手段は、共通の計測レジスタの値が０となっている場合、差分時間と加算時間とが一致しており、０以外であれば、不一致であると判定できる。
【００１４】
あるいは、請求項６に記載したように、一致判定手段の計測手段は、差分時間を計測するための差分時間計測レジスタと、加算時間を計測するための加算時間計測レジスタを有し、差分時間計測レジスタにて計測された差分時間と、加算時間計測レジスタにて計測された加算時間とが一致するか否かにより、差分時間と加算時間とが一致するか否かを判定しても良い。
【００１５】
請求項５及び６は、差分時間及び加算時間を計測するレジスタに関するものであるが、差分時間の算出回数及び加算時間の加算回数を計測するレジスタについても同様である。すなわち、請求項７に記載したように、一致判定手段の計測手段は、差分時間の算出回数及び加算時間の加算回数を計測するための共通の計測レジスタを有し、差分時間の算出回数と加算時間の加算回数とを符号を異ならせた上で積算した結果を共通の計測レジスタに保存し、その共通の計測レジスタの値に基づいて、差分時間の算出回数と加算時間の加算回数とが一致するか否かを判定することができる。あるいは、請求項８に記載したように、一致判定手段の計測手段は、差分時間の算出回数を計測するための算出回数計測レジスタと、前記加算時間の加算回数を計測するための加算回数計測レジスタを有し、算出回数計測レジスタにて計測された差分時間の算出回数と、加算回数計測レジスタにて計測された加算時間の加算回数とが一致するか否かにより、差分時間の算出回数と前記加算時間の加算回数とが一致するか否かを判定しても良い。
【００１６】
請求項９に記載したように、複数の処理は、それぞれ、リソースを獲得するとともに獲得したリソースを解放するものであっても良い。例えば、あるタスクを実行するために、メモリの所定の領域や、コンピュータの周辺回路（Ａ／Ｄ変換器、タイマなど）などリソースとし、あるリソースを獲得している状態において、他のリソースも獲得し、その後、獲得したリソースを順次、解放する場合がある。このような場合、本願発明を用いることにより、オペレーティングシステムは、１つのタイマ手段によって複数のリソースの獲得、解放が正常に行われていることを監視しつつ、その監視自体に異常が生じていないかも検知することができる。
【００１７】
請求項１０〜１８にかかわる発明は、時間監視方法に関するものであるが、その作用効果は、上述した請求項１〜９の発明とほぼ同様であるため、説明を省略する。
【図面の簡単な説明】
【００１８】
【図１】実施形態による時間監視装置を具現化した際の一例における、基本的な電子回路構成を示す回路構成図である。
【図２】タスクによりリソース獲得要求が生じたときにＯＳにより実行される処理を示すフローチャートである。
【図３】タスクによるリソース解放要求が生じたときにＯＳにより実行される処理を示すフローチャートである。
【図４】タスク終了要求が生じたときにＯＳにより実行される処理を示すフローチャートである。
【図５】（ａ）は複数のリソースの獲得、解放が正常に行われたときのタイミングを示すタイミングチャートであり、（ｂ）は、その際のタイマ回路１８におけるカウント値を示すグラフである。
【図６】（ａ）は、複数のリソースのうち、１つのリソースの獲得タイミングが送れた場合における、複数のリソースの獲得、解放のタイミングを示すタイミングチャートであり、（ｂ）は、その際のタイマ回路１８におけるカウント値を示すグラフである。
【図７】タイマ回路１８の詳細な構成を示す構成図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態による時間監視装置について、図面に基づいて説明する。図１は、本実施形態による時間監視装置を具現化した際の一例における、基本的な電子回路構成を示す回路構成図である。
【００２０】
図１に示す電子回路装置は、ＣＰＵ１２、ＲＯＭ１４、ＲＡＭ１６、タイマ回路１８、及び割込制御部２０を備え、それらはバスにより相互に接続されている。
【００２１】
ＣＰＵ１２は、ＲＯＭ１４に記憶されたオペレーティングシステム用のプログラムや各種の実行コンテキストを保持するタスク（スレッドとも呼ばれる）を命令として実行するものである。本実施形態においては、オペレーティングシステム（以下、ＯＳ）として、リアルタイムＯＳを採用している。このリアルタイムＯＳは、処理をリアルタイムに実行することを重視して設計されたものである。そのため、メモリや、図示しない周辺回路（Ａ／Ｄ、タイマ、バッファなど）などのリソース管理などにおいても、時間制約を守ることが重要視される。
【００２２】
ＲＡＭ１６は、ＣＰＵ１２における演算結果等を一時的に保存しておくためのものである。このＲＡＭ１６には、予めＯＳのデータを格納する領域が定められている。例えば、後に詳しく説明するが、タイマ回路１８によって複数のリソースの獲得時間を監視するために、ＯＳにより差分時間が算出される。その差分時間も、ＲＡＭ１６のＯＳデータ格納領域に保存される。
【００２３】
タイマ回路１８は、あるタスクが実行されるとき、そのタスクによるリソース獲得時間の上限制約時間をカウントし、カウント時間が上限制約時間に達すると、タイムアウト通知を出力するものである。なお、タスクによるリソースの獲得時間が上限制約時間に達する前に、リソースが解放されれば、タイマ回路１８からタイムアウト通知が出力されることはない。このタイマ回路１８の構成については、後に詳細に説明する。
【００２４】
割込制御部２０は、タイマ回路１８からタイムアウト通知を受領すると、ＣＰＵ１２に対して割込を通知する。この場合、ＯＳは、リソース獲得時間が異常とみなして、実行中のタスクの中断処理などを行う。
【００２５】
ここで、タイマ回路１８の構成や作用効果について説明する前に、まず、ＯＳによる１つのタイマ回路１８を用いた複数のリソースの管理方法について、図２〜図６を参照しつつ説明する。なお、図２は、タスクによりリソース獲得要求が生じたときにＯＳにより実行される処理を示すフローチャートであり、図３は、タスクによるリソース解放要求が生じたときに実行される処理を示すフローチャートであり、図４は、タスク終了要求が生じたときに実行される処理を示すフローチャートである。また、図５（ａ）は複数のリソースの獲得、解放が正常に行われたときのタイミングを示すタイミングチャートであり、図５（ｂ）は、その際のタイマ回路１８におけるカウント値を示すグラフである。一方、図６（ａ）は、複数のリソースのうち、１つのリソースの獲得タイミングが遅れた場合における、複数のリソースの獲得、解放のタイミングを示すタイミングチャートであり、図６（ｂ）は、その際のタイマ回路１８におけるカウント値を示すグラフである。
【００２６】
実行中のタスクによりリソースの獲得が要求されると、ＯＳは、そのリソースを獲得する処理を行う。獲得されたリソースは、実行中のタスクにより独占的に所有され、他のタスクが同時に同じリソースにアクセスすることが防止される。そして、タスクによるリソースの所有が不要になってリソース解放要求が生じると、ＯＳはリソースを解放する処理を行う。このようなリソースの獲得時に、ＯＳは、タスクによる異常なリソース獲得時間を監視するために、リソースの獲得時間に対して上限制約時間を設定する。この上限制約時間は、ＯＳによりタイマ回路１８に出力される。
【００２７】
ただし、タスクによっては、リソース獲得の追加が必要となる場合がある。このように複数のリソースの獲得がなされる際、特にリアルタイムＯＳでは時間制約を守ることが重要との観点から、本実施形態では、リソースの解放は、獲得した順序と逆になるとの制約条件を設けている。
【００２８】
このような制約条件を設けた場合、先に獲得したリソース獲得時間の上限制約時間が満了する以前に、後に獲得したリソース獲得時間の上限制約時間が満了する。従って、このような制約条件の下で、１つのタイマ回路１８により、複数のリソースの獲得時間を監視するには、新たなリソースの獲得時に差分時間を算出してＲＡＭ１６に退避させておき、そのリソースの解放時に、その退避させた差分時間を用いて先のリソースの獲得時間のカウント値を復帰させれば良い。
【００２９】
そのため、図３のフローチャートに示すように、タスクによりリソース獲得要求が生じると、ステップＳ１００において、既に獲得されているリソースがあり、そのリソースの獲得時間の監視中であるか否かを判定する。そして、監視中でなければ、ステップＳ１１０に進んで、差分時間をゼロとして、その差分時間をＲＡＭ１６に退避させる。一方、監視中であれば、ステップＳ１２０に進んで、その時点のタイマ残り時間（タイマ回路１８のカウント値）から、新たに獲得するリソースの獲得時間の上限制約時間を減算した減算値が、０より大きい正の数であるか否かを判定する。
【００３０】
ここで、本実施形態においては、上述したように、リソースの解放は、獲得した順序と逆になるとの制約条件を設けている。このため、リソースの獲得が正常なタイミングで行われた場合、タイマ回路１８のカウント値から、新たに獲得するリソースの獲得時間の上限制約時間を減算した減算値が、０もしくは負の数となることはない。しかしながら、何らかの原因でリソースの獲得タイミングが、本来のタイミングよりも遅れる可能性もあるので、ステップＳ１２０の判定処理を設けている。
【００３１】
ステップＳ１２０の判定処理において、上記減算値が正の数と判定された場合には、ステップＳ１３０に進み、当該減算値を差分時間として、ＲＡＭ１６に退避させる。その後、ステップＳ１４０にて、新たに獲得するリソースの獲得時間の上限制約時間を、タイマ回路１８に出力してカウントを開始させる。
【００３２】
一方、ステップＳ１２０において、上記減算値が０もしくは負の数と判定された場合、ステップＳ１５０に進み、差分時間として０値をＲＡＭ１６に退避させる。さらに、ステップＳ１６０において、その時点のタイマ残り時間（タイマ回路１８のカウント値）をタイマ回路１８に出力する。このように、差分時間としてゼロをＲＡＭ１６に退避させ、かつ、タイマ回路１８のカウント値そのものを、改めてタイマ回路１８に出力する理由は、タイマ回路１８において、リソース獲得時間の上限制約時間の満了時点が、先に獲得されているリソースの獲得時間に対する上限制約時間の満了時点よりも遅くなるほど、獲得のタイミングが遅れたリソースの獲得や解放に対しても、タイマ回路１８において、差分時間や加算時間を計測したり、リソースの獲得や解放の回数を計測したりするためである。
【００３３】
リソース獲得要求時の処理の具体例を、図５（ａ）,（ｂ）及び図６（ａ），（ｂ）に基づいて説明する。
【００３４】
図５（ａ）,（ｂ）に示す例では、あるタスクの実行時に、まずリソースＡの獲得処理が行われ、その後、さらにリソースＢ，Ｃの獲得処理が順次行われている。そして、リソースの解放処理に関しては、獲得の順番とは逆に、リソースＣ，Ｂ、Ａの順で行われたものである。なお、これらのリソースの獲得及び解放は、正常なタイミングで行われている。また、図５（ａ）,（ｂ）において、リソースＡの獲得時間の上限制約時間はｔ１１であり、リソースＢの獲得時間の上限制約時間はｔ６であり、リソースＣの獲得時間の上限制約時間はｔ３である。
【００３５】
リソースＡの獲得時には、時間監視中のリソース獲得がないので、ＯＳは、差分時間としてゼロをＲＡＭ１６に退避させつつ、リソースＡの獲得時間の上限制約時間であるｔ１１をタイマ回路１８に出力する。すると、タイマ回路１８のカウンタに上限制約時間ｔ１１がセットされ、カウンタは、所定の時間間隔でダウンカウントを開始する。
【００３６】
タイマ回路１８のカウンタが、リソースＡの上限制約時間ｔ１１をダウンカウントしている最中に、タスクによりリソースＢの獲得要求が生じると、ＯＳは、リソースＢを獲得する処理を行う。さらに、リソースＢの獲得要求が生じたとき、既にリソースＡの獲得時間の監視が行われているので、ＯＳは、リソースＢの獲得を行う時点でのタイマ回路１８のカウント値を読み出し、リソースＢの獲得時間の上限制約時間との差である差分時間を算出して、ＲＡＭ１６に退避させる。なお、差分時間をＲＡＭ１６に退避させる際、差分時間にはマイナスの符号が付与される。そして、リソースＢの獲得時間の上限制約時間を、タイマ回路１８のカウンタにセットする。
【００３７】
図５（ａ）,（ｂ）に示す例では、リソースＢの獲得処理がなされた時点のカウンタのカウント値は、ｔ９であり、リソースＢの獲得時間の上限制約時間はｔ６であるため、差分時間は−ｔ３となる。そして、リソースＢの獲得時に、タイマ回路１８のカウンタには、リソースＢの上限制約時間であるｔ６がセットされる。
【００３８】
さらに、タイマ回路１８のカウンタが、リソースＢの上限制約時間ｔ６をダウンカウントしている最中に、タスクによりリソースＣの獲得要求が生じると、ＯＳは、リソースＣを獲得する処理を行う。そして、ＯＳは、リソースＣの獲得を行う時点でのタイマ回路１８のカウンタによるカウント値を読み出し、リソースＣの獲得時間の上限制約時間との差分時間を算出して、既にＲＡＭ１６に格納されている差分時間とは異なる領域に退避させる。そして、リソースＣの獲得時間の上限制約時間を、タイマ回路１８のカウンタにセットする。
【００３９】
図５（ａ），（ｂ）に示す例では、リソースＣの獲得処理がなされた時点のカウンタのカウント値はｔ５であり、リソースＣの獲得時間の上限制約時間はｔ３であるため、差分時間は−ｔ２となる。また、リソースＣの獲得時に、タイマ回路１８のカウンタには、リソースＣの上限制約時間であるｔ３がセットされる。
【００４０】
一方、図６（ａ）,（ｂ）には、図５（ａ），（ｂ）と同様のタスクが実行され、リソースＡ，Ｂ，Ｃの獲得及び解放が行われる際に、リソースＢの獲得のタイミングが遅れた例が示されている。
【００４１】
このため、リソースＡの獲得時の処理は、図５（ａ），（ｂ）に示す例と、図６（ａ），（ｂ）に示す例とで変わりはないが、リソースＢの獲得以降の処理において、両者は相違する。すなわち、リソースＡが獲得され、タイマ回路１８のカウンタが、リソースＡの上限制約時間ｔ１１をダウンカウントしている最中に、タスクによりリソースＢの獲得要求が生じると、ＯＳは、リソースＢを獲得する処理を行う。ただし、リソースＢの獲得を行う時点でのタイマ回路１８のカウント値はｔ５であるのに対し、リソースＢの獲得時間の上限制約時間はｔ６であるため、タイマ回路１８のカウント値からリソースＢの獲得時間の上限制約時間を減算した減算値が負の数となる。このため、差分時間としてゼロをＲＡＭ１６に退避させる。そして、リソースＢの獲得時間の上限制約時間ではなく、その時点のタイマ回路１８のカウント値を、改めてタイマ回路１８のカウンタにセットする。
【００４２】
さらに、タスクによりリソースＣの獲得要求が生じると、ＯＳは、リソースＣを獲得する処理を行う。そして、ＯＳは、リソースＣの獲得を行う時点でのタイマ回路１８のカウンタによるカウント値を読み出し、リソースＣの獲得時間の上限制約時間との差分時間（減算値）を算出する。このときの減算値は正の数（ｔ４−ｔ３＝ｔ１）であるため、その減算値ｔ１を、ＲＡＭ１６に退避させる。そして、リソースＣの獲得時間の上限制約時間ｔ３を、タイマ回路１８のカウンタにセットする。
【００４３】
次に、タスクにおいてリソースの獲得を要する処理が終了して、タスクによりリソース解放要求が生じた場合の処理を説明する。この場合、ＯＳはリソースを解放する処理を行うとともに、図３のフローチャートに示すように、ステップＳ２００において、リソースの解放要求が生じた時点のタイマ回路１８のカウント値と、そのリソースの獲得時にＲＡＭ１６に退避させた差分時間とを読み出して加算することにより、タイマ回路１８のカウンタが新たにカウントするカウント値を算出する。このカウント値は、タイマ回路１８に出力されて、カウンタにセットされる。すると、タイマ回路１８のカウンタは、新たにセットされたカウント値からダウンカウントを開始する。
【００４４】
例えば、図５（ａ）、（ｂ）に示す例において、リソースＣの解放要求が生じた場合、ＯＳは、リソースＣを獲得する際に算出し、ＲＡＭ１６に退避させた差分時間を読み出すとともに、その時点のタイマ回路１８のカウンタのカウント値を読み出す。そして、読み出した差分時間の符合を反転して加算時間としつつ、カウンタのカウント値に加算時間を加算して、新たにカウンタがカウントすべきカウント値を算出する。図５（ａ）,（ｂ）に示す例では、リソースＣの解放が行われるときのカウンタのカウント値はｔ１であり、リソースＣの獲得が行われたときに算出された差分時間は−ｔ２である。従って、新たにカウンタがカウントすべきカウント値はｔ３と算出される。
【００４５】
また、図５（ａ），（ｂ）において、タスクがリソースＢの獲得を要する処理が終了して、タスクによりリソースＢの解放要求が生じた時点でも、上述したステップＳ２００の処理が実行される。リソースＢの解放時には、新たにカウンタがカウントすべきカウント値として、ｔ４が算出され、このカウント値ｔ４がカウンタにセットされる。
【００４６】
さらに、リソースＡの獲得を要する処理が終了して、リソースＡの解放要求が生じた時点でも、上述したステップＳ２００の処理が実行される。しかしながら、この場合、リソースＡが解放された時点で全てのリソースが解放されており、そのリソースＡの解放後に、時間監視を行うべきリソースの獲得は残っていない。従って、ステップＳ２１０において、時間監視中のリソースの獲得があるかとの判定にて、“ＮＯ”と判定される。そのため、処理はステップＳ２２０に進み、タイマ回路１８のカウンタのカウント動作が停止される。
【００４７】
一方、図６（ａ），（ｂ）に示す例では、リソースＣの解放が行われるときのカウンタのカウント値はｔ１であり、リソースＣの獲得が行われたときに算出された差分時間は−ｔ１である。従って、新たにカウンタがカウントすべきカウント値はｔ２と算出される。この算出されたカウント値ｔ２が、タイマ回路１８に出力される。
【００４８】
さらに、タスクによりリソースＢの解放要求が生じた時点でも、ステップＳ２００の処理が実行される。ただし、リソースＢの獲得時に算出された差分時間はゼロであるため、新たにカウンタがカウントすべきカウント値は、その時点のカウンタのカウント値そのものとなる。また、リソースＡが解放される際にも、その獲得の際に算出された差分時間はゼロであるため、その時点のカウンタのカウント値が、あらためてタイマ回路１８のカウンタにセットされる。
【００４９】
ここで、図６（ａ），（ｂ）の例を用いて説明したように、本実施形態では、リソースの獲得時間が遅れたことのみをもって異常が生じたとは判定せず、タイマ回路１８によるリソース獲得時間の監視を継続する。そして、すべてのリソースの解放が、それぞれのリソース獲得時間の上限制約時間までになされれば、後述するタイマ回路１８による監視に異常が生じていない限り、タスクによる処理が正常に行われたとみなす。
【００５０】
ただし、図６（ａ），（ｂ）の例によって説明したように、後に獲得されるリソースＢの上限制約時間が、先に獲得されているリソースＡの上限制約時間よりも遅く満了する場合には、タイマ回路１８は、後に獲得されるリソースＢの上限制約時間をカウントせず、先に獲得したリソースＡの上限制約時間のカウントを継続する。すなわち、タイマ回路１８は、直接的には、リソースＢの獲得時間の上限制約時間の監視を行っていない。
【００５１】
しかしながら、リソースの解放の順序は、獲得の順序と逆となるという制約から、図６（ａ），（ｂ）に示すように、リソースＢの獲得が遅れたことに起因して、結果的に、リソースＡの解放が、リソースＡの獲得時間の上限制約時間内に行われなかった場合、タイマ回路１８によりタイムアウト通知が出力されることになる。この場合、上述したように、リソース獲得時間が異常であるとみなして、実行中のタスクの中断処理などが行われる。このように、タイマ回路１８が、リソースＢの獲得時間の上限制約時間を直接的にはカウントせずとも、リソースＡの上限制約時間を監視することにより、間接的に、リソースＢの獲得時間の異常について監視することができる。
【００５２】
そして、タスクの終了要求が生じると、ＯＳは、図４のフローチャートに示す処理を実行する。すなわち、ステップＳ３００において、タスクの終了要求が生じた時点（タスクの終了直前）で、後述するように、タイマ回路１８において計測した差分時間の合計時間と加算時間の合計時間とが一致するか否か、およびリソースの獲得時のタイマ設定回数（すなわち、差分時間の算出回数に等しい）とリソース解放時のタイマ設定回数（すなわち、加算時間の加算回数に等しい）とが一致するか否かを判定した判定結果をタイマ回路１８から取得して判定する。
【００５３】
この判定結果において、「一致」と判定した場合には、時間監視が正常に行われたとみなして、タスクを終了する。一方、「不一致」と判定した場合には、リソースの獲得時間の監視に何らかの異常が生じたと考えられるため、エラールーチンを起動する。このエラールーチンにおいては、タスクの再試行、ダイアグ情報の記録、及び／又は電子回路装置１０のリセットなどを行う。
【００５４】
上述したような差分時間及び加算時間を用いることにより、１つのタイマ回路１８を用いるだけで、複数のリソースの獲得時間の上限制約時間をそれぞれ監視することが可能となる。
【００５５】
次に、上述した時間監視を行い、その監視の異常を検出するために必要となるタイマ回路１８の詳細な構成について、図７を用いて説明する。図７に示すように、タイマ回路１８は、所定の時間間隔でカウントを行うカウンタ２３を有する。このカウンタ２３は上述したようにダウンカウンタであり、カウントすべき時間に相当するカウント値がセットされると、そのカウント値を所定時間間隔でダウンカウントしていくものである。そして、カウント値がゼロとなったとき、タイムアウト通知を出力する。ただし、カウンタ２３として、カウント値が増加するアップカウンタを用いることも可能である。
【００５６】
カウンタ２３にセットされるカウンタ値は、上述したように、リソースの獲得が行われたとき、及びリソースの解放がおこなわれたときに、ＯＳから与えられる。なお、図７では、リソース獲得時のカウンタ値の設定経路と、リソース解放時のカウンタ値の設定経路の２系統が示されているが、通常のバス構成では、信号の伝達経路は１本のみである。従って、送信されたカウント値が、リソース獲得時の設定経路によるカウント値であるか、リソース解放時の設定経路によるカウント値であるかを識別する必要がある。そのため、以下の２つの手法のいずれかを用いる。
【００５７】
まず、１つ目の手法として、リソース獲得時の設定経路による場合と、リソース解放時による場合とで、バスアドレスを別個に設定する。この別個のバスアドレスに向けて送信されるデータは、いずれも選択部２２にて受信され、バスアドレスをデコードして、いずれの経路によるカウント値であるかを識別する。
【００５８】
また、２つ目の手法として、バスアドレスは共通とするが、ＯＳが送信するデータに、リソース獲得時の設定経路によるものか、リソース解放時の設定経路によるものかを識別するための識別ビットを含ませる。このようにしても、選択部２２において、いずれの経路によるカウント値であるかを識別することができる。
【００５９】
ここで、図５に基づいて説明したように、本実施形態では、複数のリソースの獲得がなされる場合、リソースの獲得とリソースの解放とは逆の順序で行われる。そして、差分時間はリソースの獲得時に算出され、加算時間は、リソース解放時に差分時間の符号を反転したものとして算出される。従って、差分時間と加算時間とは符合が異なるだけで時間自体は一致している。またリソースの獲得が行われた回数だけ、リソースの解放が行われるので、リソースの獲得回数とリソースの解放回数も一致する。
【００６０】
本実施形態では、このような差分時間と加算時間との関係、もしくはリソース獲得回数とリソース解放回数との関係を用いて、タイマ回路１８によるリソース獲得時間の監視自体に異常が生じていないかを検知する。そのため、タイマ回路１８は、一致判定回路２４を有している。
【００６１】
一致判定回路２４は、差分時間計測部２６及び加算時間計測部２８を備えている。差分時間計測部２６は、リソース獲得時の設定経路を介して新たなカウント値がＯＳから与えたれたときに、その時点のカウンタ２３のカウント値と、与えられた新たなカウント値との差分時間を計測する。ただし、差分時間計測部２６は、カウンタ２３のカウント値がゼロであり、リソースの獲得時間監視中ではない場合、差分時間をゼロとして処理する。また、カウンタ２３のカウント値と、与えられた新たなカウント値とが同じ値である場合にも、差分時間をゼロとして処理する。
【００６２】
差分時間計測部２６によって計測された差分時間は、時間計測用レジスタ部３０に出力され、保持される。ただし、時間計測用レジスタ部３０に既に計測された差分時間が保持されている場合には、時間計測用レジスタ部３０は、保持している差分時間と新たに計測された差分時間との合計差分時間を算出し、その合計差分時間を保持する。
【００６３】
また、加算時間計測部２８は、リソース解放時の設定経路を介して新たなカウント値がＯＳから与えたれたときに、与えられた新たなカウント値から、その時点のカウンタ２３のカウント値を減じることにより、加算時間を計測する。計測された加算時間は、時間計測用レジスタ部３０に出力される。なお、この加算時間に関しても、与えられた新たなカウント値と、カウンタ２３のカウント値とが同じである場合には、加算時間をゼロとして処理する。
【００６４】
ここで、時間計測用レジスタ部３０が、差分時間及び加算時間を計測するための共通の計測レジスタを有する場合には、差分時間と加算時間とを符号を異ならせた上で、保持されている差分時間と計測した加算時間とを積算した積算時間を共通の計測レジスタに保存する。この場合、共通の計測レジスタは、差分時間が計測された時点で、その差分時間を保持するが、その後、加算時間が計測され、その加算時間が積算されることにより、（合計）差分時間と（合計）加算時間とが一致していれば、計測レジスタの値は０となる。
【００６５】
また、時間計測用レジスタ部３０は、差分時間を計測するための差分時間計測レジスタと、加算時間を計測するための加算時間計測レジスタとを別個に備えていても良い。この場合、複数の差分時間が計測された場合には、その合計差分時間が差分時間計測レジスタに保持され、複数の加算時間が計測された場合には、その合成加算時間が加算時間計測レジスタに保持される。
【００６６】
また、一致判定回路２４は、回数計測用レジスタ部３２も備えており、差分時間計測部２６にて計測された差分時間、及び加算時間計測部２８にて計測されて加算時間は、回数計測用レジスタ部３２にも与えられる。回数計測用レジスタ部３２は、差分時間計測部２６にて差分時間が計測された回数と（この差分時間計測回数は、リソースの獲得回数に等しく、ＯＳによる差分時間の算出回数にも等しい）、加算時間計測部２８にて加算時間が計測された回数（加算時間計測回数は、リソースの解放回数に等しく、ＯＳによる加算時間の加算回数にも等しい）とを共通の計測レジスタ又は専用の各計測レジスタに保持する。
【００６７】
判定部３４は、時間計測用レジスタ部３０に保持された差分時間と加算時間とが一致しているか否か、および回数計測用レジスタ部３２に保持された差分時間の計測回数と加算時間の計測回数とが一致しているか否かを判定して、その判定結果を出力する。また、判定部３４は、時間計測用レジスタ部３０に保持された加算時間が、差分時間よりも大きくなるか、あるいは回数計測用レジスタ部３２に保持された加算時間の計測回数が、差分時間の計測回数よりも大きくなると、即座に異常が生じた旨の通知をＯＳに対して出力する。
【００６８】
このように、本実施形態では、タイマ回路１８の一致判定回路２４にて、差分時間と加算時間、及び、リソース獲得時のタイマ設定回数（差分時間の算出回数）とリソース解放時のタイマ設定回数（加算時間の加算回数）を計測している。
【００６９】
ここで、ＯＳによって算出されＲＡＭ１６に退避された差分時間が、ノイズ等の影響によって変化してしまうと、その差分時間から求められる加算時間も変化するため、差分時間と加算時間とが一致しなくなる。また、ノイズやプログラムのバグなどにより、ＲＡＭに退避された差分時間自体が消去されてしまったような場合には、リソース獲得時のタイマ設定回数とリソース解放時のタイマ設定回数とが一致しなくなる。換言すると、一致判定回路２４における判定結果が不一致である場合には、リソース獲得時間の監視においてなんらかの異常が発生したとみなすことができる。
【００７０】
なお、何らかの原因で、タイマ回路１８にて差分時間や加算時間の計測が正しく行なわれなかったり、差分時間と加算時間との比較が正しく行われなかった場合等においても、監視機能に異常が生じており、一致判定回路２４での判定結果は「不一致」となる。
【００７１】
一致判定回路２４における判定結果を用いることで、１つのタイマ回路１８によって複数のリソースの獲得時間を監視する場合であっても、ＯＳは、監視自体に異常が生じたことを検知することが可能となる。
【００７２】
また、上述した実施形態では、タスクの終了要求が生じた時点（タスクの終了直前）で、ＯＳが、タイマ回路１８の一致判定回路２４からの判定結果を読み出して、不一致であれば、エラールーチン処理を実行する。従って、早期に異常を発見することができ、かつその異常に対して適切な処理を施すことができる。なお、ＯＳが一致判定回路２４から判定結果を読み出すのは、リソースを解放した際に、時間監視を行うべきリソース獲得が残っていないことを判定した時点でも良い。
【００７３】
さらに、上述した実施形態では、一致判定回路２４の判定部３４は、時間計測用レジスタ部３０に保持された加算時間が、差分時間よりも大きくなるか、あるいは回数計測用レジスタ部３２に保持された加算時間の計測回数が、差分時間の計測回数よりも大きくなると、即座に異常が生じた旨の通知をＯＳに対して出力する。図５（ａ），（ｂ）に例示したように、リソースＡ，Ｂ，Ｃの獲得、解放に関しては、必ずリソースの獲得が先に行われ、その後、獲得されたリソースが解放される。従って、一致判定回路２４においても、必ず、差分時間の計測が加算時間の計測よりも先に行われるとともに、差分時間の計測回数のカウントも、加算時間の計測回数のカウントよりも先に行われる。従って、リソースの獲得時間の監視が正常に行われている限り、計測した加算時間が差分時間よりも大きくなったり、加算時間の計測回数が差分時間の計測回数よりも大きくなったりすることは起こりえない。
【００７４】
このため、時間計測用レジスタ部３０に保持された加算時間が、差分時間よりも大きくなるか、あるいは回数計測用レジスタ部３２に保持された加算時間の計測回数が、差分時間の計測回数よりも大きくなった場合、リソース獲得時間の監視機能に何らかの異常が発生したとみなしえるので、即座にＯＳに異常が発生したことを通知することが好ましい。
【００７５】
以上、本発明の好ましい実施形態について説明したが、本発明は、上述した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において種々変形して実施することができる。
【００７６】
例えば、上述した実施形態では、あるタスクが実行されるときに、複数のリソースが獲得される場合に、１つのタイマ回路にて、複数のリソースの獲得時間を監視する例について説明した。しかしながら、リソースが獲得された順序とは逆の順序でリソースが解放される上限制約時間の関係を有していれば、本発明は、複数のタスクにおける複数のリソース管理に適用することも可能である。さらに、上述した実施形態では、リソースの獲得時間を対象として時間監視を行う例について説明したが、リソースの獲得時間ばかりでなく、タスクの実行時間も監視対象に含めても良い。
【００７７】
さらに、本発明は、リソースの獲得時間の監視ばかりでなく、例えば、割込み処理の時間監視に適用しても良い。すなわち、割込み処理が多重に行われる場合に、各割込み処理の突入、復帰に対して、上述した手法を用いて、１つのタイマ回路により時間監視を行うことができる。
【００７８】
また、上述した実施形態では、タイマ回路１８の一致判定回路２４が、時間計測用レジスタ部３０及び回数計測用レジスタ部３２をともに備え、差分時間と加算時間との一致、不一致及び差分時間の計測回数と加算時間の計測回数との一致、不一致をともに判定するものであった。しかしながら、差分時間と加算時間との一致、不一致の判定と、差分時間の計測回数と加算時間の計測回数との一致、不一致の判定との、少なくとも一方を行うものであっても良い。
【００７９】
また、上述した実施形態では、後に獲得されたリソースの獲得時間に対する上限制約時間の満了時点が、先に獲得されているリソースの獲得時間に対する上限制約時間の満了時点よりも遅くなるほど、獲得のタイミングが遅れたリソースの獲得や解放に対しても、タイマ回路１８において、差分時間や加算時間を計測したり、リソースの獲得や解放の回数を計測したりする対象としていた。しかしながら、獲得のタイミングが遅れたリソースの獲得及び解放に関しては、差分時間及び加算時間の計測対象や、リソースの獲得回数及び解放回数の計測対象から除外しても良い。この場合、ゼロとなる差分時間をＲＡＭ１６に退避させたり、タイマ回路１８のカウンタに、そのカウント値と同じカウント値をセットするなどの処理を行わずに済む。
【００８０】
さらに、上述した実施形態では、タイマ回路１８に設けた一致判定回路２４により、すなわちハードウエア回路により、差分時間及び加算回数の計測と比較を行い、差分時間の設定回数及び加算時間の設定回数の計測と比較を行っていた。しかしながら、このような計測及び比較は、ＯＳの一機能としてソフトウエアにて実現することも可能である。この場合、ＯＳは差分時間を算出したとき、ＲＡＭ１６の差分時間の格納領域とは、別個の記憶領域あるいは記憶媒体に、上述したレジスタ部の機能を持たせて、差分時間等を保持する。さらに、そのレジスタ部に、加算時間との積算時間、あるいは差分時間と加算時間などを別個に保持させ、タスクの終了要求が生じたとき、保持された値から一致、不一致を判定すれば良い。
【００８１】
また、上述した実施形態では、タイマ回路１８の一致判定回路２４において、差分時間計測部２６及び加算時間計測部２８が、カウンタ２３のカウント値と、ＯＳによって新たにカウンタ２３にセットされるカウント値とから差分時間及び加算時間を計測していた。しかしながら、ＯＳにおいて差分時間及び加算時間がそれぞれ算出されたとき、タイマ回路１８がそれら差分時間及び加算時間を直接ＯＳから取得するようにしても良い。
【符号の説明】
【００８２】
１０  電子回路装置
１２  ＣＰＵ
１４  ＲＯＭ
１６  ＲＡＭ
１８  タイマ回路
２０  割込制御部
２２  選択部
２３  カウンタ
２４  一致判定回路
２６  差分時間計測部
２８  加算時間計測部
３０  時間計測用レジスタ部
３２  回数計測用レジスタ部
３４  判定部
【図１】
0005375756.tif 000002
【図２】
0005375756.tif 000003
【図３】
0005375756.tif 000004
【図４】
0005375756.tif 000005
【図５】
0005375756.tif 000006
【図６】
0005375756.tif 000007
【図７】
0005375756.tif 000008