(57)【要約】  仮想マシンへ共有データの変更を通知するときに、省電力状態になっている仮想マシンにも常に通知していたのでは、機器の省電力化を実現できない。  仮想マシン間通知管理部１２４２と、レジューム判定部１２４４と、割込発生予定時刻取得部１２４５とを備え、省電力状態になっている仮想マシンへ通知する必要があるときに、割込発生予定時刻取得部１２４５で取得した割込発生までの時間から、レジューム判定部１２４４により仮想マシンを省電力状態から復帰するかを判断し、不必要な状態の遷移処理を防止することで、機器の省電力化を実現する。
2009004757.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツを再生する再生部と、
通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第１仮想実行部と、
前記所定の情報を更新する第２仮想実行部と、
前記所定の情報を格納するメモリを有し前記第１仮想実行部及び前記第２仮想実行部を管理する仮想マシンモニタと、を具備し、
前記第１仮想実行部は、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行し、
前記仮想マシンモニタは、前記所定の情報の更新があった場合前記所定の時刻が到来するときに、前記更新があった旨を前記第１仮想実行部に通知する
ことを特徴とするデータ処理装置。
【請求項２】
前記第１仮想実行部は、前記仮想マシンモニタからの通知によって前記省電力状態から前記通常状態に移行して、前記メモリに格納された更新情報に基づいてコンテンツ再生の継続の可否を判断する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記仮想マシンモニタは、前記所定の情報の更新がなく前記所定の時刻が到来すると判断した場合、その旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す
ことを特徴とする請求項２記載のデータ処理装置。
【請求項４】
前記仮想マシンモニタは、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す第１のタイミングと、
前記所定の情報の更新が無く前記所定の時刻が到来すると判断した場合にその旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す第２のタイミングとを有し、
前記第１のタイミングは、前記２のタイミングより前記所定の時刻を起点にして前である
ことを特徴とする請求項３記載のデータ処理装置。
【請求項５】
前記仮想マシンモニタは、前記所定の情報の更新が無い状態で前記第１のタイミングを経過した後であって前記第２のタイミングを経過する前に、前記メモリを参照して前記所定の情報の更新があったと判断した場合は、直ちに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す
ことを特徴とする請求項４記載のデータ処理装置。
【請求項６】
前記第２仮想実行部は、前記所定の情報を更新する際、前記仮想マシンモニタに前記メモリの格納内容の更新を依頼し、
前記仮想マシンモニタは、前記依頼に基づいて前記所定の情報の更新があったと判断し、前記所定の情報の更新情報を前記メモリに格納する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項７】
コンテンツの再生を継続するための前記所定の情報は、前記コンテンツの使用権利に関する著作権管理情報である
ことを特徴とする請求項１記載のデータ処理装置。
【請求項８】
コンテンツの再生を継続するための前記所定の情報は、前記コンテンツに継続する次のコンテンツである
ことを特徴とする請求項１記載のデータ処理装置。
【請求項９】
前記再生部は、前記コンテンツの早送りをする機能を有し、
前記第１仮想実行部は、前記通常状態において前記所定の情報に基づいてコンテンツの早送りの継続の可否を判断する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項１０】
前記仮想マシンモニタは、タイマーを有し、
前記所定の情報の更新があったと判断した場合、前記所定の時刻が到来するときまでの時間を前記タイマーを基に取得し、前記取得した時間に基づいて前記更新があった旨を前記第１仮想実行部に通知する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項１１】
コンテンツを再生する再生部と、
通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第１仮想実行部と、
前記所定の情報を更新する第２仮想実行部と、
前記所定の情報を格納するメモリを有し前記第１仮想実行部及び前記第２仮想実行部を管理する仮想マシンモニタと
を具備するデータ処理装置のデータ処理方法であって、
前記第１仮想実行部において、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行し、
前記第２仮想実行部において、前記所定の情報の更新情報を前記メモリに格納し、
前記仮想マシンモニタにおいて、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに、前記更新があった旨を前記第１仮想実行部に通知する
ことを特徴とするデータ処理方法。
【請求項１２】
コンピュータに対して、
コンテンツを再生する第１処理と、
通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第２処理と、
前記所定の情報を更新する第３処理と、
前記所定の情報を格納するメモリを管理し、前記第２処理及び前記第３処理を管理する第４処理と、を実行させるデータ処理プログラムであって、
前記第２処理において、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を決定して、前記所定の時刻まで省電力状態に移行し、
前記第４処理において、前記所定の情報の更新情報を前記メモリに格納し、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに、前記更新があった旨を前記第２処理に反映させる
ことを特徴とするデータ処理プログラム。
【請求項１３】
コンピュータに対して、
コンテンツを再生する第１処理と、
通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第２処理と、
前記所定の情報を更新する第３処理と、
前記所定の情報を格納するメモリを管理し、前記第２処理及び前記第３処理を管理する第４処理とを実行させるデータ処理プログラムを格納した記録媒体であって、
前記第２処理において、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を決定して、前記所定の時刻まで省電力状態に移行し、
前記第４処理において、前記所定の情報の更新情報を前記メモリに格納し、前記メモリを参照して前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに、前記更新があった旨を前記第２処理に反映させる
ことを特徴とする記録媒体。
【請求項１４】
情報処理部と、
この情報処理部に対して、
コンテンツを再生する第１処理と、
通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第２処理と、
前記所定の情報を更新する第３処理と、
前記所定の情報を格納するメモリを管理し、前記第２処理及び前記第３処理を管理する第４処理とを実行させるデータ処理プログラムを格納した記憶部とを具備した集積回路であって、
前記情報処理部は、
前記第２処理において、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を決定して、前記所定の時刻まで省電力状態に移行し、
前記第４処理において、前記所定の情報の更新情報を前記メモリに格納し、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに、前記更新があった旨を前記第２処理に反映させる
ことを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想化技術を適用し、複数の仮想マシンを搭載した装置において、複数の仮想マシン間で共有するデータを変更した時に、省電力状態の他の仮想マシンにデータの変更を通知する技術に関する。
【背景技術】
【０００２】
民生機器などの組み込み機器において動作させるオペレーティングシステム（以下、ＯＳ）は、従来のリアルタイムオペレーティングシステム（以下、ＲＴＯＳ）から、Ｌｉｎｕｘ（登録商標）やＳｙｍｂｉａｎ（登録商標）のような汎用ＯＳへ移行しつつある。しかし、アプリケーションソフトは、ハードウェアやＯＳに依存したプログラム構造になっている。そのため、例えばＲＴＯＳ用のアプリケーションソフトを他のＯＳで動作させるためには、そのＯＳにあわせるための改変が必要になる。このような移行に伴い、移植するアプリケーションソフトを汎用ＯＳにあわせるための開発量が大きくなるという課題が生じている。【０００３】
このような課題に対して仮想化技術を用いて１つのハードウェア上で異なるＯＳの動作を可能にし、既存のＯＳ及びアプリケーションをそのまま利用し、新たな開発量を削減できる可能性がある。なお、仮想化技術については、非特許文献１の３８〜４５ページに詳しく説明されている。【０００４】
このような仮想化技術の応用を考えた場合、異なるＯＳ上で動作する２つのアプリケーションソフト間でデータを共有し、連携して動作する必要が生じる場合がある。この場合に対処するために、特許文献１には、複数のＯＳの動作を制御するＯＳ間制御機能の中にＯＳ間共有メモリやＯＳ間通知機能を持たせ、他のＯＳが共有データを変更したときにＯＳ間通知機能を用いて、データを共有している他のＯＳへ共有データの変更を通知する技術が開示されている。【０００５】
図２７は、前記特許文献１に記載された従来の共有データ変更通知機能を示すものである。図２７によると、第１のＯＳ上で動作しているタスクＣ２２０２と、第２のＯＳ上で動作しているタスクＤ２２０３の間で、ＯＳ間共有メモリを利用してデータを共有する。なお、ＯＳ間共有メモリは、第１のＯＳと第２のＯＳとで共有されているメモリ空間から取得するメモリ領域である。まず、タスクＣ２２０２が、ＯＳ間共有メモリを取得する。そして、取得した共有メモリへデータを登録・変更するときに、ＯＳ間通知機能は、その旨をタスクＤ２２０３へ通知する。
【特許文献１】特開２００１−２４３０８０号公報
【特許文献２】特開２０００−３４７７７２号公報
【非特許文献１】ＵＮＩＸ  ｍａｇａｚｉｎｅ  ２００７年１月号、株式会社アスキー（２００７年）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
携帯電話などのバッテリー駆動を前提とした機器で仮想化技術を用いる場合、バッテリーの消費を押さえるために使用されていない仮想マシンを省電力状態（プロセッサがその仮想マシンの実行を一時的に停止する）にすることが望ましい。しかしながら、特許文献１の技術では、共有メモリのデータを変更する場合に、通知先のタスクへ常に通知するようになっている。したがって、このような機能を、上記の携帯電話などに適用すると、バッテリーの消費を押さえるために省電力状態になっている仮想マシンへ共有データの変更が通知されてしまう。この通知を受けた仮想マシンは、そのたびに省電力状態から通常状態へ復帰し、通知先のタスクへ共有データの変更を通知する。そのため、共有するデータを頻繁に変更する場合には、上記の通知が省電力化の妨げになるという問題が発生する。【０００７】
そこで、本発明は、上記の課題を解決するために、可能な限り省電力化を妨げずに、仮想マシン間の共有データの変更通知することができるデータ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明の一実施の態様は、コンテンツを再生する再生部と、通常状態及び省電力状態の相互間の切替え機能を有し前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第１仮想実行部と、前記所定の情報を更新する第２仮想実行部と、前記所定の情報を格納するメモリを有し前記第１仮想実行部及び前記第２仮想実行部を管理する仮想マシンモニタとを具備するデータ処理装置であって、前記第１仮想実行部は、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行し、前記仮想マシンモニタは、前記所定の情報の更新があった場合前記所定の時刻が到来するときに、前記更新があった旨を前記第１仮想実行部に通知するものである。【０００９】
ここで、上記の第１仮想実行部及び第２仮想実行部は、下記の実施の形態１における第１仮想実行部１５０１及び第２仮想実行部１５０２が対応する。また、メモリは、共有データ領域１２５５がその機能を担い、仮想マシンモニタは、仮想マシンモニタ１２４０がその機能を担う。
【発明の効果】
【００１０】
上記の構成によれば、前記第１仮想実行部の省電力状態を継続しつつ、前記第１仮想実行部に前記更新があった旨が通知されないためにコンテンツの再生が途中で途切れるのを防止できる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１におけるコンテンツ権利配信システム１０００の全体図。
【図２】本発明の実施の形態１における権利情報１４０４の構成図。
【図３】本発明の実施の形態１における携帯端末１２００の構成図。
【図４】本発明の実施の形態１における仮想マシンモニタ１２４０の構成図。
【図５】本発明の実施の形態１における共有データ管理部１２４３の構成及びデータフローを示す図。
【図６】本発明の実施の形態１における管理情報１４１０の構成図。
【図７】本発明の実施の形態１におけるレジューム判定部１２４４保持する判定基準表の詳細を示す図。
【図８】通知タイミング情報「Ｂ」を受け取った場合にレジューム判定部１２４４が、判定を行うために用いる時刻及び時間の関係を示す図。
【図９】現在時刻Ｔｎと基準時刻Ｔ１の前後関係の一例を示す図。
【図１０】現在時刻Ｔｎと基準時刻Ｔ１の前後関係の一例を示す図。
【図１１】本発明の実施の形態１において、携帯端末１２００によるコンテンツ再生の動作を示すフローチャート。
【図１２】本発明の実施の形態１において、携帯端末１２００によるコンテンツ再生の動作を示すフローチャート。図１１から続く。
【図１３】本発明の実施の形態１において、携帯端末１２００によるコンテンツ再生の動作を示すフローチャート。図１２から続く。
【図１４】本発明の実施の形態１において、携帯端末１２００によるコンテンツ再生の動作を示すフローチャート。図１３から続く。
【図１５】本発明の実施の形態１において、携帯端末１２００によるコンテンツ再生の動作を示すフローチャート。図１４から続く。
【図１６】本発明の実施の形態１において、仮想マシンモニタ１２４０による通知判定の動作を示すフローチャート。
【図１７】本発明の実施の形態１において、仮想マシンモニタ１２４０による通知判定の動作を示すフローチャート。図１６から続く。
【図１８】本発明の実施の形態２における携帯端末１２００の構成図。
【図１９】本発明の実施の形態２における処理イベント情報１４２０の構成図。
【図２０】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。
【図２１】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。図２０から続く。
【図２２】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。図２１から続く。
【図２３】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。図２２から続く。
【図２４】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。図２３から続く。
【図２５】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。図２４から続く。
【図２６】本発明の実施の形態２における通知タイミング管理情報１４３０の構成図。
【図２７】従来技術における共有データ変更通知機能の構成図。
【符号の説明】
【００１２】
１０００    コンテンツ権利配信システム
１１００    権利管理サーバ
１２００    携帯端末
１２１０    ＤＲＭアプリ
１２１１    再生アプリ
１２１２    ＴＰＭモジュール
１２１３    ＴＰＭモジュール
１２１４    通信アプリ
１２２０    ＲＴＯＳ
１２２１    汎用ＯＳ
１２２２    ＴＰＭ−ＯＳ
１２３０    仮想マシン
１２３１    仮想マシン
１２３２    仮想マシン
１２４０    仮想マシンモニタ
１２４１    仮想マシン管理部
１２４２    仮想マシン間通知管理部
１２４３    共有データ管理部
１２４４    レジューム判定部
１２４５    割込発生予定時刻取得部
１２４６    待ちイベント記憶部
１２５０    ハードウェア
１２５１    メモリ
１２５２    プロセッサ
１２５３    Ｉ／Ｏデバイス
１２５４    タイマー
１２５５    共有データ領域
１２５６    ＴＰＭ
１２６０    共有データ確保部
１２６１    共有データ変更部
１２６２    管理情報保持部
１２６３    データ変更通知部
１２６４    通知タイミング情報取得部
１３００    記憶装置
１４３０    通知タイミング管理情報
１５０２    第２仮想実行部
【発明を実施するための最良の形態】
【００１３】
１．各種実施態様について
本発明の一実施の態様は、コンテンツを再生する再生部と、通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第１仮想実行部と、  前記所定の情報を更新する第２仮想実行部と、前記所定の情報を格納するメモリを有し前記第１仮想実行部及び前記第２仮想実行部を管理する仮想マシンモニタと、を具備し、前記第１仮想実行部は、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行し、前記仮想マシンモニタは、前記所定の情報の更新があった場合前記所定の時刻が到来するときに、前記更新があった旨を前記第１仮想実行部に通知するものである。【００１４】
本態様によれば、前記仮想マシンモニタは前記所定の情報の更新があった場合に直ちに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を省電力状態から通常状態に戻すのではなく、前記所定の情報の更新があった場合であって前記所定の時刻が到来するときに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を省電力状態から通常状態に戻すので、前記第１仮想実行部の省電力状態を継続しつつ、前記第１仮想実行部に前記更新があった旨が通知されないためにコンテンツの再生が途中で途切れるのを防止できる。【００１５】
ここで、前記第１仮想実行部は、前記仮想マシンモニタからの通知によって前記省電力状態から前記通常状態に移行して、前記メモリに格納された更新情報に基づいてコンテンツ再生の継続の可否を判断してもよい。【００１６】
本態様によると、前記第１仮想実行部は、前記仮想マシンモニタからの通知によって前記電力状態から前記通常状態に移行して前記メモリに格納された更新情報に基づいてコンテンツの再生を継続することにより、前記更新があった旨の通知は前記所定の時刻が到来するときまで前記第１仮想実行部に送信されず省電力状態を継続できるので、前記第１仮想実行部の省電力状態を継続しつつ、コンテンツの再生が途中で途切れるのを防止できる。【００１７】
ここで、前記仮想マシンモニタは、前記所定の情報の更新がなく前記所定の時刻が到来すると判断した場合、その旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻してもよい。【００１８】
また、前記所定の情報の更新がなく前記所定の時刻が到来したと判断した場合、その旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻してもよい。【００１９】
本態様は、前記所定の情報の更新がなく前記所定の時刻が到来したと判断した場合、その旨を前記第１仮想実行部に通知し、前記第１仮想実行部を通常状態に戻すものである。【００２０】
ここで、前記仮想マシンモニタは、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す第１のタイミングと、前記所定の情報の更新が無く前記所定の時刻が到来すると判断した場合にその旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す第２のタイミングと、を有し、前記第１のタイミングは、前記２のタイミングより前記所定の時刻を起点にして前であってもよい。【００２１】
本態様によると、前記所定の情報の更新があったと判断した場合と前記所定の情報の更新が無かった場合とで前記第１仮想実行部を前記通常状態に戻すタイミングを異ならせることにより、更新があった場合は更新に要する時間を加味して早めに前記第１仮想実行部を前記通常状態に戻す一方で、更新が無かった場合は更新に要する時間は不要であるのでその分省電力状態を長くすることができるので、更新に要する時間を加味しつつ、省電力状態を最大限継続させて消費電力を最大限削減できる。【００２２】
ここで、前記仮想マシンモニタは、前記所定の情報の更新が無い状態で前記第１のタイミングを経過した後であって前記第２のタイミングを経過する前に、前記メモリを参照して前記所定の情報の更新があったと判断した場合は、直ちに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻してもよい。【００２３】
本態様によると、前記所定の情報の更新が無い状態で前記第１のタイミングを経過した後であって前記第２のタイミングを経過する前に、前記メモリを参照して前記所定の情報の更新があったと判断した場合は、前記第１のタイミングを経過しているものの、前記第２のタイミングの到来を待たずに前記第１仮想実行部を前記通常状態に戻すので、コンテンツの再生が途中で途切れる可能性はあるものの、その途切れる時間幅を最小限に抑えることができる。【００２４】
ここで、前記第２仮想実行部は、前記所定の情報を更新する際、前記仮想マシンモニタに前記メモリの格納内容の更新を依頼し、前記仮想マシンモニタは、前記依頼に基づいて前記所定の情報の更新があったと判断し、前記所定の情報の更新情報を前記メモリに格納してもよい。【００２５】
本態様によると、前記仮想マシンモニタ内のメモリは前記仮想マシンモニタによってのみ更新できる仮想化技術の構成の場合、前記所定の情報を更新する処理を行うのは前記第２仮想実行部であっても、前記第２仮想実行部から前記仮想マシンモニタに前記メモリの格納内容の更新を依頼し、この依頼に基づいて前記仮想マシンモニタの方では前記前記所定の情報の更新の有無を判断するので、仮想化技術において効率的に、前記第１仮想実行部の省電力状態を継続しつつ、コンテンツの再生が途中で途切れるのを防止できる。【００２６】
ここで、コンテンツの再生を継続するための前記所定の情報は、前記コンテンツの使用権利に関する著作権管理情報であってもよい。【００２７】
本態様は、コンテンツの再生を継続するための所定の情報を、前記コンテンツの使用権利に関する著作権管理情報とした場合に適用できる。【００２８】
ここで、コンテンツの再生を継続するための前記所定の情報は、前記コンテンツに継続する次のコンテンツであってもよい。【００２９】
本態様は、コンテンツの再生を継続するための所定の情報を、前記コンテンツの次のコンテンツを再生するための鍵情報とした場合に適用できる。【００３０】
ここで、前記再生部は、前記コンテンツの早送りをする機能を有し、前記第１仮想実行部は、前記通常状態において前記所定の情報に基づいてコンテンツの早送りの継続の可否を判断してもよい。【００３１】
本態様は、前記コンテンツの早送りする場合に適用できる。【００３２】
ここで、前記仮想マシンモニタは、タイマーを有し、前記所定の情報の更新があったと判断した場合、前記所定の時刻が到来するときまでの時間を前記タイマーを基に取得し、前記取得した時間に基づいて前記更新があった旨を前記第１仮想実行部に通知してもよい。【００３３】
本態様は、前記仮想マシンモニタにタイマーを設けた場合に適用できる。【００３４】
また、本発明をシステム、方法、プログラム、記録媒体、集積回路として実現した場合にも、同様の効果が得られる。
２．実施の形態１
以下、本発明の具体的な実施の形態１について、図面を参照しながら説明する。
２．１  コンテンツ権利配信システム１０００の構成
図１は、実施の形態１におけるコンテンツ権利配信システム１０００の全体図である。図１を用いて、コンテンツ権利配信システム１０００の全体構成を説明する。【００３５】
図１に示すように、コンテンツ権利配信システム１０００は、権利管理サーバ１１００と携帯端末１２００、記憶装置１３００から構成される。【００３６】
権利管理サーバ１１００及び携帯端末１２００は、ネットワークに接続されており、相互に通信可能である。【００３７】
記憶装置１３００は、コンテンツを取得し、記録する装置である。記憶装置１３００は、携帯端末１２００で再生可能なコンテンツを格納している。なお、記憶装置１３００が格納しているコンテンツは、別途ネットワークや記録メディアを利用して入手したものであり、暗号化処理が施されているものとする。【００３８】
権利管理サーバ１１００は、記憶装置１３００の記憶している各コンテンツについて、再生許可を示す権利情報を管理するサーバである。権利情報は、一例として、再生を許可する時間、期限、回数、複製の可否といった再生許可の条件を示す情報、コンテンツを復号するためのデータを含んでいる。【００３９】
権利管理サーバ１１００は、携帯端末１２００からコンテンツ再生に係る権利情報の取得要求を受信する。取得要求を受信すると、受信した取得要求に含まれるコンテンツ識別子に対応するコンテンツの権利情報を携帯端末１２００へ送信する。【００４０】
携帯端末１２００は、利用者の操作により選択されたコンテンツに対応する権利情報を要求する取得要求を送信し、権利管理サーバ１１００から権利情報を取得し、取得した権利情報に基づいて記憶装置１３００に格納しているコンテンツを再生する。【００４１】
なお、権利管理サーバ１１００と記憶装置１３００が同一のサーバとして実現されているとしても構わないことは言うまでもない。
２．２  権利管理サーバ１１００
上述したように、権利管理サーバ１１００は、各コンテンツに対応する権利情報を記憶している。図２は、権利情報のデータ構造の一例を示している。【００４２】
図２に示すように、権利情報１４０４は、コンテンツ識別子１４０３、制限情報フラグ１４００、制限情報１４０１及び復号鍵１４０２から構成される。【００４３】
コンテンツ識別子１４０３は、権利情報１４０４と一意に対応するコンテンツを示す。制限情報１４０１は、コンテンツ識別子１４０３の示すコンテンツの再生についての制限を示す。【００４４】
制限情報１４０１の具体例としては、「４月１日まで再生可」などの期限に関する情報、「３０分再生可」などの再生時間に関する情報が考えられる。ここでは、期限、時間に関する制限について記載したが、これらは一例であって、制限情報１４０１として、再生回数、コピーの可否など他の制限を含んでいても良いし、複数の制限を含んでいても良い。【００４５】
制限情報フラグ１４００は、制限情報１４０１により定められる制限の種類を示すデータである。例えば、制限情報フラグ１４００の値「０」は、期限に関する情報であることを示し、制限情報フラグ１４００の値「１」は、再生時間に関する情報であることを示す。ここでは、制限情報フラグ１４００は、１ビット長のデータとしたが、これは一例であって、制限の種類を識別できるデータであればよい。【００４６】
復号鍵１４０２は、コンテンツ識別子１４０３の示すコンテンツを復号するための鍵データである。【００４７】
権利管理サーバ１１００は、携帯端末１２００から、コンテンツ識別子を含む取得要求を受信する。取得要求を受信すると、受信したコンテンツ識別子を含む権利情報を読み出す。読み出した権利情報を携帯端末１２００に固有の鍵を用いて暗号化して暗号化権利情報を生成し、生成した暗号化権利情報を携帯端末１２００へ送信する。なお、携帯端末１２００に固有の鍵を用いるとしたが、これに限らず、携帯端末１２００との間で通信の度に共通鍵（セッション鍵）を生成し、生成したセッション鍵を用いても良い。鍵共有については、公知の技術で実現可能であるのでここでは説明を割愛する。
２．３  携帯端末１２００
携帯端末１２００は、利用者の操作によるコンテンツの指定を受け付け、指定されたコンテンツに対応する権利情報を要求する取得要求を生成し、生成した取得要求を権利管理サーバ１１００へ送信する。続いて、携帯端末１２００は、権利管理サーバ１１００から暗号化権利情報を受信し、受信した暗号化権利情報をそのまま保持する。コンテンツを再生するときには、その都度、暗号化権利情報を復号して権利情報を生成し、生成した権利情報に含まれる復号鍵を用いてコンテンツを復号し、制限情報に従って再生を行う機器である。【００４８】
この一連の処理は、それぞれ異なる仮想マシン上で動作するＤＲＭアプリ（後述）と再生アプリ（後述）をプロセッサが実行することにより達成される。【００４９】
なお、実施の形態１では、権利情報を暗号化したまま保持するとしたが、これに限定するものではなく、権利情報への不正な解析を防止できる構成であればよく、例えば、復号により生成された権利情報を耐タンパー化された記憶領域に、保持しても良い。この場合、携帯端末１２００は、権利情報を利用する時に復号化を行う必要はなくなる。【００５０】
また、ここでの暗号化及び復号の処理は、本発明において重要ではないので、以下の説明では、コンテンツ再生時における暗号化権利情報の復号に関する記載は割愛する。
２．４  携帯端末１２００の構成
図３は、携帯端末１２００のハードウェア構成の概要とソフトウェア構成を示す。図２の示すように、携帯端末１２００は、ハードウェア１２５０と、ハードウェア１２５０上で動作する仮想マシンモニタ１２４０、仮想マシン１２３０、１２３１、ＲＴＯＳ１２２０、汎用ＯＳ１２２１、ＤＲＭアプリ１２１０及び再生アプリ１２１１から構成される。
２．４．１  ハードウェア１２５０
ハードウェア１２５０は、汎用のメモリであるメモリ１２５１、上記のプログラム群を解読及び実行するプロセッサ１２５２、ユーザや他の機器等の外部とのインタフェースとなるＩ／Ｏデバイス１２５３、割り込み処理に用いるタイマー１２５４を含んで構成される。【００５１】
ここでメモリ１２５１は、共有データ領域１２５５を含む。共有データ領域１２５５は、メモリ１２５１の一部の領域であり、複数の仮想マシン１２３０、１２３１が、それぞれアクセス可能な領域である。本実の形態では、前記共有データ領域１２５５は、具体的に異なる仮想マシン上で動作しているＤＲＭアプリ１２１０（後述）と再生アプリ１２１１（後述）とが、コンテンツの再生に関する権利情報を共有するために利用され、コンテンツと１対１に対応する。図２において、メモリ１２５１内には、１つの共有データ領域しか記載されていないが、コンテンツ毎に複数の共有データ領域が存在していてもよい。【００５２】
また、具体的には図示していないが、ハードウェア１２５０には、プログラム群、取得済の権利情報及び各種データを記憶している不揮発メモリ（ＲＯＭ、ハードディスクなど）、時刻を計測している内部時計、コンテンツのデコード実行するデコーダ、デコードされた音声及び画像を再生する再生機構などが含まれている。
２．４．２  ソフトウェア
以下、各ソフトウェアについて、詳細に説明するが、これらはいずれも、各ソフトウェアに割り当てられた処理を示す複数の命令群から構成され、前記命令群は、コンピュータ実行可能なプログラム言語で記述されている。【００５３】
また、必要に応じて、仮想マシン１２３０及び仮想マシン１２３０上で動作するプログラム群を第１仮想実行部１５０１、仮想マシン１２３１及び仮想マシン１２３１上で動作するプログラム群を第２仮想実行部１５０２と呼ぶ。【００５４】
（１）アプリケーションプログラム
ＤＲＭアプリ１２１０と再生アプリ１２１１は、それぞれ通知タイミング情報を含んでいる。通知タイミング情報とは、当該アプリケーションがアイドル状態であり、当該アプリケーションを動作させる仮想マシンが省電力状態（後述）になっている時に、当該アプリケーションに通知すべき事象（例えば、権利情報の変更など）が生じた場合に、いつ仮想マシン及びアプリケーションを通常状態に復帰させ、前記事象を通知するべきかを示す情報である。【００５５】
通知タイミング情報には、以下の３つの種類があり、それぞれに、識別子「Ａ」、「Ｂ」、「Ｃ」が割り当てられている。【００５６】
Ａ：すぐに通知する必要がある
Ｂ：所定の時間範囲内で通知すればよい
Ｃ：省電力状態から復帰した際に通知すればよい
本実施の形態では、具体的に、ＤＲＭアプリ１２１０は、通知タイミング情報「Ａ：すぐに通知する必要がある」を含んでいる。また、再生アプリ１２１１は、通知タイミング情報「Ｃ：省電力状態から復帰した際に通知すればよい」及び通知タイミング情報「Ｂ：決められた時間の範囲内で通知すればよい」の２つを含んでおり、通知タイミング情報「Ｃ」を初期値とする。【００５７】
ＤＲＭアプリ１２１０と再生アプリ１２１１とは、コンテンツの再生に関連する処理を連動して行うアプリケーションプログラムである。ゆえに、各アプリケーションプログラムは、起動時に、自身の動作するＯＳに対して、コンテンツ毎に共有データ領域の確保を依頼する。このとき、各アプリケーションは、それぞれ、通知タイミング情報（再生アプリ１２１１は、通知タイミング情報の初期値「Ｃ」）を通知する。【００５８】
続いて、ＤＲＭアプリ１２１０と再生アプリ１２１１とは、仮想マシンモニタ１２４０から確保された共有データ領域１２５５を示す領域識別子を受け取り、受け取った領域識別子を記憶する。【００５９】
ＤＲＭアプリ１２１０は、ＲＴＯＳ１２２０上で動作するアプリケーションソフトウェアであり、コンテンツ再生に係る権利情報の取得及び更新を行う手順を含む。【００６０】
具体的には、ＤＲＭアプリ１２１０は、再生アプリ１２１１からの権利情報取得依頼又は利用者の操作による指示を受け、所定のコンテンツを示すコンテンツ識別子を含む取得要求を生成し、生成した取得要求を権利管理サーバ１１００へ送信する。【００６１】
続いて、権利管理サーバ１１００からコンテンツの権利情報を取得し、取得した権利情報を、仮想マシンモニタ１２４０を介して、共有データ領域１２５５に格納する。【００６２】
ここでは、権利情報は、図２を用いて説明した通り、コンテンツの再生に関する権利を示す情報として取り扱うが、コンテンツを複製する権利などの他の権利を示す情報であってもよい。【００６３】
再生アプリ１２１１は、汎用ＯＳ１２２１上で動作するアプリケーションソフトウェアあって、利用者の操作に従って権利情報の取得をＤＲＭアプリ１２１０へ依頼する手順を含み、ＤＲＭアプリ１２１０と連係して動作する。このとき、再生アプリ１２１１がＤＲＭアプリ１２１０へ出力する権利情報取得依頼は、コンテンツ識別子と領域識別子とを含んでいる。コンテンツ識別子は、利用者の指定したコンテンツ識別する情報であり、領域識別子は、共有データ領域１２５５を一意に示すじょうほうである。このとき、再生アプリ１２１１及びＤＲＭアプリ１２１０は、領域識別子とコンテンツ識別子と対応付けて記憶する。【００６４】
また、再生アプリ１２１１は、権利情報の管理を除くコンテンツの再生制御に関する処理手順を含む。具体的には、利用者の操作により、コンテンツの再生指示を受け付け、受け付けた再生指示の示すコンテンツと対応する権利情報を共有データ領域１２５５から取得し、取得した権利情報に含まれる制限フラグ及び制限情報を抽出する。抽出した制限フラグと制限情報から、コンテンツの再生を許可される時間の終端の時刻（以下、再生停止時刻と記載する）を決定する。【００６５】
次に、再生アプリ１２１１は、再生停止時刻が来たときにコンテンツ再生の停止処理を行えるように、タイマー１２５４を設定する。例えば、仮想マシン１２３１が省電力状態から通常状態に遷移し、再生アプリ１２１１がアイドル状態から通常状態に戻るまでの時間（復帰処理時間と呼ぶ）を、再生停止時刻から指し引いた時刻（タイマー設定時刻）にタイマー１２５４を設定する。具体的には、再生アプリ１２１１は、算出したタイマー設定時刻を汎用ＯＳ１２２１及び仮想マシン１２３１を介して仮想マシンモニタ１２４０へ通知する。仮想マシンモニタ１２４０内の仮想マシン管理部１２４１により、タイマー１２５４にタイマー設定時刻が設定される。【００６６】
続いて、再生アプリ１２１１は、再生指示を受けたコンテンツと対応する通知タイミング情報の変更依頼を、汎用ＯＳ１２２１及び仮想マシン１２３１を介して、仮想マシンモニタ１２４０へ出力する。ここで出力される変更依頼は、コンテンツに対応する共有データ領域を示す領域識別子と通知タイミング情報「Ｂ」を含む。【００６７】
通知タイミング情報の変更依頼を出力すると、再生アプリ１２１１は、コンテンツのデコード及び再生処理をハードウェア１２５０内のデコーダに指示する。コンテンツの再生中においては、再生アプリ１２１１が動作している必要はない。したがって、再生アプリ１２１１は、ハードウェア１２５０による処理が終了するまでは、再生アプリ１２１１自身をアイドル状態にする。アイドル状態の再生アプリ１２１１は、上記で設定したタイマー１２５４からの割り込み、ユーザのキー入力による割り込み及び仮想マシンモニタ１２４０からの割り込みに反応して、アイドル状態から通常の動作状態へ復帰する。【００６８】
再生停止時刻になると、再生アプリ１２１１は、デコーダによるコンテンツの再生を停止させる。続いて、汎用ＯＳ１２２１及び仮想マシン１２３１を介して、仮想マシンモニタ１２４０へ通知タイミング情報の変更依頼を出力する。ここで出力する変更依頼は、再生を停止したコンテンツと対応する管理情報に含まれる通知タイミング情報を初期値「Ｃ」に変更することを依頼するコマンドである。【００６９】
なお、実施の形態１では、各ＯＳ上で１個のアプリケーションしか動作しないが、それぞれのＯＳ上に複数のアプリケーションが動作していてもよいことは言うまでもない。【００７０】
また、上記では、２つのアプリケーションの起動時に、共有データ領域１２５５を確保し、利用者の指定するコンテンツに対応する権利情報を権利管理サーバ１１００から取得し、共有データ領域１２５５に書き込むとしたが、共有データ領域１２５５の確保のタイミングは、起動時限定されない。利用者によるコンテンツの指定がある度に、指定されたコンテンツと一意に対応する共有データ領域を新たに確保してもよい。また、ハードディスクに既に取得済みの権利情報が記憶されている場合、起動時に、取得済みの権利情報毎に共有データ領域を確保してもよい。【００７１】
（２）オペレーティングシステム
ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、それぞれ、ＤＲＭアプリ１２１０及び再生アプリ１２１１を動作させる基本ソフトウェアであって、それぞれ、仮想マシン１２３０と仮想マシン１２３１上で動作する。また、ＲＴＯＳ１２２０と汎用ＯＳ１２２１は、共有データ領域１２５５を取得するために用いる仮想マシンモニタ１２４０へのインタフェースを有する。【００７２】
例えば、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、それぞれ、ＤＲＭアプリ１２１０及び再生アプリ１２１１から共有データ領域１２５５の確保を依頼される。この依頼を受けると、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、仮想マシンモニタ１２４０へ共有データ領域１２５５の確保を依頼する。このとき、ＲＴＯＳ１２２０と汎用ＯＳ１２２１は、依頼元であるアプリケーションソフトを識別するためのアプリ識別子と、依頼と共に受け取った通知タイミング情報、及び各ＯＳ自身を識別するＯＳ識別子を仮想マシンモニタ１２４０へ通知する。アプリ識別子としては、ＯＳがアプリケーションソフトを識別するために利用しているプロセスＩＤなどを使用する。【００７３】
続いて、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、確保された共有データ領域１２５５に対する領域識別子を仮想マシンモニタ１２４０から取得し、ＤＲＭアプリ１２１０及び再生アプリ１２１１へ通知する。【００７４】
また、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、ＤＲＭアプリ１２１０及び再生アプリ１２１１から共有データ領域１２５５の取得依頼を受け付けたとき、各自に割り当てられるメモリ領域に、依頼元のアプリケーションと共有データ領域１２５５とコールバック関数とを関連付けて登録する。【００７５】
このコールバック関数は、共有データ領域１２５５の内容に変更があったときにＤＲＭアプリ１２１０及び再生アプリ１２１１に、その旨を通知するための関数である。ＲＴＯＳ１２２０と汎用ＯＳ１２２１は、共有データ領域１２５５の内容変更を知らせる割り込みが発生したときに、その共有データ領域１２５５に関連づけられているコールバック関数を呼び出し、コールバック関数を実行することで、自身の管理するアプリケーションに共有データ領域１２５５の内容変更を通知する。【００７６】
また、汎用ＯＳ１２２１は、再生アプリ１２１１など汎用ＯＳ１２２１上で動作中のすべてのアプリケーションソフトがアイドル状態になっている場合、仮想マシン１２３１を省電力状態へ遷移させる。具体的には、仮想マシン１２３１の仮想化されたプロセッサを停止するなどの処理を行う。さらに具体的にいうと、プロセッサ１２５２の動作において、仮想マシン１２３１の実行のために割り当てられていた時間、プロセッサは一時的に停止（例えばクロックの出力を停止）する。なお、省電力状態への遷移方法については、特許文献２に詳しく説明されているので、これ以上の説明は省略する。【００７７】
省電力状態から通常状態への復帰は、ユーザのキー入力によるＩ／Ｏデバイス１２５３からの割り込み発生時や、コンテンツの再生を停止処理のために設定したタイマー１２５４からの割り込み発生時及び仮想マシンモニタ１２４０からの復帰要求時に行われる。【００７８】
さらに、ＲＴＯＳ１２２０と汎用ＯＳ１２２１は、共有データ領域１２５５のデータをＤＲＭアプリ１２１０または再生アプリ１２１１が変更するために用いる仮想マシンモニタ１２４０へのインタフェースをそれぞれ有する。ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、それぞれ、ＤＲＭアプリ１２１０及び再生アプリ１２１１から共有データ領域１２５５のデータの変更を依頼される。データの変更を依頼されると、各ＯＳは、仮想マシンモニタ１２４０へ共有データ領域１２５５のデータの変更を依頼する。このとき、各ＯＳは、依頼元のアプリケーションを示すアプリ識別子と、各ＯＳを示すＯＳ識別子と、依頼元のアプリケーションから受け取った領域識別子及び変更するデータとを仮想マシンモニタ１２４０へ通知する。【００７９】
（３）仮想マシン
仮想マシン１２３０及び１２３１は、携帯端末１２００で動作している仮想マシンであって、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１それぞれに、仮想的な実行環境を提供する。【００８０】
なお、実施の形態１においては、携帯端末１２００は、２つの仮想マシンを搭載しているが、３つ以上の仮想マシンを搭載していても良い。【００８１】
（４）仮想マシンモニタ１２４０
仮想マシンモニタ１２４０は、仮想マシン１２３０及び仮想マシン１２３１が使用するメモリ領域やデバイスなどのリソース管理や仮想マシンのスケジューリングなど、仮想マシン１２３０、１２３１を管理するソフトウェアである。【００８２】
（４−１）仮想マシンモニタ１２４０の機能
仮想マシンモニタ１２４０は、ＲＴＯＳ１２２０と汎用ＯＳ１２２１から共有データ領域の確保を要求される。この要求を受けると、仮想マシンモニタ１２４０は、メモリ１２５１内に、共有データ領域１２５５を確保し、確保した共有データ領域１２５５を示す共有データ領域識別子を生成し、生成した共有データ領域識別子をＲＴＯＳ１２２０と汎用ＯＳ１２２１へ通知する。【００８３】
また、仮想マシンモニタ１２４０は、ＲＴＯＳ１２２０と汎用ＯＳ１２２１から共有データ領域１２５５のデータ変更依頼を受けたときに、共有データ領域１２５５のデータを変更すると共に、その共有データ領域１２５５を共有している他の仮想マシンに対して共有データ領域１２５５の変更を知らせる割り込みを発生させる。【００８４】
（４−２）仮想マシンモニタ１２４０の構成
上記の機能を実現するための仮想マシンモニタ１２４０の詳細な構成について、以下に説明する。【００８５】
図４は、本発明実施の形態１における省電力状態に対応した仮想マシンモニタ１２４０の機能的構成を示すブロック図である。【００８６】
図４に示すように、仮想マシンモニタ１２４０は、仮想マシン管理部１２４１と仮想マシン間通知管理部１２４２、共有データ管理部１２４３、レジューム判定部１２４４、割込発生予定時刻取得部１２４５、待ちイベント記憶部１２４６から構成される。【００８７】
さらに、図５は、共有データ管理部１２４３の機能的構成及びデータフローを示すブロック図である。【００８８】
図５に示すように、共有データ管理部１２４３は、共有データ確保部１２６０、共有データ変更部１２６１、管理情報保持部１２６２、データ変更通知部１２６３、通知タイミング情報取得部１２６４から構成される。【００８９】
図５中の実線矢印は、共有データ領域の確保に関するデータフローを示す。点線矢印は、共有データ領域１２５５の保持している権利情報変更に関するデータフローを示す。図中の太線矢印は、仮想マシン１２３０及び仮想マシン１２３１へ各種の通知を出力するタイミングを判定する処理に関するデータフローを示す。【００９０】
以下に、図４及び図５を用いて、仮想マシンモニタ１２４０の各構成について説明する。【００９１】
（４−２−１）仮想マシン管理部１２４１
仮想マシン管理部１２４１は、仮想マシンモニタ１２４０上で動作する仮想マシン１２３０及び仮想マシン１２３１を管理する。具体的には、各仮想マシンが使用するメモリ領域の管理や、仮想化されたデバイスの各仮想マシンへの割り当て、仮想化されたデバイスと実際のデバイスとのマッピング、各仮想マシンのスケジューリング、各仮想マシンの状態管理などを行う。仮想マシン１２３１の状態管理には、再生アプリ１２１１から通知されるタイマー設定時刻も参照する。【００９２】
また、各仮想マシンが省電力状態から通常状態に復帰すると、その旨を仮想マシン間通知管理部１２４２へ通知する。【００９３】
（４−２−２）仮想マシン間通知管理部１２４２
仮想マシン間通知管理部１２４２は、図５に示すように、共有データ管理部１２４３から、データ変更通知依頼１３１９を受け取る。データ変更通知依頼１３１９は、共有データ領域１２５５の記憶しているデータ変更の通知を依頼するコマンドである。データ変更通知依頼１３１９は、領域識別子１とＯＳ識別子２とアプリ識別子２とを含む。領域識別子１は、共有データ領域１２５５を示す。ＯＳ識別子２とアプリ識別子２は、それぞれ、通知先となるＯＳ及びアプリケーションを示す。データ変更通知依頼１３１９を受け取ると、仮想マシン間通知管理部１２４２は、通知先の仮想マシンの動作状態に合わせて、データ変更を通知する。【００９４】
また、仮想マシン間通知管理部１２４２は、仮想マシン１２３１及び仮想マシン１２３０間の各種の依頼を仲介する。例えば、仮想マシン１２３１から権利情報取得依頼１３１１を受け取る。権利情報取得依頼１３１１は、領域識別子１、アプリ識別子１及びコンテンツ識別子を含む。領域識別子１は、取得した権利情報を記録する共有データ領域１２５５を示す。アプリ識別子１は、依頼先のアプリケーションを示す情報である。コンテンツ識別子は、取得を要求している権利情報と対応するコンテンツを示す識別情報である。【００９５】
仮想マシン間通知管理部１２４２は、通知先の仮想マシン１２３０の動作状態に合わせて権利情報取得依頼１３１２を仮想マシン１２３０へ通知する。【００９６】
具体的に、これらの通知に先立って、仮想マシン間通知管理部１２４２は、通知先の仮想マシンが省電力状態であるかどうかを仮想マシン管理部１２４１へ問い合わせる（１３２１）。問合せ１３２１の結果、通知先の仮想マシンが通常状態であれば、仮想マシン間通知管理部１２４２は、すぐに、受け取った依頼を通知先の仮想マシンへ通知する。【００９７】
通知先の仮想マシンが省電力状態であれば、仮想マシン間通知管理部１２４２はレジューム判定部１２４４へ省電力状態から通常状態へ復帰させるかどうかの判定を要求する判定依頼１３２２を出力する。判定依頼１３２２は、データ変更通知部１２６３又は仮想マシンから出力された領域識別子とＯＳ識別子とアプリ識別子とを含む。ＯＳ識別子とアプリ識別子は、それぞれ、通知先となるＯＳ及びアプリケーションを示す。【００９８】
レジューム判定部１２４４から、判定結果１３２７「すぐ復帰」を受け取ると、仮想マシン間通知管理部１２４２は、仮想マシン管理部１２４１へ通知先の仮想マシンを省電力状態から通常状態へ復帰させるよう依頼する。続いて、通知先の仮想マシンが通常状態へ復帰し次第、仮想マシン間通知管理部１２４２は、受け取った依頼を復帰した仮想マシンに通知する。【００９９】
レジューム判定部１２４４から、判定結果１３２７「復帰しない」を受け取ると、仮想マシン間通知管理部１２４２は、待ちイベント記憶部１２４６に受け取った通知依頼の内容を記憶させ、別の要因（例えば、タイマー割込、利用者の操作による割込）で通知先の仮想マシンが省電力状態から通常状態へ復帰したとき、記憶させた通知内容を読み出して通知する。【０１００】
（４−２−３）共有データ管理部１２４３
＜共有データ管理部１２４３の機能の概要＞
共有データ管理部１２４３は、共有データ領域１２５５の管理を行う。共有データ管理部１２４３は、ＤＲＭアプリ１２１０や再生アプリ１２１１から共有データ領域の確保の依頼を受け付け、メモリ１２５１内の空き領域の一部を共有データ領域１２５５として確保し、仮想マシン１２３０と１２３１とがそれぞれアクセス出来るようにアクセス権の設定をする。【０１０１】
さらに、共有データ管理部１２４３は、共有データ領域１２５５の管理情報として、各仮想マシン上で動作しているＯＳを識別するためのＯＳ識別子と、そのＯＳ上で動作し、共有データ領域１２５５を利用するアプリケーションソフトを識別するためのアプリ識別子、および、アプリケーションと対応する通知タイミング情報を管理する。これらの管理情報は、共有データ領域毎に管理する。管理情報のデータ構造の例を図６に示す。管理情報は共有データ領域毎に図６に示す構造を持つ。つまり、管理情報１４１０は、領域識別子で一意に識別され、その領域識別子で識別される共有データ領域を使用しているＯＳとアプリケーションソフトの識別子及び通知タイミング情報からなる情報の組を複数組含んでいる。【０１０２】
また、共有データ管理部１２４３は、ＤＲＭアプリ１２１０や再生アプリ１２１１からＲＴＯＳ１２２０や汎用ＯＳ１２２１を通して、共有データ領域１２５５のデータの変更依頼を受け付ける。データの変更依頼を受け付けると、共有データ管理部１２４３は、共有データ領域１２５５のデータを変更するとともに、共有データ領域１２５５に対応する管理情報を参照する。共有データ管理部１２４３は、取得した管理情報を使って、共有データ領域１２５５を使用しているアプリケーションソフトとＯＳの識別子を取得する。そして、仮想マシン間通知管理部１２４２へ、共有データ領域のデータに変更があった旨を示す情報である共有データ領域１２５５変更のイベントを、各ＯＳへ通知するよう依頼する。【０１０３】
さらに、共有データ管理部１２４３は、ＤＲＭアプリ１２１０や再生アプリ１２１１から、それぞれの動作状態に応じて依頼されるイベントの通知タイミング情報の変更を受け付ける。共有データ管理部１２４３は、ＤＲＭアプリ１２１０や再生アプリ１２１１からの依頼を受けて、共有データ領域に対応する管理情報の中から、ＤＲＭアプリ１２１０や再生アプリ１２１１に該当する管理情報に含まれる通知タイミング情報を、指定された通知タイミング情報に変更する。【０１０４】
なお、実施の形態１では、ＤＲＭアプリ１２１０や再生アプリ１２１１は共有データ領域１２５５の確保時に通知タイミング情報を登録するとしたが、これに限定するものではなく、共有データ領域１２５５の確保時には、いずれのアプリケーションに対しても通知タイミング情報に所定の初期値を設定し、通知タイミング情報を初期値から変更する必要のあるアプリケーションソフトのみが共有データ管理部１２４３にイベントの通知タイミング情報の変更を依頼するとしてもよい。この場合、通知タイミング情報の初期値は、例えば、システム起動時に読み込まれる設定ファイルに記述されているものとしてもよい。【０１０５】
＜共有データ管理部１２４３の構成＞
続いて、本発明実施の形態１における共有データ管理部１２４３の詳細な構成について説明する。【０１０６】
（ａ）共有データ確保部１２６０
共有データ確保部１２６０は、ＤＲＭアプリ１２１０及び再生アプリ１２１１からＲＴＯＳ１２２０及び汎用ＯＳ１２２１を通して、共有データ領域の確保を要求する領域確保依頼１３０１を受け付ける。領域確保依頼には、ＯＳ識別子、アプリ識別子及び通知タイミング情報が含まれている。ＯＳ識別子及びアプリ識別子は、それぞれ、領域確保依頼１３０１の出力元であるＯＳ及びアプリケーションを示す識別子である。通知タイミング情報は、アプリ識別子の示すアプリケーションに記述されている通知タイミング情報である。【０１０７】
領域確保依頼１３０１を受け付けると、共有データ確保部１２６０は、メモリ１２５１上の未使用領域に共有データ領域１２５５を確保する。【０１０８】
次に、共有データ確保部１２６０は、確保した共有データ領域１２５５に対応する領域識別子を生成し、生成した領域識別子１３０３を、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１を通して、ＤＲＭアプリ１２１０及び再生アプリ１２１１へ通知する。【０１０９】
次に、共有データ確保部１２６０は、管理情報１３０２を、管理情報保持部１２６２へ出力する。管理情報１３０２は、領域情報、生成した領域識別子、ＯＳ識別子、アプリ識別子及び通知タイミング情報から構成される。領域情報は、メモリ１２５１内における共有データ領域１２５５の、位置を示す。ＯＳ識別子、アプリ識別子及び通知タイミング情報は、領域確保依頼１３０１に含んで取得したものである。【０１１０】
また、共有データ確保部１２６０は、ＤＲＭアプリ１２１０や再生アプリ１２１１といったアプリケーションからＲＴＯＳ１２２０や汎用ＯＳ１２２１を通して、既に確保されている共有データ領域の領域識別子と共に領域確保依頼を受け取ることもある。この場合、共有データ確保部１２６０は、管理情報保持部１２６２が保持している共有データ領域１２５５に対応する管理情報１４１０に、確保を依頼してきたＯＳを示すＯＳ識別子と領域確保依頼に含まれるアプリ識別子と通知タイミング情報を追加する。例えば、携帯端末１２００は、ＲＴＯＳ１２２０、汎用ＯＳ１２２１以外に、第３のＯＳ及び第３の仮想マシンを搭載しており、共有データ領域１２５５が確保された後、第３のＯＳ上で動作するアプリケーションが起動され、このアプリケーションも共有データ領域１２５５を利用する場合が考えられる。【０１１１】
（ｂ）管理情報保持部１２６２
管理情報保持部１２６２は、メモリ１２５１内に確保された共有データ領域１２５５の管理に必要な管理情報１３０２を、共有データ確保部１２６０から受け取り、保持する。【０１１２】
図６は、共有データ領域１２５５に対応する管理情報１４１０の詳細を示す。図６に示すように、管理情報１４１０は、領域識別子１（１４１１）、領域情報１（１４１２）と、ＯＳ識別子１（１４１３）、アプリ識別子１（１４１４）、通知タイミング情報１（１４１６）、ＯＳ識別子２（１４１７）、アプリ識別子２（１４１８）、通知タイミング情報２（１４１９）から構成される。【０１１３】
管理情報１４１０は、共有データ確保部１２６０から出力される管理情報１３０２と同様である。【０１１４】
領域識別子１（１４１１）は、共有データ領域１２５５を一意に示す識別子である。領域情報１（１４１２）は、メモリ１２５１内における共有データ領域１２５５の位置を示すデータである。図６中では、管理情報保持部１２６２は、共有データ領域１２５５の先頭及び末尾のアドレスを領域情報として保持している。【０１１５】
ＯＳ識別子、アプリ識別子及び通知タイミング情報からなる一組のデータは、共有データ領域１２５５の確保を依頼したアプリケーションを識別する情報、そのアプリケーションが動作するＯＳを識別する情報及び依頼と共に出力された通知タイミング情報である。具体的に、図６では、ＯＳ識別子１（１４１３）は、ＲＴＯＳ１２２０を示し、アプリ識別子１（１４１４）は、ＤＲＭアプリ１２１０を示しており、通知タイミング情報１（１４１６）は、ＤＲＭアプリ１２１０に記述されている通知タイミング情報「Ａ」である。また、ＯＳ識別子２（１４１７）は、汎用ＯＳ１２２１を示し、アプリ識別子２（１４１８）は、再生アプリ１２１１を示しており、通知タイミング情報２（１４１９）は、再生アプリ１２１１に記述されている通知タイミング情報の初期値「Ｃ」である。【０１１６】
メモリ１２５１内に、複数の共有データ領域が確保されている場合、管理情報保持部１２６２は、共有データ領域毎に図６に示す構成の管理情報を保持している。【０１１７】
（ｃ）共有データ変更部１２６１
共有データ変更部１２６１は、ＤＲＭアプリ１２１０や再生アプリ１２１１からＲＴＯＳ１２２０や汎用ＯＳ１２２１、仮想マシン１２３０及び仮想マシン１２３１を通して、共有データ領域１２５５のデータ変更依頼１３１３を受け付ける。【０１１８】
例えば、ＲＴＯＳ１２２０及び仮想マシン１２３０を介して、ＤＲＭアプリ１２１０から、共有データ領域１２５５内データの変更依頼を受け取る。受け取ったデータ変更依頼１３１３は、領域識別子１、アプリ識別子１及びデータ（権利情報など）を含む。領域識別子１は、共有データ領域１２５５を示す。アプリ識別子１は、ＤＲＭアプリ１２１０を示す。データ（ここでは、権利管理サーバ１１００から取得した権利情報）は、共有データ領域１２５５に新たに書き込まれるデータである。【０１１９】
この依頼を受け取ると、共有データ変更部１２６１は、領域識別子１に対応する管理情報１４１０を管理情報保持部１２６２から取得し、取得した管理情報１４１０に含まれる領域情報１（１４１２）を基に、メモリ１２５１上の共有データ領域１２５５を特定し、受け取った権利情報を基に共有データ領域１２５５内の権利情報を変更する。【０１２０】
また、共有データ変更部１２６１は、取得した管理情報１４１０から依頼元のＤＲＭアプリ１２１０と対応するＯＳ識別子１（１４１３を）を抽出する。続いて、共有データ変更部１２６１は、受け取ったデータ変更依頼に含まれる領域識別子１及びアプリ識別子１と、抽出したＯＳ識別子１（１４１３）と、を含む変更通知依頼を生成し、生成した変更通知依頼１３１７をデータ変更通知部１２６３へ出力する。【０１２１】
（ｄ）データ変更通知部１２６３
図５に示すように、データ変更通知部１２６３は、共有データ変更部１２６１から変更通知依頼１３１７を受け取る。変更通知依頼１３１７は領域識別子１、ＯＳ識別子１及びアプリ識別子１を含む。【０１２２】
変更通知依頼を１３１７受け取ると、データ変更通知部１２６３は、変更通知依頼１３１７に含まれる領域識別子１に対応する管理情報１４１０を管理情報保持部１２６２から取得する。そして、取得した管理情報１４１０に含まれるＯＳ識別子とアプリ識別子のうち、変更通知依頼に１３１７含まれるＯＳ識別子１及びアプリ識別子１を除くＯＳ識別子２（１４１７）とアプリ識別子２（１４１８）とを抽出する。【０１２３】
続いて、データ変更通知部１２６３は、変更通知依頼１３１７に含まれる領域識別子１、抽出したＯＳ識別子２（１４１７）及びアプリ識別子２（１４１８）を含むデータ変更通知依頼を生成する。データ変更通知依頼は、領域識別子１の示す共有データ領域１２５５の内容が変更されたことをＯＳ識別子２の示す汎用ＯＳ１２２１を介して、アプリ識別子２の示す再生アプリ１２１１へ通知することを依頼するコマンドである。【０１２４】
データ変更通知部１２６３は、生成したデータ変更通知依頼１３１９を、仮想マシン間通知管理部１２４２へ出力する。【０１２５】
（ｅ）通知タイミング情報取得部１２６４
通知タイミング情報取得部１２６４は、レジューム判定部１２４４から通知タイミング情報の取得を依頼する通知タイミング取得要求１３２３を受け取る。通知タイミング取得要求１３２３には、領域識別子とＯＳ識別子とアプリ識別子とが含まれている。【０１２６】
通知タイミング取得要求１３２３を受け取った通知タイミング情報取得部１２６４は、管理情報保持部１２６２の保持している管理情報のうち、受け取った領域識別子を含む管理情報を検出し、検出した管理情報から、受け取ったＯＳ識別子及びアプリ識別子に対応する通知タイミング情報１３２４を抽出する。次に、抽出した通知タイミング情報１３２６（１３２４と同一）をレジューム判定部１２４４へ出力する。【０１２７】
（４−２−４）レジューム判定部１２４４
レジューム判定部１２４４は、イベントの通知対象となっている仮想マシンをすぐに省電力状態から通常状態へ復帰させるか否か判定を行う機能部である。ここで、イベントとは、例えば、共有データ領域１２５５内のデータ変更の通知、仮想マシン間における各種の依頼の通知の処理である。【０１２８】
レジューム判定部１２４４は、仮想マシン間通知管理部１２４２から判定依頼１３２２を受け取る。判定依頼１３２２は、領域識別子、ＯＳ識別子及びアプリ識別子を含む。領域識別子は、イベントに関与する共有データ領域を示す。ＯＳ識別子及びアプリ識別子は、イベントの通知先となるＯＳ及びアプリケーションを示す。【０１２９】
判定依頼１３２２を受け取ると、レジューム判定部１２４４は、通知タイミング取得要求１３２３を生成する。通知タイミング取得要求１３２３は、受け取った領域識別子とＯＳ識別子とアプリ識別子とを含む。続いて、レジューム判定部１２４４は、生成した通知タイミング取得要求１３２３を共有データ管理部１２４３内の通知タイミング情報取得部１２６４へ出力する。【０１３０】
続いて、レジューム判定部１２４４は、通知タイミング情報取得部１２６４から、通知タイミング情報１３２６を受け取る。受け取った通知タイミング情報と、図７に示す判定基準表１２７０を用いて、通知先の仮想マシンをすぐに省電力状態から通常状態に復帰するか否かを判定する。【０１３１】
図７に示すように判定基準表１２７０は、３つの判定基準情報１２７１、１２７２及び１２７３から構成される。判定基準情報１２７１及び１２７３は、通知タイミング情報と通知タイミング情報を示す識別子と判定結果とを含む。【０１３２】
判定基準情報１２７２は、識別子と通知タイミング情報と、時刻条件と判定結果の組を２組含んでいる。【０１３３】
通知タイミング情報については上述した通り３種類存在し、それぞれの通知タイミング情報に識別子「Ａ」、「Ｂ」、「Ｃ」が割り当てられている。【０１３４】
時刻条件は、通知タイミング情報取得部１２６４から受け取った通知タイミング情報が「Ｂ：決められた時間の範囲内で通知すればよい」の場合、判定のためにさらに課せられる条件である。時刻条件については、後で詳細に説明する。【０１３５】
判定結果は、通知タイミング情報及び時刻条件によって定まる判定の結果であって、「すぐに復帰する」又は「復帰しない」のいずれかである。【０１３６】
通知タイミング情報取得部１２６４から受け取った通知タイミング情報１３２６が、「Ａ：すぐに通知する必要がある」である場合、レジューム判定部１２４４は、判定基準情報１２７１を参照し、判定結果「すぐ復帰する」１３２７を仮想マシン間通知管理部１２４２へ出力する。【０１３７】
ここで、「すぐに通知する必要がある」イベントは、例えば、再生アプリ１２１１がＤＲＭアプリ１２１０へ権利の購入を依頼するイベントのように、アプリケーションソフト同士が同期して処理を行う必要があるイベントである。【０１３８】
通知タイミング情報取得部１２６４から受け取った通知タイミング情報１３２６が、「Ｃ：省電力状態から復帰したときに通知すればよい」である場合、レジューム判定部１２４４は、判定基準表１２７０の判定基準情報１２７３を参照し、判定結果「復帰しない」１３２７を仮想マシン間通知管理部１２４２へ出力する。【０１３９】
ここで、「省電力状態から復帰したときに通知すればよい」イベントは、例えば再生していないコンテンツの権利を購入したときの権利情報の変更を通知するイベントである。この場合は、コンテンツを再生させるためには、ユーザが再生アプリ１２１１を動作させてコンテンツを再生しようとキー入力を行う必要があるので、コンテンツの再生前には、そのキー入力によるＩ／Ｏデバイス１２５３からの割り込みが発生する。この割り込みによって、仮想マシンは省電力状態から復帰するので、その時に権利情報の変更を通知すれば十分である。【０１４０】
通知タイミング情報取得部１２６４から受け取った通知タイミング情報１３２６が、「Ｂ：決められた時間間隔の範囲内で通知すればよい」である場合、レジューム判定部１２４４は、以下の処理を行う。【０１４１】
ここで、「決められた時間間隔の範囲内で通知すればよい」イベントは、例えば、再生中のコンテンツの権利情報を追加で購入したときの共有データ領域１２５５に記憶されている権利情報の変更を通知するイベントである。以下、具体的に、再生中のコンテンツの権利情報を追加で購入したとき、共通データ領域に記憶されている権利情報の変更を通知するイベントのために、省電力状態の仮想マシン１２３１をすぐに復帰させるか否かの判定を行う場合について説明する。【０１４２】
図８は、通知タイミング情報「Ｂ」を受け取った場合にレジューム判定部１２４４が、判定を行うために用いる時刻及び時間の関係を示している。図８において、時刻Ｔ０は、イベントの通知先となる仮想マシン１２３１が省電力モードへ移行した時刻である。時刻Ｔ３は、コンテンツの再生を停止する予定の時刻（再生停止予定時刻）であって、変更前の権利情報により定まる時刻である。時間ｔ２は、省電力状態の仮想マシンが通常状態に復帰するために要する時間（復帰処理時間）である。【０１４３】
時刻Ｔ３から時間ｔ２を差し引いた時刻Ｔ２は、タイマー１２５４による割込発生予定時刻（以下、タイマー設定時刻と呼ぶ）である。これは、再生アプリ１２１１により設定された時刻である。時間ｔ１は、仮想マシン１２３１が通常状態に復帰した後、仮想マシン１２３１を介して、権利情報の変更を再生アプリ１２１１へ通知するイベントの実行に要する時間（イベント実行時間）である。時刻Ｔ１は、タイマー設定時刻Ｔ２から時間ｔ１を差し引いた時刻である。このようにして定まる時刻Ｔ１を基準時刻と呼ぶ。【０１４４】
図８において、再生中のコンテンツの権利情報の変更の通知イベントは、変更される前の権利情報により決められた再生停止予定時刻Ｔ３になる前に、完了していればよい。従って、基準時刻Ｔ１までに仮想マシン１２３１を省電力状態から通常状態へ復帰させる処理を開始すれば、アイドル状態から復帰した再生アプリ１２１１が、変更後の権利情報を参照して再生停止予定時刻を再計算するので、時刻Ｔ３で途切れることなくコンテンツの再生を継続することができる。そのため、判定依頼１３２２を受けた時刻（正確には現在時刻Ｔｎ）が、基準時刻Ｔ１以後であるか、基準時刻Ｔ１より前であるかにより判定結果が異なる。【０１４５】
先ず、レジューム判定部１２４４は、割込発生予定時刻取得部１２４５へ割込発生予定時刻の取得を指示し、割込発生予定時刻取得部１２４５から、割込発生予定時刻として、タイマー設定時刻Ｔ２を受け取る。タイマー設定時刻Ｔ２を受け取るとレジューム判定部１２４４は、時刻Ｔ２からイベント実行時間ｔ２を差し引いた基準時刻Ｔ１を算出する。イベント実行時間ｔ１は、システム設計時に決定される値であって、レジューム判定部１２４４が予め保持しているとしても良いし、仮想マシン間通知管理部１２４２から、判定依頼と共に受け取るとしても良い。【０１４６】
次に、レジューム判定部１２４４は、内部時計から現在時刻Ｔｎを取得し、取得した現在時刻と基準時刻Ｔ１とを比較する。【０１４７】
比較の結果、Ｔｎ≧Ｔ１であれば、レジューム判定部１２４４は、判定基準情報１２７２を参照し、時刻条件「現在時刻≧基準時刻」と対応する判定結果「すぐ復帰する」を抽出する。抽出した判定結果「すぐに通知する」を、仮想マシン間通知管理部１２４２へ出力する。図９は、この場合における、現在時刻Ｔｎと基準時刻Ｔ１の前後関係の一例を示す図である。図９に示すように、現在時刻Ｔｎは、基準時刻Ｔ１からタイマー設定時刻Ｔ２までの間に位置する。この場合、タイマー設定時刻Ｔ２までに権利情報の変更通知処理が終わらないため、省電力状態から通常状態へ直ちに復帰する必要がある。【０１４８】
比較の結果、Ｔｎ＜Ｔ１であれば、レジューム判定部１２４４は、判定基準情報１２７２を参照し、時刻条件「現在時刻＜基準時刻」に対応する判定結果「復帰しない」を抽出する。次に、レジューム判定部１２４４は、抽出した判定結果「復帰しない」を仮想マシン間通知管理部へ出力する。続いて、レジューム判定部１２４４は、タイマー１２５４の設定時刻を基準時刻Ｔ１に変更する。図１０は、この場合における、現在時刻Ｔｎと基準時刻Ｔ１との前後関係を示している。図１０に示すように、現在時刻Ｔｎは、基準時刻Ｔ１より前に位置する。この場合、基準時刻Ｔ１までに、仮想マシン１２３１の復帰処理を開始すればよいので、直ちに復帰させる必要はない。【０１４９】
なお、実施の形態１では、イベント実行時間ｔ１はシステム設計時に決定される値としたが、これに限定するものではなく、システム起動時に設定ファイル等により外部から入力されてもよいし、システム稼働時に仮想マシンモニタ１２４０外部から入力されてもよい。また、イベント実行時間ｔ１はシステム全体で１つの値である必要はなく、イベント毎にアプリケーションソフトにより設定されてもよい。この場合、イベント実行時間は、通知タイミング情報と一緒に管理情報に含まれており、共有データ管理部１２４３により管理されるとしてもよい。なお、アプリケーションソフトによるイベント実行時間の設定は、アプリケーションソフトが動作中にその動作状態に応じてイベント実行時間を決定し設定してもよいし、アプリケーションソフトの起動時に設定ファイルを読み込み、その読み込んだ設定ファイルに基づいて設定してもよい。【０１５０】
また、省電力状態からの復帰判定においてイベント実行時間を考慮しない構成とすることも可能である。しかし、この場合は、変更前の権利情報が使い切られてから、新しい権利情報が反映されるまでに、イベント実行時間の分だけラグが発生し、コンテンツの再生が中断することとなる。【０１５１】
また、イベント実行時間ｔ１は、 仮想マシン１２３１を介して、権利情報の変更を再生アプリ１２１１へ通知するイベントの実行に要する時間としたが、通知に要する時間に加えて、再生アプリ１２１１が変更後の権利情報を参照する時間も含むとしても良い。【０１５２】
（４−２−５）割込発生予定時刻取得部１２４５
割込発生予定時刻取得部１２４５は、レジューム判定部１２４４から、割込発生予定時刻の取得を指示される。この指示を受けると、割込発生予定時刻取得部１２４５は、タイマー１２５４にアクセスして、タイマー１２５４に設定されている時刻（タイマー設定時刻）を取得し、取得したタイマー設定時刻をレジューム判定部１２４４へ出力する。【０１５３】
なお、実施の形態１では、仮想マシンが省電力状態から通常状態への復帰させるための割込発生予定時刻をタイマー１２５４から取得するとしたが、これに限定するものではない。コンテンツの再生にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を利用する場合、転送が終了したときの割り込みで省電力状態から復帰させることが考えられる。この場合には、ＤＭＡ転送の残りのデータサイズを取得し、そのサイズを時間に換算し、換算した時間から割込発生予定時刻を算出する方法を用いてもよい。【０１５４】
（４−２−６）待ちイベント記憶部１２４６
待ちイベント記憶部１２４６は、それぞれの仮想マシンごとにイベントキューを持ち、仮想マシン間通知管理部１２４２から待ちイベントとして登録されたイベントをそれぞれのイベントキューに保持している。
２．５  携帯端末の動作
以下に、携帯端末１２００の動作について、図面を用いて説明する。【０１５５】
（１）コンテンツ再生動作
図１１〜図１５は、携帯端末１２００によるコンテンツ再生の動作を示している。ここでは、仮想マシン、ＯＳ、１以上のアプリケーションからなるソフトウェア群を、仮想実行部と呼ぶ。具体的に、仮想マシン１２３０、ＲＴＯＳ１２２０及びＤＲＭアプリ１２１０を第１仮想実行部１５０１、仮想マシン１２３１、汎用ＯＳ１２２１及び再生アプリ１２１１を第２仮想実行部１５０２と呼ぶ。【０１５６】
以下に、図１１〜図１５を用いて、携帯端末１２００のコンテンツ再生の動作について、説明する。【０１５７】
先ず、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、それぞれ、ＤＲＭアプリ１２１０及び再生アプリ１２１１を起動する（ステップＳ２００１、ステップＳ２００３）。【０１５８】
ＤＲＭアプリ１２１０はＲＴＯＳ１２２０及び仮想マシン１２３０を介して仮想マシンモニタ１２４０の共有データ管理部１２４３へ領域確保依頼を出力する（ステップＳ２００２）。【０１５９】
再生アプリ１２１１も、汎用ＯＳ１２２１及び仮想マシン１２３１を介して、仮想マシンモニタ１２４０へ領域確保依頼を出力する（ステップＳ２００４）。【０１６０】
仮想マシンモニタ１２４０内の共有データ確保部１２６０は、第１仮想実行部１５０１及び第２仮想実行部１５０２から領域確保依頼を受け、メモリ１２５１上に共有データ領域１２５５を確保する（ステップＳ２００６）。【０１６１】
共有データ確保部１２６０は、共有データ領域１２５５に対応する領域識別子を生成し（ステップＳ２００７）、生成した領域識別子を第１仮想実行部１５０１及び第２仮想実行部１５０２へ通知する（ステップＳ２００８、ステップＳ２００９）。【０１６２】
第２仮想実行部１５０２内の再生アプリ１２１１は、仮想マシン１２３１及び汎用ＯＳ１２２１を介して領域識別子を取得し（ステップＳ２００８）、第１仮想実行部１５０１内のＤＲＭアプリ１２１０は、仮想マシン１２３０及びＲＴＯＳ１２２０を介して領域識別子を取得する（ステップＳ２００９）。【０１６３】
続いて、再生アプリ１２１１は、利用者によるコンテンツ再生を示すキー操作を受け付ける（ステップＳ２０１２）。利用者のキー操作により指定されたコンテンツを示すコンテンツ識別子及び仮想マシンモニタ１２４０から通知された領域識別子を含む権利情報取得依頼を、仮想マシンモニタ１２４０へ出力する（ステップＳ２０１３）。【０１６４】
仮想マシンモニタ１２４０は、第２仮想実行部１５０２内の再生アプリ１２１１から、権利情報取得依頼を受け取る（ステップＳ２０１３）。権利情報取得依頼を受けると、仮想マシンモニタ１２４０は、受け取った権利情報取得依頼を第１仮想実行部１５０１へ通知するタイミングの判定を行う（ステップＳ２０１６）。この通知判定については、後述する。このとき第１仮想実行部１５０１の仮想マシン１２３０は、通常状態であるので、ステップＳ２０１６では、すぐに通知すると判定される。仮想マシンモニタ１２４０は、第１仮想実行部１５０１へ権利情報取得依頼を出力する（ステップＳ２０１７）。【０１６５】
ＤＲＭアプリ１２１０は、仮想マシン１２３０及びＲＴＯＳ１２２０を介して権利情報取得依頼を受け取り（ステップＳ２０１７）、受け取った権利情報取得依頼に含まれるコンテンツ識別子に対応する権利情報を、権利管理サーバ１１００から取得する（ステップＳ２０１８）。続いて、ＤＲＭアプリ１２１０は、ＲＴＯＳ１２２０及び仮想マシン１２３０を介して、仮想マシンモニタ１２４０へ取得した権利情報及び領域識別子を含むデータ変更依頼を出力する（ステップＳ２０２１）。【０１６６】
仮想マシンモニタ１２４０の共有データ変更部１２６１は、第１仮想実行部１５０１からデータ変更依頼を受け取り（ステップＳ２０２１）、受け取ったデータ変更依頼に含まれる領域識別子の示す共有データ領域１２５５の保持している権利情報をデータ変更依頼に含まれる権利情報により変更する（ステップＳ２０２２）。【０１６７】
権利情報が変更されると、データ変更通知部１２６３は、データ変更通知依頼を、仮想マシン間通知管理部１２４２へ出力する（ステップＳ２０２３）。仮想マシン間通知管理部１２４２は、データ変更通知を行うタイミングの判定を開始する（ステップＳ２０２６）。このとき、第２仮想実行部１５０２の仮想マシン１２３１は、通常状態で動作しているので、すぐに通知すると判定され、仮想マシンモニタ１２４０は、データ変更通知を第２仮想実行部１５０２へデータ変更通知を出力する（ステップＳ２０２７）。【０１６８】
再生アプリ１２１１は、仮想マシン１２３１及び汎用ＯＳを介して、データ変更通知を受け取る（ステップＳ２０２７）。続いて、再生アプリ１２１１は、データ変更通知に含まれる領域識別子の示す共有データ領域１２５５に記憶されている権利情報を読み出し、読み出した権利情報を基に再生停止時刻及びタイマー設定時刻を決定する（ステップＳ２０３４）。タイマー１２５４を決定したタイマー設定時刻に設定する（ステップＳ２０３６）。続いて、再生アプリ１２１１は、汎用ＯＳ及び仮想マシン１２３１を介して、再生を指示されたコンテンツに対応する共有データ領域１２５５を示す領域識別子及び通知タイミング情報「Ｂ」を含む通知タイミング情報変更依頼を仮想マシンモニタ１２４０へ出力する（ステップＳ２０３７）。【０１６９】
次に、再生アプリ１２１１は、ハードウェア１２５０に含まれるデコーダ及び再生機構に、コンテンツ再生を指示する（ステップＳ２０４１）。【０１７０】
デコーダ及び再生機構は、再生アプリ１２１１からの指示に従って、コンテンツのデコード及び再生を開始する（ステップＳ２０４２）。【０１７１】
再生を指示した後、再生アプリ１２１１は、アイドル状態に遷移する（ステップＳ２０４４）。【０１７２】
再生アプリ１２１１がアイドル状態に遷移すると、仮想マシン１２３１は、省電力状態に遷移する（ステップＳ２０４６）。【０１７３】
仮想マシンモニタ１２４０内の共有データ管理部１２４３は、第２仮想実行部１５０２から通知タイミング情報変更依頼を受け取る（ステップＳ２０３７）。共有データ管理部１２４３は、受け取った通知タイミング情報変更依頼に含まれる領域識別子と対応する管理情報１４１０に含まれ、再生アプリ１２１１に対応する通知タイミング情報を変更する（ステップＳ２０３８）。【０１７４】
ステップＳ２０２１において、データ変更依頼を出力した後、所定時間経過すると、ＤＲＭアプリ１２１０は、アイドル状態に遷移する（ステップＳ２０３２）。【０１７５】
ＤＲＭアプリ１２１０がアイドル状態になると、仮想マシン１２３０は、省電力状態に遷移する（ステップＳ２０３２）。【０１７６】
第１仮想実行部１５０１及び第２仮想実行部１５０２双方が省電力状態になると、携帯端末１２００自体がアイドル状態に遷移し（ステップＳ２０４８）、何らかの割込が発生するまで待機する。この間も、デコーダ及び再生機構は、コンテンツ再生を継続している。【０１７７】
利用者が、権利情報の取得を指示するキー操作を行い、割込が発生すると（ステップＳ２０４９）、第１仮想実行部１５０１を構成する仮想マシン１２３０及びＤＲＭアプリ１２１０は、通常状態に復帰する（ステップＳ２０５１）。【０１７８】
ＤＲＭアプリ１２１０は、キー操作による指示に従って、権利管理サーバ１１００から再生中のコンテンツに係る権利情報を新たに取得する（ステップＳ２０５２）。続いて、共有データ領域１２５５を示す領域識別子及び取得した権利情報を含むデータ変更依頼を生成し、生成したデータ変更依頼をＲＴＯＳ１２２０及び仮想マシン１２３０を介して、仮想マシンモニタ１２４０へ出力する（ステップＳ２０５４）。【０１７９】
仮想マシンモニタ１２４０内の共有データ変更部１２６１は、第１仮想実行部１５０１からデータ変更依頼を受け取り（ステップＳ２０５４）、受け取ったデータ変更依頼に従って、共有データ領域１２５５の記憶している権利情報を変更する（ステップＳ２０５６）。【０１８０】
権利情報が変更されると、データ変更通知部１２６３は、仮想マシン間通知管理部１２４２へデータ変更通知依頼を出力する（ステップＳ２０５７）。【０１８１】
データ変更通知依頼を受け取ると、仮想マシン間通知管理部１２４２は、データ変更通知を出力するタイミングの判定を開始する（ステップＳ２０５８）。【０１８２】
仮想マシンモニタ１２４０は、ステップＳ２０５８による判定結果に応じて、第２仮想実行部へデータ変更通知を出力する（ステップＳ２０５９）。【０１８３】
タイマー１２５４による割込、仮想マシンモニタ１２４０による割込又は利用者のキー入力による割込が発生すると（ステップＳ２０６２）、第２仮想実行部１５０２の仮想マシン１２３１及び再生アプリ１２１１は、通常状態に復帰する（ステップＳ２０６３）。【０１８４】
第２仮想実行部は、通常状態に復帰した後、仮想マシンモニタ１２４０からデータ変更通知を受け取っておらず（ステップＳ２０６４のＮＯ）、ステップＳ２０３４において決定した再生停止時刻に達していなければ（ステップＳ２０６６のＮＯ）、データ変更通知を受け取るか、再生停止時刻に達するまで待機する。【０１８５】
データ変更通知を受け取る前に（ステップＳ２０６４のＮＯ）、再生停止時刻に達すると（ステップＳ２０６６）、再生アプリ１２１１は、デコーダにコンテンツ再生の停止を指示する（ステップＳ２０６７）。【０１８６】
この指示を受けて、デコーダ及び再生機構は、コンテンツ再生を停止する。【０１８７】
データ変更通知を受け取ると（ステップＳ２０６４のＹＥＳ）、再生アプリ１２１１は、共有データ領域１２５５に記憶されている変更後の権利情報を参照し、新たに再生停止時刻を決定する（ステップＳ２０６９）。このとき、コンテンツ再生中であれば（ステップＳ２０７１のＹＥＳ）、再生アプリ１２１１は、新たに決定した再生停止時刻まで、再生を継続させる。【０１８８】
コンテンツ再生が停止されていれば（ステップＳ２０７１のＮＯ）、再生アプリ１２１１は、デコーダに再生の再開を指示する（ステップＳ２０７２）。【０１８９】
なお、ステップＳ２０４９において、再生中のコンテンツの権利情報の追加取得の要求が発生しない場合には、第２仮想実行部１５０２のＳ２０６２以降の動作が異なる。この場合、ステップＳ２０６２において、タイマー割込が発生する。ステップＳ２０６６において、再生停止時刻に達すると（ステップＳ２０６６のＹＥＳ）、再生アプリ１２１１は、デコーダに再生停止を指示して（ステップＳ２０６７）、携帯端末１２００によるコンテンツ再生の動作は一旦終了する。【０１９０】
（２）仮想マシンモニタ１２４０による通知判定の動作
仮想マシン間通知管理部１２４２は、データ変更通知部１２６３からデータ変更通知依頼を受け取る。また、第１仮想実行部及び第２仮想実行部のいずれかから各種の指示や依頼の仲介を依頼される。この際、仮想マシンモニタ１２４０内では、依頼された内容を通知するタイミングの判定（通知判定と呼ぶ）を行い、判定されたタイミングにおいて、仮想マシン間通知管理部１２４２は、依頼された内容を通知する。【０１９１】
図１６及び図１７は、この通知判定における仮想マシンモニタの動作を示すフローチャートである。これは、図１２のステップＳ２０１６、ステップＳ２０２６及び図１５のステップＳ２０５８の詳細である。【０１９２】
以下、図１６及び図１７を用いて、通知判定における動作について説明する。ここで、仮想マシン間通知管理部１２４２の受け取る依頼には、通知先の仮想実行部に含まれるＯＳ及びアプリケーションを示すＯＳ識別子及びアプリ識別子、通知内容に関連する共有データ領域を示す領域識別子が含まれている。【０１９３】
仮想マシン間通知管理部１２４２は、受け取ったＯＳ識別子と対応する仮想マシンの動作状態を、仮想マシン管理部１２４１へ問い合わせる（ステップＳ２２０１）。【０１９４】
問合せの結果、省電力状態でなければ（ステップＳ２２０２のＮＯ）、仮想マシン間通知管理部１２４２は、直ちに依頼された通知内容を、通知先の仮想マシンへ出力する（ステップＳ２２０３）。【０１９５】
省電力状態であれば（ステップＳ２２０２のＹＥＳ）、仮想マシン間通知管理部１２４２は、受け取った領域識別子、ＯＳ識別子及びアプリ識別子を含む判定依頼を、レジューム判定部１２４４へ出力する（ステップＳ２２０６）。【０１９６】
レジューム判定部１２４４は、共有データ管理部１２４３内の通知タイミング情報取得部１２６４から、受け取った領域識別子、ＯＳ識別子及びアプリ識別子に該当する通知タイミング情報を取得する（ステップＳ２２０７）。【０１９７】
取得した通知タイミング情報が「Ａ：すぐに通知する必要がある」の場合（ステップＳ２２０８のＡ）、レジューム判定部１２４４は、判定結果「すぐに復帰」を出力する（ステップＳ２２１１）。【０１９８】
仮想マシン間通知管理部１２４２は、判定結果「すぐに復帰」を受け取り、仮想マシン管理部１２４１へ、通知先の仮想マシンの復帰を依頼する（ステップＳ２２１２）。【０１９９】
仮想マシン管理部１２４１は、割込を発生させて、通知先の仮想マシンを通常状態に復帰させる（ステップＳ２２１３）。【０２００】
通知先の仮想マシンが通常状態に復帰し次第、仮想マシン間通知管理部１２４２は、通知内容を通知先の仮想マシンへ出力する（ステップＳ２２１４）。【０２０１】
取得した通知タイミング情報が「Ｃ：省電力状態から復帰した際に通知すればよい」である場合（ステップＳ２２０８のＣ）、レジューム判定部１２４４は、判定結果「復帰しない」を出力する（ステップＳ２２２６）。【０２０２】
仮想マシン間通知管理部１２４２は、判定結果「復帰しない」を受け取り、依頼された通知内容を待ちイベント記憶部１２４６へ出力する（ステップＳ２２２７）。割込発生により通知先の仮想マシンが通常状態に復帰すると、仮想マシン間通知管理部１２４２は、待ちイベント記憶部１２４６の記憶していた通知内容を、通知先の仮想マシンへ出力する（ステップＳ２２２８）。【０２０３】
取得した通知タイミング情報が「Ｂ：決められた時間の範囲内で通知すればよい」である場合（ステップＳ２２０８のＢ）、レジューム判定部１２４４は、割込発生予定時刻取得部１２４５に、割込発生予定時刻の取得を指示する（ステップＳ２２１６）。【０２０４】
次に、割込発生予定時刻取得部１２４５は、タイマー１２５４から、タイマー設定時刻を取得し、取得したタイマー設定時刻を割込発生予定時刻としてレジューム判定部１２４４へ通知する（ステップＳ２２１７）。【０２０５】
レジューム判定部１２４４は、タイマー設定時刻からイベント実行時間ｔ１を差し引いた基準時刻Ｔ１を算出する（ステップＳ２２１８）。続いて、レジューム判定部１２４４は、基準時刻Ｔ１と、現在時刻Ｔｎとを比較する（ステップＳ２２２１）。【０２０６】
比較の結果、Ｔ１＞Ｔｎの場合（ステップＳ２２２１のＴ１＞Ｔ２）、レジューム判定部１２４４は、基準時刻Ｔ１にタイマー１２５４をセットしなおし（ステップＳ２２２２）、ステップＳ２２２６へ処理を移す。【０２０７】
比較の結果、Ｔ１≦Ｔｎの場合（ステップＳ２２２１のＴ１≦Ｔｎ）、レジューム判定部１２４４は、ステップＳ２２１１へ処理を移す。
２．６  まとめ
以上、説明してきたように実施の形態１では、仮想マシン間通知管理部１２４２で、省電力状態から通常状態へ復帰させるかどうかの判断結果に応じて、イベントを通知したり、しなかったりすることで、省電力状態から通常状態への状態遷移の回数を減らし、機器の省電力化を実現すると共に、イベントを適切なタイミングで通知できる仮想マシン間通知管理部１２４２を搭載した携帯端末１２００を実現することが可能となる。【０２０８】
なお、実施の形態１では、基準時刻Ｔ１＞現在時刻Ｔｎの場合、基準時刻Ｔ１をタイマー１２５４に設定しなおすとが、基準時刻Ｔ１以前の時刻であれば、いつでもよい。【０２０９】
また、コンテンツの再生中、つまり、第２仮想実行部１５０２が省電力状態の間に、第１仮想実行部１５０１は、利用者の操作に従って権利情報の取得し、仮想マシンモニタ１２４０は、再生アプリに対応する通知タイミング情報を基に決定したタイミングにおいて、権利情報の変更を第２仮想実行部１５０２へ通知するとした。しかし、第２仮想実行部１５０２が省電力状態の間に、権利情報の変更などの通知すべき事象が生じなかった場合にも、第２仮想実行部１５０２が通常状態に復帰したときに、仮想マシンモニタ１２４０は、通知すべき事象が生じなかった旨を通知するとしてもよい。【０２１０】
上記の場合において、通知すべき事象が生じなかった旨を通知するためのイベント実行時間ｔ１’とし、イベント実行時間ｔ１は、仮想マシン１２３１を介して、権利情報の変更の要する時間に加えて、再生アプリ１２１１が変更後の権利情報を参照する時間も含むとすると、ｔ１’＜Ｔ１となる。【０２１１】
従って、データ変更が起こった場合の基準時刻Ｔ１、データ変更が生じなかった場合の基準時刻Ｔ１’は、Ｔ１＜Ｔ２を満たす。【０２１２】
また、上記の実施の形態１では、第１仮想実行部１５０１からデータ変更依頼を受けて、共有データ変更部１２６１は、データ変更通知部１２６３へ、変更通知依頼を出力し、データ変更通知部１２６３は、仮想マシン間通知管理部１２４２へデータ変更通知依頼を出力する。しかし、データ変更通知部１２６３が、共有データ領域１２５５を監視しており、記憶されている内容が変更されているかどうかをチェックし、変更されている場合にデータ変更通知依頼を仮想マシン間通知管理部１２４２へ出力するとしてもよい。【０２１３】
また、実施の形態１において、権利情報には、コンテンツの再生に関する制限情報が含まれているとしたが、コンテンツの一部又は全部が含まれているとしてもよい。この場合、既に取得済みのコンテンツを再生している間に、ＤＲＭアプリは、再生中のコンテンツの続きを含んだ権利情報を取得する。【０２１４】
また、上記の実施の形態でレジューム判定部１２４４は、現在時刻と基準時刻とを比較することで判定結果を導いているが、この方法に限定されるものではない。例えば、現在時刻からタイマー設定時刻までの時間（省電力継続予定時間ｔ３）を算出し、算出した省電力継続予定時間ｔ３とイベント実行時間ｔ２とを比較してもよい。この場合、ｔ３≦ｔ２であれば、レジューム判定部１２４４は、判定結果「すぐ復帰する」を出力する。ｔ３＞ｔ２であれば、レジューム判定部１２４４は、判定結果「復帰しない」を出力し、タイマー１２５４を基準時刻Ｔ１若しくは基準時刻以前の時刻Ｔ１−αに設定しなおす。
３．  実施の形態２
本発明実施の形態２では、本発明をＴＣＧに対応した携帯端末に応用した例を説明する。
３．１  ＴＣＧについて
ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）は、プラットフォームの信頼性を保証することにより、安全なコンピューティング環境を実現しようと考えている業界団体である。【０２１５】
ＴＣＧは、Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ（以下、ＴＰＭ）と呼ばれる耐タンパー化されたモジュールを用いて、正当性の測定（Ｉｎｔｅｇｒｉｔｙ  Ｍｅａｓｕｒｅｍｅｎｔ）と呼ばれる機能を実現する。この機能は、ソフトウェアのハッシュ値（以下、測定結果、測定値とも呼ぶ）を計算（測定）し、計算したハッシュ値をＴＰＭ内のＰｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ（以下、ＰＣＲ）に安全に保存する機能である。ＴＰＭ内部では、ＰＣＲへハッシュ値を保存するときに、その時のＰＣＲの値と新しく保存するハッシュ値とを結合したデータに対してハッシュ値を計算し、その計算結果を新しいＰＣＲの値として保存する（以下、この処理を「測定結果をＰＣＲに反映する」とも呼ぶ）。この機能を利用して、ＴＰＭからＢＩＯＳ、ＯＳとソフトウェアを連鎖的にチェックし、それぞれのハッシュ値をＰＣＲに保存することで、正しいソフトウェアが正しい順番で起動したかを確認することができ、信頼できるソフトウェア実行環境を構築できる。【０２１６】
さらに、ＴＰＭは、ＢＩＯＳを測定したときに、測定結果であるハッシュ値が所定の値であるかを調べることで、ＢＩＯＳが改ざんされていないかを検証し、改ざんされていた場合に起動を停止する。同様にＢＩＯＳがＯＳの測定と検証を行い、ＯＳが改ざんされていた場合に起動を停止するというように、測定（ハッシュ値の計算）と検証を行うことで、不正なソフトウェが動作できない安全なソフトウェア実行環境も構築できる。【０２１７】
また、ソフトウェアの測定と検証を行う機能は、プログラム起動時だけでなく、プログラムの実行中に定期的に実行されたり、ソフトウェア中で鍵などの保護が必要なコードやデータを扱う処理を行う前に実行される。こうすることで、プログラムの実行中にデバッガなどを用いてプログラムが改ざんされたことを検出することが出来る、ソフトウェア実行環境を構築できる。【０２１８】
ＴＰＭは、上記機能の他に、ＴＰＭ外部から利用できる機能としての暗復号機能やハッシュ計算機能を持ち、ＴＰＭを搭載した機器で暗号化されたデータの復号や、ハッシュを用いたデータの改ざん検出などに利用できる。
３．２  携帯端末１２００の構成
図１８は、本発明実施の形態２における携帯端末１２００の構成図である。図１８において、図３と同じ構成要素については同じ符号を用い、説明を省略する。【０２１９】
図１８において、携帯端末１２００は、図３の構成に加えて、ＴＰＭ−ＯＳ１２２２、ＤＲＭアプリ１２１０、通信アプリ１２１４、ＴＰＭモジュール１２１２、１２１３、ＴＰＭ１２５６から構成される。【０２２０】
ＴＰＭ−ＯＳ１２２２は仮想マシン１２３２上で動作するＯＳであり、ＴＰＭモジュール１２１２、１２１３は、ＴＰＭ−ＯＳ１２２２上で動作するアプリケーションソフトである。【０２２１】
ＴＰＭ１２５６は、ハードウェアモジュールであり、携帯端末１２００起動時のブートシーケンスにおいて、一番初めに実行するプログラムが格納されている。ＴＰＭモジュール１２１２、１２１３は、ＴＰＭの機能をソフトウェアで実現するアプリケーションソフトであり、それぞれ異なる識別子を持つことで、異なるＴＰＭとして動作する。ＴＰＭ−ＯＳ１２２２上で複数のＴＰＭモジュールを動作させることで、端末製造メーカー、通信キャリア、著作権管理会社等、それぞれの会社毎に異なるＴＰＭを利用することが出来る。【０２２２】
上記のような構成にすることで、例えば、ＴＰＭ１２５６を端末製造メーカーが、ＴＰＭモジュール１２１２を通信キャリアが、ＴＰＭモジュール１２１３を著作権管理会社が利用するなどの複数の事業者がそれぞれ自分のＴＰＭを利用する構成が可能になる。この時、ＴＰＭ１２５６は、仮想マシンモニタ１２４０やＴＰＭ−ＯＳ１２２２などの端末を動作させるために必要なソフトウェアの検証や測定などに利用する。ＴＰＭモジュール１２１２は、仮想マシン１２３０上で動作するＲＴＯＳ１２２０や通信アプリ１２１４などの通信を行うために必要なソフトウェアの検証や測定などに利用する。ＴＰＭモジュール１２１３は、ＤＲＭアプリ１２１０などのコンテンツの著作権処理を行うソフトウェアの検証や測定などに利用する。【０２２３】
なお、全ＴＰＭ（ＴＰＭモジュールを含む）の信頼性を確保するため、本実施の形態では、以下のような処理を行う。さらに、ＴＰＭ１２５６がＴＰＭモジュール１２１２の検証と測定を行い、ＴＰＭモジュール１２１２がＴＰＭモジュール１２１３の検証と測定を行う。こうすることで、ＴＰＭ１２５６からの信頼の連鎖をＴＰＭモジュール１２１３までつなぎ、携帯端末１２００内のセキュリティを確保しつつ、複数のＴＰＭを利用することが出来る。【０２２４】
なお、本発明実施の形態１では、ＴＰＭモジュール１２１２、１２１３はＴＰＭの機能をソフトウェアで実現するアプリケーションソフトであるとしたが、これに限定するものではなく、ＴＰＭの機能の一部、例えば暗復号機能やハッシュ計算機能などのＴＰＭ間で共有できる機能はハードウェアにより実現してもよい。さらに、ＴＰＭ１２５６が複数のコンテキストを切り替える機構を搭載し、ＴＰＭモジュール１２１２、１２１３は、ＴＰＭを利用するアプリケーションソフトへのインタフェースを提供するだけで、実際の処理はＴＰＭ１２５６が行う構成にしてもよい。【０２２５】
ＤＲＭアプリ１２１０は、実施の形態１のＤＲＭアプリ１２１０と同等の機能を持つアプリケーションソフトである。ただし、本実施の形態では、ＴＰＭモジュール１２１３（著作権管理会社用のＴＰＭモジュール）から起動され、動作を開始する。また、ＤＲＭアプリ１２１０は、動作中にデータの暗復号処理等が必要になったときには、ＴＰＭモジュール１２１３への処理イベントを生成し、仮想マシンモニタ１２４０の仮想マシン間通知管理部１２４２を通して、ＴＰＭモジュール１２１３に処理依頼を行う。【０２２６】
通信アプリ１２１４は、携帯端末１２００による外部との通信の処理を司るアプリケーションソフトウェアである。通信アプリ１２１４は、ＲＴＯＳ１２２０により起動され、ＴＰＭモジュール１２１２（通信キャリア用のＴＰＭモジュール）によって検証と測定が行われる。通信アプリ１２１４は、動作中にデータの暗復号処理等が必要になったときには、ＴＰＭモジュール１２１２への処理イベントを生成し、仮想マシンモニタ１２４０の仮想マシン間通知管理部１２４２を通して、ＴＰＭモジュール１２１２に処理依頼を行う。【０２２７】
ＴＰＭ−ＯＳ１２２２は、ＴＰＭモジュール１２１２およびＴＰＭモジュール１２１３に実行環境を提供するＯＳである。ＴＰＭ−ＯＳ１２２２は、ＴＰＭモジュール１２１２や１２１３が動作していないときには、仮想マシン１２３２を省電力状態へ移行する。また、ＤＲＭアプリ１２１０や通信アプリ１２１４からＴＰＭモジュール１２１２や１２１３への処理要求が発生したとき等、仮想マシン１２３２が動作する必要があるときに省電力状態から復帰する。【０２２８】
続いて、実施の形態２に処理イベントの詳細を説明する。図１９は、実施の形態２における処理イベントのデータ構造を示す図である。なお、このデータ構造は、ＴＰＭモジュール１２１２への処理も、ＴＰＭモジュール１２１３への処理も同じである。【０２２９】
図１９において、処理イベント情報１４２０のデータ構造は、処理を依頼するアプリケーションソフトが動作しているＯＳを識別するための依頼先ＯＳ識別子１４２１と、処理を依頼するアプリケーションソフトを識別するための依頼先アプリケーションソフト識別子１４２２と、依頼する処理を識別するための処理識別子１４２３と、処理に必要なデータ１４２４から構成される。依頼先ＯＳ識別子１４２１は、仮想マシンモニタ１２４０上で動作しているＯＳを識別するためのＩＤ番号や名前のような識別子であり、例えば、「１」や「ＴＰＭ−ＯＳ」などである。依頼先アプリケーションソフト識別子１４２２は、ＯＳ上で動作しているアプリケーションソフトを識別するためのＩＤ番号や名前のような識別子であり、例えば、「１２１２」や「ＴＰＭモジュール１」などである。【０２３０】
ＤＲＭアプリ１２１０や通信アプリ１２１４は、ＴＰＭモジュール１２１２や１２１３へ処理を依頼するときに、処理イベント情報１４２０を生成し、仮想マシンモニタ１２４０の仮想マシン間通知管理部１２４２へイベントの通知を依頼する。処理イベント情報１４２０の生成に必要なＴＰＭモジュール１２１２、１２１３に対する依頼先ＯＳ識別子１４２１や依頼先アプリケーションソフト識別子１４２２は、ＤＲＭアプリ１２１０や通信アプリ１２１４が起動する時に設定ファイルから取得する。処理イベント情報１４２０の通知依頼を受けた仮想マシン間通知管理部１２４２は、処理イベント情報１４２０に示されている依頼先ＯＳ識別子１４２１や依頼先アプリケーションソフト識別子１４２２に基づいてイベントの通知を行う。【０２３１】
ＴＰＭ−ＯＳ１２２２は、ＴＰＭモジュール１２１２、１２１３が動作していないときには、仮想マシン１２３２を省電力状態へ移行する。仮想マシン１２３２が省電力状態の時に、ＤＲＭアプリ１２１０や通信アプリ１２１４からＴＰＭモジュール１２１２や１２１３に対して処理依頼が来ると、実施の形態１と同様に、仮想マシン間通知管理部１２４２がレジューム判定部１２４４へ仮想マシン１２３２を省電力状態から通常状態へ復帰させるかどうかの判定を依頼する。レジューム判定部１２４４は、省電力状態から通常状態へ復帰させると判定した場合には、仮想マシン間通知管理部１２４２は、仮想マシン管理部１２４１へ仮想マシン１２３２を省電力状態から通常状態へ復帰させるよう依頼する。この依頼を受けた仮想マシン間通知管理部１２４２は、仮想マシン１２３２が通常状態へ復帰した時に処理イベント情報１４２０を通知する。一方、レジューム判定部１２４４が省電力状態から通常状態へ復帰させないと判定した場合には、仮想マシン間通知管理部１２４２は待ちイベント記憶部１２４６へ処理イベント情報１４２０を記憶し、別の要因で通知先の仮想マシン１２３２が省電力状態から通常状態へ復帰したときに処理イベント情報１４２０を通知する。
３．３  携帯端末１２００のブートシーケンス
図２０〜図２５は、本発明実施の形態２における携帯端末１２００のブートシーケンスである。電源投入時からのブート処理を順に説明する。【０２３２】
携帯端末１２００は、電源が投入されるとＴＰＭ１２５６内のブートプログラムが実行される（Ｓ２１００）。ブートプログラムは、自身の測定を行い、測定結果をＴＰＭ１２５６のＰＣＲに反映する（Ｓ２１０１）。ブートプログラムは、仮想マシンモニタ１２４０の測定を行い、仮想マシンモニタ１２４０が改ざんされていないかチェックする（Ｓ２１０２）。改ざんされていた場合は処理を停止し（Ｓ２１０３）、改ざんされていない場合には測定結果をＴＰＭ１２５６のＰＣＲに反映し仮想マシンモニタ１２４０を実行する（Ｓ２１０４）。仮想マシンモニタ１２４０は、ＴＰＭ１２５６を利用して仮想マシン１２３２の測定を行い、仮想マシン１２３２が改ざんされていないかチェックする（Ｓ２１０５）。改ざんされていた場合は処理を停止し（Ｓ２１０６）、改ざんされていない場合には測定結果をＴＰＭ１２５６のＰＣＲに反映し仮想マシン１２３２を起動する（Ｓ２１０７）。仮想マシン１２３２は、仮想化されたＢＩＯＳを実行し、ＴＰＭ１２５６を利用してＴＰＭ−ＯＳ１２２２の測定を行い、ＴＰＭ−ＯＳ１２２２が改ざんされていないかチェックする（Ｓ２１０８）。改ざんされていた場合は処理を停止し（Ｓ２１０９）、改ざんされていない場合には測定結果をＴＰＭ１２５６のＰＣＲに反映しＴＰＭ−ＯＳ１２２２を実行する（Ｓ２１１０）。ＴＰＭ−ＯＳ１２２２は、起動処理が終了しＴＰＭモジュールが動作できる状態になると、その旨を仮想マシンモニタ１２４０へ通知する（Ｓ２１１１）。この状態で、仮想マシン１２３０を動作できる状態が整う。【０２３３】
次に仮想マシンモニタ１２４０は、ＴＰＭ１２５６を利用して仮想マシン１２３０の測定を行い、仮想マシン１２３０が改ざんされていないかチェックする（Ｓ２１１２）。改ざんされていた場合には処理を停止し（Ｓ２１１３）、改ざんされていない場合には測定結果をＴＰＭ１２５６のＰＣＲに反映し仮想マシン１２３０を起動する（Ｓ２１１４）。仮想マシン１２３０は、仮想化されたＢＩＯＳを実行し、仮想マシン１２３０上でＯＳが動作できる状態になると、その旨を仮想マシンモニタ１２４０へ通知する（Ｓ２１１５）。この状態で、ＲＴＯＳ１２２０を動作できる状態が整う。携帯端末１２００を製造する端末製造メーカとしては、この状態までのセキュリティを保証すればよい。【０２３４】
続いて、通信キャリアが、通信に利用するＲＴＯＳ１２２０および通信アプリ１２１４などのアプリケーションソフトのセキュリティを確保するための処理の説明に移る。上述したように、ＲＴＯＳ１２２０および通信アプリ１２１４は、ＴＰＭ１２５６とは別の通信キャリア用のＴＰＭモジュール１２１２を利用して起動する。【０２３５】
セキュリティを確保するためには、まず、通信キャリア用のＴＰＭモジュール１２１２を起動させる必要がある。したがって、仮想マシンモニタ１２４０は、ＴＰＭ−ＯＳ１２２２にＴＰＭモジュール１２１２の実行を依頼する（Ｓ２１１６）。仮想マシンモニタ１２４０は、この依頼時に、仮想マシンモニタ１２４０はＲＴＯＳ１２２０の実行ファイルの保存先とロード先を通知し、また、ＴＰＭモジュール１２１２の測定にＴＰＭ１２５６を利用するようにＴＰＭ−ＯＳ１２２２へ通知する。ここで、ＴＰＭ１２５６はすでに改ざんがないことが確認されているので、ＴＰＭ１２５６を用いることで信頼できる環境下でＴＰＭモジュール１２１２の測定を行うことができる。ＴＰＭ−ＯＳ１２２２は、ＴＰＭ１２５６を利用してＴＰＭモジュール１２１２の測定を行い、ＴＰＭモジュール１２１２が改ざんされていないかチェックする（Ｓ２１１７）。改ざんされていた場合には処理を停止し、仮想マシンモニタ１２４０へ実行失敗を通知する（Ｓ２１１８）。改ざんされていない場合には、測定結果をＴＰＭ１２５６のＰＣＲに反映し、仮想マシンモニタ１２４０から通知されたＲＴＯＳ１２２０の実行ファイルの保存先とロード先を引数にしてＴＰＭモジュール１２１２を実行する（Ｓ２１１９）。ＴＰＭモジュール１２１２は、ＴＰＭモジュール１２１２自身の測定を行いＴＰＭモジュール１２１２内のＰＣＲに反映する（Ｓ２１２０）。ＴＰＭモジュール１２１２は、引数として与えられたＲＴＯＳ１２２０の実行ファイルの保存先から実行ファイルを読み込み、ロード先へロードする（Ｓ２１２１）。ＴＰＭモジュール１２１２は、ＴＰＭモジュール１２１２自身を利用してＲＴＯＳ１２２０の測定を行い、ＲＴＯＳ１２２０が改ざんされていないかチェックする（Ｓ２１２２）。改ざんされていた場合は処理を停止し、ＴＰＭ−ＯＳ１２２２を通して仮想マシンモニタ１２４０へ実行失敗を通知する（Ｓ２１２３）。改ざんされていない場合には、測定結果をＴＰＭモジュール１２１２のＰＣＲに反映し、ＲＴＯＳ１２２０を実行する（Ｓ２１２４）。ＲＴＯＳ１２２０は、ＴＰＭモジュール１２１２を利用して通信アプリ１２１４の測定を行い、通信アプリ１２１４が改ざんされていないかチェックする（Ｓ２１２５）。改ざんされていた場合には処理を停止し、ＲＴＯＳ１２２０へ実行失敗を通知する（Ｓ２１２６）。改ざんされていない場合には、測定結果をＴＰＭモジュール１２１２のＰＣＲに反映し、通信アプリ１２１４を実行する（Ｓ２１２７）。【０２３６】
上記のようにすると、ＲＴＯＳ１２２０および通信アプリ１２１４などのアプリケーションソフトを、通信キャリア用のＴＰＭで改ざんのないことを確認した上で、通信キャリアが提供する通信サービスを利用できる。【０２３７】
続いて、著作権管理会社が、ＤＲＭアプリ１２１０などのアプリケーションソフトのセキュリティを確保したいするための動作の説明に移る。上述したように、ＤＲＭアプリ１２１０はＴＰＭ１２５６やＴＰＭモジュール１２１２とは別の著作権管理会社用のＴＰＭモジュール１２１３を利用して起動する。【０２３８】
セキュリティの確保を実現するために、ＲＴＯＳ１２２０は、ＴＰＭモジュール１２１２にＴＰＭモジュール１２１３の実行を依頼する（Ｓ２１２８）。ここで、ＴＰＭモジュール１２１２はすでに改ざんがないことが確認されているので、ＴＰＭモジュール１２１３の実行および改ざんの有無の確認を安全な環境下で行うことができる。ＲＴＯＳ１２２０は、依頼時に、ＲＴＯＳ１２２０はＤＲＭアプリ１２１０の実行ファイルの保存先とロード先を通知する。ＴＰＭモジュール１２１２は、起動時に読み込む設定ファイルに記されている場所に保存されている、ＴＰＭモジュール１２１３の測定を行い、ＴＰＭモジュール１２１３が改ざんされていないかチェックする（Ｓ２１２９）。改ざんされていた場合には処理を停止し、ＲＴＯＳ１２２０へ実行失敗を通知する（Ｓ２１３０）。改ざんされていない場合には、測定結果をＴＰＭモジュール１２１２のＰＣＲに反映し、ＲＴＯＳ１２２０から通知されたＤＲＭアプリ１２１０の実行ファイルの保存先とロード先を引数にしてＴＰＭモジュール１２１３を実行する（Ｓ２１３１）。ＴＰＭモジュール１２１３は、ＴＰＭモジュール１２１３自身の測定を行い、測定結果をＴＰＭモジュール１２１３内のＰＣＲに反映する（Ｓ２１３２）。ＴＰＭモジュール１２１３は、引数として与えられたＤＲＭアプリ１２１０の実行ファイルの保存先から実行ファイルを読み込み、ロード先へロードする（Ｓ２１３３）。ＴＰＭモジュール１２１３は、ＤＲＭアプリ１２１０の測定を行い、ＤＲＭアプリ１２１０が改ざんされていないかチェックする（Ｓ２１３４）。改ざんされていた場合には処理を停止し、ＲＴＯＳ１２２０へ実行失敗を通知する（Ｓ２１３５）。改ざんされていない場合には、測定結果をＴＰＭモジュール１２１３のＰＣＲに反映し、ＤＲＭアプリ１２１０を実行する（Ｓ２１３６）。【０２３９】
上記のようにすると、ＤＲＭアプリ１２１０などのアプリケーションソフトを、著作権管理会社用のＴＰＭで改ざんのないことを確認した上で、著作権管理会社が提供する権利購入サービスを利用できる。
３．４  省電力状態からの復帰判定方法
続いて、仮想マシン１２３２が省電力状態の時に、その仮想マシン１２３２を復帰させるかどうかを判定する処理についての説明を行う。【０２４０】
レジューム判定部１２４４は、仮想マシン１２３２が省電力状態の時に処理イベント情報１４２０が発生すると、仮想マシン１２３２を省電力状態から復帰させて、処理イベント情報１４２０を通知するか否かの判定を行う。【０２４１】
レジューム判定部１２４４は、判定を、処理イベント情報１４２０の処理識別子１４２３に基づいて行う。まず、レジューム判定部１２４４は、システム起動時に、通知タイミング管理情報１４３０を設定ファイルから読み込む。通知タイミング管理情報は、処理イベントが発生した時に省電力状態から復帰して仮想マシンに通知すべきか否かが処理識別子１４２３ごとに記述された情報である。【０２４２】
図２６は通知タイミング管理情報１４３０のデータ構造を示す図である。通知タイミング管理情報には、すぐに通知する必要があることを示す情報と省電力状態から復帰したときに通知すればよいことを示す情報の２種類の通知タイミングのいずれかが、処理識別子１４２３ごとに記述されている。それぞれの通知タイミング情報に対する復帰判定方法を下記に示す。【０２４３】
通知タイミング情報が、処理イベントをすぐに通知する必要があることを示す場合の処理イベント情報１４２０の例としては、仮想マシンモニタ１２４０がＲＴＯＳ１２２０の実行をＴＰＭ−ＯＳ１２２２に依頼する処理や、実行中のプログラムのハッシュ値計算を依頼する処理などがある。これらの処理イベントは、携帯端末１２００内のセキュリティを確保するための処理イベントであり、セキュリティ的に重要な処理である。そのため、不正行為を防止するために、通知があってからできるだけ迅速に処理を行う必要がある。本実施の形態では、このような、セキュリティ的に重要な処理イベントの通知タイミングを、すぐに通知する必要がある場合とし、レジューム判定部１２４４は、処理イベントの処理識別子１４２３と設定ファイルとに基づいて、通知対象の仮想マシン１２３２を省電力状態から通常状態へ復帰させると判定する。【０２４４】
省電力状態から復帰したときに通知すればよい場合の処理イベント情報１４２０の例としては、ＤＲＭアプリ１２１０がＴＰＭモジュール１２１３の暗復号機能を利用して権利情報などのデータを復号する処理など、アプリケーションがＴＰＭの機能を利用するときの処理イベントがある。この場合、レジューム判定部１２４４は、処理識別子１４２３と設定ファイルとに基づいて、通知対象の仮想マシン１２３２を省電力状態から通常状態へ復帰させないと判定する。そして、これらの処理は、実施の形態１と同様に次に別の要因で仮想マシン１２３２が復帰した時に仮想マシン１２３２に通知される。【０２４５】
なお、本発明実施の形態２では、処理識別子１４２３によって識別される処理イベント情報１４２０が、携帯端末１２００におけるセキュリティの重要度に応じて通知タイミングを分類していた。具体的には、すぐに通知すればよい場合と省電力状態から復帰したときに通知すればよい場合とに分けていた。しかし、これに限定するものではない。例えば、携帯端末１２００内のソフトウェアを、ＴＰＭ１２５６により測定されるソフトウェア群、ＴＰＭモジュール１２１２により測定されるソフトウェア群、ＴＰＭモジュール１２１３により測定されるソフトウェア群と３つのソフトウェア群に分ける。そして、ＴＰＭモジュール１２１２により測定されるソフトウェア群から、ＴＰＭモジュール１２１３により測定されるソフトウェア群への処理イベントの通知タイミングをすぐに通知するとし、逆向きの処理イベントの通知タイミングを省電力状態から復帰したときに通知するというようにしてもよい。この場合、ＴＰＭ１２５６とＴＰＭモジュール１２１２、１２１３との関係によって構成されるソフトウェア群間の処理イベントの通知方向によって通知タイミングを分けている。
４．その他の変形例
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。【０２４６】
（１）本発明実施の形態１及び２では、携帯端末を例として説明したが、これに限られるものではない。テレビやパーソナルコンピュータ、光ディスクのプレイヤーなど他のデータ処理装置であってもよい。【０２４７】
（２）本発明実施の形態１では、アプリケーションソフトウェアが通知タイミングを指定し、本発明実施の形態２では、処理イベント毎に通知タイミングが指定されるとしていたが、これに限られるものではない。例えば、実施の形態１と２とで通知タイミングの指定方法を逆にしてもよいし、ユーザが通知タイミングをＩ／Ｏデバイスを介して指定できるなどとしてもよい。【０２４８】
（３）本発明実施の形態１では、２つのアプリケーションソフトがコンテンツの権利情報を共有し、権利情報が更新されたときに、更新前の権利情報の示す再生権利がなくなる直前まで、権利情報の更新を通知しないとしたが、これに限定するものではなく、２つのアプリケーションソフトがコンテンツの再生などの処理の継続に必要なデータを共有し、一方のアプリケーションソフトがデータを参照して処理を継続するかを判定し、もう一方のアプリケーションソフトがデータを変更するシステムであればよい。例えば、コンテンツ中に早送りが可能な部分と、不可能な部分がある場合、コンテンツの早送りをする機能を有する装置において、コンテンツの早送りの継続の可否を判断する情報を２つのアプリケーションソフトで共有するとしても良い。この時、２つのアプリケーションソフトは、コンテンツの早送りを制御するアプリケーションソフトと、コンテンツに付加された情報から早送り可能かどうかを判断する情報を読み込み、共有データを変更するアプリケーションソフトであってもよい。また、テレビ番組の予約録画を行う装置で、ネットワーク経由でテレビ番組の放映時間を取得できる場合、放映時間を取得する放映時間取得アプリが、放映時間の変更を、予約された時間に番組を録画する予約録画アプリに通知する時に、予約した時間の直前まで放映時間の変更を通知しないとしても良い。また、ニュースなどの情報をネットワーク上のｗｗｗサイトから定期的に取得し、取得した情報を表示するようなアプリケーションソフトへの応用も考えられる。この場合、情報を取得するｗｗｗサイトのアドレスを、アドレス登録アプリと情報表示アプリで共有することが考えられる。この場合、アドレス登録アプリがｗｗｗサイトのアドレスを更新しても、情報表示アプリがｗｗｗサイトから表示用の情報を取得する直前まで、ｗｗｗサイトのアドレスの変更を情報表示アプリに通知しないようにしても良い。この様な構成にすることで、予約録画アプリや情報表示アプリが動作している仮想マシンが省電力状態になる場合に、省電力化を考慮したイベントの通知を行うことが出来る。【０２４９】
（４）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。【０２５０】
（５）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。なお、各装置は、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどの全てを含むコンピュータシステムには限らず、これらの一部から構成されているコンピュータシステムであってもよい。【０２５１】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。【０２５２】
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。【０２５３】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。【０２５４】
（６）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパー性を有するとしてもよい。【０２５５】
（７）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。【０２５６】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。【０２５７】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。【０２５８】
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。【０２５９】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。【０２６０】
（８）また、本発明は、複数の仮想マシンを管理するデータ処理装置であって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理装置は、前記複数の仮想マシンを管理する仮想マシン管理部と、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理部と、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理部と、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得部と、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定部と、前記レジューム判定部が、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理部で通知するイベントを記憶する待ちイベント記憶部とを備えるとしてもよい。【０２６１】
（９）上記の変形例（８）において、前記イベントの通知タイミング情報は、前記１以上の仮想マシンが省電力状態であっても通知を行うことを示す情報と、あらかじめ決められた時間間隔の範囲内で通知を行うことを示す情報と、前記１以上の仮想マシンが省電力状態から通常状態へ復帰したときに通知を行うことを示す情報とがあり、前記レジューム判定部は、さらに、前記イベントの通知タイミング情報が、あらかじめ決められた時間間隔の範囲内で通知を行うことを示す場合に、前記割込発生時間取得部から割込発生時間を取得し、前記割込発生時間の値に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるか否かを判定することを特徴とする。【０２６２】
（１０）上記の変形例（８）または（９）において、前記レジューム判定部は、さらに、前記割込発生時間が前記通常状態への復帰するための処理時間より長い場合に、前記１以上の仮想マシンそれぞれへ通知するイベントを前記待ちイベント記憶部へ記憶し、前記１以上の仮想マシンそれぞれは省電力状態から通常状態へ復帰させないと判定するとしてもよい。【０２６３】
（１１）上記の変形例（８）〜（１０）のいずれかにおいて、前記レジューム判定部は、さらに、前記割込発生時間が前記通常状態への復帰するための処理時間より短い場合に、前記１以上の仮想マシンそれぞれは省電力状態から通常状態へ復帰させると判定するとしてもよい。【０２６４】
（１２）また、上記の変形例（８）〜（１１）において、前記レジューム判定部は、さらに、前記通知タイミング情報が、前記１以上の仮想マシンが省電力状態であっても通知を行うことを示す場合に、前記１以上の仮想マシンそれぞれを省電力状態から通常状態へ復帰させると判定するとしてもよい。【０２６５】
（１３）また、上記の変形例（８）〜（１２）において、前記レジューム判定部は、さらに、前記通知タイミング情報が、前記１以上の仮想マシンが省電力状態から通常状態へ復帰したときに通知を行うことを示す場合に、前記１以上の仮想マシンそれぞれを省電力状態から通常状態へ復帰させないと判定するとしてもよい。【０２６６】
（１４）また、上記の変形例（８）〜（１３）の前記データ処理装置は、さらに、前記複数の仮想マシンそれぞれで動作する複数のプログラムを備え、前記複数の仮想マシンそれぞれは、仮想マシンを識別するための仮想マシン識別子を備え、前記複数のプログラムは、前記共有データ管理部が管理する共有データを利用し、前記複数のプログラムそれぞれは、プログラムを識別するためのプログラム識別子を備え、前記共有データ管理部は、前記共有データを管理する管理情報を前記共有データ毎に備え、前記管理情報は、前記共有データを利用するプログラムのプログラム識別子と、前記プログラムが動作する仮想マシンの仮想マシン識別子と、前記通知タイミング情報とから構成されるとしてもよい。【０２６７】
（１５）また、上記の変形例（８）〜（１４）の前記データ処理装置は、さらに、あらかじめ設定された時間に割込を発生させるタイマーを備え、前記複数の仮想マシンは前記通常状態復帰用割り込みとして前記タイマーに割り込みを発生させる時間を設定し、前記割込発生時間取得部は、さらに、前記通常状態復帰用割り込みが発生するまでの時間を前記タイマーから取得するとしてもよい。【０２６８】
（１６）また、本発明は、上記の変形例（８）に記載のデータ処理装置と権利管理サーバと記憶装置からなる権利配信システムであって、前記記憶装置は、暗号化されたコンテンツ情報を格納し、前記権利管理サーバは、前記データ処理装置から前記コンテンツ情報の使用権利の取得要求に対して、前記コンテンツ情報の使用権利に関する権利情報を前記データ処理装置へ送信し、前記データ処理装置は、前記複数の仮想マシンと、前記複数の仮想マシンに含まれる第１の仮想マシン上で動作する第１のプログラムと、前記複数の仮想マシンに含まれる第２の仮想マシン上で動作する第２のプログラムとを備え、前記第１のプログラムは前記権利管理サーバから前記権利情報を受信し、前記第２のプログラムは前記権利情報に含まれる前記復号鍵を使用して暗号化された前記コンテンツ情報を復号化し、前記第１と第２のプログラムは、前記権利情報を前記共有データとして保持するとしてもよい。【０２６９】
（１７）また、本発明は、複数の仮想マシンを管理するデータ処理装置で用いられる仮想マシンモニタであって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記仮想マシンモニタは、前記複数の仮想マシンを管理する仮想マシン管理部と、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理部と、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理部と、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得部と、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定部と、前記レジューム判定部が、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理部で通知するイベントを記憶する待ちイベント記憶部とを備えるとしてもよい。【０２７０】
（１８）また、本発明は、複数の仮想マシンを管理するデータ処理方法であって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理方法は、前記複数の仮想マシンを管理する仮想マシン管理ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理ステップと、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理ステップと、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定ステップと、前記レジューム判定ステップが、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理ステップで通知するイベントを記憶する待ちイベント記憶ステップとを含むとしてもよい。【０２７１】
（１９）また、本発明は、複数の仮想マシンを管理するデータ処理プログラムであって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理プログラムは、前記複数の仮想マシンを管理する仮想マシン管理ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理ステップと、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理ステップと、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定ステップと、前記レジューム判定ステップが、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理ステップで通知するイベントを記憶する待ちイベント記憶ステップとを含むとしてもよい。【０２７２】
（２０）また、本発明は、複数の仮想マシンを管理するデータ処理プログラムが記録された記録媒体であって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理プログラムは、前記複数の仮想マシンを管理する仮想マシン管理ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理ステップと、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理ステップと、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定ステップと、前記レジューム判定ステップが、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理ステップで通知するイベントを記憶する待ちイベント記憶ステップとを含むとしてもよい。【０２７３】
（２１）また、本発明は、複数の仮想マシンを管理するデータ処理装置で用いられる集積回路であって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記集積回路は、前記複数の仮想マシンを管理する仮想マシン管理部と、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理部と、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理部と、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得部と、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定部と、前記レジューム判定部が、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理部で通知するイベントを記憶する待ちイベント記憶部とを備えるとしてもよい。【０２７４】
（２２）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０２７５】
本発明は、複数の仮想マシンを搭載し、そのうちいずれかが省電力状態に遷移する電気機器を製造する産業、販売する産業、及びこのような機器を利用して、各種のサービスを提供する産業において、経営的、継続的、反復的に利用することができる。
【図１】
2009004757.tif 000003
【図２】
2009004757.tif 000004
【図３】
2009004757.tif 000005
【図４】
2009004757.tif 000006
【図５】
2009004757.tif 000007
【図６】
2009004757.tif 000008
【図７】
2009004757.tif 000009
【図８】
2009004757.tif 000010
【図９】
2009004757.tif 000011
【図１０】
2009004757.tif 000012
【図１１】
2009004757.tif 000013
【図１２】
2009004757.tif 000014
【図１３】
2009004757.tif 000015
【図１４】
2009004757.tif 000016
【図１５】
2009004757.tif 000017
【図１６】
2009004757.tif 000018
【図１７】
2009004757.tif 000019
【図１８】
2009004757.tif 000020
【図１９】
2009004757.tif 000021
【図２０】
2009004757.tif 000022
【図２１】
2009004757.tif 000023
【図２２】
2009004757.tif 000024
【図２３】
2009004757.tif 000025
【図２４】
2009004757.tif 000026
【図２５】
2009004757.tif 000027
【図２６】
2009004757.tif 000028
【図２７】
2009004757.tif 000029
【手続補正書】
【提出日】平成21年1月20日(2009.1.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンテンツを再生する再生部と、
通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第１仮想実行部と、
前記所定の情報を更新する第２仮想実行部と、
前記所定の情報を格納するメモリを有し前記第１仮想実行部及び前記第２仮想実行部を管理する仮想マシンモニタと、を具備し、
前記第１仮想実行部は、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行し、
前記仮想マシンモニタは、前記所定の情報の更新があった場合前記所定の時刻が到来するときに、前記更新があった旨を前記第１仮想実行部に通知する
ことを特徴とするデータ処理装置。
【請求項２】
前記第１仮想実行部は、前記仮想マシンモニタからの通知によって前記省電力状態から前記通常状態に移行して、前記メモリに格納された更新情報に基づいてコンテンツ再生の継続の可否を判断する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記仮想マシンモニタは、前記所定の情報の更新がなく前記所定の時刻が到来すると判断した場合、その旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す
ことを特徴とする請求項２記載のデータ処理装置。
【請求項４】
前記仮想マシンモニタは、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す第１のタイミングと、
前記所定の情報の更新が無く前記所定の時刻が到来すると判断した場合にその旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す第２のタイミングとを有し、
前記第１のタイミングは、前記２のタイミングより前記所定の時刻を起点にして前である
ことを特徴とする請求項３記載のデータ処理装置。
【請求項５】
前記仮想マシンモニタは、前記所定の情報の更新が無い状態で前記第１のタイミングを経過した後であって前記第２のタイミングを経過する前に、前記メモリを参照して前記所定の情報の更新があったと判断した場合は、直ちに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す
ことを特徴とする請求項４記載のデータ処理装置。
【請求項６】
前記第２仮想実行部は、前記所定の情報を更新する際、前記仮想マシンモニタに前記メモリの格納内容の更新を依頼し、
前記仮想マシンモニタは、前記依頼に基づいて前記所定の情報の更新があったと判断し、前記所定の情報の更新情報を前記メモリに格納する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項７】
コンテンツの再生を継続するための前記所定の情報は、前記コンテンツの使用権利に関する著作権管理情報である
ことを特徴とする請求項１記載のデータ処理装置。
【請求項８】
コンテンツの再生を継続するための前記所定の情報は、前記コンテンツに継続する次のコンテンツである
ことを特徴とする請求項１記載のデータ処理装置。
【請求項９】
前記再生部は、前記コンテンツの早送りをする機能を有し、
前記第１仮想実行部は、前記通常状態において前記所定の情報に基づいてコンテンツの早送りの継続の可否を判断する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項１０】
前記仮想マシンモニタは、タイマーを有し、
前記所定の情報の更新があったと判断した場合、前記所定の時刻が到来するときまでの時間を前記タイマーを基に取得し、前記取得した時間に基づいて前記更新があった旨を前記第１仮想実行部に通知する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項１１】
コンテンツを再生する再生部と、
通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第１仮想実行部と、
前記所定の情報を更新する第２仮想実行部と、
前記所定の情報を格納するメモリを有し前記第１仮想実行部及び前記第２仮想実行部を管理する仮想マシンモニタと
を具備するデータ処理装置のデータ処理方法であって、
前記第１仮想実行部において、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行し、
前記第２仮想実行部において、前記所定の情報の更新情報を前記メモリに格納し、
前記仮想マシンモニタにおいて、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに、前記更新があった旨を前記第１仮想実行部に通知する
ことを特徴とするデータ処理方法。
【請求項１２】
コンピュータに対して、
コンテンツを再生する第１処理と、
通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第２処理と、
前記所定の情報を更新する第３処理と、
前記所定の情報を格納するメモリを管理し、前記第２処理及び前記第３処理を管理する第４処理と、を実行させるデータ処理プログラムであって、
前記第２処理において、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を決定して、前記所定の時刻まで省電力状態に移行し、
前記第４処理において、前記所定の情報の更新情報を前記メモリに格納し、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに、前記更新があった旨を前記第２処理に反映させる
ことを特徴とするデータ処理プログラム。
【請求項１３】
コンピュータに対して、
コンテンツを再生する第１処理と、
通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第２処理と、
前記所定の情報を更新する第３処理と、
前記所定の情報を格納するメモリを管理し、前記第２処理及び前記第３処理を管理する第４処理とを実行させるデータ処理プログラムを格納した記録媒体であって、
前記第２処理において、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を決定して、前記所定の時刻まで省電力状態に移行し、
前記第４処理において、前記所定の情報の更新情報を前記メモリに格納し、前記メモリを参照して前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに、前記更新があった旨を前記第２処理に反映させる
ことを特徴とする記録媒体。
【請求項１４】
情報処理部と、
この情報処理部に対して、
コンテンツを再生する第１処理と、
通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第２処理と、
前記所定の情報を更新する第３処理と、
前記所定の情報を格納するメモリを管理し、前記第２処理及び前記第３処理を管理する第４処理とを実行させるデータ処理プログラムを格納した記憶部とを具備した集積回路であって、
前記情報処理部は、
前記第２処理において、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を決定して、前記所定の時刻まで省電力状態に移行し、
前記第４処理において、前記所定の情報の更新情報を前記メモリに格納し、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに、前記更新があった旨を前記第２処理に反映させる
ことを特徴とする集積回路。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想化技術を適用し、複数の仮想マシンを搭載した装置において、複数の仮想マシン間で共有するデータを変更した時に、省電力状態の他の仮想マシンにデータの変更を通知する技術に関する。
【背景技術】
【０００２】
民生機器などの組み込み機器において動作させるオペレーティングシステム（以下、ＯＳ）は、従来のリアルタイムオペレーティングシステム（以下、ＲＴＯＳ）から、Ｌｉｎｕｘ（登録商標）やＳｙｍｂｉａｎ（登録商標）のような汎用ＯＳへ移行しつつある。しかし、アプリケーションソフトは、ハードウェアやＯＳに依存したプログラム構造になっている。そのため、例えばＲＴＯＳ用のアプリケーションソフトを他のＯＳで動作させるためには、そのＯＳにあわせるための改変が必要になる。このような移行に伴い、移植するアプリケーションソフトを汎用ＯＳにあわせるための開発量が大きくなるという課題が生じている。
【０００３】
このような課題に対して仮想化技術を用いて１つのハードウェア上で異なるＯＳの動作を可能にし、既存のＯＳ及びアプリケーションをそのまま利用し、新たな開発量を削減できる可能性がある。なお、仮想化技術については、非特許文献１の３８〜４５ページに詳しく説明されている。
このような仮想化技術の応用を考えた場合、異なるＯＳ上で動作する２つのアプリケーションソフト間でデータを共有し、連携して動作する必要が生じる場合がある。この場合に対処するために、特許文献１には、複数のＯＳの動作を制御するＯＳ間制御機能の中にＯＳ間共有メモリやＯＳ間通知機能を持たせ、他のＯＳが共有データを変更したときにＯＳ間通知機能を用いて、データを共有している他のＯＳへ共有データの変更を通知する技術が開示されている。
【０００４】
図２７は、前記特許文献１に記載された従来の共有データ変更通知機能を示すものである。図２７によると、第１のＯＳ上で動作しているタスクＣ２２０２と、第２のＯＳ上で動作しているタスクＤ２２０３の間で、ＯＳ間共有メモリを利用してデータを共有する。なお、ＯＳ間共有メモリは、第１のＯＳと第２のＯＳとで共有されているメモリ空間から取得するメモリ領域である。まず、タスクＣ２２０２が、ＯＳ間共有メモリを取得する。そして、取得した共有メモリへデータを登録・変更するときに、ＯＳ間通知機能は、その旨をタスクＤ２２０３へ通知する。
【特許文献１】特開２００１−２４３０８０号公報
【特許文献２】特開２０００−３４７７７２号公報
【非特許文献１】ＵＮＩＸ（登録商標）  ｍａｇａｚｉｎｅ  ２００７年１月号、株式会社アスキー（２００７年）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
携帯電話などのバッテリー駆動を前提とした機器で仮想化技術を用いる場合、バッテリーの消費を押さえるために使用されていない仮想マシンを省電力状態（プロセッサがその仮想マシンの実行を一時的に停止する）にすることが望ましい。しかしながら、特許文献１の技術では、共有メモリのデータを変更する場合に、通知先のタスクへ常に通知するようになっている。したがって、このような機能を、上記の携帯電話などに適用すると、バッテリーの消費を押さえるために省電力状態になっている仮想マシンへ共有データの変更が通知されてしまう。この通知を受けた仮想マシンは、そのたびに省電力状態から通常状態へ復帰し、通知先のタスクへ共有データの変更を通知する。そのため、共有するデータを頻繁に変更する場合には、上記の通知が省電力化の妨げになるという問題が発生する。
【０００６】
そこで、本発明は、上記の課題を解決するために、可能な限り省電力化を妨げずに、仮想マシン間の共有データの変更通知することができるデータ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明の一実施の態様は、コンテンツを再生する再生部と、通常状態及び省電力状態の相互間の切替え機能を有し前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第１仮想実行部と、前記所定の情報を更新する第２仮想実行部と、前記所定の情報を格納するメモリを有し前記第１仮想実行部及び前記第２仮想実行部を管理する仮想マシンモニタとを具備するデータ処理装置であって、前記第１仮想実行部は、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行し、前記仮想マシンモニタは、前記所定の情報の更新があった場合前記所定の時刻が到来するときに、前記更新があった旨を前記第１仮想実行部に通知するものである。
【０００８】
ここで、上記の第１仮想実行部及び第２仮想実行部は、下記の実施の形態１における第１仮想実行部１５０１及び第２仮想実行部１５０２が対応する。また、メモリは、共有データ領域１２５５がその機能を担い、仮想マシンモニタは、仮想マシンモニタ１２４０がその機能を担う。
【発明の効果】
【０００９】
上記の構成によれば、前記第１仮想実行部の省電力状態を継続しつつ、前記第１仮想実行部に前記更新があった旨が通知されないためにコンテンツの再生が途中で途切れるのを防止できる。
【発明を実施するための最良の形態】
【００１０】
１．各種実施態様について
本発明の一実施の態様は、コンテンツを再生する再生部と、通常状態及び省電力状態の相互間の切替え機能を有し、前記通常状態においてコンテンツの再生を継続するための所定の情報に基づいてコンテンツの再生時間を判断し、前記再生時間に基づいてコンテンツ再生の継続の可否を判断する第１仮想実行部と、  前記所定の情報を更新する第２仮想実行部と、前記所定の情報を格納するメモリを有し前記第１仮想実行部及び前記第２仮想実行部を管理する仮想マシンモニタと、を具備し、前記第１仮想実行部は、前記省電力状態に移行する前に、前記再生時間の終了前であって前記省電力状態から前記通常状態に戻る所定の時刻を前記仮想マシンモニタに通知して、前記所定の時刻まで省電力状態に移行し、前記仮想マシンモニタは、前記所定の情報の更新があった場合前記所定の時刻が到来するときに、前記更新があった旨を前記第１仮想実行部に通知するものである。
【００１１】
本態様によれば、前記仮想マシンモニタは前記所定の情報の更新があった場合に直ちに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を省電力状態から通常状態に戻すのではなく、前記所定の情報の更新があった場合であって前記所定の時刻が到来するときに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を省電力状態から通常状態に戻すので、前記第１仮想実行部の省電力状態を継続しつつ、前記第１仮想実行部に前記更新があった旨が通知されないためにコンテンツの再生が途中で途切れるのを防止できる。
【００１２】
ここで、前記第１仮想実行部は、前記仮想マシンモニタからの通知によって前記省電力状態から前記通常状態に移行して、前記メモリに格納された更新情報に基づいてコンテンツ再生の継続の可否を判断してもよい。
本態様によると、前記第１仮想実行部は、前記仮想マシンモニタからの通知によって前記電力状態から前記通常状態に移行して前記メモリに格納された更新情報に基づいてコンテンツの再生を継続することにより、前記更新があった旨の通知は前記所定の時刻が到来するときまで前記第１仮想実行部に送信されず省電力状態を継続できるので、前記第１仮想実行部の省電力状態を継続しつつ、コンテンツの再生が途中で途切れるのを防止できる。
【００１３】
ここで、前記仮想マシンモニタは、前記所定の情報の更新がなく前記所定の時刻が到来すると判断した場合、その旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻してもよい。
また、前記所定の情報の更新がなく前記所定の時刻が到来したと判断した場合、その旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻してもよい。
【００１４】
本態様は、前記所定の情報の更新がなく前記所定の時刻が到来したと判断した場合、その旨を前記第１仮想実行部に通知し、前記第１仮想実行部を通常状態に戻すものである。
ここで、前記仮想マシンモニタは、前記所定の情報の更新があったと判断した場合であって前記所定の時刻が到来するときに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す第１のタイミングと、前記所定の情報の更新が無く前記所定の時刻が到来すると判断した場合にその旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻す第２のタイミングと、を有し、前記第１のタイミングは、前記２のタイミングより前記所定の時刻を起点にして前であってもよい。
【００１５】
本態様によると、前記所定の情報の更新があったと判断した場合と前記所定の情報の更新が無かった場合とで前記第１仮想実行部を前記通常状態に戻すタイミングを異ならせることにより、更新があった場合は更新に要する時間を加味して早めに前記第１仮想実行部を前記通常状態に戻す一方で、更新が無かった場合は更新に要する時間は不要であるのでその分省電力状態を長くすることができるので、更新に要する時間を加味しつつ、省電力状態を最大限継続させて消費電力を最大限削減できる。
【００１６】
ここで、前記仮想マシンモニタは、前記所定の情報の更新が無い状態で前記第１のタイミングを経過した後であって前記第２のタイミングを経過する前に、前記メモリを参照して前記所定の情報の更新があったと判断した場合は、直ちに前記更新があった旨を前記第１仮想実行部に通知して前記第１仮想実行部を前記通常状態に戻してもよい。
本態様によると、前記所定の情報の更新が無い状態で前記第１のタイミングを経過した後であって前記第２のタイミングを経過する前に、前記メモリを参照して前記所定の情報の更新があったと判断した場合は、前記第１のタイミングを経過しているものの、前記第２のタイミングの到来を待たずに前記第１仮想実行部を前記通常状態に戻すので、コンテンツの再生が途中で途切れる可能性はあるものの、その途切れる時間幅を最小限に抑えることができる。
【００１７】
ここで、前記第２仮想実行部は、前記所定の情報を更新する際、前記仮想マシンモニタに前記メモリの格納内容の更新を依頼し、前記仮想マシンモニタは、前記依頼に基づいて前記所定の情報の更新があったと判断し、前記所定の情報の更新情報を前記メモリに格納してもよい。
本態様によると、前記仮想マシンモニタ内のメモリは前記仮想マシンモニタによってのみ更新できる仮想化技術の構成の場合、前記所定の情報を更新する処理を行うのは前記第２仮想実行部であっても、前記第２仮想実行部から前記仮想マシンモニタに前記メモリの格納内容の更新を依頼し、この依頼に基づいて前記仮想マシンモニタの方では前記前記所定の情報の更新の有無を判断するので、仮想化技術において効率的に、前記第１仮想実行部の省電力状態を継続しつつ、コンテンツの再生が途中で途切れるのを防止できる。
【００１８】
ここで、コンテンツの再生を継続するための前記所定の情報は、前記コンテンツの使用権利に関する著作権管理情報であってもよい。
本態様は、コンテンツの再生を継続するための所定の情報を、前記コンテンツの使用権利に関する著作権管理情報とした場合に適用できる。
ここで、コンテンツの再生を継続するための前記所定の情報は、前記コンテンツに継続する次のコンテンツであってもよい。
【００１９】
本態様は、コンテンツの再生を継続するための所定の情報を、前記コンテンツの次のコンテンツを再生するための鍵情報とした場合に適用できる。
ここで、前記再生部は、前記コンテンツの早送りをする機能を有し、前記第１仮想実行部は、前記通常状態において前記所定の情報に基づいてコンテンツの早送りの継続の可否を判断してもよい。
【００２０】
本態様は、前記コンテンツの早送りする場合に適用できる。
ここで、前記仮想マシンモニタは、タイマーを有し、前記所定の情報の更新があったと判断した場合、前記所定の時刻が到来するときまでの時間を前記タイマーを基に取得し、前記取得した時間に基づいて前記更新があった旨を前記第１仮想実行部に通知してもよい。
【００２１】
本態様は、前記仮想マシンモニタにタイマーを設けた場合に適用できる。
また、本発明をシステム、方法、プログラム、記録媒体、集積回路として実現した場合にも、同様の効果が得られる。
２．実施の形態１
以下、本発明の具体的な実施の形態１について、図面を参照しながら説明する。
２．１  コンテンツ権利配信システム１０００の構成
図１は、実施の形態１におけるコンテンツ権利配信システム１０００の全体図である。図１を用いて、コンテンツ権利配信システム１０００の全体構成を説明する。
【００２２】
図１に示すように、コンテンツ権利配信システム１０００は、権利管理サーバ１１００と携帯端末１２００、記憶装置１３００から構成される。
権利管理サーバ１１００及び携帯端末１２００は、ネットワークに接続されており、相互に通信可能である。
記憶装置１３００は、コンテンツを取得し、記録する装置である。記憶装置１３００は、携帯端末１２００で再生可能なコンテンツを格納している。なお、記憶装置１３００が格納しているコンテンツは、別途ネットワークや記録メディアを利用して入手したものであり、暗号化処理が施されているものとする。
【００２３】
権利管理サーバ１１００は、記憶装置１３００の記憶している各コンテンツについて、再生許可を示す権利情報を管理するサーバである。権利情報は、一例として、再生を許可する時間、期限、回数、複製の可否といった再生許可の条件を示す情報、コンテンツを復号するためのデータを含んでいる。
権利管理サーバ１１００は、携帯端末１２００からコンテンツ再生に係る権利情報の取得要求を受信する。取得要求を受信すると、受信した取得要求に含まれるコンテンツ識別子に対応するコンテンツの権利情報を携帯端末１２００へ送信する。
【００２４】
携帯端末１２００は、利用者の操作により選択されたコンテンツに対応する権利情報を要求する取得要求を送信し、権利管理サーバ１１００から権利情報を取得し、取得した権利情報に基づいて記憶装置１３００に格納しているコンテンツを再生する。
なお、権利管理サーバ１１００と記憶装置１３００が同一のサーバとして実現されているとしても構わないことは言うまでもない。
２．２  権利管理サーバ１１００
上述したように、権利管理サーバ１１００は、各コンテンツに対応する権利情報を記憶している。図２は、権利情報のデータ構造の一例を示している。
【００２５】
図２に示すように、権利情報１４０４は、コンテンツ識別子１４０３、制限情報フラグ１４００、制限情報１４０１及び復号鍵１４０２から構成される。
コンテンツ識別子１４０３は、権利情報１４０４と一意に対応するコンテンツを示す。制限情報１４０１は、コンテンツ識別子１４０３の示すコンテンツの再生についての制限を示す。
【００２６】
制限情報１４０１の具体例としては、「４月１日まで再生可」などの期限に関する情報、「３０分再生可」などの再生時間に関する情報が考えられる。ここでは、期限、時間に関する制限について記載したが、これらは一例であって、制限情報１４０１として、再生回数、コピーの可否など他の制限を含んでいても良いし、複数の制限を含んでいても良い。
【００２７】
制限情報フラグ１４００は、制限情報１４０１により定められる制限の種類を示すデータである。例えば、制限情報フラグ１４００の値「０」は、期限に関する情報であることを示し、制限情報フラグ１４００の値「１」は、再生時間に関する情報であることを示す。ここでは、制限情報フラグ１４００は、１ビット長のデータとしたが、これは一例であって、制限の種類を識別できるデータであればよい。
【００２８】
復号鍵１４０２は、コンテンツ識別子１４０３の示すコンテンツを復号するための鍵データである。
権利管理サーバ１１００は、携帯端末１２００から、コンテンツ識別子を含む取得要求を受信する。取得要求を受信すると、受信したコンテンツ識別子を含む権利情報を読み出す。読み出した権利情報を携帯端末１２００に固有の鍵を用いて暗号化して暗号化権利情報を生成し、生成した暗号化権利情報を携帯端末１２００へ送信する。なお、携帯端末１２００に固有の鍵を用いるとしたが、これに限らず、携帯端末１２００との間で通信の度に共通鍵（セッション鍵）を生成し、生成したセッション鍵を用いても良い。鍵共有については、公知の技術で実現可能であるのでここでは説明を割愛する。
２．３  携帯端末１２００
携帯端末１２００は、利用者の操作によるコンテンツの指定を受け付け、指定されたコンテンツに対応する権利情報を要求する取得要求を生成し、生成した取得要求を権利管理サーバ１１００へ送信する。続いて、携帯端末１２００は、権利管理サーバ１１００から暗号化権利情報を受信し、受信した暗号化権利情報をそのまま保持する。コンテンツを再生するときには、その都度、暗号化権利情報を復号して権利情報を生成し、生成した権利情報に含まれる復号鍵を用いてコンテンツを復号し、制限情報に従って再生を行う機器である。
【００２９】
この一連の処理は、それぞれ異なる仮想マシン上で動作するＤＲＭアプリ（後述）と再生アプリ（後述）をプロセッサが実行することにより達成される。
なお、実施の形態１では、権利情報を暗号化したまま保持するとしたが、これに限定するものではなく、権利情報への不正な解析を防止できる構成であればよく、例えば、復号により生成された権利情報を耐タンパー化された記憶領域に、保持しても良い。この場合、携帯端末１２００は、権利情報を利用する時に復号化を行う必要はなくなる。
【００３０】
また、ここでの暗号化及び復号の処理は、本発明において重要ではないので、以下の説明では、コンテンツ再生時における暗号化権利情報の復号に関する記載は割愛する。
２．４  携帯端末１２００の構成
図３は、携帯端末１２００のハードウェア構成の概要とソフトウェア構成を示す。図２の示すように、携帯端末１２００は、ハードウェア１２５０と、ハードウェア１２５０上で動作する仮想マシンモニタ１２４０、仮想マシン１２３０、１２３１、ＲＴＯＳ１２２０、汎用ＯＳ１２２１、ＤＲＭアプリ１２１０及び再生アプリ１２１１から構成される。
２．４．１  ハードウェア１２５０
ハードウェア１２５０は、汎用のメモリであるメモリ１２５１、上記のプログラム群を解読及び実行するプロセッサ１２５２、ユーザや他の機器等の外部とのインタフェースとなるＩ／Ｏデバイス１２５３、割り込み処理に用いるタイマー１２５４を含んで構成される。
【００３１】
ここでメモリ１２５１は、共有データ領域１２５５を含む。共有データ領域１２５５は、メモリ１２５１の一部の領域であり、複数の仮想マシン１２３０、１２３１が、それぞれアクセス可能な領域である。本実の形態では、前記共有データ領域１２５５は、具体的に異なる仮想マシン上で動作しているＤＲＭアプリ１２１０（後述）と再生アプリ１２１１（後述）とが、コンテンツの再生に関する権利情報を共有するために利用され、コンテンツと１対１に対応する。図２において、メモリ１２５１内には、１つの共有データ領域しか記載されていないが、コンテンツ毎に複数の共有データ領域が存在していてもよい。
【００３２】
また、具体的には図示していないが、ハードウェア１２５０には、プログラム群、取得済の権利情報及び各種データを記憶している不揮発メモリ（ＲＯＭ、ハードディスクなど）、時刻を計測している内部時計、コンテンツのデコード実行するデコーダ、デコードされた音声及び画像を再生する再生機構などが含まれている。
２．４．２  ソフトウェア
以下、各ソフトウェアについて、詳細に説明するが、これらはいずれも、各ソフトウェアに割り当てられた処理を示す複数の命令群から構成され、前記命令群は、コンピュータ実行可能なプログラム言語で記述されている。
【００３３】
また、必要に応じて、仮想マシン１２３０及び仮想マシン１２３０上で動作するプログラム群を第１仮想実行部１５０１、仮想マシン１２３１及び仮想マシン１２３１上で動作するプログラム群を第２仮想実行部１５０２と呼ぶ。
（１）アプリケーションプログラム
ＤＲＭアプリ１２１０と再生アプリ１２１１は、それぞれ通知タイミング情報を含んでいる。通知タイミング情報とは、当該アプリケーションがアイドル状態であり、当該アプリケーションを動作させる仮想マシンが省電力状態（後述）になっている時に、当該アプリケーションに通知すべき事象（例えば、権利情報の変更など）が生じた場合に、いつ仮想マシン及びアプリケーションを通常状態に復帰させ、前記事象を通知するべきかを示す情報である。
【００３４】
通知タイミング情報には、以下の３つの種類があり、それぞれに、識別子「Ａ」、「Ｂ」、「Ｃ」が割り当てられている。
Ａ：すぐに通知する必要がある
Ｂ：所定の時間範囲内で通知すればよい
Ｃ：省電力状態から復帰した際に通知すればよい
本実施の形態では、具体的に、ＤＲＭアプリ１２１０は、通知タイミング情報「Ａ：すぐに通知する必要がある」を含んでいる。また、再生アプリ１２１１は、通知タイミング情報「Ｃ：省電力状態から復帰した際に通知すればよい」及び通知タイミング情報「Ｂ：決められた時間の範囲内で通知すればよい」の２つを含んでおり、通知タイミング情報「Ｃ」を初期値とする。
【００３５】
ＤＲＭアプリ１２１０と再生アプリ１２１１とは、コンテンツの再生に関連する処理を連動して行うアプリケーションプログラムである。ゆえに、各アプリケーションプログラムは、起動時に、自身の動作するＯＳに対して、コンテンツ毎に共有データ領域の確保を依頼する。このとき、各アプリケーションは、それぞれ、通知タイミング情報（再生アプリ１２１１は、通知タイミング情報の初期値「Ｃ」）を通知する。
【００３６】
続いて、ＤＲＭアプリ１２１０と再生アプリ１２１１とは、仮想マシンモニタ１２４０から確保された共有データ領域１２５５を示す領域識別子を受け取り、受け取った領域識別子を記憶する。
ＤＲＭアプリ１２１０は、ＲＴＯＳ１２２０上で動作するアプリケーションソフトウェアであり、コンテンツ再生に係る権利情報の取得及び更新を行う手順を含む。
【００３７】
具体的には、ＤＲＭアプリ１２１０は、再生アプリ１２１１からの権利情報取得依頼又は利用者の操作による指示を受け、所定のコンテンツを示すコンテンツ識別子を含む取得要求を生成し、生成した取得要求を権利管理サーバ１１００へ送信する。
続いて、権利管理サーバ１１００からコンテンツの権利情報を取得し、取得した権利情報を、仮想マシンモニタ１２４０を介して、共有データ領域１２５５に格納する。
【００３８】
ここでは、権利情報は、図２を用いて説明した通り、コンテンツの再生に関する権利を示す情報として取り扱うが、コンテンツを複製する権利などの他の権利を示す情報であってもよい。
再生アプリ１２１１は、汎用ＯＳ１２２１上で動作するアプリケーションソフトウェアあって、利用者の操作に従って権利情報の取得をＤＲＭアプリ１２１０へ依頼する手順を含み、ＤＲＭアプリ１２１０と連係して動作する。このとき、再生アプリ１２１１がＤＲＭアプリ１２１０へ出力する権利情報取得依頼は、コンテンツ識別子と領域識別子とを含んでいる。コンテンツ識別子は、利用者の指定したコンテンツ識別する情報であり、領域識別子は、共有データ領域１２５５を一意に示すじょうほうである。このとき、再生アプリ１２１１及びＤＲＭアプリ１２１０は、領域識別子とコンテンツ識別子と対応付けて記憶する。
【００３９】
また、再生アプリ１２１１は、権利情報の管理を除くコンテンツの再生制御に関する処理手順を含む。具体的には、利用者の操作により、コンテンツの再生指示を受け付け、受け付けた再生指示の示すコンテンツと対応する権利情報を共有データ領域１２５５から取得し、取得した権利情報に含まれる制限フラグ及び制限情報を抽出する。抽出した制限フラグと制限情報から、コンテンツの再生を許可される時間の終端の時刻（以下、再生停止時刻と記載する）を決定する。
【００４０】
次に、再生アプリ１２１１は、再生停止時刻が来たときにコンテンツ再生の停止処理を行えるように、タイマー１２５４を設定する。例えば、仮想マシン１２３１が省電力状態から通常状態に遷移し、再生アプリ１２１１がアイドル状態から通常状態に戻るまでの時間（復帰処理時間と呼ぶ）を、再生停止時刻から指し引いた時刻（タイマー設定時刻）にタイマー１２５４を設定する。具体的には、再生アプリ１２１１は、算出したタイマー設定時刻を汎用ＯＳ１２２１及び仮想マシン１２３１を介して仮想マシンモニタ１２４０へ通知する。仮想マシンモニタ１２４０内の仮想マシン管理部１２４１により、タイマー１２５４にタイマー設定時刻が設定される。
【００４１】
続いて、再生アプリ１２１１は、再生指示を受けたコンテンツと対応する通知タイミング情報の変更依頼を、汎用ＯＳ１２２１及び仮想マシン１２３１を介して、仮想マシンモニタ１２４０へ出力する。ここで出力される変更依頼は、コンテンツに対応する共有データ領域を示す領域識別子と通知タイミング情報「Ｂ」を含む。
通知タイミング情報の変更依頼を出力すると、再生アプリ１２１１は、コンテンツのデコード及び再生処理をハードウェア１２５０内のデコーダに指示する。コンテンツの再生中においては、再生アプリ１２１１が動作している必要はない。したがって、再生アプリ１２１１は、ハードウェア１２５０による処理が終了するまでは、再生アプリ１２１１自身をアイドル状態にする。アイドル状態の再生アプリ１２１１は、上記で設定したタイマー１２５４からの割り込み、ユーザのキー入力による割り込み及び仮想マシンモニタ１２４０からの割り込みに反応して、アイドル状態から通常の動作状態へ復帰する。
【００４２】
再生停止時刻になると、再生アプリ１２１１は、デコーダによるコンテンツの再生を停止させる。続いて、汎用ＯＳ１２２１及び仮想マシン１２３１を介して、仮想マシンモニタ１２４０へ通知タイミング情報の変更依頼を出力する。ここで出力する変更依頼は、再生を停止したコンテンツと対応する管理情報に含まれる通知タイミング情報を初期値「Ｃ」に変更することを依頼するコマンドである。
【００４３】
なお、実施の形態１では、各ＯＳ上で１個のアプリケーションしか動作しないが、それぞれのＯＳ上に複数のアプリケーションが動作していてもよいことは言うまでもない。
また、上記では、２つのアプリケーションの起動時に、共有データ領域１２５５を確保し、利用者の指定するコンテンツに対応する権利情報を権利管理サーバ１１００から取得し、共有データ領域１２５５に書き込むとしたが、共有データ領域１２５５の確保のタイミングは、起動時限定されない。利用者によるコンテンツの指定がある度に、指定されたコンテンツと一意に対応する共有データ領域を新たに確保してもよい。また、ハードディスクに既に取得済みの権利情報が記憶されている場合、起動時に、取得済みの権利情報毎に共有データ領域を確保してもよい。
【００４４】
（２）オペレーティングシステム
ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、それぞれ、ＤＲＭアプリ１２１０及び再生アプリ１２１１を動作させる基本ソフトウェアであって、それぞれ、仮想マシン１２３０と仮想マシン１２３１上で動作する。また、ＲＴＯＳ１２２０と汎用ＯＳ１２２１は、共有データ領域１２５５を取得するために用いる仮想マシンモニタ１２４０へのインタフェースを有する。
【００４５】
例えば、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、それぞれ、ＤＲＭアプリ１２１０及び再生アプリ１２１１から共有データ領域１２５５の確保を依頼される。この依頼を受けると、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、仮想マシンモニタ１２４０へ共有データ領域１２５５の確保を依頼する。このとき、ＲＴＯＳ１２２０と汎用ＯＳ１２２１は、依頼元であるアプリケーションソフトを識別するためのアプリ識別子と、依頼と共に受け取った通知タイミング情報、及び各ＯＳ自身を識別するＯＳ識別子を仮想マシンモニタ１２４０へ通知する。アプリ識別子としては、ＯＳがアプリケーションソフトを識別するために利用しているプロセスＩＤなどを使用する。
【００４６】
続いて、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、確保された共有データ領域１２５５に対する領域識別子を仮想マシンモニタ１２４０から取得し、ＤＲＭアプリ１２１０及び再生アプリ１２１１へ通知する。
また、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、ＤＲＭアプリ１２１０及び再生アプリ１２１１から共有データ領域１２５５の取得依頼を受け付けたとき、各自に割り当てられるメモリ領域に、依頼元のアプリケーションと共有データ領域１２５５とコールバック関数とを関連付けて登録する。
【００４７】
このコールバック関数は、共有データ領域１２５５の内容に変更があったときにＤＲＭアプリ１２１０及び再生アプリ１２１１に、その旨を通知するための関数である。ＲＴＯＳ１２２０と汎用ＯＳ１２２１は、共有データ領域１２５５の内容変更を知らせる割り込みが発生したときに、その共有データ領域１２５５に関連づけられているコールバック関数を呼び出し、コールバック関数を実行することで、自身の管理するアプリケーションに共有データ領域１２５５の内容変更を通知する。
【００４８】
また、汎用ＯＳ１２２１は、再生アプリ１２１１など汎用ＯＳ１２２１上で動作中のすべてのアプリケーションソフトがアイドル状態になっている場合、仮想マシン１２３１を省電力状態へ遷移させる。具体的には、仮想マシン１２３１の仮想化されたプロセッサを停止するなどの処理を行う。さらに具体的にいうと、プロセッサ１２５２の動作において、仮想マシン１２３１の実行のために割り当てられていた時間、プロセッサは一時的に停止（例えばクロックの出力を停止）する。なお、省電力状態への遷移方法については、特許文献２に詳しく説明されているので、これ以上の説明は省略する。
【００４９】
省電力状態から通常状態への復帰は、ユーザのキー入力によるＩ／Ｏデバイス１２５３からの割り込み発生時や、コンテンツの再生を停止処理のために設定したタイマー１２５４からの割り込み発生時及び仮想マシンモニタ１２４０からの復帰要求時に行われる。
さらに、ＲＴＯＳ１２２０と汎用ＯＳ１２２１は、共有データ領域１２５５のデータをＤＲＭアプリ１２１０または再生アプリ１２１１が変更するために用いる仮想マシンモニタ１２４０へのインタフェースをそれぞれ有する。ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、それぞれ、ＤＲＭアプリ１２１０及び再生アプリ１２１１から共有データ領域１２５５のデータの変更を依頼される。データの変更を依頼されると、各ＯＳは、仮想マシンモニタ１２４０へ共有データ領域１２５５のデータの変更を依頼する。このとき、各ＯＳは、依頼元のアプリケーションを示すアプリ識別子と、各ＯＳを示すＯＳ識別子と、依頼元のアプリケーションから受け取った領域識別子及び変更するデータとを仮想マシンモニタ１２４０へ通知する。
【００５０】
（３）仮想マシン
仮想マシン１２３０及び１２３１は、携帯端末１２００で動作している仮想マシンであって、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１それぞれに、仮想的な実行環境を提供する。
なお、実施の形態１においては、携帯端末１２００は、２つの仮想マシンを搭載しているが、３つ以上の仮想マシンを搭載していても良い。
【００５１】
（４）仮想マシンモニタ１２４０
仮想マシンモニタ１２４０は、仮想マシン１２３０及び仮想マシン１２３１が使用するメモリ領域やデバイスなどのリソース管理や仮想マシンのスケジューリングなど、仮想マシン１２３０、１２３１を管理するソフトウェアである。
（４−１）仮想マシンモニタ１２４０の機能
仮想マシンモニタ１２４０は、ＲＴＯＳ１２２０と汎用ＯＳ１２２１から共有データ領域の確保を要求される。この要求を受けると、仮想マシンモニタ１２４０は、メモリ１２５１内に、共有データ領域１２５５を確保し、確保した共有データ領域１２５５を示す共有データ領域識別子を生成し、生成した共有データ領域識別子をＲＴＯＳ１２２０と汎用ＯＳ１２２１へ通知する。
【００５２】
また、仮想マシンモニタ１２４０は、ＲＴＯＳ１２２０と汎用ＯＳ１２２１から共有データ領域１２５５のデータ変更依頼を受けたときに、共有データ領域１２５５のデータを変更すると共に、その共有データ領域１２５５を共有している他の仮想マシンに対して共有データ領域１２５５の変更を知らせる割り込みを発生させる。
（４−２）仮想マシンモニタ１２４０の構成
上記の機能を実現するための仮想マシンモニタ１２４０の詳細な構成について、以下に説明する。
【００５３】
図４は、本発明実施の形態１における省電力状態に対応した仮想マシンモニタ１２４０の機能的構成を示すブロック図である。
図４に示すように、仮想マシンモニタ１２４０は、仮想マシン管理部１２４１と仮想マシン間通知管理部１２４２、共有データ管理部１２４３、レジューム判定部１２４４、割込発生予定時刻取得部１２４５、待ちイベント記憶部１２４６から構成される。
【００５４】
さらに、図５は、共有データ管理部１２４３の機能的構成及びデータフローを示すブロック図である。
図５に示すように、共有データ管理部１２４３は、共有データ確保部１２６０、共有データ変更部１２６１、管理情報保持部１２６２、データ変更通知部１２６３、通知タイミング情報取得部１２６４から構成される。
【００５５】
図５中の実線矢印は、共有データ領域の確保に関するデータフローを示す。点線矢印は、共有データ領域１２５５の保持している権利情報変更に関するデータフローを示す。図中の太線矢印は、仮想マシン１２３０及び仮想マシン１２３１へ各種の通知を出力するタイミングを判定する処理に関するデータフローを示す。
以下に、図４及び図５を用いて、仮想マシンモニタ１２４０の各構成について説明する。
【００５６】
（４−２−１）仮想マシン管理部１２４１
仮想マシン管理部１２４１は、仮想マシンモニタ１２４０上で動作する仮想マシン１２３０及び仮想マシン１２３１を管理する。具体的には、各仮想マシンが使用するメモリ領域の管理や、仮想化されたデバイスの各仮想マシンへの割り当て、仮想化されたデバイスと実際のデバイスとのマッピング、各仮想マシンのスケジューリング、各仮想マシンの状態管理などを行う。仮想マシン１２３１の状態管理には、再生アプリ１２１１から通知されるタイマー設定時刻も参照する。
【００５７】
また、各仮想マシンが省電力状態から通常状態に復帰すると、その旨を仮想マシン間通知管理部１２４２へ通知する。
（４−２−２）仮想マシン間通知管理部１２４２
仮想マシン間通知管理部１２４２は、図５に示すように、共有データ管理部１２４３から、データ変更通知依頼１３１９を受け取る。データ変更通知依頼１３１９は、共有データ領域１２５５の記憶しているデータ変更の通知を依頼するコマンドである。データ変更通知依頼１３１９は、領域識別子１とＯＳ識別子２とアプリ識別子２とを含む。領域識別子１は、共有データ領域１２５５を示す。ＯＳ識別子２とアプリ識別子２は、それぞれ、通知先となるＯＳ及びアプリケーションを示す。データ変更通知依頼１３１９を受け取ると、仮想マシン間通知管理部１２４２は、通知先の仮想マシンの動作状態に合わせて、データ変更を通知する。
【００５８】
また、仮想マシン間通知管理部１２４２は、仮想マシン１２３１及び仮想マシン１２３０間の各種の依頼を仲介する。例えば、仮想マシン１２３１から権利情報取得依頼１３１１を受け取る。権利情報取得依頼１３１１は、領域識別子１、アプリ識別子１及びコンテンツ識別子を含む。領域識別子１は、取得した権利情報を記録する共有データ領域１２５５を示す。アプリ識別子１は、依頼先のアプリケーションを示す情報である。コンテンツ識別子は、取得を要求している権利情報と対応するコンテンツを示す識別情報である。
【００５９】
仮想マシン間通知管理部１２４２は、通知先の仮想マシン１２３０の動作状態に合わせて権利情報取得依頼１３１２を仮想マシン１２３０へ通知する。
具体的に、これらの通知に先立って、仮想マシン間通知管理部１２４２は、通知先の仮想マシンが省電力状態であるかどうかを仮想マシン管理部１２４１へ問い合わせる（１３２１）。問合せ１３２１の結果、通知先の仮想マシンが通常状態であれば、仮想マシン間通知管理部１２４２は、すぐに、受け取った依頼を通知先の仮想マシンへ通知する。
【００６０】
通知先の仮想マシンが省電力状態であれば、仮想マシン間通知管理部１２４２はレジューム判定部１２４４へ省電力状態から通常状態へ復帰させるかどうかの判定を要求する判定依頼１３２２を出力する。判定依頼１３２２は、データ変更通知部１２６３又は仮想マシンから出力された領域識別子とＯＳ識別子とアプリ識別子とを含む。ＯＳ識別子とアプリ識別子は、それぞれ、通知先となるＯＳ及びアプリケーションを示す。
【００６１】
レジューム判定部１２４４から、判定結果１３２７「すぐ復帰」を受け取ると、仮想マシン間通知管理部１２４２は、仮想マシン管理部１２４１へ通知先の仮想マシンを省電力状態から通常状態へ復帰させるよう依頼する。続いて、通知先の仮想マシンが通常状態へ復帰し次第、仮想マシン間通知管理部１２４２は、受け取った依頼を復帰した仮想マシンに通知する。
【００６２】
レジューム判定部１２４４から、判定結果１３２７「復帰しない」を受け取ると、仮想マシン間通知管理部１２４２は、待ちイベント記憶部１２４６に受け取った通知依頼の内容を記憶させ、別の要因（例えば、タイマー割込、利用者の操作による割込）で通知先の仮想マシンが省電力状態から通常状態へ復帰したとき、記憶させた通知内容を読み出して通知する。
【００６３】
（４−２−３）共有データ管理部１２４３
＜共有データ管理部１２４３の機能の概要＞
共有データ管理部１２４３は、共有データ領域１２５５の管理を行う。共有データ管理部１２４３は、ＤＲＭアプリ１２１０や再生アプリ１２１１から共有データ領域の確保の依頼を受け付け、メモリ１２５１内の空き領域の一部を共有データ領域１２５５として確保し、仮想マシン１２３０と１２３１とがそれぞれアクセス出来るようにアクセス権の設定をする。
【００６４】
さらに、共有データ管理部１２４３は、共有データ領域１２５５の管理情報として、各仮想マシン上で動作しているＯＳを識別するためのＯＳ識別子と、そのＯＳ上で動作し、共有データ領域１２５５を利用するアプリケーションソフトを識別するためのアプリ識別子、および、アプリケーションと対応する通知タイミング情報を管理する。これらの管理情報は、共有データ領域毎に管理する。管理情報のデータ構造の例を図６に示す。管理情報は共有データ領域毎に図６に示す構造を持つ。つまり、管理情報１４１０は、領域識別子で一意に識別され、その領域識別子で識別される共有データ領域を使用しているＯＳとアプリケーションソフトの識別子及び通知タイミング情報からなる情報の組を複数組含んでいる。
【００６５】
また、共有データ管理部１２４３は、ＤＲＭアプリ１２１０や再生アプリ１２１１からＲＴＯＳ１２２０や汎用ＯＳ１２２１を通して、共有データ領域１２５５のデータの変更依頼を受け付ける。データの変更依頼を受け付けると、共有データ管理部１２４３は、共有データ領域１２５５のデータを変更するとともに、共有データ領域１２５５に対応する管理情報を参照する。共有データ管理部１２４３は、取得した管理情報を使って、共有データ領域１２５５を使用しているアプリケーションソフトとＯＳの識別子を取得する。そして、仮想マシン間通知管理部１２４２へ、共有データ領域のデータに変更があった旨を示す情報である共有データ領域１２５５変更のイベントを、各ＯＳへ通知するよう依頼する。
【００６６】
さらに、共有データ管理部１２４３は、ＤＲＭアプリ１２１０や再生アプリ１２１１から、それぞれの動作状態に応じて依頼されるイベントの通知タイミング情報の変更を受け付ける。共有データ管理部１２４３は、ＤＲＭアプリ１２１０や再生アプリ１２１１からの依頼を受けて、共有データ領域に対応する管理情報の中から、ＤＲＭアプリ１２１０や再生アプリ１２１１に該当する管理情報に含まれる通知タイミング情報を、指定された通知タイミング情報に変更する。
【００６７】
なお、実施の形態１では、ＤＲＭアプリ１２１０や再生アプリ１２１１は共有データ領域１２５５の確保時に通知タイミング情報を登録するとしたが、これに限定するものではなく、共有データ領域１２５５の確保時には、いずれのアプリケーションに対しても通知タイミング情報に所定の初期値を設定し、通知タイミング情報を初期値から変更する必要のあるアプリケーションソフトのみが共有データ管理部１２４３にイベントの通知タイミング情報の変更を依頼するとしてもよい。この場合、通知タイミング情報の初期値は、例えば、システム起動時に読み込まれる設定ファイルに記述されているものとしてもよい。
【００６８】
＜共有データ管理部１２４３の構成＞
続いて、本発明実施の形態１における共有データ管理部１２４３の詳細な構成について説明する。
（ａ）共有データ確保部１２６０
共有データ確保部１２６０は、ＤＲＭアプリ１２１０及び再生アプリ１２１１からＲＴＯＳ１２２０及び汎用ＯＳ１２２１を通して、共有データ領域の確保を要求する領域確保依頼１３０１を受け付ける。領域確保依頼には、ＯＳ識別子、アプリ識別子及び通知タイミング情報が含まれている。ＯＳ識別子及びアプリ識別子は、それぞれ、領域確保依頼１３０１の出力元であるＯＳ及びアプリケーションを示す識別子である。通知タイミング情報は、アプリ識別子の示すアプリケーションに記述されている通知タイミング情報である。
【００６９】
領域確保依頼１３０１を受け付けると、共有データ確保部１２６０は、メモリ１２５１上の未使用領域に共有データ領域１２５５を確保する。
次に、共有データ確保部１２６０は、確保した共有データ領域１２５５に対応する領域識別子を生成し、生成した領域識別子１３０３を、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１を通して、ＤＲＭアプリ１２１０及び再生アプリ１２１１へ通知する。
【００７０】
次に、共有データ確保部１２６０は、管理情報１３０２を、管理情報保持部１２６２へ出力する。管理情報１３０２は、領域情報、生成した領域識別子、ＯＳ識別子、アプリ識別子及び通知タイミング情報から構成される。領域情報は、メモリ１２５１内における共有データ領域１２５５の、位置を示す。ＯＳ識別子、アプリ識別子及び通知タイミング情報は、領域確保依頼１３０１に含んで取得したものである。
【００７１】
また、共有データ確保部１２６０は、ＤＲＭアプリ１２１０や再生アプリ１２１１といったアプリケーションからＲＴＯＳ１２２０や汎用ＯＳ１２２１を通して、既に確保されている共有データ領域の領域識別子と共に領域確保依頼を受け取ることもある。この場合、共有データ確保部１２６０は、管理情報保持部１２６２が保持している共有データ領域１２５５に対応する管理情報１４１０に、確保を依頼してきたＯＳを示すＯＳ識別子と領域確保依頼に含まれるアプリ識別子と通知タイミング情報を追加する。例えば、携帯端末１２００は、ＲＴＯＳ１２２０、汎用ＯＳ１２２１以外に、第３のＯＳ及び第３の仮想マシンを搭載しており、共有データ領域１２５５が確保された後、第３のＯＳ上で動作するアプリケーションが起動され、このアプリケーションも共有データ領域１２５５を利用する場合が考えられる。
【００７２】
（ｂ）管理情報保持部１２６２
管理情報保持部１２６２は、メモリ１２５１内に確保された共有データ領域１２５５の管理に必要な管理情報１３０２を、共有データ確保部１２６０から受け取り、保持する。
図６は、共有データ領域１２５５に対応する管理情報１４１０の詳細を示す。図６に示すように、管理情報１４１０は、領域識別子１（１４１１）、領域情報１（１４１２）と、ＯＳ識別子１（１４１３）、アプリ識別子１（１４１４）、通知タイミング情報１（１４１６）、ＯＳ識別子２（１４１７）、アプリ識別子２（１４１８）、通知タイミング情報２（１４１９）から構成される。
【００７３】
管理情報１４１０は、共有データ確保部１２６０から出力される管理情報１３０２と同様である。
領域識別子１（１４１１）は、共有データ領域１２５５を一意に示す識別子である。領域情報１（１４１２）は、メモリ１２５１内における共有データ領域１２５５の位置を示すデータである。図６中では、管理情報保持部１２６２は、共有データ領域１２５５の先頭及び末尾のアドレスを領域情報として保持している。
【００７４】
ＯＳ識別子、アプリ識別子及び通知タイミング情報からなる一組のデータは、共有データ領域１２５５の確保を依頼したアプリケーションを識別する情報、そのアプリケーションが動作するＯＳを識別する情報及び依頼と共に出力された通知タイミング情報である。具体的に、図６では、ＯＳ識別子１（１４１３）は、ＲＴＯＳ１２２０を示し、アプリ識別子１（１４１４）は、ＤＲＭアプリ１２１０を示しており、通知タイミング情報１（１４１６）は、ＤＲＭアプリ１２１０に記述されている通知タイミング情報「Ａ」である。また、ＯＳ識別子２（１４１７）は、汎用ＯＳ１２２１を示し、アプリ識別子２（１４１８）は、再生アプリ１２１１を示しており、通知タイミング情報２（１４１９）は、再生アプリ１２１１に記述されている通知タイミング情報の初期値「Ｃ」である。
【００７５】
メモリ１２５１内に、複数の共有データ領域が確保されている場合、管理情報保持部１２６２は、共有データ領域毎に図６に示す構成の管理情報を保持している。
（ｃ）共有データ変更部１２６１
共有データ変更部１２６１は、ＤＲＭアプリ１２１０や再生アプリ１２１１からＲＴＯＳ１２２０や汎用ＯＳ１２２１、仮想マシン１２３０及び仮想マシン１２３１を通して、共有データ領域１２５５のデータ変更依頼１３１３を受け付ける。
【００７６】
例えば、ＲＴＯＳ１２２０及び仮想マシン１２３０を介して、ＤＲＭアプリ１２１０から、共有データ領域１２５５内データの変更依頼を受け取る。受け取ったデータ変更依頼１３１３は、領域識別子１、アプリ識別子１及びデータ（権利情報など）を含む。領域識別子１は、共有データ領域１２５５を示す。アプリ識別子１は、ＤＲＭアプリ１２１０を示す。データ（ここでは、権利管理サーバ１１００から取得した権利情報）は、共有データ領域１２５５に新たに書き込まれるデータである。
【００７７】
この依頼を受け取ると、共有データ変更部１２６１は、領域識別子１に対応する管理情報１４１０を管理情報保持部１２６２から取得し、取得した管理情報１４１０に含まれる領域情報１（１４１２）を基に、メモリ１２５１上の共有データ領域１２５５を特定し、受け取った権利情報を基に共有データ領域１２５５内の権利情報を変更する。
また、共有データ変更部１２６１は、取得した管理情報１４１０から依頼元のＤＲＭアプリ１２１０と対応するＯＳ識別子１（１４１３を）を抽出する。続いて、共有データ変更部１２６１は、受け取ったデータ変更依頼に含まれる領域識別子１及びアプリ識別子１と、抽出したＯＳ識別子１（１４１３）と、を含む変更通知依頼を生成し、生成した変更通知依頼１３１７をデータ変更通知部１２６３へ出力する。
【００７８】
（ｄ）データ変更通知部１２６３
図５に示すように、データ変更通知部１２６３は、共有データ変更部１２６１から変更通知依頼１３１７を受け取る。変更通知依頼１３１７は領域識別子１、ＯＳ識別子１及びアプリ識別子１を含む。
変更通知依頼を１３１７受け取ると、データ変更通知部１２６３は、変更通知依頼１３１７に含まれる領域識別子１に対応する管理情報１４１０を管理情報保持部１２６２から取得する。そして、取得した管理情報１４１０に含まれるＯＳ識別子とアプリ識別子のうち、変更通知依頼に１３１７含まれるＯＳ識別子１及びアプリ識別子１を除くＯＳ識別子２（１４１７）とアプリ識別子２（１４１８）とを抽出する。
【００７９】
続いて、データ変更通知部１２６３は、変更通知依頼１３１７に含まれる領域識別子１、抽出したＯＳ識別子２（１４１７）及びアプリ識別子２（１４１８）を含むデータ変更通知依頼を生成する。データ変更通知依頼は、領域識別子１の示す共有データ領域１２５５の内容が変更されたことをＯＳ識別子２の示す汎用ＯＳ１２２１を介して、アプリ識別子２の示す再生アプリ１２１１へ通知することを依頼するコマンドである。
【００８０】
データ変更通知部１２６３は、生成したデータ変更通知依頼１３１９を、仮想マシン間通知管理部１２４２へ出力する。
（ｅ）通知タイミング情報取得部１２６４
通知タイミング情報取得部１２６４は、レジューム判定部１２４４から通知タイミング情報の取得を依頼する通知タイミング取得要求１３２３を受け取る。通知タイミング取得要求１３２３には、領域識別子とＯＳ識別子とアプリ識別子とが含まれている。
【００８１】
通知タイミング取得要求１３２３を受け取った通知タイミング情報取得部１２６４は、管理情報保持部１２６２の保持している管理情報のうち、受け取った領域識別子を含む管理情報を検出し、検出した管理情報から、受け取ったＯＳ識別子及びアプリ識別子に対応する通知タイミング情報１３２４を抽出する。次に、抽出した通知タイミング情報１３２６（１３２４と同一）をレジューム判定部１２４４へ出力する。
【００８２】
（４−２−４）レジューム判定部１２４４
レジューム判定部１２４４は、イベントの通知対象となっている仮想マシンをすぐに省電力状態から通常状態へ復帰させるか否か判定を行う機能部である。ここで、イベントとは、例えば、共有データ領域１２５５内のデータ変更の通知、仮想マシン間における各種の依頼の通知の処理である。
【００８３】
レジューム判定部１２４４は、仮想マシン間通知管理部１２４２から判定依頼１３２２を受け取る。判定依頼１３２２は、領域識別子、ＯＳ識別子及びアプリ識別子を含む。領域識別子は、イベントに関与する共有データ領域を示す。ＯＳ識別子及びアプリ識別子は、イベントの通知先となるＯＳ及びアプリケーションを示す。
判定依頼１３２２を受け取ると、レジューム判定部１２４４は、通知タイミング取得要求１３２３を生成する。通知タイミング取得要求１３２３は、受け取った領域識別子とＯＳ識別子とアプリ識別子とを含む。続いて、レジューム判定部１２４４は、生成した通知タイミング取得要求１３２３を共有データ管理部１２４３内の通知タイミング情報取得部１２６４へ出力する。
【００８４】
続いて、レジューム判定部１２４４は、通知タイミング情報取得部１２６４から、通知タイミング情報１３２６を受け取る。受け取った通知タイミング情報と、図７に示す判定基準表１２７０を用いて、通知先の仮想マシンをすぐに省電力状態から通常状態に復帰するか否かを判定する。
図７に示すように判定基準表１２７０は、３つの判定基準情報１２７１、１２７２及び１２７３から構成される。判定基準情報１２７１及び１２７３は、通知タイミング情報と通知タイミング情報を示す識別子と判定結果とを含む。
【００８５】
判定基準情報１２７２は、識別子と通知タイミング情報と、時刻条件と判定結果の組を２組含んでいる。
通知タイミング情報については上述した通り３種類存在し、それぞれの通知タイミング情報に識別子「Ａ」、「Ｂ」、「Ｃ」が割り当てられている。
時刻条件は、通知タイミング情報取得部１２６４から受け取った通知タイミング情報が「Ｂ：決められた時間の範囲内で通知すればよい」の場合、判定のためにさらに課せられる条件である。時刻条件については、後で詳細に説明する。
【００８６】
判定結果は、通知タイミング情報及び時刻条件によって定まる判定の結果であって、「すぐに復帰する」又は「復帰しない」のいずれかである。
通知タイミング情報取得部１２６４から受け取った通知タイミング情報１３２６が、「Ａ：すぐに通知する必要がある」である場合、レジューム判定部１２４４は、判定基準情報１２７１を参照し、判定結果「すぐ復帰する」１３２７を仮想マシン間通知管理部１２４２へ出力する。
【００８７】
ここで、「すぐに通知する必要がある」イベントは、例えば、再生アプリ１２１１がＤＲＭアプリ１２１０へ権利の購入を依頼するイベントのように、アプリケーションソフト同士が同期して処理を行う必要があるイベントである。
通知タイミング情報取得部１２６４から受け取った通知タイミング情報１３２６が、「Ｃ：省電力状態から復帰したときに通知すればよい」である場合、レジューム判定部１２４４は、判定基準表１２７０の判定基準情報１２７３を参照し、判定結果「復帰しない」１３２７を仮想マシン間通知管理部１２４２へ出力する。
【００８８】
ここで、「省電力状態から復帰したときに通知すればよい」イベントは、例えば再生していないコンテンツの権利を購入したときの権利情報の変更を通知するイベントである。この場合は、コンテンツを再生させるためには、ユーザが再生アプリ１２１１を動作させてコンテンツを再生しようとキー入力を行う必要があるので、コンテンツの再生前には、そのキー入力によるＩ／Ｏデバイス１２５３からの割り込みが発生する。この割り込みによって、仮想マシンは省電力状態から復帰するので、その時に権利情報の変更を通知すれば十分である。
【００８９】
通知タイミング情報取得部１２６４から受け取った通知タイミング情報１３２６が、「Ｂ：決められた時間間隔の範囲内で通知すればよい」である場合、レジューム判定部１２４４は、以下の処理を行う。
ここで、「決められた時間間隔の範囲内で通知すればよい」イベントは、例えば、再生中のコンテンツの権利情報を追加で購入したときの共有データ領域１２５５に記憶されている権利情報の変更を通知するイベントである。以下、具体的に、再生中のコンテンツの権利情報を追加で購入したとき、共通データ領域に記憶されている権利情報の変更を通知するイベントのために、省電力状態の仮想マシン１２３１をすぐに復帰させるか否かの判定を行う場合について説明する。
【００９０】
図８は、通知タイミング情報「Ｂ」を受け取った場合にレジューム判定部１２４４が、判定を行うために用いる時刻及び時間の関係を示している。図８において、時刻Ｔ０は、イベントの通知先となる仮想マシン１２３１が省電力モードへ移行した時刻である。時刻Ｔ３は、コンテンツの再生を停止する予定の時刻（再生停止予定時刻）であって、変更前の権利情報により定まる時刻である。時間ｔ２は、省電力状態の仮想マシンが通常状態に復帰するために要する時間（復帰処理時間）である。
【００９１】
時刻Ｔ３から時間ｔ２を差し引いた時刻Ｔ２は、タイマー１２５４による割込発生予定時刻（以下、タイマー設定時刻と呼ぶ）である。これは、再生アプリ１２１１により設定された時刻である。時間ｔ１は、仮想マシン１２３１が通常状態に復帰した後、仮想マシン１２３１を介して、権利情報の変更を再生アプリ１２１１へ通知するイベントの実行に要する時間（イベント実行時間）である。時刻Ｔ１は、タイマー設定時刻Ｔ２から時間ｔ１を差し引いた時刻である。このようにして定まる時刻Ｔ１を基準時刻と呼ぶ。
【００９２】
図８において、再生中のコンテンツの権利情報の変更の通知イベントは、変更される前の権利情報により決められた再生停止予定時刻Ｔ３になる前に、完了していればよい。従って、基準時刻Ｔ１までに仮想マシン１２３１を省電力状態から通常状態へ復帰させる処理を開始すれば、アイドル状態から復帰した再生アプリ１２１１が、変更後の権利情報を参照して再生停止予定時刻を再計算するので、時刻Ｔ３で途切れることなくコンテンツの再生を継続することができる。そのため、判定依頼１３２２を受けた時刻（正確には現在時刻Ｔｎ）が、基準時刻Ｔ１以後であるか、基準時刻Ｔ１より前であるかにより判定結果が異なる。
【００９３】
先ず、レジューム判定部１２４４は、割込発生予定時刻取得部１２４５へ割込発生予定時刻の取得を指示し、割込発生予定時刻取得部１２４５から、割込発生予定時刻として、タイマー設定時刻Ｔ２を受け取る。タイマー設定時刻Ｔ２を受け取るとレジューム判定部１２４４は、時刻Ｔ２からイベント実行時間ｔ２を差し引いた基準時刻Ｔ１を算出する。イベント実行時間ｔ１は、システム設計時に決定される値であって、レジューム判定部１２４４が予め保持しているとしても良いし、仮想マシン間通知管理部１２４２から、判定依頼と共に受け取るとしても良い。
【００９４】
次に、レジューム判定部１２４４は、内部時計から現在時刻Ｔｎを取得し、取得した現在時刻と基準時刻Ｔ１とを比較する。
比較の結果、Ｔｎ≧Ｔ１であれば、レジューム判定部１２４４は、判定基準情報１２７２を参照し、時刻条件「現在時刻≧基準時刻」と対応する判定結果「すぐ復帰する」を抽出する。抽出した判定結果「すぐに通知する」を、仮想マシン間通知管理部１２４２へ出力する。図９は、この場合における、現在時刻Ｔｎと基準時刻Ｔ１の前後関係の一例を示す図である。図９に示すように、現在時刻Ｔｎは、基準時刻Ｔ１からタイマー設定時刻Ｔ２までの間に位置する。この場合、タイマー設定時刻Ｔ２までに権利情報の変更通知処理が終わらないため、省電力状態から通常状態へ直ちに復帰する必要がある。
【００９５】
比較の結果、Ｔｎ＜Ｔ１であれば、レジューム判定部１２４４は、判定基準情報１２７２を参照し、時刻条件「現在時刻＜基準時刻」に対応する判定結果「復帰しない」を抽出する。次に、レジューム判定部１２４４は、抽出した判定結果「復帰しない」を仮想マシン間通知管理部へ出力する。続いて、レジューム判定部１２４４は、タイマー１２５４の設定時刻を基準時刻Ｔ１に変更する。図１０は、この場合における、現在時刻Ｔｎと基準時刻Ｔ１との前後関係を示している。図１０に示すように、現在時刻Ｔｎは、基準時刻Ｔ１より前に位置する。この場合、基準時刻Ｔ１までに、仮想マシン１２３１の復帰処理を開始すればよいので、直ちに復帰させる必要はない。
【００９６】
なお、実施の形態１では、イベント実行時間ｔ１はシステム設計時に決定される値としたが、これに限定するものではなく、システム起動時に設定ファイル等により外部から入力されてもよいし、システム稼働時に仮想マシンモニタ１２４０外部から入力されてもよい。また、イベント実行時間ｔ１はシステム全体で１つの値である必要はなく、イベント毎にアプリケーションソフトにより設定されてもよい。この場合、イベント実行時間は、通知タイミング情報と一緒に管理情報に含まれており、共有データ管理部１２４３により管理されるとしてもよい。なお、アプリケーションソフトによるイベント実行時間の設定は、アプリケーションソフトが動作中にその動作状態に応じてイベント実行時間を決定し設定してもよいし、アプリケーションソフトの起動時に設定ファイルを読み込み、その読み込んだ設定ファイルに基づいて設定してもよい。
【００９７】
また、省電力状態からの復帰判定においてイベント実行時間を考慮しない構成とすることも可能である。しかし、この場合は、変更前の権利情報が使い切られてから、新しい権利情報が反映されるまでに、イベント実行時間の分だけラグが発生し、コンテンツの再生が中断することとなる。
また、イベント実行時間ｔ１は、 仮想マシン１２３１を介して、権利情報の変更を再生アプリ１２１１へ通知するイベントの実行に要する時間としたが、通知に要する時間に加えて、再生アプリ１２１１が変更後の権利情報を参照する時間も含むとしても良い。
【００９８】
（４−２−５）割込発生予定時刻取得部１２４５
割込発生予定時刻取得部１２４５は、レジューム判定部１２４４から、割込発生予定時刻の取得を指示される。この指示を受けると、割込発生予定時刻取得部１２４５は、タイマー１２５４にアクセスして、タイマー１２５４に設定されている時刻（タイマー設定時刻）を取得し、取得したタイマー設定時刻をレジューム判定部１２４４へ出力する。
【００９９】
なお、実施の形態１では、仮想マシンが省電力状態から通常状態への復帰させるための割込発生予定時刻をタイマー１２５４から取得するとしたが、これに限定するものではない。コンテンツの再生にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送を利用する場合、転送が終了したときの割り込みで省電力状態から復帰させることが考えられる。この場合には、ＤＭＡ転送の残りのデータサイズを取得し、そのサイズを時間に換算し、換算した時間から割込発生予定時刻を算出する方法を用いてもよい。
【０１００】
（４−２−６）待ちイベント記憶部１２４６
待ちイベント記憶部１２４６は、それぞれの仮想マシンごとにイベントキューを持ち、仮想マシン間通知管理部１２４２から待ちイベントとして登録されたイベントをそれぞれのイベントキューに保持している。
２．５  携帯端末の動作
以下に、携帯端末１２００の動作について、図面を用いて説明する。
【０１０１】
（１）コンテンツ再生動作
図１１〜図１５は、携帯端末１２００によるコンテンツ再生の動作を示している。ここでは、仮想マシン、ＯＳ、１以上のアプリケーションからなるソフトウェア群を、仮想実行部と呼ぶ。具体的に、仮想マシン１２３０、ＲＴＯＳ１２２０及びＤＲＭアプリ１２１０を第１仮想実行部１５０１、仮想マシン１２３１、汎用ＯＳ１２２１及び再生アプリ１２１１を第２仮想実行部１５０２と呼ぶ。
【０１０２】
以下に、図１１〜図１５を用いて、携帯端末１２００のコンテンツ再生の動作について、説明する。
先ず、ＲＴＯＳ１２２０及び汎用ＯＳ１２２１は、それぞれ、ＤＲＭアプリ１２１０及び再生アプリ１２１１を起動する（ステップＳ２００１、ステップＳ２００３）。
ＤＲＭアプリ１２１０はＲＴＯＳ１２２０及び仮想マシン１２３０を介して仮想マシンモニタ１２４０の共有データ管理部１２４３へ領域確保依頼を出力する（ステップＳ２００２）。
【０１０３】
再生アプリ１２１１も、汎用ＯＳ１２２１及び仮想マシン１２３１を介して、仮想マシンモニタ１２４０へ領域確保依頼を出力する（ステップＳ２００４）。
仮想マシンモニタ１２４０内の共有データ確保部１２６０は、第１仮想実行部１５０１及び第２仮想実行部１５０２から領域確保依頼を受け、メモリ１２５１上に共有データ領域１２５５を確保する（ステップＳ２００６）。
【０１０４】
共有データ確保部１２６０は、共有データ領域１２５５に対応する領域識別子を生成し（ステップＳ２００７）、生成した領域識別子を第１仮想実行部１５０１及び第２仮想実行部１５０２へ通知する（ステップＳ２００８、ステップＳ２００９）。
第２仮想実行部１５０２内の再生アプリ１２１１は、仮想マシン１２３１及び汎用ＯＳ１２２１を介して領域識別子を取得し（ステップＳ２００８）、第１仮想実行部１５０１内のＤＲＭアプリ１２１０は、仮想マシン１２３０及びＲＴＯＳ１２２０を介して領域識別子を取得する（ステップＳ２００９）。
【０１０５】
続いて、再生アプリ１２１１は、利用者によるコンテンツ再生を示すキー操作を受け付ける（ステップＳ２０１２）。利用者のキー操作により指定されたコンテンツを示すコンテンツ識別子及び仮想マシンモニタ１２４０から通知された領域識別子を含む権利情報取得依頼を、仮想マシンモニタ１２４０へ出力する（ステップＳ２０１３）。
仮想マシンモニタ１２４０は、第２仮想実行部１５０２内の再生アプリ１２１１から、権利情報取得依頼を受け取る（ステップＳ２０１３）。権利情報取得依頼を受けると、仮想マシンモニタ１２４０は、受け取った権利情報取得依頼を第１仮想実行部１５０１へ通知するタイミングの判定を行う（ステップＳ２０１６）。この通知判定については、後述する。このとき第１仮想実行部１５０１の仮想マシン１２３０は、通常状態であるので、ステップＳ２０１６では、すぐに通知すると判定される。仮想マシンモニタ１２４０は、第１仮想実行部１５０１へ権利情報取得依頼を出力する（ステップＳ２０１７）。
【０１０６】
ＤＲＭアプリ１２１０は、仮想マシン１２３０及びＲＴＯＳ１２２０を介して権利情報取得依頼を受け取り（ステップＳ２０１７）、受け取った権利情報取得依頼に含まれるコンテンツ識別子に対応する権利情報を、権利管理サーバ１１００から取得する（ステップＳ２０１８）。続いて、ＤＲＭアプリ１２１０は、ＲＴＯＳ１２２０及び仮想マシン１２３０を介して、仮想マシンモニタ１２４０へ取得した権利情報及び領域識別子を含むデータ変更依頼を出力する（ステップＳ２０２１）。
【０１０７】
仮想マシンモニタ１２４０の共有データ変更部１２６１は、第１仮想実行部１５０１からデータ変更依頼を受け取り（ステップＳ２０２１）、受け取ったデータ変更依頼に含まれる領域識別子の示す共有データ領域１２５５の保持している権利情報をデータ変更依頼に含まれる権利情報により変更する（ステップＳ２０２２）。
権利情報が変更されると、データ変更通知部１２６３は、データ変更通知依頼を、仮想マシン間通知管理部１２４２へ出力する（ステップＳ２０２３）。仮想マシン間通知管理部１２４２は、データ変更通知を行うタイミングの判定を開始する（ステップＳ２０２６）。このとき、第２仮想実行部１５０２の仮想マシン１２３１は、通常状態で動作しているので、すぐに通知すると判定され、仮想マシンモニタ１２４０は、データ変更通知を第２仮想実行部１５０２へデータ変更通知を出力する（ステップＳ２０２７）。
【０１０８】
再生アプリ１２１１は、仮想マシン１２３１及び汎用ＯＳを介して、データ変更通知を受け取る（ステップＳ２０２７）。続いて、再生アプリ１２１１は、データ変更通知に含まれる領域識別子の示す共有データ領域１２５５に記憶されている権利情報を読み出し、読み出した権利情報を基に再生停止時刻及びタイマー設定時刻を決定する（ステップＳ２０３４）。タイマー１２５４を決定したタイマー設定時刻に設定する（ステップＳ２０３６）。続いて、再生アプリ１２１１は、汎用ＯＳ及び仮想マシン１２３１を介して、再生を指示されたコンテンツに対応する共有データ領域１２５５を示す領域識別子及び通知タイミング情報「Ｂ」を含む通知タイミング情報変更依頼を仮想マシンモニタ１２４０へ出力する（ステップＳ２０３７）。
【０１０９】
次に、再生アプリ１２１１は、ハードウェア１２５０に含まれるデコーダ及び再生機構に、コンテンツ再生を指示する（ステップＳ２０４１）。
デコーダ及び再生機構は、再生アプリ１２１１からの指示に従って、コンテンツのデコード及び再生を開始する（ステップＳ２０４２）。
再生を指示した後、再生アプリ１２１１は、アイドル状態に遷移する（ステップＳ２０４４）。
【０１１０】
再生アプリ１２１１がアイドル状態に遷移すると、仮想マシン１２３１は、省電力状態に遷移する（ステップＳ２０４６）。
仮想マシンモニタ１２４０内の共有データ管理部１２４３は、第２仮想実行部１５０２から通知タイミング情報変更依頼を受け取る（ステップＳ２０３７）。共有データ管理部１２４３は、受け取った通知タイミング情報変更依頼に含まれる領域識別子と対応する管理情報１４１０に含まれ、再生アプリ１２１１に対応する通知タイミング情報を変更する（ステップＳ２０３８）。
【０１１１】
ステップＳ２０２１において、データ変更依頼を出力した後、所定時間経過すると、ＤＲＭアプリ１２１０は、アイドル状態に遷移する（ステップＳ２０３２）。
ＤＲＭアプリ１２１０がアイドル状態になると、仮想マシン１２３０は、省電力状態に遷移する（ステップＳ２０３２）。
第１仮想実行部１５０１及び第２仮想実行部１５０２双方が省電力状態になると、携帯端末１２００自体がアイドル状態に遷移し（ステップＳ２０４８）、何らかの割込が発生するまで待機する。この間も、デコーダ及び再生機構は、コンテンツ再生を継続している。
【０１１２】
利用者が、権利情報の取得を指示するキー操作を行い、割込が発生すると（ステップＳ２０４９）、第１仮想実行部１５０１を構成する仮想マシン１２３０及びＤＲＭアプリ１２１０は、通常状態に復帰する（ステップＳ２０５１）。
ＤＲＭアプリ１２１０は、キー操作による指示に従って、権利管理サーバ１１００から再生中のコンテンツに係る権利情報を新たに取得する（ステップＳ２０５２）。続いて、共有データ領域１２５５を示す領域識別子及び取得した権利情報を含むデータ変更依頼を生成し、生成したデータ変更依頼をＲＴＯＳ１２２０及び仮想マシン１２３０を介して、仮想マシンモニタ１２４０へ出力する（ステップＳ２０５４）。
【０１１３】
仮想マシンモニタ１２４０内の共有データ変更部１２６１は、第１仮想実行部１５０１からデータ変更依頼を受け取り（ステップＳ２０５４）、受け取ったデータ変更依頼に従って、共有データ領域１２５５の記憶している権利情報を変更する（ステップＳ２０５６）。
権利情報が変更されると、データ変更通知部１２６３は、仮想マシン間通知管理部１２４２へデータ変更通知依頼を出力する（ステップＳ２０５７）。
【０１１４】
データ変更通知依頼を受け取ると、仮想マシン間通知管理部１２４２は、データ変更通知を出力するタイミングの判定を開始する（ステップＳ２０５８）。
仮想マシンモニタ１２４０は、ステップＳ２０５８による判定結果に応じて、第２仮想実行部へデータ変更通知を出力する（ステップＳ２０５９）。
タイマー１２５４による割込、仮想マシンモニタ１２４０による割込又は利用者のキー入力による割込が発生すると（ステップＳ２０６２）、第２仮想実行部１５０２の仮想マシン１２３１及び再生アプリ１２１１は、通常状態に復帰する（ステップＳ２０６３）。
【０１１５】
第２仮想実行部は、通常状態に復帰した後、仮想マシンモニタ１２４０からデータ変更通知を受け取っておらず（ステップＳ２０６４のＮＯ）、ステップＳ２０３４において決定した再生停止時刻に達していなければ（ステップＳ２０６６のＮＯ）、データ変更通知を受け取るか、再生停止時刻に達するまで待機する。
データ変更通知を受け取る前に（ステップＳ２０６４のＮＯ）、再生停止時刻に達すると（ステップＳ２０６６）、再生アプリ１２１１は、デコーダにコンテンツ再生の停止を指示する（ステップＳ２０６７）。
【０１１６】
この指示を受けて、デコーダ及び再生機構は、コンテンツ再生を停止する。
データ変更通知を受け取ると（ステップＳ２０６４のＹＥＳ）、再生アプリ１２１１は、共有データ領域１２５５に記憶されている変更後の権利情報を参照し、新たに再生停止時刻を決定する（ステップＳ２０６９）。このとき、コンテンツ再生中であれば（ステップＳ２０７１のＹＥＳ）、再生アプリ１２１１は、新たに決定した再生停止時刻まで、再生を継続させる。
【０１１７】
コンテンツ再生が停止されていれば（ステップＳ２０７１のＮＯ）、再生アプリ１２１１は、デコーダに再生の再開を指示する（ステップＳ２０７２）。
なお、ステップＳ２０４９において、再生中のコンテンツの権利情報の追加取得の要求が発生しない場合には、第２仮想実行部１５０２のＳ２０６２以降の動作が異なる。この場合、ステップＳ２０６２において、タイマー割込が発生する。ステップＳ２０６６において、再生停止時刻に達すると（ステップＳ２０６６のＹＥＳ）、再生アプリ１２１１は、デコーダに再生停止を指示して（ステップＳ２０６７）、携帯端末１２００によるコンテンツ再生の動作は一旦終了する。
【０１１８】
（２）仮想マシンモニタ１２４０による通知判定の動作
仮想マシン間通知管理部１２４２は、データ変更通知部１２６３からデータ変更通知依頼を受け取る。また、第１仮想実行部及び第２仮想実行部のいずれかから各種の指示や依頼の仲介を依頼される。この際、仮想マシンモニタ１２４０内では、依頼された内容を通知するタイミングの判定（通知判定と呼ぶ）を行い、判定されたタイミングにおいて、仮想マシン間通知管理部１２４２は、依頼された内容を通知する。
【０１１９】
図１６及び図１７は、この通知判定における仮想マシンモニタの動作を示すフローチャートである。これは、図１２のステップＳ２０１６、ステップＳ２０２６及び図１５のステップＳ２０５８の詳細である。
以下、図１６及び図１７を用いて、通知判定における動作について説明する。ここで、仮想マシン間通知管理部１２４２の受け取る依頼には、通知先の仮想実行部に含まれるＯＳ及びアプリケーションを示すＯＳ識別子及びアプリ識別子、通知内容に関連する共有データ領域を示す領域識別子が含まれている。
【０１２０】
仮想マシン間通知管理部１２４２は、受け取ったＯＳ識別子と対応する仮想マシンの動作状態を、仮想マシン管理部１２４１へ問い合わせる（ステップＳ２２０１）。
問合せの結果、省電力状態でなければ（ステップＳ２２０２のＮＯ）、仮想マシン間通知管理部１２４２は、直ちに依頼された通知内容を、通知先の仮想マシンへ出力する（ステップＳ２２０３）。
【０１２１】
省電力状態であれば（ステップＳ２２０２のＹＥＳ）、仮想マシン間通知管理部１２４２は、受け取った領域識別子、ＯＳ識別子及びアプリ識別子を含む判定依頼を、レジューム判定部１２４４へ出力する（ステップＳ２２０６）。
レジューム判定部１２４４は、共有データ管理部１２４３内の通知タイミング情報取得部１２６４から、受け取った領域識別子、ＯＳ識別子及びアプリ識別子に該当する通知タイミング情報を取得する（ステップＳ２２０７）。
【０１２２】
取得した通知タイミング情報が「Ａ：すぐに通知する必要がある」の場合（ステップＳ２２０８のＡ）、レジューム判定部１２４４は、判定結果「すぐに復帰」を出力する（ステップＳ２２１１）。
仮想マシン間通知管理部１２４２は、判定結果「すぐに復帰」を受け取り、仮想マシン管理部１２４１へ、通知先の仮想マシンの復帰を依頼する（ステップＳ２２１２）。
【０１２３】
仮想マシン管理部１２４１は、割込を発生させて、通知先の仮想マシンを通常状態に復帰させる（ステップＳ２２１３）。
通知先の仮想マシンが通常状態に復帰し次第、仮想マシン間通知管理部１２４２は、通知内容を通知先の仮想マシンへ出力する（ステップＳ２２１４）。
取得した通知タイミング情報が「Ｃ：省電力状態から復帰した際に通知すればよい」である場合（ステップＳ２２０８のＣ）、レジューム判定部１２４４は、判定結果「復帰しない」を出力する（ステップＳ２２２６）。
【０１２４】
仮想マシン間通知管理部１２４２は、判定結果「復帰しない」を受け取り、依頼された通知内容を待ちイベント記憶部１２４６へ出力する（ステップＳ２２２７）。割込発生により通知先の仮想マシンが通常状態に復帰すると、仮想マシン間通知管理部１２４２は、待ちイベント記憶部１２４６の記憶していた通知内容を、通知先の仮想マシンへ出力する（ステップＳ２２２８）。
【０１２５】
取得した通知タイミング情報が「Ｂ：決められた時間の範囲内で通知すればよい」である場合（ステップＳ２２０８のＢ）、レジューム判定部１２４４は、割込発生予定時刻取得部１２４５に、割込発生予定時刻の取得を指示する（ステップＳ２２１６）。
次に、割込発生予定時刻取得部１２４５は、タイマー１２５４から、タイマー設定時刻を取得し、取得したタイマー設定時刻を割込発生予定時刻としてレジューム判定部１２４４へ通知する（ステップＳ２２１７）。
【０１２６】
レジューム判定部１２４４は、タイマー設定時刻からイベント実行時間ｔ１を差し引いた基準時刻Ｔ１を算出する（ステップＳ２２１８）。続いて、レジューム判定部１２４４は、基準時刻Ｔ１と、現在時刻Ｔｎとを比較する（ステップＳ２２２１）。
比較の結果、Ｔ１＞Ｔｎの場合（ステップＳ２２２１のＴ１＞Ｔ２）、レジューム判定部１２４４は、基準時刻Ｔ１にタイマー１２５４をセットしなおし（ステップＳ２２２２）、ステップＳ２２２６へ処理を移す。
【０１２７】
比較の結果、Ｔ１≦Ｔｎの場合（ステップＳ２２２１のＴ１≦Ｔｎ）、レジューム判定部１２４４は、ステップＳ２２１１へ処理を移す。
２．６  まとめ
以上、説明してきたように実施の形態１では、仮想マシン間通知管理部１２４２で、省電力状態から通常状態へ復帰させるかどうかの判断結果に応じて、イベントを通知したり、しなかったりすることで、省電力状態から通常状態への状態遷移の回数を減らし、機器の省電力化を実現すると共に、イベントを適切なタイミングで通知できる仮想マシン間通知管理部１２４２を搭載した携帯端末１２００を実現することが可能となる。
【０１２８】
なお、実施の形態１では、基準時刻Ｔ１＞現在時刻Ｔｎの場合、基準時刻Ｔ１をタイマー１２５４に設定しなおすとが、基準時刻Ｔ１以前の時刻であれば、いつでもよい。
また、コンテンツの再生中、つまり、第２仮想実行部１５０２が省電力状態の間に、第１仮想実行部１５０１は、利用者の操作に従って権利情報の取得し、仮想マシンモニタ１２４０は、再生アプリに対応する通知タイミング情報を基に決定したタイミングにおいて、権利情報の変更を第２仮想実行部１５０２へ通知するとした。しかし、第２仮想実行部１５０２が省電力状態の間に、権利情報の変更などの通知すべき事象が生じなかった場合にも、第２仮想実行部１５０２が通常状態に復帰したときに、仮想マシンモニタ１２４０は、通知すべき事象が生じなかった旨を通知するとしてもよい。
【０１２９】
上記の場合において、通知すべき事象が生じなかった旨を通知するためのイベント実行時間ｔ１’とし、イベント実行時間ｔ１は、仮想マシン１２３１を介して、権利情報の変更の要する時間に加えて、再生アプリ１２１１が変更後の権利情報を参照する時間も含むとすると、ｔ１’＜Ｔ１となる。
従って、データ変更が起こった場合の基準時刻Ｔ１、データ変更が生じなかった場合の基準時刻Ｔ１’は、Ｔ１＜Ｔ２を満たす。
【０１３０】
また、上記の実施の形態１では、第１仮想実行部１５０１からデータ変更依頼を受けて、共有データ変更部１２６１は、データ変更通知部１２６３へ、変更通知依頼を出力し、データ変更通知部１２６３は、仮想マシン間通知管理部１２４２へデータ変更通知依頼を出力する。しかし、データ変更通知部１２６３が、共有データ領域１２５５を監視しており、記憶されている内容が変更されているかどうかをチェックし、変更されている場合にデータ変更通知依頼を仮想マシン間通知管理部１２４２へ出力するとしてもよい。
【０１３１】
また、実施の形態１において、権利情報には、コンテンツの再生に関する制限情報が含まれているとしたが、コンテンツの一部又は全部が含まれているとしてもよい。この場合、既に取得済みのコンテンツを再生している間に、ＤＲＭアプリは、再生中のコンテンツの続きを含んだ権利情報を取得する。
また、上記の実施の形態でレジューム判定部１２４４は、現在時刻と基準時刻とを比較することで判定結果を導いているが、この方法に限定されるものではない。例えば、現在時刻からタイマー設定時刻までの時間（省電力継続予定時間ｔ３）を算出し、算出した省電力継続予定時間ｔ３とイベント実行時間ｔ２とを比較してもよい。この場合、ｔ３≦ｔ２であれば、レジューム判定部１２４４は、判定結果「すぐ復帰する」を出力する。ｔ３＞ｔ２であれば、レジューム判定部１２４４は、判定結果「復帰しない」を出力し、タイマー１２５４を基準時刻Ｔ１若しくは基準時刻以前の時刻Ｔ１−αに設定しなおす。
３．  実施の形態２
本発明実施の形態２では、本発明をＴＣＧに対応した携帯端末に応用した例を説明する。
３．１  ＴＣＧについて
ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）は、プラットフォームの信頼性を保証することにより、安全なコンピューティング環境を実現しようと考えている業界団体である。
【０１３２】
ＴＣＧは、Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ（以下、ＴＰＭ）と呼ばれる耐タンパー化されたモジュールを用いて、正当性の測定（Ｉｎｔｅｇｒｉｔｙ  Ｍｅａｓｕｒｅｍｅｎｔ）と呼ばれる機能を実現する。この機能は、ソフトウェアのハッシュ値（以下、測定結果、測定値とも呼ぶ）を計算（測定）し、計算したハッシュ値をＴＰＭ内のＰｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ（以下、ＰＣＲ）に安全に保存する機能である。ＴＰＭ内部では、ＰＣＲへハッシュ値を保存するときに、その時のＰＣＲの値と新しく保存するハッシュ値とを結合したデータに対してハッシュ値を計算し、その計算結果を新しいＰＣＲの値として保存する（以下、この処理を「測定結果をＰＣＲに反映する」とも呼ぶ）。この機能を利用して、ＴＰＭからＢＩＯＳ、ＯＳとソフトウェアを連鎖的にチェックし、それぞれのハッシュ値をＰＣＲに保存することで、正しいソフトウェアが正しい順番で起動したかを確認することができ、信頼できるソフトウェア実行環境を構築できる。
【０１３３】
さらに、ＴＰＭは、ＢＩＯＳを測定したときに、測定結果であるハッシュ値が所定の値であるかを調べることで、ＢＩＯＳが改ざんされていないかを検証し、改ざんされていた場合に起動を停止する。同様にＢＩＯＳがＯＳの測定と検証を行い、ＯＳが改ざんされていた場合に起動を停止するというように、測定（ハッシュ値の計算）と検証を行うことで、不正なソフトウェが動作できない安全なソフトウェア実行環境も構築できる。
【０１３４】
また、ソフトウェアの測定と検証を行う機能は、プログラム起動時だけでなく、プログラムの実行中に定期的に実行されたり、ソフトウェア中で鍵などの保護が必要なコードやデータを扱う処理を行う前に実行される。こうすることで、プログラムの実行中にデバッガなどを用いてプログラムが改ざんされたことを検出することが出来る、ソフトウェア実行環境を構築できる。
【０１３５】
ＴＰＭは、上記機能の他に、ＴＰＭ外部から利用できる機能としての暗復号機能やハッシュ計算機能を持ち、ＴＰＭを搭載した機器で暗号化されたデータの復号や、ハッシュを用いたデータの改ざん検出などに利用できる。
３．２  携帯端末１２００の構成
図１８は、本発明実施の形態２における携帯端末１２００の構成図である。図１８において、図３と同じ構成要素については同じ符号を用い、説明を省略する。
【０１３６】
図１８において、携帯端末１２００は、図３の構成に加えて、ＴＰＭ−ＯＳ１２２２、ＤＲＭアプリ１２１０、通信アプリ１２１４、ＴＰＭモジュール１２１２、１２１３、ＴＰＭ１２５６から構成される。
ＴＰＭ−ＯＳ１２２２は仮想マシン１２３２上で動作するＯＳであり、ＴＰＭモジュール１２１２、１２１３は、ＴＰＭ−ＯＳ１２２２上で動作するアプリケーションソフトである。
【０１３７】
ＴＰＭ１２５６は、ハードウェアモジュールであり、携帯端末１２００起動時のブートシーケンスにおいて、一番初めに実行するプログラムが格納されている。ＴＰＭモジュール１２１２、１２１３は、ＴＰＭの機能をソフトウェアで実現するアプリケーションソフトであり、それぞれ異なる識別子を持つことで、異なるＴＰＭとして動作する。ＴＰＭ−ＯＳ１２２２上で複数のＴＰＭモジュールを動作させることで、端末製造メーカー、通信キャリア、著作権管理会社等、それぞれの会社毎に異なるＴＰＭを利用することが出来る。
【０１３８】
上記のような構成にすることで、例えば、ＴＰＭ１２５６を端末製造メーカーが、ＴＰＭモジュール１２１２を通信キャリアが、ＴＰＭモジュール１２１３を著作権管理会社が利用するなどの複数の事業者がそれぞれ自分のＴＰＭを利用する構成が可能になる。この時、ＴＰＭ１２５６は、仮想マシンモニタ１２４０やＴＰＭ−ＯＳ１２２２などの端末を動作させるために必要なソフトウェアの検証や測定などに利用する。ＴＰＭモジュール１２１２は、仮想マシン１２３０上で動作するＲＴＯＳ１２２０や通信アプリ１２１４などの通信を行うために必要なソフトウェアの検証や測定などに利用する。ＴＰＭモジュール１２１３は、ＤＲＭアプリ１２１０などのコンテンツの著作権処理を行うソフトウェアの検証や測定などに利用する。
【０１３９】
なお、全ＴＰＭ（ＴＰＭモジュールを含む）の信頼性を確保するため、本実施の形態では、以下のような処理を行う。さらに、ＴＰＭ１２５６がＴＰＭモジュール１２１２の検証と測定を行い、ＴＰＭモジュール１２１２がＴＰＭモジュール１２１３の検証と測定を行う。こうすることで、ＴＰＭ１２５６からの信頼の連鎖をＴＰＭモジュール１２１３までつなぎ、携帯端末１２００内のセキュリティを確保しつつ、複数のＴＰＭを利用することが出来る。
【０１４０】
なお、本発明実施の形態１では、ＴＰＭモジュール１２１２、１２１３はＴＰＭの機能をソフトウェアで実現するアプリケーションソフトであるとしたが、これに限定するものではなく、ＴＰＭの機能の一部、例えば暗復号機能やハッシュ計算機能などのＴＰＭ間で共有できる機能はハードウェアにより実現してもよい。さらに、ＴＰＭ１２５６が複数のコンテキストを切り替える機構を搭載し、ＴＰＭモジュール１２１２、１２１３は、ＴＰＭを利用するアプリケーションソフトへのインタフェースを提供するだけで、実際の処理はＴＰＭ１２５６が行う構成にしてもよい。
【０１４１】
ＤＲＭアプリ１２１０は、実施の形態１のＤＲＭアプリ１２１０と同等の機能を持つアプリケーションソフトである。ただし、本実施の形態では、ＴＰＭモジュール１２１３（著作権管理会社用のＴＰＭモジュール）から起動され、動作を開始する。また、ＤＲＭアプリ１２１０は、動作中にデータの暗復号処理等が必要になったときには、ＴＰＭモジュール１２１３への処理イベントを生成し、仮想マシンモニタ１２４０の仮想マシン間通知管理部１２４２を通して、ＴＰＭモジュール１２１３に処理依頼を行う。
【０１４２】
通信アプリ１２１４は、携帯端末１２００による外部との通信の処理を司るアプリケーションソフトウェアである。通信アプリ１２１４は、ＲＴＯＳ１２２０により起動され、ＴＰＭモジュール１２１２（通信キャリア用のＴＰＭモジュール）によって検証と測定が行われる。通信アプリ１２１４は、動作中にデータの暗復号処理等が必要になったときには、ＴＰＭモジュール１２１２への処理イベントを生成し、仮想マシンモニタ１２４０の仮想マシン間通知管理部１２４２を通して、ＴＰＭモジュール１２１２に処理依頼を行う。
【０１４３】
ＴＰＭ−ＯＳ１２２２は、ＴＰＭモジュール１２１２およびＴＰＭモジュール１２１３に実行環境を提供するＯＳである。ＴＰＭ−ＯＳ１２２２は、ＴＰＭモジュール１２１２や１２１３が動作していないときには、仮想マシン１２３２を省電力状態へ移行する。また、ＤＲＭアプリ１２１０や通信アプリ１２１４からＴＰＭモジュール１２１２や１２１３への処理要求が発生したとき等、仮想マシン１２３２が動作する必要があるときに省電力状態から復帰する。
【０１４４】
続いて、実施の形態２に処理イベントの詳細を説明する。図１９は、実施の形態２における処理イベントのデータ構造を示す図である。なお、このデータ構造は、ＴＰＭモジュール１２１２への処理も、ＴＰＭモジュール１２１３への処理も同じである。
図１９において、処理イベント情報１４２０のデータ構造は、処理を依頼するアプリケーションソフトが動作しているＯＳを識別するための依頼先ＯＳ識別子１４２１と、処理を依頼するアプリケーションソフトを識別するための依頼先アプリケーションソフト識別子１４２２と、依頼する処理を識別するための処理識別子１４２３と、処理に必要なデータ１４２４から構成される。依頼先ＯＳ識別子１４２１は、仮想マシンモニタ１２４０上で動作しているＯＳを識別するためのＩＤ番号や名前のような識別子であり、例えば、「１」や「ＴＰＭ−ＯＳ」などである。依頼先アプリケーションソフト識別子１４２２は、ＯＳ上で動作しているアプリケーションソフトを識別するためのＩＤ番号や名前のような識別子であり、例えば、「１２１２」や「ＴＰＭモジュール１」などである。
【０１４５】
ＤＲＭアプリ１２１０や通信アプリ１２１４は、ＴＰＭモジュール１２１２や１２１３へ処理を依頼するときに、処理イベント情報１４２０を生成し、仮想マシンモニタ１２４０の仮想マシン間通知管理部１２４２へイベントの通知を依頼する。処理イベント情報１４２０の生成に必要なＴＰＭモジュール１２１２、１２１３に対する依頼先ＯＳ識別子１４２１や依頼先アプリケーションソフト識別子１４２２は、ＤＲＭアプリ１２１０や通信アプリ１２１４が起動する時に設定ファイルから取得する。処理イベント情報１４２０の通知依頼を受けた仮想マシン間通知管理部１２４２は、処理イベント情報１４２０に示されている依頼先ＯＳ識別子１４２１や依頼先アプリケーションソフト識別子１４２２に基づいてイベントの通知を行う。
【０１４６】
ＴＰＭ−ＯＳ１２２２は、ＴＰＭモジュール１２１２、１２１３が動作していないときには、仮想マシン１２３２を省電力状態へ移行する。仮想マシン１２３２が省電力状態の時に、ＤＲＭアプリ１２１０や通信アプリ１２１４からＴＰＭモジュール１２１２や１２１３に対して処理依頼が来ると、実施の形態１と同様に、仮想マシン間通知管理部１２４２がレジューム判定部１２４４へ仮想マシン１２３２を省電力状態から通常状態へ復帰させるかどうかの判定を依頼する。レジューム判定部１２４４は、省電力状態から通常状態へ復帰させると判定した場合には、仮想マシン間通知管理部１２４２は、仮想マシン管理部１２４１へ仮想マシン１２３２を省電力状態から通常状態へ復帰させるよう依頼する。この依頼を受けた仮想マシン間通知管理部１２４２は、仮想マシン１２３２が通常状態へ復帰した時に処理イベント情報１４２０を通知する。一方、レジューム判定部１２４４が省電力状態から通常状態へ復帰させないと判定した場合には、仮想マシン間通知管理部１２４２は待ちイベント記憶部１２４６へ処理イベント情報１４２０を記憶し、別の要因で通知先の仮想マシン１２３２が省電力状態から通常状態へ復帰したときに処理イベント情報１４２０を通知する。
３．３  携帯端末１２００のブートシーケンス
図２０〜図２５は、本発明実施の形態２における携帯端末１２００のブートシーケンスである。電源投入時からのブート処理を順に説明する。
【０１４７】
携帯端末１２００は、電源が投入されるとＴＰＭ１２５６内のブートプログラムが実行される（Ｓ２１００）。ブートプログラムは、自身の測定を行い、測定結果をＴＰＭ１２５６のＰＣＲに反映する（Ｓ２１０１）。ブートプログラムは、仮想マシンモニタ１２４０の測定を行い、仮想マシンモニタ１２４０が改ざんされていないかチェックする（Ｓ２１０２）。改ざんされていた場合は処理を停止し（Ｓ２１０３）、改ざんされていない場合には測定結果をＴＰＭ１２５６のＰＣＲに反映し仮想マシンモニタ１２４０を実行する（Ｓ２１０４）。仮想マシンモニタ１２４０は、ＴＰＭ１２５６を利用して仮想マシン１２３２の測定を行い、仮想マシン１２３２が改ざんされていないかチェックする（Ｓ２１０５）。改ざんされていた場合は処理を停止し（Ｓ２１０６）、改ざんされていない場合には測定結果をＴＰＭ１２５６のＰＣＲに反映し仮想マシン１２３２を起動する（Ｓ２１０７）。仮想マシン１２３２は、仮想化されたＢＩＯＳを実行し、ＴＰＭ１２５６を利用してＴＰＭ−ＯＳ１２２２の測定を行い、ＴＰＭ−ＯＳ１２２２が改ざんされていないかチェックする（Ｓ２１０８）。改ざんされていた場合は処理を停止し（Ｓ２１０９）、改ざんされていない場合には測定結果をＴＰＭ１２５６のＰＣＲに反映しＴＰＭ−ＯＳ１２２２を実行する（Ｓ２１１０）。ＴＰＭ−ＯＳ１２２２は、起動処理が終了しＴＰＭモジュールが動作できる状態になると、その旨を仮想マシンモニタ１２４０へ通知する（Ｓ２１１１）。この状態で、仮想マシン１２３０を動作できる状態が整う。
【０１４８】
次に仮想マシンモニタ１２４０は、ＴＰＭ１２５６を利用して仮想マシン１２３０の測定を行い、仮想マシン１２３０が改ざんされていないかチェックする（Ｓ２１１２）。改ざんされていた場合には処理を停止し（Ｓ２１１３）、改ざんされていない場合には測定結果をＴＰＭ１２５６のＰＣＲに反映し仮想マシン１２３０を起動する（Ｓ２１１４）。仮想マシン１２３０は、仮想化されたＢＩＯＳを実行し、仮想マシン１２３０上でＯＳが動作できる状態になると、その旨を仮想マシンモニタ１２４０へ通知する（Ｓ２１１５）。この状態で、ＲＴＯＳ１２２０を動作できる状態が整う。携帯端末１２００を製造する端末製造メーカとしては、この状態までのセキュリティを保証すればよい。
【０１４９】
続いて、通信キャリアが、通信に利用するＲＴＯＳ１２２０および通信アプリ１２１４などのアプリケーションソフトのセキュリティを確保するための処理の説明に移る。上述したように、ＲＴＯＳ１２２０および通信アプリ１２１４は、ＴＰＭ１２５６とは別の通信キャリア用のＴＰＭモジュール１２１２を利用して起動する。
セキュリティを確保するためには、まず、通信キャリア用のＴＰＭモジュール１２１２を起動させる必要がある。したがって、仮想マシンモニタ１２４０は、ＴＰＭ−ＯＳ１２２２にＴＰＭモジュール１２１２の実行を依頼する（Ｓ２１１６）。仮想マシンモニタ１２４０は、この依頼時に、仮想マシンモニタ１２４０はＲＴＯＳ１２２０の実行ファイルの保存先とロード先を通知し、また、ＴＰＭモジュール１２１２の測定にＴＰＭ１２５６を利用するようにＴＰＭ−ＯＳ１２２２へ通知する。ここで、ＴＰＭ１２５６はすでに改ざんがないことが確認されているので、ＴＰＭ１２５６を用いることで信頼できる環境下でＴＰＭモジュール１２１２の測定を行うことができる。ＴＰＭ−ＯＳ１２２２は、ＴＰＭ１２５６を利用してＴＰＭモジュール１２１２の測定を行い、ＴＰＭモジュール１２１２が改ざんされていないかチェックする（Ｓ２１１７）。改ざんされていた場合には処理を停止し、仮想マシンモニタ１２４０へ実行失敗を通知する（Ｓ２１１８）。改ざんされていない場合には、測定結果をＴＰＭ１２５６のＰＣＲに反映し、仮想マシンモニタ１２４０から通知されたＲＴＯＳ１２２０の実行ファイルの保存先とロード先を引数にしてＴＰＭモジュール１２１２を実行する（Ｓ２１１９）。ＴＰＭモジュール１２１２は、ＴＰＭモジュール１２１２自身の測定を行いＴＰＭモジュール１２１２内のＰＣＲに反映する（Ｓ２１２０）。ＴＰＭモジュール１２１２は、引数として与えられたＲＴＯＳ１２２０の実行ファイルの保存先から実行ファイルを読み込み、ロード先へロードする（Ｓ２１２１）。ＴＰＭモジュール１２１２は、ＴＰＭモジュール１２１２自身を利用してＲＴＯＳ１２２０の測定を行い、ＲＴＯＳ１２２０が改ざんされていないかチェックする（Ｓ２１２２）。改ざんされていた場合は処理を停止し、ＴＰＭ−ＯＳ１２２２を通して仮想マシンモニタ１２４０へ実行失敗を通知する（Ｓ２１２３）。改ざんされていない場合には、測定結果をＴＰＭモジュール１２１２のＰＣＲに反映し、ＲＴＯＳ１２２０を実行する（Ｓ２１２４）。ＲＴＯＳ１２２０は、ＴＰＭモジュール１２１２を利用して通信アプリ１２１４の測定を行い、通信アプリ１２１４が改ざんされていないかチェックする（Ｓ２１２５）。改ざんされていた場合には処理を停止し、ＲＴＯＳ１２２０へ実行失敗を通知する（Ｓ２１２６）。改ざんされていない場合には、測定結果をＴＰＭモジュール１２１２のＰＣＲに反映し、通信アプリ１２１４を実行する（Ｓ２１２７）。
【０１５０】
上記のようにすると、ＲＴＯＳ１２２０および通信アプリ１２１４などのアプリケーションソフトを、通信キャリア用のＴＰＭで改ざんのないことを確認した上で、通信キャリアが提供する通信サービスを利用できる。
続いて、著作権管理会社が、ＤＲＭアプリ１２１０などのアプリケーションソフトのセキュリティを確保したいするための動作の説明に移る。上述したように、ＤＲＭアプリ１２１０はＴＰＭ１２５６やＴＰＭモジュール１２１２とは別の著作権管理会社用のＴＰＭモジュール１２１３を利用して起動する。
【０１５１】
セキュリティの確保を実現するために、ＲＴＯＳ１２２０は、ＴＰＭモジュール１２１２にＴＰＭモジュール１２１３の実行を依頼する（Ｓ２１２８）。ここで、ＴＰＭモジュール１２１２はすでに改ざんがないことが確認されているので、ＴＰＭモジュール１２１３の実行および改ざんの有無の確認を安全な環境下で行うことができる。ＲＴＯＳ１２２０は、依頼時に、ＲＴＯＳ１２２０はＤＲＭアプリ１２１０の実行ファイルの保存先とロード先を通知する。ＴＰＭモジュール１２１２は、起動時に読み込む設定ファイルに記されている場所に保存されている、ＴＰＭモジュール１２１３の測定を行い、ＴＰＭモジュール１２１３が改ざんされていないかチェックする（Ｓ２１２９）。改ざんされていた場合には処理を停止し、ＲＴＯＳ１２２０へ実行失敗を通知する（Ｓ２１３０）。改ざんされていない場合には、測定結果をＴＰＭモジュール１２１２のＰＣＲに反映し、ＲＴＯＳ１２２０から通知されたＤＲＭアプリ１２１０の実行ファイルの保存先とロード先を引数にしてＴＰＭモジュール１２１３を実行する（Ｓ２１３１）。ＴＰＭモジュール１２１３は、ＴＰＭモジュール１２１３自身の測定を行い、測定結果をＴＰＭモジュール１２１３内のＰＣＲに反映する（Ｓ２１３２）。ＴＰＭモジュール１２１３は、引数として与えられたＤＲＭアプリ１２１０の実行ファイルの保存先から実行ファイルを読み込み、ロード先へロードする（Ｓ２１３３）。ＴＰＭモジュール１２１３は、ＤＲＭアプリ１２１０の測定を行い、ＤＲＭアプリ１２１０が改ざんされていないかチェックする（Ｓ２１３４）。改ざんされていた場合には処理を停止し、ＲＴＯＳ１２２０へ実行失敗を通知する（Ｓ２１３５）。改ざんされていない場合には、測定結果をＴＰＭモジュール１２１３のＰＣＲに反映し、ＤＲＭアプリ１２１０を実行する（Ｓ２１３６）。
【０１５２】
上記のようにすると、ＤＲＭアプリ１２１０などのアプリケーションソフトを、著作権管理会社用のＴＰＭで改ざんのないことを確認した上で、著作権管理会社が提供する権利購入サービスを利用できる。
３．４  省電力状態からの復帰判定方法
続いて、仮想マシン１２３２が省電力状態の時に、その仮想マシン１２３２を復帰させるかどうかを判定する処理についての説明を行う。
【０１５３】
レジューム判定部１２４４は、仮想マシン１２３２が省電力状態の時に処理イベント情報１４２０が発生すると、仮想マシン１２３２を省電力状態から復帰させて、処理イベント情報１４２０を通知するか否かの判定を行う。
レジューム判定部１２４４は、判定を、処理イベント情報１４２０の処理識別子１４２３に基づいて行う。まず、レジューム判定部１２４４は、システム起動時に、通知タイミング管理情報１４３０を設定ファイルから読み込む。通知タイミング管理情報は、処理イベントが発生した時に省電力状態から復帰して仮想マシンに通知すべきか否かが処理識別子１４２３ごとに記述された情報である。
【０１５４】
図２６は通知タイミング管理情報１４３０のデータ構造を示す図である。通知タイミング管理情報には、すぐに通知する必要があることを示す情報と省電力状態から復帰したときに通知すればよいことを示す情報の２種類の通知タイミングのいずれかが、処理識別子１４２３ごとに記述されている。それぞれの通知タイミング情報に対する復帰判定方法を下記に示す。
【０１５５】
通知タイミング情報が、処理イベントをすぐに通知する必要があることを示す場合の処理イベント情報１４２０の例としては、仮想マシンモニタ１２４０がＲＴＯＳ１２２０の実行をＴＰＭ−ＯＳ１２２２に依頼する処理や、実行中のプログラムのハッシュ値計算を依頼する処理などがある。これらの処理イベントは、携帯端末１２００内のセキュリティを確保するための処理イベントであり、セキュリティ的に重要な処理である。そのため、不正行為を防止するために、通知があってからできるだけ迅速に処理を行う必要がある。本実施の形態では、このような、セキュリティ的に重要な処理イベントの通知タイミングを、すぐに通知する必要がある場合とし、レジューム判定部１２４４は、処理イベントの処理識別子１４２３と設定ファイルとに基づいて、通知対象の仮想マシン１２３２を省電力状態から通常状態へ復帰させると判定する。
【０１５６】
省電力状態から復帰したときに通知すればよい場合の処理イベント情報１４２０の例としては、ＤＲＭアプリ１２１０がＴＰＭモジュール１２１３の暗復号機能を利用して権利情報などのデータを復号する処理など、アプリケーションがＴＰＭの機能を利用するときの処理イベントがある。この場合、レジューム判定部１２４４は、処理識別子１４２３と設定ファイルとに基づいて、通知対象の仮想マシン１２３２を省電力状態から通常状態へ復帰させないと判定する。そして、これらの処理は、実施の形態１と同様に次に別の要因で仮想マシン１２３２が復帰した時に仮想マシン１２３２に通知される。
【０１５７】
なお、本発明実施の形態２では、処理識別子１４２３によって識別される処理イベント情報１４２０が、携帯端末１２００におけるセキュリティの重要度に応じて通知タイミングを分類していた。具体的には、すぐに通知すればよい場合と省電力状態から復帰したときに通知すればよい場合とに分けていた。しかし、これに限定するものではない。例えば、携帯端末１２００内のソフトウェアを、ＴＰＭ１２５６により測定されるソフトウェア群、ＴＰＭモジュール１２１２により測定されるソフトウェア群、ＴＰＭモジュール１２１３により測定されるソフトウェア群と３つのソフトウェア群に分ける。そして、ＴＰＭモジュール１２１２により測定されるソフトウェア群から、ＴＰＭモジュール１２１３により測定されるソフトウェア群への処理イベントの通知タイミングをすぐに通知するとし、逆向きの処理イベントの通知タイミングを省電力状態から復帰したときに通知するというようにしてもよい。この場合、ＴＰＭ１２５６とＴＰＭモジュール１２１２、１２１３との関係によって構成されるソフトウェア群間の処理イベントの通知方向によって通知タイミングを分けている。
４．その他の変形例
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０１５８】
（１）本発明実施の形態１及び２では、携帯端末を例として説明したが、これに限られるものではない。テレビやパーソナルコンピュータ、光ディスクのプレイヤーなど他のデータ処理装置であってもよい。
（２）本発明実施の形態１では、アプリケーションソフトウェアが通知タイミングを指定し、本発明実施の形態２では、処理イベント毎に通知タイミングが指定されるとしていたが、これに限られるものではない。例えば、実施の形態１と２とで通知タイミングの指定方法を逆にしてもよいし、ユーザが通知タイミングをＩ／Ｏデバイスを介して指定できるなどとしてもよい。
【０１５９】
（３）本発明実施の形態１では、２つのアプリケーションソフトがコンテンツの権利情報を共有し、権利情報が更新されたときに、更新前の権利情報の示す再生権利がなくなる直前まで、権利情報の更新を通知しないとしたが、これに限定するものではなく、２つのアプリケーションソフトがコンテンツの再生などの処理の継続に必要なデータを共有し、一方のアプリケーションソフトがデータを参照して処理を継続するかを判定し、もう一方のアプリケーションソフトがデータを変更するシステムであればよい。例えば、コンテンツ中に早送りが可能な部分と、不可能な部分がある場合、コンテンツの早送りをする機能を有する装置において、コンテンツの早送りの継続の可否を判断する情報を２つのアプリケーションソフトで共有するとしても良い。この時、２つのアプリケーションソフトは、コンテンツの早送りを制御するアプリケーションソフトと、コンテンツに付加された情報から早送り可能かどうかを判断する情報を読み込み、共有データを変更するアプリケーションソフトであってもよい。また、テレビ番組の予約録画を行う装置で、ネットワーク経由でテレビ番組の放映時間を取得できる場合、放映時間を取得する放映時間取得アプリが、放映時間の変更を、予約された時間に番組を録画する予約録画アプリに通知する時に、予約した時間の直前まで放映時間の変更を通知しないとしても良い。また、ニュースなどの情報をネットワーク上のｗｗｗサイトから定期的に取得し、取得した情報を表示するようなアプリケーションソフトへの応用も考えられる。この場合、情報を取得するｗｗｗサイトのアドレスを、アドレス登録アプリと情報表示アプリで共有することが考えられる。この場合、アドレス登録アプリがｗｗｗサイトのアドレスを更新しても、情報表示アプリがｗｗｗサイトから表示用の情報を取得する直前まで、ｗｗｗサイトのアドレスの変更を情報表示アプリに通知しないようにしても良い。この様な構成にすることで、予約録画アプリや情報表示アプリが動作している仮想マシンが省電力状態になる場合に、省電力化を考慮したイベントの通知を行うことが出来る。
【０１６０】
（４）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１６１】
（５）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。なお、各装置は、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどの全てを含むコンピュータシステムには限らず、これらの一部から構成されているコンピュータシステムであってもよい。
【０１６２】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１６３】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
（６）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパー性を有するとしてもよい。
【０１６４】
（７）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０１６５】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０１６６】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（８）また、本発明は、複数の仮想マシンを管理するデータ処理装置であって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理装置は、前記複数の仮想マシンを管理する仮想マシン管理部と、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理部と、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理部と、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得部と、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定部と、前記レジューム判定部が、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理部で通知するイベントを記憶する待ちイベント記憶部とを備えるとしてもよい。
【０１６７】
（９）上記の変形例（８）において、前記イベントの通知タイミング情報は、前記１以上の仮想マシンが省電力状態であっても通知を行うことを示す情報と、あらかじめ決められた時間間隔の範囲内で通知を行うことを示す情報と、前記１以上の仮想マシンが省電力状態から通常状態へ復帰したときに通知を行うことを示す情報とがあり、前記レジューム判定部は、さらに、前記イベントの通知タイミング情報が、あらかじめ決められた時間間隔の範囲内で通知を行うことを示す場合に、前記割込発生時間取得部から割込発生時間を取得し、前記割込発生時間の値に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるか否かを判定することを特徴とする。
【０１６８】
（１０）上記の変形例（８）または（９）において、前記レジューム判定部は、さらに、前記割込発生時間が前記通常状態への復帰するための処理時間より長い場合に、前記１以上の仮想マシンそれぞれへ通知するイベントを前記待ちイベント記憶部へ記憶し、前記１以上の仮想マシンそれぞれは省電力状態から通常状態へ復帰させないと判定するとしてもよい。
【０１６９】
（１１）上記の変形例（８）〜（１０）のいずれかにおいて、前記レジューム判定部は、さらに、前記割込発生時間が前記通常状態への復帰するための処理時間より短い場合に、前記１以上の仮想マシンそれぞれは省電力状態から通常状態へ復帰させると判定するとしてもよい。
（１２）また、上記の変形例（８）〜（１１）において、前記レジューム判定部は、さらに、前記通知タイミング情報が、前記１以上の仮想マシンが省電力状態であっても通知を行うことを示す場合に、前記１以上の仮想マシンそれぞれを省電力状態から通常状態へ復帰させると判定するとしてもよい。
【０１７０】
（１３）また、上記の変形例（８）〜（１２）において、前記レジューム判定部は、さらに、前記通知タイミング情報が、前記１以上の仮想マシンが省電力状態から通常状態へ復帰したときに通知を行うことを示す場合に、前記１以上の仮想マシンそれぞれを省電力状態から通常状態へ復帰させないと判定するとしてもよい。
（１４）また、上記の変形例（８）〜（１３）の前記データ処理装置は、さらに、前記複数の仮想マシンそれぞれで動作する複数のプログラムを備え、前記複数の仮想マシンそれぞれは、仮想マシンを識別するための仮想マシン識別子を備え、前記複数のプログラムは、前記共有データ管理部が管理する共有データを利用し、前記複数のプログラムそれぞれは、プログラムを識別するためのプログラム識別子を備え、前記共有データ管理部は、前記共有データを管理する管理情報を前記共有データ毎に備え、前記管理情報は、前記共有データを利用するプログラムのプログラム識別子と、前記プログラムが動作する仮想マシンの仮想マシン識別子と、前記通知タイミング情報とから構成されるとしてもよい。
【０１７１】
（１５）また、上記の変形例（８）〜（１４）の前記データ処理装置は、さらに、あらかじめ設定された時間に割込を発生させるタイマーを備え、前記複数の仮想マシンは前記通常状態復帰用割り込みとして前記タイマーに割り込みを発生させる時間を設定し、前記割込発生時間取得部は、さらに、前記通常状態復帰用割り込みが発生するまでの時間を前記タイマーから取得するとしてもよい。
【０１７２】
（１６）また、本発明は、上記の変形例（８）に記載のデータ処理装置と権利管理サーバと記憶装置からなる権利配信システムであって、前記記憶装置は、暗号化されたコンテンツ情報を格納し、前記権利管理サーバは、前記データ処理装置から前記コンテンツ情報の使用権利の取得要求に対して、前記コンテンツ情報の使用権利に関する権利情報を前記データ処理装置へ送信し、前記データ処理装置は、前記複数の仮想マシンと、前記複数の仮想マシンに含まれる第１の仮想マシン上で動作する第１のプログラムと、前記複数の仮想マシンに含まれる第２の仮想マシン上で動作する第２のプログラムとを備え、前記第１のプログラムは前記権利管理サーバから前記権利情報を受信し、前記第２のプログラムは前記権利情報に含まれる前記復号鍵を使用して暗号化された前記コンテンツ情報を復号化し、前記第１と第２のプログラムは、前記権利情報を前記共有データとして保持するとしてもよい。
【０１７３】
（１７）また、本発明は、複数の仮想マシンを管理するデータ処理装置で用いられる仮想マシンモニタであって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記仮想マシンモニタは、前記複数の仮想マシンを管理する仮想マシン管理部と、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理部と、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理部と、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得部と、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定部と、前記レジューム判定部が、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理部で通知するイベントを記憶する待ちイベント記憶部とを備えるとしてもよい。
【０１７４】
（１８）また、本発明は、複数の仮想マシンを管理するデータ処理方法であって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理方法は、前記複数の仮想マシンを管理する仮想マシン管理ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理ステップと、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理ステップと、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定ステップと、前記レジューム判定ステップが、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理ステップで通知するイベントを記憶する待ちイベント記憶ステップとを含むとしてもよい。
【０１７５】
（１９）また、本発明は、複数の仮想マシンを管理するデータ処理プログラムであって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理プログラムは、前記複数の仮想マシンを管理する仮想マシン管理ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理ステップと、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理ステップと、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定ステップと、前記レジューム判定ステップが、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理ステップで通知するイベントを記憶する待ちイベント記憶ステップとを含むとしてもよい。
【０１７６】
（２０）また、本発明は、複数の仮想マシンを管理するデータ処理プログラムが記録された記録媒体であって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記データ処理プログラムは、前記複数の仮想マシンを管理する仮想マシン管理ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理ステップと、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理ステップと、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得ステップと、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定ステップと、前記レジューム判定ステップが、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理ステップで通知するイベントを記憶する待ちイベント記憶ステップとを含むとしてもよい。
【０１７７】
（２１）また、本発明は、複数の仮想マシンを管理するデータ処理装置で用いられる集積回路であって、前記複数の仮想マシンは通常状態と省電力状態の２つの状態を持ち、前記複数の仮想マシンは省電力状態に遷移する前に、通常状態へ復帰するための通常状態復帰用割り込みを発生させるように設定し、前記集積回路は、前記複数の仮想マシンを管理する仮想マシン管理部と、前記複数の仮想マシンのうちの１以上の仮想マシンそれぞれへ通知するイベントを管理する仮想マシン間通知管理部と、前記複数の仮想マシンのうちの２以上の仮想マシンで共有する共有データを管理する共有データ管理部と、前記通常状態復帰用割り込みが発生するまでの時間である割込発生時間を取得する割込発生時間取得部と、前記複数の仮想マシンのうちの１以上の仮想マシンが省電力状態の時に、前記１以上の仮想マシンそれぞれへ通知するイベントの通知タイミングを示す通知タイミング情報に応じて前記１以上の仮想マシンそれぞれを通常状態へ復帰させるかを判定するレジューム判定部と、前記レジューム判定部が、前記仮想マシンそれぞれを通常状態へ復帰させないと判定した時に、仮想マシン間通知管理部で通知するイベントを記憶する待ちイベント記憶部とを備えるとしてもよい。
【０１７８】
（２２）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０１７９】
本発明は、複数の仮想マシンを搭載し、そのうちいずれかが省電力状態に遷移する電気機器を製造する産業、販売する産業、及びこのような機器を利用して、各種のサービスを提供する産業において、経営的、継続的、反復的に利用することができる。
【図面の簡単な説明】
【０１８０】
【図１】本発明の実施の形態１におけるコンテンツ権利配信システム１０００の全体図。
【図２】本発明の実施の形態１における権利情報１４０４の構成図。
【図３】本発明の実施の形態１における携帯端末１２００の構成図。
【図４】本発明の実施の形態１における仮想マシンモニタ１２４０の構成図。
【図５】本発明の実施の形態１における共有データ管理部１２４３の構成及びデータフローを示す図。
【図６】本発明の実施の形態１における管理情報１４１０の構成図。
【図７】本発明の実施の形態１におけるレジューム判定部１２４４保持する判定基準表の詳細を示す図。
【図８】通知タイミング情報「Ｂ」を受け取った場合にレジューム判定部１２４４が、判定を行うために用いる時刻及び時間の関係を示す図。
【図９】現在時刻Ｔｎと基準時刻Ｔ１の前後関係の一例を示す図。
【図１０】現在時刻Ｔｎと基準時刻Ｔ１の前後関係の一例を示す図。
【図１１】本発明の実施の形態１において、携帯端末１２００によるコンテンツ再生の動作を示すフローチャート。
【図１２】本発明の実施の形態１において、携帯端末１２００によるコンテンツ再生の動作を示すフローチャート。図１１から続く。
【図１３】本発明の実施の形態１において、携帯端末１２００によるコンテンツ再生の動作を示すフローチャート。図１２から続く。
【図１４】本発明の実施の形態１において、携帯端末１２００によるコンテンツ再生の動作を示すフローチャート。図１３から続く。
【図１５】本発明の実施の形態１において、携帯端末１２００によるコンテンツ再生の動作を示すフローチャート。図１４から続く。
【図１６】本発明の実施の形態１において、仮想マシンモニタ１２４０による通知判定の動作を示すフローチャート。
【図１７】本発明の実施の形態１において、仮想マシンモニタ１２４０による通知判定の動作を示すフローチャート。図１６から続く。
【図１８】本発明の実施の形態２における携帯端末１２００の構成図。
【図１９】本発明の実施の形態２における処理イベント情報１４２０の構成図。
【図２０】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。
【図２１】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。図２０から続く。
【図２２】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。図２１から続く。
【図２３】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。図２２から続く。
【図２４】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。図２３から続く。
【図２５】本発明の実施の形態２における携帯端末１２００起動時の処理を示すフローチャート。図２４から続く。
【図２６】本発明の実施の形態２における通知タイミング管理情報１４３０の構成図。
【図２７】従来技術における共有データ変更通知機能の構成図。
【符号の説明】
【０１８１】
１０００    コンテンツ権利配信システム
１１００    権利管理サーバ
１２００    携帯端末
１２１０    ＤＲＭアプリ
１２１１    再生アプリ
１２１２    ＴＰＭモジュール
１２１３    ＴＰＭモジュール
１２１４    通信アプリ
１２２０    ＲＴＯＳ
１２２１    汎用ＯＳ
１２２２    ＴＰＭ−ＯＳ
１２３０    仮想マシン
１２３１    仮想マシン
１２３２    仮想マシン
１２４０    仮想マシンモニタ
１２４１    仮想マシン管理部
１２４２    仮想マシン間通知管理部
１２４３    共有データ管理部
１２４４    レジューム判定部
１２４５    割込発生予定時刻取得部
１２４６    待ちイベント記憶部
１２５０    ハードウェア
１２５１    メモリ
１２５２    プロセッサ
１２５３    Ｉ／Ｏデバイス
１２５４    タイマー
１２５５    共有データ領域
１２５６    ＴＰＭ
１２６０    共有データ確保部
１２６１    共有データ変更部
１２６２    管理情報保持部
１２６３    データ変更通知部
１２６４    通知タイミング情報取得部
１３００    記憶装置
１４３０    通知タイミング管理情報
１５０２    第２仮想実行部
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009004757.tif 000030
【図２】
2009004757.tif 000031
【図３】
2009004757.tif 000032
【図４】
2009004757.tif 000033
【図５】
2009004757.tif 000034
【図６】
2009004757.tif 000035
【図７】
2009004757.tif 000036
【図８】
2009004757.tif 000037
【図９】
2009004757.tif 000038
【図１０】
2009004757.tif 000039
【図１１】
2009004757.tif 000040
【図１２】
2009004757.tif 000041
【図１３】
2009004757.tif 000042
【図１４】
2009004757.tif 000043
【図１５】
2009004757.tif 000044
【図１６】
2009004757.tif 000045
【図１７】
2009004757.tif 000046
【図１８】
2009004757.tif 000047
【図１９】
2009004757.tif 000048
【図２０】
2009004757.tif 000049
【図２１】
2009004757.tif 000050
【図２２】
2009004757.tif 000051
【図２３】
2009004757.tif 000052
【図２４】
2009004757.tif 000053
【図２５】
2009004757.tif 000054
【図２６】
2009004757.tif 000055
【図２７】
2009004757.tif 000056
【国際調査報告】
2009004757.tif 000057
2009004757.tif 000058
2009004757.tif 000059
2009004757.tif 000060