(57)【要約】【課題】複数のＯＳを実行する場合において、優先度の逆転現象を解消し、かつシステムの整合性を維持する。【解決手段】本発明に係る優先度制御装置１００は、第１ＯＳ１３０で動作する複数のタスク１１０及び第２ＯＳ１３１上で動作する複数のタスク１２０を実行するＯＳ実行部１０１と、ＯＳ実行部１０１により実行されているタスク１１０である実行タスクの優先度と、ＯＳ実行部１０１に対して実行が要求されているタスク１２０である要求タスクの優先度とを取得するタスク優先度取得部１０４と、要求タスクの優先度が実行タスクの優先度より高い場合に、複数のタスク１１０の優先度を、複数のタスク１１０間の優先度の相対順位を維持したまま、要求タスクの優先度より低くし、かつ複数のタスク１２０のうち要求タスクの次に低い優先度より高くする優先度変更部１０７とを備える。【選択図】図１
2009294712.tif 000002
【特許請求の範囲】
【請求項１】
第１ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）上で動作する複数の第１タスク及び第２ＯＳ上で動作する複数の第２タスクの優先度を制御する優先度制御装置であって、
第１タスク及び第２タスクを実行する実行部と、
前記実行部により実行されている第１タスクである実行タスクの優先度と、前記実行部に対して実行が要求されている第２タスクである要求タスクの優先度とを取得するタスク優先度取得部と、
前記要求タスクの優先度が前記実行タスクの優先度より高いか否かを判定する優先度判定部と、
前記要求タスクの優先度が前記実行タスクの優先度より高い場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に低い優先度より高くする優先度変更部とを備える
ことを特徴とする優先度制御装置。
【請求項２】
前記優先度制御装置は、さらに、
前記要求タスクの実行に使用する資源が、前記実行タスクの実行に使用されているか否かを判定する資源判定部を備え、
前記優先度変更部は、前記要求タスクの優先度が前記実行タスクの優先度より高く、かつ、前記要求タスクの実行に使用する資源が、前記実行タスクの実行に使用されている場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くする
ことを特徴とする請求項１記載の優先度制御装置。
【請求項３】
前記優先度制御装置は、さらに、
前記要求タスクが実行待ち状態であるか否かを判定する状態判定部を備え、
前記優先度変更部は、前記要求タスクの優先度が前記実行タスクの優先度より高く、かつ、前記要求タスクが実行待ち状態である場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くする
ことを特徴とする請求項１記載の優先度制御装置。
【請求項４】
前記優先度制御装置は、さらに、
前記複数の第１タスクのうち１つと、当該１つの第１タスクに対応する第２タスクとが設定される対応タスク設定部と、
前記実行タスクが前記対応タスク設定部に設定された第１タスクであるか否かを判定し、前記要求タスクが前記対応タスク設定部に設定された当該実行タスクに対応する第２タスクであるか否かを判定するタスク判定部とを備え、
前記優先度変更部は、前記要求タスクの優先度が前記実行タスクの優先度より高く、かつ、前記実行タスクが前記対応タスク設定部に設定された第１タスクであり、かつ、前記要求タスクが前記対応タスク設定部に設定された当該実行タスクに対応する第２タスクである場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くする
ことを特徴とする請求項１記載の優先度制御装置。
【請求項５】
前記優先度制御装置は、さらに、
ユーザの入力を受け付けるユーザ入力部を備え、
前記タスク判定部は、前記実行タスクが前記ユーザ入力部により受け付けられた処理を実行するタスクであるか否かを判定し、
前記優先度変更部は、前記要求タスクの優先度が前記実行タスクの優先度より高く、かつ、前記実行タスクが前記ユーザ入力部により受け付けられた処理を実行するタスクであり、かつ、前記要求タスクが前記対応タスク設定部に設定された当該実行タスクに対応する第２タスクである場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くする
ことを特徴とする請求項４記載の優先度制御装置。
【請求項６】
前記優先度変更部は、前記実行タスクの実行が終了した後に、当該実行タスクの優先度を変更前の優先度に戻す
ことを特徴とする請求項１記載の優先度制御装置。
【請求項７】
前記優先度制御装置は、さらに、
前記実行部に対する第２タスクの実行要求を検知するタスク要求検知部を備え、
前記タスク要求検知部により第２タスクの実行要求が検知された際に、
前記タスク優先度取得部は、前記実行タスクの優先度と、当該実行要求が検知されたタスクである前記要求タスクの優先度とを取得し、
前記優先度判定部は、前記要求タスクの優先度が前記実行タスクの優先度より高いか否かを判定し、
前記優先度変更部は、前記要求タスクの優先度が前記実行タスクの優先度より高い場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くする
ことを特徴とする請求項１記載の優先度制御装置。
【請求項８】
第１ＯＳ上で動作する複数の第１タスク及び第２ＯＳ上で動作する複数の第２タスクの優先度を制御し、第１タスク及び第２タスクを優先して実行する実行部を備える優先度制御装置における優先度制御方法であって、
前記実行部により実行されている第１タスクである実行タスクの優先度と、前記実行部に対して実行が要求されている第２タスクである要求タスクの優先度とを取得するタスク優先度取得ステップと、
前記要求タスクの優先度が前記実行タスクの優先度より高いか否かを判定する優先度判定ステップと、
前記要求タスクの優先度が前記実行タスクの優先度より高い場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くする優先度変更ステップとを含む
ことを特徴とする優先度制御方法。
【請求項９】
第１ＯＳ上で動作する複数の第１タスク及び第２ＯＳ上で動作する複数の第２タスクの優先度を制御し、第１タスク及び第２タスクを優先して実行する実行部を備える優先度制御装置における優先度制御方法のプログラムであって、
前記実行部により実行されている第１タスクである実行タスクの優先度と、前記実行部に対して実行が要求されている第２タスクである要求タスクの優先度とを取得するタスク優先度取得ステップと、
前記要求タスクの優先度が前記実行タスクの優先度より高いか否かを判定する優先度判定ステップと、
前記要求タスクの優先度が前記実行タスクの優先度より高い場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くする優先度変更ステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、優先度制御装置及び優先度制御方法に関し、特に、第１ＯＳ上で動作する複数の第１タスク及び第２ＯＳ上で動作する複数の第２タスクの優先度を制御する優先度制御装置に関する。
【背景技術】
【０００２】
従来、複数のタスクを実行するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）では、各タスクに優先度を設定し、当該優先度に従い実行するタスクの順序を決定している。
【０００３】
このようなＯＳにおいて、優先度の逆転現象が発生することが知られている。以下、優先度の逆転現象について説明する。
【０００４】
低優先度のタスクを実行中に高優先度のタスクの実行が要求された場合、実行中の低優先度のタスクが高優先度のタスクで使用する資源を使用（ロック）しているか否かが判定される。実行中のタスクが高優先度のタスクで使用する資源をロックしていない場合、優先度に従い、実行されるタスクが高優先度のタスクに切り替えられる。
【０００５】
一方、実行中のタスクが高優先度のタスクで使用する資源をロックしている場合、実行中の低優先度のタスクを継続して実行され、低優先度のタスクが終了した後に、高優先度のタスクが実行される。
【０００６】
ここで、低優先度のタスクの実行中に、他の中優先度のタスク（高優先度のタスクより優先度が低く、かつ低優先度のタスクより優先度が高いタスク）の実行が要求され、かつ低優先度のタスクが中優先度のタスクで使用する資源をロックしていない場合、ＯＳは、優先度に従い、低優先度のタスクの実行を中断し、中優先度のタスクを実行する。つまり、本来、先に実行されるべき高優先度のタスクより先に中優先度のタスクが実行される優先度の逆転現象が生じる。この優先度の逆転現象によりリアルタイム性が阻害されるという問題がある。
【０００７】
このような優先度の逆転現象に対応する優先度制御装置として、特許文献１記載の優先度制御装置が知られている。
【０００８】
特許文献１記載の優先度制御装置は、実行中の低優先度のタスクの優先度を一時的に上げることで、中優先度のタスクの実行が要求されたとしても、要求を受け付けず、低優先度のタスクの実行を継続する。これにより、低優先度のタスクの実行が終了した後に、高優先度のタスクが実行される。すなわち、特許文献１記載の優先度制御装置は、上述した優先度の逆転現象を解消できる。
【０００９】
一方で、近年、目的の異なる機能を実現するため複数のＯＳを動作させるコンピュータシステムが用いられている。例えば、Ｌｉｎｕｘ（登録商標）上でＷｉｎｄｏｗｓ（登録商標）を動作させる場合などである。
【特許文献１】特開平８−７７０２５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、複数のＯＳを実行するシステムにおいて、特許文献１記載の技術を適用した場合、以下のような問題が生じる。
【００１１】
各ＯＳで実行されるタスクは、各ＯＳ内でそれぞれ独立した優先度を有している。つまり、各ＯＳ内でのタスクの優先度は規定されているが、ＯＳ間のタスクの優先度は必ずしも整合性が取れているわけではない。よって、単にＯＳ間を跨いでタスクの優先度を上げた場合、ＯＳ間のシステムの整合性を維持できないことがある。これにより、優先度の逆転現象を解消できなかったり、又は別の不具合が生じたりする可能性がある。
【００１２】
そこで、本発明は、複数のＯＳを実行する場合において、優先度の逆転現象を解消でき、かつシステムの整合性を維持できる優先度制御装置及び優先度制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明に係る優先度制御装置は、第１ＯＳ上で動作する複数の第１タスク及び第２ＯＳ上で動作する複数の第２タスクの優先度を制御する優先度制御装置であって、第１タスク及び第２タスクを実行する実行部と、前記実行部により実行されている第１タスクである実行タスクの優先度と、前記実行部に対して実行が要求されている第２タスクである要求タスクの優先度とを取得するタスク優先度取得部と、前記要求タスクの優先度が前記実行タスクの優先度より高いか否かを判定する優先度判定部と、前記要求タスクの優先度が前記実行タスクの優先度より高い場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に低い優先度より高くする優先度変更部とを備える。
【００１４】
この構成によれば、本発明に係る優先度制御装置は、第１タスクの実行中に、第１タスクより優先度の高い第２タスクの実行が要求された場合、第１ＯＳ上で動作する全ての第１タスクの優先度を上げる。これにより、優先度制御装置は、優先度の逆転現象を解消できる。
【００１５】
さらに、本発明に係る優先度制御装置は、第１ＯＳ上で動作する全ての第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま上げることで、実行中の第１タスクに関連する一連の第１タスクを優先して実行できる。これにより、複数のＯＳを実行する場合においても、ＯＳ内のタスクの優先度の整合性を維持できる。よって、本発明に係る優先度制御装置は、複数のＯＳを実行する場合においても、優先度の逆転現象を解消でき、かつシステムの整合性を維持できる。
【００１６】
また、前記優先度制御装置は、さらに、前記要求タスクの実行に使用する資源が、前記実行タスクの実行に使用されているか否かを判定する資源判定部を備え、前記優先度変更部は、前記要求タスクの優先度が前記実行タスクの優先度より高く、かつ、前記要求タスクの実行に使用する資源が、前記実行タスクの実行に使用されている場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くしてもよい。
【００１７】
この構成によれば、本発明に係る優先度制御装置は、要求タスクの実行に使用する資源が実行タスクの実行に使用されている場合に、優先度の変更処理を行う。これにより、本発明に係る優先度制御装置は、優先度の逆転現象が生じる場合にのみ、優先度の変更処理を行うことができる。
【００１８】
また、前記優先度制御装置は、さらに、前記要求タスクが実行待ち状態であるか否かを判定する状態判定部を備え、前記優先度変更部は、前記要求タスクの優先度が前記実行タスクの優先度より高く、かつ、前記要求タスクが実行待ち状態である場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くしてもよい。
【００１９】
この構成によれば、本発明に係る優先度制御装置は、要求タスクが待機状態である場合に、優先度の変更処理を行う。これにより、本発明に係る優先度制御装置は、優先度の逆転現象が生じる場合にのみ、優先度の変更処理を行うことができる。
【００２０】
また、前記優先度制御装置は、さらに、前記複数の第１タスクのうち１つと、当該１つの第１タスクに対応する第２タスクとが設定される対応タスク設定部と、前記実行タスクが前記対応タスク設定部に設定された第１タスクであるか否かを判定し、前記要求タスクが前記対応タスク設定部に設定された当該実行タスクに対応する第２タスクであるか否かを判定するタスク判定部とを備え、前記優先度変更部は、前記要求タスクの優先度が前記実行タスクの優先度より高く、かつ、前記実行タスクが前記対応タスク設定部に設定された第１タスクであり、かつ、前記要求タスクが前記対応タスク設定部に設定された当該実行タスクに対応する第２タスクである場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くしてもよい。
【００２１】
この構成によれば、本発明に係る優先度制御装置は、要求タスク及び実行タスクが予め定められた組み合わせの場合に、優先度の変更処理を行う。これにより、本発明に係る優先度制御装置は、資源のロック状態又はタスクの動作状態等を確認する処理を行わなくてもよいので、処理量を低減できる。
【００２２】
また、前記優先度制御装置は、さらに、ユーザの入力を受け付けるユーザ入力部を備え、前記タスク判定部は、前記実行タスクが前記ユーザ入力部により受け付けられた処理を実行するタスクであるか否かを判定し、前記優先度変更部は、前記要求タスクの優先度が前記実行タスクの優先度より高く、かつ、前記実行タスクが前記ユーザ入力部により受け付けられた処理を実行するタスクであり、かつ、前記要求タスクが前記対応タスク設定部に設定された当該実行タスクに対応する第２タスクである場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くしてもよい。
【００２３】
この構成によれば、本発明に係る優先度制御装置は、画像表示等の特定の処理が多くの場合行われるユーザの入力を受け付けた場合、優先度の変更処理を行う。これにより、本発明に係る優先度制御装置は、資源のロック状態又はタスクの動作状態等を確認する処理を行わなくてもよいので、処理量を低減できる。
【００２４】
また、前記優先度変更部は、前記実行タスクの実行が終了した後に、当該実行タスクの優先度を変更前の優先度に戻してもよい。
【００２５】
また、前記優先度制御装置は、さらに、前記実行部に対する第２タスクの実行要求を検知するタスク要求検知部を備え、前記タスク要求検知部により第２タスクの実行要求が検知された際に、前記タスク優先度取得部は、前記実行タスクの優先度と、当該実行要求が検知されたタスクである前記要求タスクの優先度とを取得し、前記優先度判定部は、前記要求タスクの優先度が前記実行タスクの優先度より高いか否かを判定し、前記優先度変更部は、前記要求タスクの優先度が前記実行タスクの優先度より高い場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くしてもよい。
【００２６】
この構成によれば、本発明に係る優先度制御装置は、割り込み等のタスクの実行要求が発生した際に、優先度の変更処理を行うことができる。
【００２７】
また、本発明に係る優先度制御方法は、第１ＯＳ上で動作する複数の第１タスク及び第２ＯＳ上で動作する複数の第２タスクの優先度を制御し、第１タスク及び第２タスクを優先して実行する実行部を備える優先度制御装置における優先度制御方法であって、前記実行部により実行されている第１タスクである実行タスクの優先度と、前記実行部に対して実行が要求されている第２タスクである要求タスクの優先度とを取得するタスク優先度取得ステップと、前記要求タスクの優先度が前記実行タスクの優先度より高いか否かを判定する優先度判定ステップと、前記要求タスクの優先度が前記実行タスクの優先度より高い場合に、前記複数の第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま、前記要求タスクの優先度より低くし、かつ前記複数の第２タスクのうち前記要求タスクの次に優先度が低いタスクの優先度より高くする優先度変更ステップとを含む。
【００２８】
これによれば、本発明に係る優先度制御方法は、第１タスクの実行中に、第１タスクより優先度の高い第２タスクの実行が要求された場合、第１ＯＳ上で動作する全ての第１タスクの優先度を上げる。これにより、優先度制御方法は、優先度の逆転現象を解消できる。
【００２９】
さらに、本発明に係る優先度制御方法は、第１ＯＳ上で動作する全ての第１タスクの優先度を、当該複数の第１タスク間の優先度の相対順位を維持したまま上げることで、実行中の第１タスクに関連する一連の第１タスクを優先して実行できる。これにより、複数のＯＳを実行する場合においても、ＯＳ内のタスクの優先度の整合性を維持できる。よって、本発明に係る優先度制御方法は、複数のＯＳを実行する場合においても、優先度の逆転現象を解消でき、かつシステムの整合性を維持できる。
【００３０】
なお、本発明は、このような優先度制御装置として実現できるだけでなく、優先度制御装置に含まれる特徴的な手段をステップとする優先度制御方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【発明の効果】
【００３１】
以上より、本発明は、複数のＯＳを実行する場合において、優先度の逆転現象を解消でき、かつシステムの整合性を維持できる優先度制御装置及び優先度制御方法を提供できる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明に係る優先度制御装置の実施の形態について、図面を参照しながら詳細に説明する。
【００３３】
（実施の形態１）
本発明の実施の形態１に係る優先度制御装置は、一方のＯＳのタスクの実行中に、当該タスクより優先度の高い、他方のＯＳのタスクの実行が要求され、かつ、要求されたタスクが使用する資源を実行中のタスクかロック中の場合には、一方のＯＳの全てのタスクの優先度を上げる。これにより、本発明の実施の形態１に係る優先度制御装置は、複数のＯＳを実行する場合において、優先度の逆転現象を解消でき、かつシステムの整合性を維持できる。
【００３４】
まず、本発明の実施の形態１に係る優先度制御装置の構成を説明する。
【００３５】
図１は、本発明の実施の形態１に係る優先度制御装置の構成を示す図である。
【００３６】
図１に示す優先度制御装置１００は、複数のＯＳ上でそれぞれ動作する複数のタスクの優先度を制御する。優先度制御装置１００は、ＯＳ実行部１０１と、タスク優先度管理部１０２と、要求検知部１０３と、タスク優先度取得部１０４と、優先度判定部１０５と、資源判定部１０６と、優先度変更部１０７と、優先度保持部１０８とを備える。
【００３７】
ＯＳ実行部１０１は、第１ＯＳ１３０及び第２ＯＳ１３１を実行する。第１ＯＳ１３０上で複数のタスク１１０が実行され、第２ＯＳ１３１上で複数のタスク１２０が実行される。ＯＳ実行部１０１は、複数のタスク１１０及び１２０の実行が同時に要求された場合、優先度が高いタスク１１０及びタスク１２０を優先して実行する。複数のタスク１１０は、タスク１１１、１１２、１１３・・・を含む。複数のタスク１２０は、タスク１２１、１２２、１２３・・・を含む。
【００３８】
タスク優先度管理部１０２は、複数のタスク１１０及び１２０の優先度の関係を保持する。
【００３９】
図２（ａ）は、タスク優先度管理部１０２に保持される優先度の関係の一例を示す図である。図２（ａ）に示すように、例えば、複数のタスク１２０の優先度は複数のタスク１１０の優先度より高く設定される。また、複数のタスク１２０において、高いほうからタスク１２１、１２２、１２３・・・の順に優先度が設定される。また、複数のタスク１１０において、高いほうからタスク１１１、１１２、１１３・・・の順に優先度が設定される。
【００４０】
要求検知部１０３は、ＯＳ実行部１０１に対する割り込み等のタスクの実行要求を検知する。
【００４１】
タスク優先度取得部１０４は、要求検知部１０３によりタスクの実行要求が検知された際に、ＯＳ実行部１０１により実行されているタスク１１０又は１２０（以下、実行タスクと記す。）の優先度を取得する。また、タスク優先度取得部１０４は、タスク優先度管理部１０２に保持される優先度の関係を参照することで、ＯＳ実行部１０１に対して実行が要求されているタスク１１０又は１２０（以下、要求タスクと記す。）の優先度を取得する。タスク優先度取得部１０４は、要求検知部１０３により実行要求が検知された際に、実行タスクの優先度、及び要求タスクの優先度を取得する。
【００４２】
優先度判定部１０５は、タスク優先度取得部１０４により取得された要求タスクの優先度が実行タスクの優先度より高いか否かを判定する。
【００４３】
資源判定部１０６は、要求タスクの実行に使用する資源が、実行タスクの実行に使用されているか否かを判定する。つまり、資源判定部１０６は、要求タスクの実行に使用する資源が、実行タスクによりロック中であるか否かを判定する。
【００４４】
優先度変更部１０７は、第１ＯＳ１３０及び第２ＯＳ１３１のうち一方のＯＳ上で動作するタスクの実行中に、他方のＯＳのタスクの実行が要求された場合、つまり実行タスク及び要求タスクのうち一方がタスク１１０であり、かつ、他方がタスク１２０である場合において、優先度判定部に１０５により要求タスクの優先度が実行タスクの優先度より高いと判定され、かつ、資源判定部１０６により要求タスクの実行に使用する資源が実行タスクの実行に使用されていると判定された場合に、実行タスクが含まれる複数のタスク１１０又は複数のタスク１２０の優先度を全て上げる。
【００４５】
例えば、タスク１１２の実行中にタスク１２１の実行が要求された場合には、優先度変更部１０７は、タスク１１１、１１２、１１３・・・の全ての優先度を上げる。
【００４６】
図２（ｂ）は、優先度変更部１０７により変更された優先度の一例を示す図である。図２（ｂ）に示すように、優先度変更部１０７は、複数のタスク１１０の優先度を、タスク１２１の優先度の直下、つまりタスク１２１より低く、かつタスク１２０のうちタスク１２１の次に優先度が低いタスク１２２の優先度より高くする。また、優先度変更部１０７は、複数のタスク１１０間の優先度の相対順位を維持したまま、タスク１１０の優先度を上げる。
【００４７】
優先度保持部１０８は、優先度変更部１０７により変更される前の複数のタスク１１０及び１２０の優先度の関係を保持する。
【００４８】
また、優先度変更部１０７は、優先度を変更した場合、実行タスクの実行が終了した後に、複数のタスク１１０及び１２０の優先度を優先度保持部１０８に保持される優先度にする。つまり、優先度変更部１０７は、実行タスクの実行が終了した後に、複数のタスク１１０の優先度を変更前の優先度に戻す。
【００４９】
次に、優先度制御装置１００の動作を説明する。
【００５０】
図３は、優先度制御装置１００による優先度制御動作の流れを示すフローチャートである。図４（ａ）は、ＯＳ実行部１０１により実行されるタスクの状態を示す図である。
【００５１】
以下、図３及び図４（ａ）を用いて、タスク１１２の実行中にタスク１２１の実行が要求された場合の動作を説明する。また、図２（ａ）に示す優先度の関係が設定されているとする。また、図４（ａ）は、タスク１２１で用いる資源が、タスク１１２によりロックされている場合のタスクの状態を示す。
【００５２】
時刻ｔ１以前において、ＯＳ実行部１０１はタスク１１２を実行している。
【００５３】
時刻ｔ１においてタスク１２１の実行が要求される。要求検知部１０３は、タスク１２１の実行要求を検知する（Ｓ１００）。タスク優先度取得部１０４は、要求検知部１０３による実行要求の検知に応じて、実行中のタスク１１２の優先度を取得する（Ｓ１０１）。また、タスク優先度取得部１０４は、実行が要求されたタスク１２１の優先度を取得する（Ｓ１０２）。
【００５４】
次に、優先度判定部１０５は、タスク１２１の優先度がタスク１１２の優先度より高いか否かを判定する（Ｓ１０３）。
【００５５】
ここでは、タスク１２１の優先度はタスク１１２の優先度より高いので（Ｓ１０３でＹｅｓ）、次に、資源判定部１０６は、タスク１２１で用いる資源が、タスク１１２によりロックされているか否かを判定する（Ｓ１０４）。
【００５６】
タスク１２１で用いる資源が、タスク１１２によりロックされており（Ｓ１０４でＹｅｓ）、かつタスク１１２とタスク１２１とは異なるＯＳ上のタスクなので、優先度変更部１０７は、図２（ｂ）に示すように、複数のタスク１１０の優先度をタスク１１２の直下の優先度まで引き上げる（Ｓ１０５）。優先度保持部１０８は、優先度変更部１０７により変更される前の優先度を保持する。
【００５７】
また、時刻ｔ１においてＯＳ実行部１０１は、タスク１２１で用いる資源が、タスク１１２によりロックされているので、タスク１１２の実行を継続し、タスク１２１を待機させる。
【００５８】
時刻ｔ２においてタスク１２３の実行が要求される。ＯＳ実行部１０１は、新たに要求されたタスク１２３の優先度に比べ実行中のタスク１１２の優先度が高いので、タスク１１２の実行を継続し、タスク１２３を待機させる。
【００５９】
時刻ｔ３においてタスク１１２の実行が終了する（Ｓ１０６）。優先度変更部１０７は、ステップＳ１０６で変更した複数のタスク１１０の優先度を、優先度保持部１０８に保持される元の優先度に戻す（Ｓ１０７）。
【００６０】
また、時刻ｔ３において、タスク１１２により使用されていた資源が解放され、かつ待機中のタスク１２１の優先度は、待機中のタスク１２３の優先度より高いので、ＯＳ実行部１０１は、タスク１２１を実行する。
【００６１】
その後、時刻ｔ４において、タスク１２１の実行が終了し、次に、ＯＳ実行部１０１は、タスク１２３を実行する。
【００６２】
一方、ステップＳ１０４において、タスク１２１の優先度がタスク１１２の優先度より低い場合（Ｓ１０４でＮｏ）、又は、ステップＳ１０５においてタスク１２１で用いる資源がタスク１１２によりロックされていない場合（Ｓ１０５でＮｏ）、優先度変更部１０７は、タスクの優先度を変更しない。
【００６３】
以下、比較のために優先度を変更しない場合の動作を説明する。
【００６４】
図４（ｂ）は、優先度を変更しない場合の、ＯＳ実行部１０１で実行されるタスクの状態を示す図である。
【００６５】
図４（ｂ）に示すように、優先度を変更しない場合には、時刻ｔ２でタスク１２３の実行が要求されると、ＯＳ実行部１０１は実行中のタスク１１２より優先度が高いタスク１２３を実行し、タスク１１２を待機させる。
【００６６】
時刻ｔ３において、タスク１２３の実行が終了し、次に、ＯＳ実行部１０１は、タスク１１２の実行を再開する。
【００６７】
時刻ｔ４においてタスク１１２の実行が終了することにより、タスク１１２により使用されていた資源が解放されるので、ＯＳ実行部１０１は、タスク１２１を実行する。
【００６８】
このように、優先度の変更を行わない場合には、タスク１２１より優先度の低いタスク１２３がタスク１２１より先に実行される。これにより、優先度の高いタスク１２１の実行が遅れる。なお、図４（ａ）及び図４（ｂ）において、タスク１２１及び１２３の実行時間は同程度としているが、特に、タスク１２３の実行時間が長い場合に、タスク１２１の実行開始の遅れは顕著となる。
【００６９】
以上より、本発明の実施の形態１に係る優先度制御装置１００は、第１ＯＳ１３０のタスク１１０の実行中に、タスク１１０より優先度の高い、第２ＯＳ１３１のタスク１２０の実行が要求され、かつ、要求されたタスク１２０が使用する資源を実行中のタスク１１０かロック中の場合には、第１ＯＳ１３０上で動作する全てのタスク１１０の優先度を上げる。これにより、優先度制御装置１００は、優先度の逆転現象を解消できる。
【００７０】
さらに、第１ＯＳ１３０上で動作する全てのタスク１１０の優先度を上げることで、複数のＯＳを実行する場合においても、ＯＳ内のタスクの優先度の整合性を維持できる。
【００７１】
具体的には、タスク１１２の実行において、第１ＯＳ上で動作する他のタスク１１３を呼び出し実行する場合がある。この場合、タスク１１２の優先度のみを上げた場合には、タスク１１３の実行の際に、新たに要求されたタスク１２３が先に実行され、優先度の逆転現象が生じる。一方、本発明の実施の形態１に係る優先度制御装置１００は、第１ＯＳ１３０上で動作する全てのタスク１１０の優先度を上げるのでタスク１１２に係る一連の処理が終了するまで、タスク１２１より優先度が低いタスクの実行が要求されたとしても、当該要求を受け付けない。これにより、優先度制御装置１００は、複数のＯＳを実行する場合においても、優先度の逆転現象を解消できる。
【００７２】
なお、上記説明において、複数のタスク１１０及び１２０の優先度の関係として図２（ａ）に示す例を示したが、複数のタスク１１０及び１２０の優先度の関係はこれに限定されるものではない。
【００７３】
図２（ｃ）は、複数のタスク１１０及び１２０の優先度の関係の別の例を示す図である。図２（ｃ）に示すように、複数のタスク１１０及び１２０の優先度の順番が混在してもよい。図２（ｃ）に示す例において、タスク１１２の実行中にタスク１２１の実行が要求された場合には、上述した動作例と同様に、優先度変更部１０７は、図２（ｂ）に示すように優先度を変更する。
【００７４】
また、優先度変更部１０７は、要求タスクの優先度が実行タスクの優先度より高く（Ｓ１０４でＹｅｓ）、かつ要求タスクで用いる資源が、実行タスクによりロックされている場合（Ｓ１０５でＹｅｓ）において、要求タスク及び実行タスクが同じＯＳ上のタスクであれば、当該ＯＳ上の複数のタスクのうち、実行タスクの優先度のみを要求タスクの直下の優先度まで引き上げてもよい。
【００７５】
また、上記説明では、優先度変更部１０７は、資源がロック中であるか否かに応じて、優先度変更処理を行うとしたが、要求タスクが待機状態であるか否かに応じて、優先度変更処理を行ってもよい。
【００７６】
図５は、優先度制御装置１００の変形例の構成を示すブロック図である。図５に示す優先度制御装置１５０は、優先度制御装置１００の構成に対して、資源判定部１０６の代わりに状態判定部１０９を備える。
【００７７】
状態判定部１０９は、要求タスクが実行待ち状態（待機状態）であるか否かを判定する。
【００７８】
優先度変更部１０７は、第１ＯＳ１３０及び第２ＯＳ１３１のうち一方のＯＳ上で動作するタスクの実行中に、他方のＯＳのタスクの実行が要求された場合において、優先度判定部に１０５により要求タスクの優先度が実行タスクの優先度より高いと判定され、かつ、状態判定部１０９により要求タスクが実行待ち状態であると判定された場合に、実行タスクが含まれるタスク１１０又は１２０の優先度を全て上げる。
【００７９】
また、上記説明では、優先度制御装置１００は、割り込み等の新たなタスクの実行要求を検出した際に、優先度変更処理を行うか否かの判定及び優先度変更処理（ステップＳ１０１〜Ｓ１０５）を行うとしたが、所定の周期毎に、優先度変更処理を行うか否かの判定及び優先度変更処理（ステップＳ１０１〜Ｓ１０５）を行ってもよい。
【００８０】
また、上記説明では、ステップＳ１０３（要求タスクの優先度が実行タスクの優先度より高いか否かの判定）を行った後に、ステップＳ１０４（資源がロック中であるか否か（又は、待機状態であるか否か）の判定）を行っているが、ステップＳ１０４を行った後にステップＳ１０３を行ってもよいし、一部又は全ての処理を同時に行ってもよい。
【００８１】
（実施の形態２）
本発明の実施の形態２に係る優先度制御装置は、ユーザ入力に基づくタスクの実行に関しては、資源がロック中であるか否かによらず、優先度を変更する。
【００８２】
まず、本発明の実施の形態２に係る優先度制御装置の構成を説明する。
【００８３】
図６は、本発明の実施の形態２に係る優先度制御装置の構成を示す図である。なお、図１と同様の要素には同一の符号を付しており重複する説明は省略する。
【００８４】
図６に示す優先度制御装置２００は、実施の形態１に係る優先度制御装置１００の構成に加え、さらに、ユーザ入力部２０１と、対応タスク表保持部２０２とを備え、資源判定部１０６の代わりにタスク判定部２０３を備える。
【００８５】
ユーザ入力部２０１は、リモコン又はキーボート等であり、ユーザの入力を受け付ける。
【００８６】
対応タスク表保持部２０２は、複数のタスク１１０のうち１以上と、当該１以上のタスク１１０に対応するタスク１２０とが設定される対応タスク表を保持する。ここで、対応タスク表に設定される対応するタスク１１０及び１２０の一方は、ユーザ入力部２０１により受け付けられた処理を実行するタスクである。また、対応タスク表に設定される対応するタスクは、同じ資源を使用するタスクである。
【００８７】
また、対応タスク表において、１つのタスク１１０に対して１つのタスク１２０が設定されてもよいし、１つのタスク１１０に対して複数のタスク１２０が設定されてもよいし、複数のタスク１１０に対して１つのタスク１２０が設定されてもよい。また、対応タスク表にタスク１１０及び１２０の複数組の対応が設定されてもよい。
【００８８】
タスク判定部２０３は、実行タスクがユーザ入力部２０１により受け付けられた処理を実行するタスクであるか否かを判定する。また、タスク判定部２０３は、実行タスクがユーザ入力部２０１により受け付けられた処理を実行するタスクである場合、要求タスクが対応タスク表に設定された当該実行タスクに対応するタスクであるか否かを判定する。
【００８９】
優先度変更部１０７は、要求タスクの優先度が実行タスクの優先度より高く、かつ、タスク判定部２０３により、実行タスクがユーザ入力部２０１により受け付けられた処理を実行するタスクであると判定され、かつ、タスク判定部２０３により要求タスクが対応タスク表に設定された当該実行タスクに対応するタスクであると判定された場合に、実行タスクが含まれるタスク１１０又は１２０の優先度を全て上げる。なお、タスクの優先度の上げ方は、実施の形態１と同様である。
【００９０】
次に、優先度制御装置２００の動作を説明する。
【００９１】
図７は、優先度制御装置２００による優先度制御動作の流れを示すフローチャートである。
【００９２】
以下、図７を用いて、タスク１１２の実行中にタスク１２１の実行が要求された場合の動作を説明する。また、図２（ａ）に示す優先度の関係が設定されているとする。また、実施の形態１と同様の動作は説明を省略する。
【００９３】
ステップＳ２００〜Ｓ２０３の動作は、図３に示すステップＳ１００〜Ｓ２０３と同様である。
【００９４】
ステップＳ２０３において、タスク１２１の優先度がタスク１１２の優先度より高い場合（Ｓ２０３でＹｅｓ）、次に、タスク判定部２０３は、タスク１１２がユーザ操作に関するタスク、つまりユーザ入力部２０１により受け付けられた処理を実行するタスクであるか否かを判定する（Ｓ２０４）。
【００９５】
タスク１１２が、ユーザ入力部２０１により受け付けられた処理を実行するタスクである場合（Ｓ２０４でＹｅｓ）、タスク判定部２０３は、タスク１２１がタスク１１２に対応するタスクとして対応タスク表保持部２０２に保持される対応タスク表に設定されているか否かを判定する（Ｓ２０５）。
【００９６】
タスク１２１がタスク１１２に対応するタスクとして対応タスク表に設定されている場合（Ｓ２０５でＹｅｓ）、優先度変更部１０７は、複数のタスク１１０の優先度をタスク１２１の直下の優先度まで引き上げる（Ｓ２０６）。なお、ステップＳ２０７及びＳ２０８の動作は、図３に示すステップＳ１０６及びＳ１０７と同様である。
【００９７】
一方、ステップＳ２０４において、タスク１１２が、ユーザ入力部２０１により受け付けられた処理を実行するタスクでない場合（Ｓ２０４でＮｏ）、又は、ステップＳ２０５において、タスク１２１がタスク１１２に対応するタスクとして対応タスク表に設定されていない場合（Ｓ２０５でＮｏ）、優先度変更部１０７は、タスクの優先度を変更しない。
【００９８】
以上より、本発明の実施の形態２に係る優先度制御装置２００は、ユーザ入力に基づくタスクの実行に関しては、資源がロック中であるか否かによらず、優先度を変更する。ここで、ユーザ入力に基づくタスクは、メニューの表示等、画像処理に関するものが多い。よって、対応タスク表には、対応するタスクとして、緊急字幕の表示等の同じく画像処理に関するタスクが設定される。
【００９９】
このように、優先度制御装置２００は、資源の競合が発生することで優先度逆転現象が発生する可能性の高いタスクの組み合わせを予め設定しておき、当該組み合わせのタスクが実行及び要求された場合には、優先度を変更する。
【０１００】
これにより、優先度制御装置２００は、実施の形態１に係る優先度制御装置１００の効果に加え、使用されている資源の確認を行う必要がないので、処理量を低減できる。
【０１０１】
なお、実施の形態２に係る優先度制御装置２００に対しても、上述した実施の形態１と同様の変形例を適用できる。
【０１０２】
また、上記説明では、優先度制御装置２００は、ステップＳ２０３（要求タスクの優先度が実行タスクの優先度より高いか否かの判定）、ステップＳ２０４（実行タスクがユーザ入力に関するタスクであるか否かの判定）、ステップＳ２０５（要求タスクが実行タスクに対応するタスクであるか否かの判定）の順に処理を行っているが、ステップＳ２０３、Ｓ２０４、Ｓ２０５の順序は、任意の順序でよい。さらに、ステップＳ２０３、Ｓ２０４及びＳ２０５の一部又は全ての処理を同時に行ってもよい。
【０１０３】
また、上記説明では、優先度変更部１０７は、実行タスクがユーザ入力に関するタスクであるか否かに基づき、優先度変更処理を行っているが、実行タスクがユーザ入力に関するタスクであるか否かによらず、実行タスクが対応タスク表に設定されているか否かに基づき、優先度変更処理を行ってもよい。つまり、ユーザ入力に関するタスクに限らず、資源の競合が発生することで優先度逆転現象が発生する可能性の高いタスクの組み合わせを予め設定しておき、当該組み合わせのタスクが実行及び要求された場合には、優先度を変更してもよい。
【０１０４】
また、本発明は、実施の形態１及び実施の形態２の機能を有する優先度制御装置として実現してもよい。つまり、図７に示すステップＳ２０４でＮｏ、又はステップＳ２０５でＮｏの場合に、図３に示すステップＳ１０４の処理を行ってもよい。
【０１０５】
また、上記実施の形態１及び実施の形態２では、２つのＯＳを実行する場合を例に述べたが、３以上のＯＳが実行される場合にも本発明を適用できる。
【産業上の利用可能性】
【０１０６】
本発明は、複数のＯＳ上で動作するタスクの優先度を制御する優先度制御装置に適用できる。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施の形態１に係る優先度制御装置の構成を示すブロック図である。
【図２】本発明の実施の形態１に係る優先度制御装置による変更前後の優先度の一例を示す図である。
【図３】本発明の実施の形態１に係る優先度制御装置による優先度変更処理の流れを示すフローチャートである。
【図４】本発明の実施に形態１に係る優先度制御装置により実行されるタスクの状態及び優先度変更処理を行わない場合のタスクの状態を示す図である。
【図５】本発明の実施の形態１に係る優先度制御装置の変形例の構成を示すブロック図である。
【図６】本発明の実施の形態２に係る優先度制御装置の構成を示すブロック図である。
【図７】本発明の実施の形態２に係る優先度制御装置による優先度変更処理の流れを示すフローチャートである。
【符号の説明】
【０１０８】
１００、１５０、２００  優先度制御装置
１０１  ＯＳ実行部
１０２  タスク優先度管理部
１０３  要求検知部
１０４  タスク優先度取得部
１０５  優先度判定部
１０６  資源判定部
１０７  優先度変更部
１０８  優先度保持部
１０９  状態判定部
１１０、１１１、１１２、１１３、１１４、１１５、１１６、１１７、１１８、１１９、１２０、１２１、１２２、１２３、１２４、１２５、１２６、１２７、１２８、１２９  タスク
１３０  第１ＯＳ
１３１  第２ＯＳ
２０１  ユーザ入力部
２０２  対応タスク表保持部
２０３  タスク判定部
【図１】
2009294712.tif 000003
【図２】
2009294712.tif 000004
【図３】
2009294712.tif 000005
【図４】
2009294712.tif 000006
【図５】
2009294712.tif 000007
【図６】
2009294712.tif 000008
【図７】
2009294712.tif 000009