(57)【要約】【課題】予約されているアプリケーションを確実に実行させると共に、同時により多くのアプリケーションを実行させるようにする。【解決手段】  パーソナルコンピュータにより、録画プログラムによるテレビジョン放送の録画のアプリケーションの実行が予約される場合、必要資源演算部２３１により、予約しようとするテレビジョン放送の録画のアプリケーションが実行される期間（時間）において必要とされる資源（リソース）の最大の量が算出され、判定部２３２により、算出された資源の最大の量が自分（パーソナルコンピュータ）の仕様としての資源の量を超えているか否かが判定され、予約部２３４により、算出された資源の最大の量が自分の資源の量を超えていないと判定された場合、テレビジョン放送の録画のアプリケーションの実行が予約される。本発明は、パーソナルコンピュータに適用することができる。【選択図】図９
2005352909.tif 000002
【特許請求の範囲】
【請求項１】
第１のアプリケーションプログラムによる第１のアプリケーションの実行を予約する情報処理装置において、
予約しようとする前記第１のアプリケーションが実行される期間において必要とされる資源の最大の量を算出する算出手段と、
算出された資源の最大の量が自分の資源の量を超えているか否かを判定する判定手段と、
算出された資源の最大の量が自分の資源の量を超えていないと判定された場合、前記第１のアプリケーションプログラムによる前記第１のアプリケーションの実行を予約する予約手段と
を含むことを特徴とする情報処理装置。
【請求項２】
予約された前記第１のアプリケーションの実行が開始される場合、実行されている第２のアプリケーションプログラムによる第２のアプリケーションの実行を抑制する抑制手段をさらに含む
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記抑制手段は、前記第１のアプリケーションを予約しようとする時に実行されている前記第２のアプリケーションについての、前記第１のアプリケーションが実行される前記期間における、実行の抑制を設定し、予約された前記第１のアプリケーションの実行が開始される場合、前記設定を基に、前記第２のアプリケーションの実行を抑制する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記抑制手段は、前記第１のアプリケーションの実行が予約された後に実行される、前記第２のアプリケーションについての、前記第１のアプリケーションが実行される前記期間における、実行の抑制を設定し、予約された前記第１のアプリケーションの実行が開始される場合、前記設定を基に、前記第２のアプリケーションの実行を抑制する
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
アプリケーションプログラムによるアプリケーションの実行を予約する情報処理装置の情報処理方法において、
予約しようとする前記アプリケーションが実行される期間において必要とされる資源の最大の量を算出する算出ステップと、
算出された資源の最大の量が前記情報処理装置の資源の量を超えているか否かを判定する判定ステップと、
算出された資源の最大の量が前記情報処理装置の資源の量を超えていないと判定された場合、前記アプリケーションプログラムによる前記アプリケーションの実行を予約する予約ステップと
を含むことを特徴とする情報処理方法。
【請求項６】
アプリケーションプログラムによるアプリケーションの実行を予約する情報処理装置の予約処理用の予約処理プログラムにおいて、
予約しようとする前記アプリケーションが実行される期間において必要とされる資源の最大の量を算出する算出ステップと、
算出された資源の最大の量が前記情報処理装置の資源の量を超えているか否かを判定する判定ステップと、
算出された資源の最大の量が前記情報処理装置の資源の量を超えていないと判定された場合、前記アプリケーションプログラムによる前記アプリケーションの実行を予約する予約ステップと
を含むことを特徴とするコンピュータが読み取り可能な予約処理プログラムが記録されている記録媒体。
【請求項７】
アプリケーションプログラムによるアプリケーションの実行を予約する情報処理装置を制御するコンピュータに、予約処理を行わせる予約処理プログラムにおいて、
予約しようとする前記アプリケーションが実行される期間において必要とされる資源の最大の量を算出する算出ステップと、
算出された資源の最大の量が前記情報処理装置の資源の量を超えているか否かを判定する判定ステップと、
算出された資源の最大の量が前記情報処理装置の資源の量を超えていないと判定された場合、前記アプリケーションプログラムによる前記アプリケーションの実行を予約する予約ステップと
を含むことを特徴とする予約処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、記録媒体、並びに予約処理プログラムに関し、特に、予約されているアプリケーションプログラムによるアプリケーションを確実に実行させることができるようにした情報処理装置および方法、記録媒体、並びに予約処理プログラムに関する。
【背景技術】
【０００２】
複数のアプリケーションプログラムを同時に実行することが可能な環境において、予約されているアプリケーションプログラムが、予約された時刻に実行を開始することが可能かどうかは、予約されているアプリケーションプログラムが実行される時点（予約された時刻）における、資源（リソース）の空き状態に左右される。
【０００３】
このため、従来、予約されているアプリケーションプログラムの実行を保証するための種々の技術、すなわち、予約されているアプリケーションプログラムの実行に必要な資源を確保するための種々の技術が提案されている。例えば、予約されたアプリケーションプログラムの実行中には、特定のアプリケーションプログラムのみの実行を許可する技術が提案されている。具体的には、例えば、予約されたテレビジョン放送の録画のアプリケーションプログラムの実行中に、HDD（Hard Disk Drive）に記録されている映像データの再生のみが実行可能とされる。
【０００４】
また、予約されているアプリケーションプログラムの実行時に、予約されているアプリケーションプログラム以外のアプリケーションプログラムを全て停止する技術が提案されている。
【０００５】
さらに、例えば、特許文献１には、複写機、スキャナ機能、プリンタ機能、およびFAX機能などの機能を有し、コンカレント処理を行うマルチファンクション機において、各種ジョブの実行に最低限必要な資源の量を、各種ジョブ毎に管理し、ユーザから要求されたジョブの実行時の優先順位に応じて、各種ジョブに対する資源の割当量を、動的に変化させる技術が開示されている。
【特許文献１】特開平１１−２０５４９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来、予約されているアプリケーションプログラムの実行の時点においては、予約されているアプリケーションプログラムの実行を保証するために、特定のアプリケーションプログラムのみしか実行が許可されないため、または予約されているアプリケーションプログラム以外のアプリケーションプログラムの全てが停止されるため、たとえ、予約されているアプリケーションプログラムの実行に必要な資源が確保され、予約されているアプリケーションプログラム以外のアプリケーションプログラムの実行が可能である、充分な資源がまだ有ったとしても、予約されているアプリケーションプログラム以外のアプリケーションプログラムを同時に実行することができず、不便であるという課題があった。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、予約されているアプリケーションプログラムによるアプリケーションを確実に実行させると共に、同時により多くのアプリケーションを実行させることができるようにするものである。
【課題を解決するための手段】
【０００８】
本発明の情報処理装置は、予約しようとする第１のアプリケーションが実行される期間において必要とされる資源の最大の量を算出する算出手段と、算出された資源の最大の量が自分の資源の量を超えているか否かを判定する判定手段と、算出された資源の最大の量が自分の資源の量を超えていないと判定された場合、第１のアプリケーションプログラムによる第１のアプリケーションの実行を予約する予約手段とを含むことを特徴とする。
【０００９】
情報処理装置は、予約された第１のアプリケーションの実行が開始される場合、実行されている第２のアプリケーションプログラムによる第２のアプリケーションの実行を抑制する抑制手段をさらに設けることができる。
【００１０】
抑制手段は、第１のアプリケーションを予約しようとする時に実行されている第２のアプリケーションについての、第１のアプリケーションが実行される期間における、実行の抑制を設定し、予約された第１のアプリケーションの実行が開始される場合、設定を基に、第２のアプリケーションの実行を抑制するようにすることができる。
【００１１】
抑制手段は、第１のアプリケーションの実行が予約された後に実行される、第２のアプリケーションについての、第１のアプリケーションが実行される期間における、実行の抑制を設定し、予約された第１のアプリケーションの実行が開始される場合、設定を基に、第２のアプリケーションの実行を抑制するようにすることができる。
【００１２】
本発明の情報処理方法は、予約しようとするアプリケーションが実行される期間において必要とされる資源の最大の量を算出する算出ステップと、算出された資源の最大の量が情報処理装置の資源の量を超えているか否かを判定する判定ステップと、算出された資源の最大の量が情報処理装置の資源の量を超えていないと判定された場合、アプリケーションプログラムによるアプリケーションの実行を予約する予約ステップとを含むことを特徴とする。
【００１３】
本発明の記録媒体の予約処理プログラムは、予約しようとするアプリケーションが実行される期間において必要とされる資源の最大の量を算出する算出ステップと、算出された資源の最大の量が情報処理装置の資源の量を超えているか否かを判定する判定ステップと、算出された資源の最大の量が情報処理装置の資源の量を超えていないと判定された場合、アプリケーションプログラムによるアプリケーションの実行を予約する予約ステップとを含むことを特徴とする。
【００１４】
本発明の予約処理プログラムは、予約しようとするアプリケーションが実行される期間において必要とされる資源の最大の量を算出する算出ステップと、算出された資源の最大の量が情報処理装置の資源の量を超えているか否かを判定する判定ステップと、算出された資源の最大の量が情報処理装置の資源の量を超えていないと判定された場合、アプリケーションプログラムによるアプリケーションの実行を予約する予約ステップとをコンピュータに実行させることを特徴とする。
【００１５】
本発明においては、予約しようとするアプリケーションが実行される期間において必要とされる資源の最大の量が算出され、算出された資源の最大の量が情報処理装置の資源の量を超えているか否かが判定され、算出された資源の最大の量が情報処理装置の資源の量を超えていないと判定された場合、アプリケーションプログラムによるアプリケーションの実行が予約される。
【発明の効果】
【００１６】
本発明によれば、予約されているアプリケーションプログラムを実行させることができる。また、予約されているアプリケーションプログラムによるアプリケーションを確実に実行させると共に、同時により多くのアプリケーションを実行させることができる。
【発明を実施するための最良の形態】
【００１７】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００１８】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００１９】
請求項１に記載の情報処理装置（例えば、図１のパーソナルコンピュータ３１−１）は、第１のアプリケーションプログラム（例えば、図８の再生プログラム１４１）による第１のアプリケーション（例えば、図１３の“HDDに記録されている映像データの再生”）の実行を予約する情報処理装置であって、予約しようとする第１のアプリケーションが実行される期間（例えば、図１２の“１５時から１７時”）において必要とされる資源（例えば、図１３の“HDDに記録されている映像データの再生”の“プロセッサの数”）の最大の量を算出する算出手段（例えば、図９の必要資源演算部２３１）と、算出された資源の最大の量が自分の資源（例えば、図１４の“プロセッサの数”）の量を超えているか否かを判定する判定手段（例えば、図９の判定部２３２）と、算出された資源の最大の量が自分の資源の量を超えていないと判定された場合（例えば、図１１のステップＳ３６においてYes）、第１のアプリケーションプログラムによる第１のアプリケーションの実行を予約する予約手段（例えば、図９の予約部２３４）とを含むことを特徴とする。
【００２０】
請求項２に記載の情報処理装置は、予約された第１のアプリケーションの実行が開始される場合、実行されている第２のアプリケーションプログラムによる第２のアプリケーションの実行を抑制する抑制手段（例えば、図９のプログラム起動停止部２３３）をさらに設けることができる。
【００２１】
請求項３に記載の情報処理装置は、抑制手段が、第１のアプリケーションを予約しようとする時に実行されている第２のアプリケーションについての、第１のアプリケーションが実行される期間における、実行の抑制を設定し（例えば、図１１のステップＳ３９）、予約された第１のアプリケーションの実行が開始される場合、設定を基に、第２のアプリケーションの実行を抑制する（例えば、図１８のステップＳ１０５）ようにすることができる。
【００２２】
請求項４に記載の情報処理装置は、抑制手段が、第１のアプリケーションの実行が予約された後に実行される、第２のアプリケーションについての、第１のアプリケーションが実行される期間における、実行の抑制を設定し（例えば、図１７のステップＳ７２）、予約された第１のアプリケーションの実行が開始される場合、設定を基に、第２のアプリケーションの実行を抑制する（例えば、図１８のステップＳ１０５）ようにすることができる。
【００２３】
請求項５に記載の情報処理方法は、アプリケーションプログラム（例えば、図８の再生プログラム１４１）によるアプリケーション（例えば、図１３の“HDDに記録されている映像データの再生”）の実行を予約する情報処理装置（例えば、図１のパーソナルコンピュータ３１−１）の情報処理方法であって、予約しようとするアプリケーションが実行される期間（例えば、図１２の“１５時から１７時”）において必要とされる資源（例えば、図１３の“HDDに記録されている映像データの再生”の“プロセッサの数”）の最大の量を算出する算出ステップ（例えば、図１１のステップＳ３５）と、算出された資源の最大の量が情報処理装置の資源（例えば、図１４の“プロセッサの数”）の量を超えているか否かを判定する判定ステップ（例えば、図１１のステップＳ３６）と、算出された資源の最大の量が情報処理装置の資源の量を超えていないと判定された場合（例えば、図１１のステップＳ３６においてYes）、アプリケーションプログラムによるアプリケーションの実行を予約する予約ステップ（例えば、図１１のステップＳ４０）とを含むことを特徴とする。
【００２４】
請求項６に記載の予約処理プログラムは、アプリケーションプログラム（例えば、図８の再生プログラム１４１）によるアプリケーション（例えば、図１３の“HDDに記録されている映像データの再生”）の実行を予約する情報処理装置の予約処理用の予約処理プログラムであって、予約しようとするアプリケーションが実行される期間（例えば、図１２の“１５時から１７時”）において必要とされる資源（例えば、図１３の“HDDに記録されている映像データの再生”の“プロセッサの数”）の最大の量を算出する算出ステップ（例えば、図１１のステップＳ３５）と、算出された資源の最大の量が情報処理装置の資源（例えば、図１４の“プロセッサの数”）の量を超えているか否かを判定する判定ステップ（例えば、図１１のステップＳ３６）と、算出された資源の最大の量が情報処理装置の資源の量を超えていないと判定された場合（例えば、図１１のステップＳ３６においてYes）、アプリケーションプログラムによるアプリケーションの実行を予約する予約ステップ（例えば、図１１のステップＳ４０）とを実行させる。
【００２５】
請求項７に記載の記録媒体の予約処理プログラムは、アプリケーションプログラム（例えば、図８の再生プログラム１４１）によるアプリケーション（例えば、図１３の“HDDに記録されている映像データの再生”）の実行を予約する情報処理装置を制御するコンピュータに、予約処理を行わせる予約処理プログラムであって、予約しようとするアプリケーションが実行される期間（例えば、図１２の“１５時から１７時”）において必要とされる資源（例えば、図１３の“HDDに記録されている映像データの再生”の“プロセッサの数”）の最大の量を算出する算出ステップ（例えば、図１１のステップＳ３５）と、算出された資源の最大の量が情報処理装置の資源（例えば、図１４の“プロセッサの数”）の量を超えているか否かを判定する判定ステップ（例えば、図１１のステップＳ３６）と、算出された資源の最大の量が情報処理装置の資源の量を超えていないと判定された場合（例えば、図１１のステップＳ３６においてYes）、アプリケーションプログラムによるアプリケーションの実行を予約する予約ステップ（例えば、図１１のステップＳ４０）とを含むことを特徴とする。
【００２６】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２７】
図１は、本発明を適用した情報処理システムの一実施の形態を示す図である。この情報処理システムにおいては、インターネット１およびネットワーク２１を介して、パーソナルコンピュータ（以下、パソコンと称する）３１−１乃至パーソナルコンピュータ３１−４のそれぞれが相互に接続されている。
【００２８】
ネットワーク２１は、セルネットワーク、イントラネット、ホームネットワークなどである。
【００２９】
パソコン３１−１は、分散処理の実行が指示されると、要求された処理を実行するために必要なデータおよびプログラムを含むソフトウェアセルを生成し、生成したソフトウェアセルを、ネットワーク２１を介して、パソコン３１−２乃至パソコン３１−４あてに送信する。
【００３０】
パソコン３１−２乃至パソコン３１−４のそれぞれは、パソコン３１−１から送信されてきたソフトウェアセルを受信し、受信したソフトウェアセルを基に、要求された処理を実行する。パソコン３１−２乃至パソコン３１−４のそれぞれは、要求された処理を実行してから、要求された処理の結果得られたデータを、ネットワーク２１を介してパソコン３１−１あてに送信する。
【００３１】
パソコン３１−１は、パソコン３１−２乃至パソコン３１−４のそれぞれから送信されてきたデータを受信し、受信したデータを基に、所定の処理を実行するか、受信したデータを記録する。
【００３２】
パソコン３１−１は、情報処理コントローラ４１、メインメモリ４２、記録部４３−１、記録部４３−２、バス４４、操作入力部４５、出力部４６、通信部４７、およびドライブ４８を含むように構成される。また、パソコン３１−１は、図示はしないが、上述した各部以外に、アンテナやチューナなどのテレビジョン放送を受信する機能の構成を有し、それらの機能は、情報処理コントローラ４１のメインプロセッサ５２により制御される。
【００３３】
情報処理コントローラ４１は、メインメモリ４２に記録されている各種のプログラムを実行し、パソコン３１−１全体を制御する。情報処理コントローラ４１は、ソフトウェアセルを生成し、生成したソフトウェアセルを、バス４４を介して、通信部４７に供給する。情報処理コントローラ４１は、通信部４７から供給されたデータを記録部４３−１または記録部４３−２に供給する。情報処理コントローラ４１は、操作入力部４５または入力部（図示せず）からの指令に基づいて、指定されたデータを、メインメモリ４２、記録部４３−１または記録部４３−２から取得し、取得したデータを、バス４４を介して出力部４６に供給する。
【００３４】
また、情報処理コントローラ４１には、パソコン３１−１を、ネットワーク２１全体を通して一意的に特定できる装置ＩＤが割り当てられている。
【００３５】
情報処理コントローラ４１は、バス５１、メインプロセッサ５２、サブプロセッサ５３−１乃至サブプロセッサ５３−３、DMAC（Direct Memory Access Controller）５４、キー管理テーブル記録部５５、およびDC（Disk Controller）５６を備えている。
【００３６】
メインプロセッサ５２、サブプロセッサ５３−１乃至サブプロセッサ５３−３、DMAC５４、キー管理テーブル記録部５５、およびDC５６は、バス５１を介して、相互に接続されている。また、メインプロセッサ５２には、メインプロセッサ５２を特定するためのメインプロセッサＩＤが識別子として割り当てられる。同様に、サブプロセッサ５３−１乃至サブプロセッサ５３−３のそれぞれには、サブプロセッサ５３−１乃至サブプロセッサ５３−３のそれぞれを特定するためのサブプロセッサＩＤのそれぞれが識別子として割り当てられる。
【００３７】
メインプロセッサ５２は、サブプロセッサ５３−１乃至サブプロセッサ５３−３によるプログラムの実行のスケジュール管理および情報処理コントローラ４１（パソコン３１−１）の全体の管理を行う。メインプロセッサ５２は、ローカルストレージ６１−１を備え、メインメモリ４２からロードしたデータおよびプログラムを、ローカルストレージ６１−１に一時的に記憶させる。メインプロセッサ５２は、ローカルストレージ６１−１からデータおよびプログラムを読み込み、読み込んだデータおよびプログラムを基に、各種の処理を実行する。
【００３８】
メインプロセッサ５２は、ネットワーク２１を介して接続されている、パソコン３１−２乃至３１−４に分散処理を実行させる場合、ソフトウェアセルを生成し、生成したソフトウェアセルをバス５１およびバス４４を介して、通信部４７に供給する。また、メインプロセッサ５２は、管理のためのプログラム以外のプログラムを実行するように構成することもできる。この場合、メインプロセッサ５２は、サブプロセッサとして機能する。
【００３９】
サブプロセッサ５３−１乃至サブプロセッサ５３−３は、メインプロセッサ５２の制御の基、並列的かつ独立に、プログラムを実行し、データを処理する。さらに、必要に応じて、メインプロセッサ５２が実行するプログラムが、サブプロセッサ５３−１乃至サブプロセッサ５３−３のそれぞれが実行するプログラムのそれぞれと連携して動作するように構成することも可能である。
【００４０】
サブプロセッサ５３−１乃至サブプロセッサ５３−３のそれぞれは、ローカルストレージ６１−２乃至ローカルストレージ６１−４のそれぞれを備える。サブプロセッサ５３−１乃至サブプロセッサ５３−３のそれぞれは、ローカルストレージ６１−２乃至ローカルストレージ６１−４のそれぞれに、必要に応じて、データおよびプログラムを一時的に記憶させる。サブプロセッサ５３−１乃至サブプロセッサ５３−３のそれぞれは、ローカルストレージ６１−２乃至ローカルストレージ６１−４のそれぞれからデータおよびプログラムを読み込み、読み込んだデータおよびプログラムを基に、各種の処理を実行する。
【００４１】
以下、サブプロセッサ５３−１乃至サブプロセッサ５３−３のそれぞれを個々に区別する必要のないとき、単にサブプロセッサ５３と称する。同様に、以下、ローカルストレージ６１−１乃至ローカルストレージ６１−４のそれぞれを個々に区別する必要のないとき、単にローカルストレージ６１と称する。
【００４２】
DMAC５４は、キー管理テーブル記録部５５に記録されている、メインプロセッサキー、サブプロセッサキー、およびアクセスキーを基に、メインプロセッサ５２およびサブプロセッサ５３からのメインメモリ４２に記憶されているプログラムおよびデータへのアクセスを管理する。
【００４３】
キー管理テーブル記録部５５は、メインプロセッサキー、サブプロセッサキー、およびアクセスキーを記録している。なお、メインプロセッサキー、サブプロセッサキー、およびアクセスキーの詳細は後述する。
【００４４】
DC５６は、メインプロセッサ５２およびサブプロセッサ５３からの記録部４３−１および記録部４３−２へのアクセスを管理する。
【００４５】
メインメモリ４２は、例えば、RAM（Random Access Memory）から構成される。メインメモリ４２は、メインプロセッサ５２およびサブプロセッサ５３が実行する各種のプログラムおよびデータを一時的に記憶している。
【００４６】
記録部４３−１および記録部４３−２は、それぞれ、例えば、ハードディスクなどにより構成される。記録部４３−１および記録部４３−２は、メインプロセッサ５２およびサブプロセッサ５３が実行する各種のプログラムおよびデータを記録している。また、記録部４３−１および記録部４３−２は、情報処理コントローラ４１から供給されたデータを記録する。以下、記録部４３−１および記録部４３−２を個々に区別する必要のないとき、単に記録部４３と称する。
【００４７】
また、情報処理コントローラ４１には、バス４４を介して、操作入力部４５、出力部４６、通信部４７、およびドライブ４８が接続されている。操作入力部４５は、マウスやキーボードなどにより構成される。また、操作入力部４５は、ユーザにより入力された入力情報（操作情報）を、バス４４を介し、情報処理コントローラ４１に出力する。
【００４８】
出力部４６は、例えば、ディスプレイおよびスピーカなどにより構成され、情報処理コントローラ４１から供給されたデータを出力する。
【００４９】
通信部４７は、情報処理コントローラ４１から供給されたソフトウェアセルを、ネットワーク２１を介してパソコン３１−２乃至パソコン３１−４あてに送信する。また、通信部４７は、パソコン３１−２乃至パソコン３１−４から送信されてきたデータを、バス４４を介して、情報処理コントローラ４１に供給する。
【００５０】
ドライブ４８は、磁気ディスク７１、光ディスク７２、光磁気ディスク７３、あるいは半導体メモリ７４などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて、バス４４を介して、情報処理コントローラ４１に転送され、情報処理コントローラ４１によって、記録部４３に記録される。
【００５１】
なお、パソコン３１−２乃至パソコン３１−４も図１のパソコン３１−１の構成と基本的に同様の構成であるので、図示およびその説明を省略し、必要に応じて同図をこれらの構成としても適宜引用する。以下、パソコン３１−１乃至パソコン３１−４を個々に区別する必要がないとき、単に、パソコン３１と称する。
【００５２】
パソコン３１は上述した構成に限らず、必要に応じて、機能を追加したり削除したりすることは可能であり、その機能に対応した構成をもつことが可能である。
【００５３】
次に、図２乃至図４を参照して、サブプロセッサ５３がメインメモリ４２にアクセスする場合の処理について説明する。
【００５４】
図２で示されるように、メインメモリ４２には、複数のアドレスを指定できるメモリロケーションが配置される。各メモリロケーションに対しては、データの状態を示す情報を格納するための追加セグメントが割り振られる。追加セグメントは、Ｆ／Ｅビット、サブプロセッサＩＤおよびＬＳアドレス（ローカルストレージアドレス）を含む。また、各メモリロケーションには、後述するアクセスキーが割り振られる。
【００５５】
“０”であるＦ／Ｅビットは、サブプロセッサ５３によって読み出されている処理中のデータ、または空き状態であるため最新データではない無効データであり、そのメモリロケーションから読み出し不可であることを示す。また、“０”であるＦ／Ｅビットは、そのメモリロケーションにデータ書き込み可能であることを示し、データが書き込まれると、Ｆ／Ｅビットは“１”に設定される。
【００５６】
“１”であるＦ／Ｅビットは、そのメモリロケーションのデータがサブプロセッサ５３によって読み出されておらず、未処理の最新データであることを示す。Ｆ／Ｅビットが“１”であるメモリロケーションのデータは読み出し可能であり、サブプロセッサ５３によって読み出されてから、Ｆ／Ｅビットは“０”に設定される。また、“１”であるＦ／Ｅビットは、メモリロケーションがデータ書き込み不可であることを示す。
【００５７】
さらに、Ｆ／Ｅビットが“０”（読み出し不可／書き込み可）である状態において、メモリロケーションについて読み出し予約を設定することが可能である。Ｆ／Ｅビットが“０”であるメモリロケーションに対して読み出し予約を行う場合には、サブプロセッサ５３は、読み出し予約を行うメモリロケーションの追加セグメントに、読み出し予約情報としてサブプロセッサ５３のサブプロセッサＩＤおよびＬＳアドレスを書き込む。そして、データを書き込むサブプロセッサ５３によって、読み出し予約されたメモリロケーションにデータが書き込まれ、Ｆ／Ｅビットが“１”（読み出し可／書き込み不可）に設定されたとき、あらかじめ読み出し予約情報として追加セグメントに書き込まれているサブプロセッサＩＤおよびＬＳアドレスによって特定されるローカルストレージ６１に読み出される。
【００５８】
複数のサブプロセッサ５３によってデータを多段階に処理する必要がある場合、このように各メモリロケーションのデータの読み出しおよび書き込みを制御することによって、前段階の処理を行うサブプロセッサ５３が、処理済みのデータをメインメモリ４２における所定のアドレスに書き込んだ後に即座に、後段階の処理を行う別のサブプロセッサ５３が前処理後のデータを読み出すことが可能となる。
【００５９】
また、図３で示されるように、サブプロセッサ５３のローカルストレージ６１は、複数のアドレスを指定できるメモリロケーションによって構成される。各メモリロケーションに対しては、同様に追加セグメントが割り振られる。追加セグメントは、ビジービットを含む。
【００６０】
サブプロセッサ５３がメインメモリ４２に記憶されているデータをサブプロセッサ５３のローカルストレージ６１のメモリロケーションに読み出すときには、対応するビジービットを“１”に設定して予約する。ビジービットが“１”であるメモリロケーションには、他のデータを格納することができない。ローカルストレージ６１のメモリロケーションにデータが読み出されると、ビジービットは“０”に設定され、他のデータを格納することができるようになる。
【００６１】
さらに、図２で示すように情報処理コントローラ４１に接続されているメインメモリ４２には、複数のサンドボックスが含まれる。サンドボックスは、メインメモリ４２内の領域を画定するものであり、各サンドボックスは、各サブプロセッサ５３に割り当てられ、割り当てられたサブプロセッサ５３が排他的に使用することができる。すなわち、サブプロセッサ５３は、割り当てられたサンドボックスを使用できるが、この領域を超えてデータにアクセスすることはできない。
【００６２】
メインメモリ４２は、複数のメモリロケーションから構成されるが、サンドボックスは、これらのメモリロケーションの集合である。
【００６３】
さらに、メインメモリ４２の排他的な制御を実現するために、図４で示されるキー管理テーブルが用いられる。キー管理テーブルは、キー管理テーブル記録部５５に記録され、DMAC５４と関連付けられる。キー管理テーブル内の各エントリには、サブプロセッサＩＤ、サブプロセッサキーおよびキーマスクが含まれる。
【００６４】
サブプロセッサ５３がメインメモリ４２にアクセスする場合、サブプロセッサ５３はDMAC５４に、読み出しまたは書き込みのコマンドを出力する。このコマンドには、サブプロセッサ５３を特定するサブプロセッサＩＤおよびアクセス要求先であるメインメモリ４２のアドレスが含まれる。
【００６５】
DMAC５４は、サブプロセッサ５３から供給されたコマンドを実行する場合、キー管理テーブルを参照して、アクセス要求元のサブプロセッサ５３のサブプロセッサキーを調べる。そして、DMAC５４は、調べたアクセス要求元のサブプロセッサキーと、アクセス要求先であるメインメモリ４２のメモリロケーションに割り振られたアクセスキーとを比較して、２つのキーが一致した場合にのみ、サブプロセッサ５３から供給されたコマンドを実行する。
【００６６】
図４は、キー管理テーブルを説明する図である。キー管理テーブルに記録されているキーマスクは、その任意のビットが“１”になることによって、そのキーマスクと関連付けられたサブプロセッサキーの対応するビットを“０”または“１”にすることができる。
【００６７】
例えば、サブプロセッサキーが“１０１０”であるとする。通常、このサブプロセッサキーによって“１０１０”のアクセスキーを持つサンドボックスへのアクセスだけが可能になる。しかし、このサブプロセッサキーと関連付けられたキーマスクが“０００１”に設定されている場合には、キーマスクのビットが“１”に設定された桁のみにつき、サブプロセッサキーとアクセスキーとの一致判定がマスクされ（キーマスクのビットが“１”に設定された桁について、判定されず）、このサブプロセッサキー“１０１０”によってアクセスキーが“１０１０”または“１０１１”のいずれかであるアクセスキーを持つサンドボックスへのアクセスが可能となる。
【００６８】
以上のようにして、メインメモリ４２のサンドボックスの排他性が実現される。すなわち、複数のサブプロセッサ５３によってデータを多段階に処理する必要がある場合、以上のように構成することによって、前段階の処理を行うサブプロセッサ５３と、後段階の処理を行うサブプロセッサ５３のみが、メインメモリ４２の所定のアドレスにアクセスできるようになり、データを保護することができる。
【００６９】
例えば、キーマスクの値は、以下のように変更されることが考えられる。まず、パソコン３１の起動直後においては、キーマスクの値は全て“０”である。メインプロセッサ５２にロードされたプログラムが実行され、サブプロセッサ５３にロードされたプログラムと連携動作するものとする。サブプロセッサ５３−１により出力された処理結果データを、メインメモリ４２に記憶させ、メインメモリ４２に記憶させた処理結果データを、サブプロセッサ５３−２に入力したいときには、サブプロセッサ５３−１により出力された処理結果データを記憶しているメインメモリ４２の領域は、サブプロセッサ５３−１およびサブプロセッサ５３−２からアクセス可能である必要がある。そのような場合に、メインプロセッサ５２は、キーマスクの値を適切に変更し、複数のサブプロセッサ５３からアクセスできるメインメモリ４２の領域を設けることにより、サブプロセッサ５３による多段階的の処理を可能にする。
【００７０】
より具体的には、例えば、パソコン３１−２乃至パソコン３１−４から送信されてきた、データを基に、サブプロセッサ５３−１が所定の処理実行し、処理が施されたデータをメインメモリ４２の第１の領域に記憶させる。そして、サブプロセッサ５３−２は、メインメモリ４２の第１の領域から、記憶されているデータを読み出し、読み出したデータを基に、所定の処理を実行し、処理が施されたデータをメインメモリ４２の第１の領域とは、異なる第２の領域に記憶させる。
【００７１】
ここで、サブプロセッサ５３−１のサブプロセッサキーが“０１００”であり、メインメモリ４２の、第１の領域のアクセスキーが“０１００”であり、サブプロセッサ５３−２のサブプロセッサキーが“０１０１”であり、メインメモリ４２の、第２の領域のアクセスキーが“０１０１”である場合、サブプロセッサ５３−２は、メインメモリ４２の第１の領域にアクセスすることができない。そこで、サブプロセッサ５３−２のキーマスクを“０００１”にすることによって、サブプロセッサ５３−２は、メインメモリ４２の第１の領域にアクセスすることができるようになる。
【００７２】
次に、図５および図６を参照して、パソコン３１−１がソフトウェアセルを生成し、生成したソフトウェアセルを基に、パソコン３１−２乃至パソコン３１−４に分散処理を実行させる場合の処理について説明する。
【００７３】
パソコン３１−１のメインプロセッサ５２は、処理を実行するために必要なコマンド、プログラム、およびデータを含むソフトウェアセルを生成し、ネットワーク２１を介してパソコン３１−２乃至パソコン３１−４あてに送信する。
【００７４】
図５は、ソフトウェアセルの構成の例を示す図である。
【００７５】
ソフトウェアセルは、送信元ＩＤ、送信先ＩＤ、応答先ＩＤ、セルインターフェース、DMAコマンド、プログラム、およびデータを含むように構成される。
【００７６】
送信元ＩＤには、ソフトウェアセルの送信元であるパソコン３１のネットワークアドレスおよびパソコン３１の情報処理コントローラ４１の装置ＩＤ、さらに、パソコン３１の情報処理コントローラ４１が備えるメインプロセッサ５２およびサブプロセッサ５３の識別子（メインプロセッサＩＤおよびサブプロセッサＩＤ）が含まれる。
【００７７】
送信先ＩＤには、ソフトウェアセルの送信先であるパソコン３１−２乃至パソコン３１−４のネットワークアドレス、パソコン３１−２乃至パソコン３１−４の情報処理コントローラ４１の装置ＩＤ、およびパソコン３１−２乃至パソコン３１−４の情報処理コントローラ４１が備えるメインプロセッサ５２およびサブプロセッサ５３の識別子が含まれる。
【００７８】
また、応答先ＩＤには、ソフトウェアセルの実行結果の応答先であるパソコン３１のネットワークアドレス、パソコン３１の情報処理コントローラ４１の装置ＩＤ、および情報処理コントローラ４１が備えるメインプロセッサ５２およびサブプロセッサ５３の識別子が含まれる。
【００７９】
セルインターフェースは、ソフトウェアセルの利用に必要な情報であり、グローバルＩＤ、必要なサブプロセッサの情報、サンドボックスサイズ、および前回のソフトウェアセルＩＤから構成される。
【００８０】
グローバルＩＤは、ネットワーク２１全体を通してソフトウェアセルを一意的に識別できるものであり、送信元ＩＤ、およびソフトウェアセルの生成または送信の日時（日付および時刻）を基に、生成される。
【００８１】
必要なサブプロセッサの情報は、ソフトウェアセルの実行に必要なサブプロセッサ５３の数が設定される。サンドボックスサイズは、ソフトウェアセルの実行に必要なメインメモリ４２およびサブプロセッサ５３のローカルストレージ６１のメモリ量が設定される。
【００８２】
前回のソフトウェアセルＩＤは、ストリーミングデータなどのシーケンシャルな実行を要求する１つのグループを構成するソフトウェアセル内の、前回のソフトウェアセルの識別子である。
【００８３】
ソフトウェアセルの実行セクションは、DMAコマンド、プログラムおよびデータから構成される。DMAコマンドには、プログラムの起動に必要な一連のDMAコマンドが含まれ、プログラムには、サブプロセッサ５３によって実行されるサブプロセッサプログラムが含まれる。ここでのデータは、このサブプロセッサプログラムを含むプログラムによって処理されるデータである。
【００８４】
さらに、DMAコマンドには、ロードコマンド、キックコマンド、機能プログラム実行コマンド、ステータス要求コマンド、およびステータス返信コマンドが含まれる。
【００８５】
ロードコマンドは、メインメモリ４２が記憶している情報をサブプロセッサ５３のローカルストレージ６１にロードさせるコマンドであり、ロードコマンドのほかに、メインメモリアドレス、サブプロセッサＩＤおよびＬＳアドレスを含む。メインメモリアドレスは、情報のロード元であるメインメモリ４２の、所定の領域のアドレスを示す。サブプロセッサＩＤおよびＬＳアドレスは、情報のロード先であるサブプロセッサ５３の識別子およびローカルストレージ６１のアドレスを示す。
【００８６】
キックコマンドは、プログラムの実行を開始するコマンドであり、キックコマンドのほかに、サブプロセッサＩＤおよびプログラムカウンタを含む。サブプロセッサＩＤは、キック対象のサブプロセッサ５３を識別し、プログラムカウンタは、プログラム実行用プログラムカウンタのためのアドレスを与える。
【００８７】
機能プログラム実行コマンドは、ある装置（例えば、パソコン３１−１）が他の装置（例えば、パソコン３１−２乃至パソコン３１−４）に対して、機能プログラムの実行を要求するコマンドである。機能プログラム実行コマンドを受信した装置（例えば、パソコン３１−２乃至パソコン３１−４）の情報処理コントローラ４１は、機能プログラムＩＤによって、起動すべき機能プログラムを識別する。
【００８８】
ステータス要求コマンドは、送信先ＩＤで示されるパソコン３１−２乃至パソコン３１−４の現在の動作状態（状況）に関する装置情報を、応答先ＩＤで示されるパソコン３１−１あてに送信要求するコマンドである。
【００８９】
ステータス返信コマンドは、ステータス要求コマンドを受信したパソコン３１−２乃至パソコン３１−４が、装置情報をステータス要求コマンドに含まれる応答先ＩＤで示されるパソコン３１−１に応答するコマンドである。ステータス返信コマンドは、実行セクションのデータ領域に装置情報を格納する。
【００９０】
図６は、DMAコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す図である。
【００９１】
装置ＩＤは、情報処理コントローラ４１を備えるパソコン３１−２乃至パソコン３１−４を識別するための識別子であり、ステータス返信コマンドを送信するパソコン３１−２乃至パソコン３１−４のＩＤを示す。装置ＩＤは、例えば、装置の電源をオンしたとき、パソコン３１−２乃至パソコン３１−４の情報処理コントローラ４１に含まれるメインプロセッサ５２によって、装置の電源をオンしたときの日時、パソコン３１−２乃至パソコン３１−４のネットワークアドレスおよびパソコン３１−２乃至パソコン３１−４の情報処理コントローラ４１に含まれるサブプロセッサ５３の数などに基づいて生成される。
【００９２】
装置種別ＩＤには、パソコン３１−２乃至パソコン３１−４の特徴を表す値が含まれる。パソコン３１−２乃至パソコン３１−４の特徴とは、パソコン３１−２乃至パソコン３１−４がどのような装置であるかを示す情報である。パソコン３１−２乃至パソコン３１−４の特徴や機能を表す値は予め決定されているものとし、装置種別ＩＤを読み出すことにより、パソコン３１−２乃至パソコン３１−４の特徴や機能を把握することが可能である。
【００９３】
メインプロセッサ動作周波数は、情報処理コントローラ４１のメインプロセッサ５２の動作周波数を表す。メインプロセッサ使用率は、メインプロセッサ５２で現在動作している全てのプログラムについての、メインプロセッサ５２での使用率を表す。メインプロセッサ使用率は、メインプロセッサ５２の全処理能力に対する使用中の処理能力の比率を表した値で、例えば、プロセッサ処理能力評価のための単位であるMIPSを単位として算出され、または単位時間あたりのプロセッサ使用時間に基づいて算出される。
【００９４】
サブプロセッサ数は、情報処理コントローラ４１が備えるサブプロセッサ５３の数を表す。サブプロセッサＩＤは、情報処理コントローラ４１のサブプロセッサ５３を識別するための識別子である。
【００９５】
サブプロセッサステータスは、サブプロセッサ５３の状態を表すものであり、“unused”、“reserved”、および“busy”などの状態がある。“unused”は、サブプロセッサ５３が現在使用されてなく、使用の予約もされていないことを示す。“reserved”は、現在は使用されていないが、予約されている状態を示す。“busy”は、現在使用中であることを示す。
【００９６】
サブプロセッサ使用率は、サブプロセッサ５３で現在実行している、またはサブプロセッサ５３に実行が予約されているプログラムについての、サブプロセッサ５３での使用率を表す。すなわち、サブプロセッサ使用率は、サブプロセッサステータスが“busy”である場合には、現在の使用率を示し、サブプロセッサステータスが“reserved”である場合には、後に使用される予定の推定使用率を示す。
【００９７】
サブプロセッサＩＤ、サブプロセッサステータスおよびサブプロセッサ使用率は、１つのサブプロセッサ５３に対して一組設定され、１つの情報処理コントローラ４１のサブプロセッサ５３に対応する組数が設定される。
【００９８】
メインメモリ総容量およびメインメモリ使用量は、それぞれ、情報処理コントローラ４１に接続されているメインメモリ４２の総容量および現在使用中の容量を表す。
【００９９】
記録部数は、情報処理コントローラ４１に接続されている記録部４３の数を表す。記録部ＩＤは、情報処理コントローラ４１に接続されている記録部４３を一意的に識別する情報である。記録部種別ＩＤは、記録部４３の種類（例えば、ハードディスク、ＣＤ±ＲＷ、DVD±ＲＷ、メモリディスク、SRAM、ROMなど）を表す。
【０１００】
記録部総容量および記録部使用量は、それぞれ、記録部ＩＤによって識別される記録部４３の総容量および現在使用中の容量を表す。
【０１０１】
記録部ＩＤ、記録部種別ＩＤ、記録部総容量および記録部使用量は、１つの記録部４３に対して一組設定されるものであり、情報処理コントローラ４１に接続されている記録部４３の数の組数だけ設定される。すなわち、１つの情報処理コントローラ４１に複数の記録部４３が接続されている場合、各記録部４３には異なる記録部ＩＤが割り当てられ、記録部種別ＩＤ、記録部総容量および記録部使用量も別々に管理される。
【０１０２】
このようにして、パソコン３１−１は、パソコン３１−２乃至パソコン３１−４に分散処理を実行させる場合、ソフトウェアセルを生成し、生成したソフトウェアセルを、ネットワーク２１を介してパソコン３１−２乃至パソコン３１−４あてに送信する。
【０１０３】
なお、以下、パソコン３１−１からパソコン３１−２乃至パソコン３１−４あてに送信される各種データは、ソフトウェアセルに格納されて送信されるものとし、繰り返しになるので、その説明は省略する。
【０１０４】
所定のパソコン３１内の情報処理コントローラ４１に含まれるメインプロセッサ５２は、上述したような構成のソフトウェアセルを生成し、ネットワーク２１を介して他のパソコン３１およびパソコン３１内の情報処理コントローラ４１に送信する。送信元のパソコン３１、送信先のパソコン３１、応答先のパソコン３１、および各パソコン３１内の情報処理コントローラ４１は、それぞれ、上述した送信元ＩＤ、送信先ＩＤおよび応答先ＩＤによって識別される。
【０１０５】
ソフトウェアセルを受信したパソコン３１内の情報処理コントローラ４１に含まれるメインプロセッサ５２は、そのソフトウェアセルをメインメモリ４２に格納する。さらに、送信先のメインプロセッサ５２は、ソフトウェアセルを読み出し、それに含まれるDMAコマンドを処理する。
【０１０６】
具体的に、送信先のメインプロセッサ５２は、まず、ロードコマンドを実行する。これによって、ロードコマンドで指示されたメインメモリアドレスから、ロードコマンドに含まれるサブプロセッサＩＤおよびＬＳアドレスで特定されるサブプロセッサ５３内のローカルストレージ６１の所定領域に、情報がロードされる。ここでロードされる情報は、受信したソフトウェアセルに含まれるサブプロセッサプログラムまたはデータ、あるいはその他の指示されたデータである。
【０１０７】
次に、メインプロセッサ５２は、キックコマンドを、これに含まれるサブプロセッサＩＤで指示されたサブプロセッサ５３に、同様にキックコマンドに含まれるプログラムカウンタと共に出力する。
【０１０８】
指示されたサブプロセッサ５３は、そのキックコマンドおよびプログラムカウンタに従って、サブプロセッサプログラムを実行する。そして、実行結果をメインメモリ４２に格納した後、実行を完了したことをメインプロセッサ５２に通知する。
【０１０９】
なお、送信先のパソコン３１内の情報処理コントローラ４１においてソフトウェアセルを実行するプロセッサはサブプロセッサ５３に限定されるものではなく、メインプロセッサ５２がソフトウェアセルに含まれる機能プログラムなどのメインメモリ用プログラムを実行するように指定することも可能である。
【０１１０】
この場合には、送信元のパソコン３１は、送信先のパソコン３１宛に、サブプロセッサプログラムの代わりに、メインメモリ用プログラムおよびそのメインメモリ用プログラムによって処理されるデータを含み、DMAコマンドがロードコマンドであるソフトウェアセルを送信し、メインメモリ４２にメインメモリ用プログラムおよびそれによって処理されるデータを記憶させる。次に、送信元のパソコン３１は、送信先のパソコン３１宛に、送信先のパソコン３１内の情報処理コントローラ４１についてのメインプロセッサＩＤ、メインメモリアドレス、メインメモリ用プログラムを識別するための後述の機能プログラムＩＤなどの識別子、およびプログラムカウンタを含み、ＤＭＡコマンドがキックコマンドまたは機能プログラム実行コマンドであるソフトウェアセルを送信して、メインプロセッサ５２にメインメモリ用プログラムを実行させる。
【０１１１】
以上のように、この発明の情報処理システムにおいて、送信元のパソコン３１は、サブプロセッサプログラムまたはメインメモリ用プログラムをソフトウェアセルによって送信先のパソコン３１に送信するとともに、サブプロセッサプログラムを送信先のパソコン３１内の情報処理コントローラ４１に含まれるサブプロセッサ５３にロードさせ、サブプロセッサプログラムまたはメインメモリ用プログラムを送信先のパソコン３１に実行させることができる。
【０１１２】
送信先のパソコン３１内の情報処理コントローラ４１は、受信したソフトウェアセルに含まれるプログラムがサブプロセッサプログラムである場合には、サブプロセッサプログラムを指定されたサブプロセッサ５３にロードさせる。そして、情報処理コントローラ４１は、サブプロセッサ５３に、ソフトウェアセルに含まれるサブプロセッサプログラムまたはメインメモリ用プログラムを実行させる。
【０１１３】
したがって、ユーザが送信先のパソコン３１を操作しなくても自動的に、サブプロセッサプログラムまたはメインメモリ用プログラムを送信先のパソコン３１内の情報処理コントローラ４１に実行させることができる。
【０１１４】
このようにしてパソコン３１は、自装置内の情報処理コントローラ４１がサブプロセッサプログラムまたは機能プログラムなどのメインメモリ用プログラムを有していない場合には、ネットワーク２１に接続された他のパソコン３１からそれらを取得することができる。さらに、各サブプロセッサ５３間ではDMA方式によりデータ転送を行い、また上述したサンドボックスを使用することによって、１つの情報処理コントローラ４１内でデータを多段階に処理する必要がある場合でも、高速かつより安全に処理を実行することができる。
【０１１５】
ソフトウェアセルの使用による分散処理の結果、図７で示されるようにネットワーク２１に接続されているパソコン３１−１乃至パソコン３１−４は、インターネット１に接続された１台のパソコンと同様な、仮想的な仮想パソコン１００として動作する。ただし、そのためには、以下のような構成によって、以下のような処理が実行される必要がある。
【０１１６】
図８は、個々の情報処理コントローラ４１のメインメモリ４２にロードされるプログラムの構成を示す図である。これらのソフトウェア（プログラム）は、パソコン３１に電源が投入される前においては、情報処理コントローラ４１に接続される記録部４３に記録されている。
【０１１７】
各プログラムは、機能または特徴によって、制御プログラム１２１、機能プログラム１２２およびデバイスドライバ１２３に分類される。
【０１１８】
各情報処理コントローラ４１は、同じ制御プログラム１２１を実行する、より具体的には、制御プログラム１２１は、各情報処理コントローラ４１のメインプロセッサ５２により実行され、後述するＭＳ（マスタ／スレーブ）マネージャ１３１および能力交換プログラム１３２を含む。
【０１１９】
機能プログラム１２２は、メインプロセッサ５２により実行され、再生プログラム１４１、録画プログラム１４２、およびゲームプログラム１４３など、情報処理コントローラ４１ごとにパソコン３１に応じたものを含む。
【０１２０】
再生プログラム１４１は、記録部４３に記録されているデータ、例えば、動画像などの映像データやインターネット放送によって送信される画像や音声などのデータを再生するアプリケーションプログラムである。インターネット放送については、図１２を参照して後述する。
【０１２１】
録画プログラム１４２は、テレビジョン放送やインターネット放送などにより送信される画像や音声などのデータを記録部４３に記録（録画）するアプリケーションプログラムである。
【０１２２】
ゲームプログラム１４３は、所定のゲームを実行するアプリケーションプログラムである。
【０１２３】
デバイスドライバ１２３は、操作入力部４５、出力部４６、および通信部４７などの入出力用のデバイスを制御し、操作入力ドライバ１５１、放送受信ドライバ１５２、モニタ（ディスプレイ）出力ドライバ１５３、ビットストリーム入出力ドライバ１５４、ネットワーク入出力ドライバ１５５など、情報処理コントローラ４１ごとにパソコン３１に応じたものを含む。
【０１２４】
操作入力ドライバ１５１は、操作入力部４５を制御し、ユーザによる操作入力部４５の操作に応じた信号を取得し、取得した信号を、図示せぬオペレーティングシステムに供給する。
【０１２５】
放送受信ドライバ１５２は、図示せぬチューナなどを制御し、テレビジョン放送を受信する。放送受信ドライバ１５２は、受信したテレビジョン放送の番組を再生プログラム１４１または録画プログラム１４２に供給する。
【０１２６】
モニタ出力ドライバ１５３は、出力部４６を制御し、再生プログラム１４１またはゲームプログラム１４３より供給される映像データ（画像データおよび音声データ）を、出力部４６であるモニタ（ディスプレイ）またはスピーカに出力させる。
【０１２７】
ビットストリーム入出力ドライバ１５４およびネットワーク入出力ドライバ１５５は、通信部４７を制御し、インターネット１やネットワーク２１を介し、画像や音声などのデータを取得し、再生プログラム１４１または録画プログラム１４２に供給する。また、ビットストリーム入出力ドライバ１５４およびネットワーク入出力ドライバ１５５は、通信部４７を制御し、所定のデータをインターネット１やネットワーク２１を介して、パソコン３１や図示せぬ装置に出力する。
【０１２８】
ケーブルの差し込みなどによってパソコン３１が物理的にネットワーク２１に接続された状態で、パソコン３１に主電源が投入され、パソコン３１が電気的、機能的にもネットワーク２１に接続されると、そのパソコン３１の情報処理コントローラ４１のメインプロセッサ５２は、制御プログラム１２１に属する各プログラム、およびデバイスドライバ１２３に属する各プログラムを、メインメモリ４２にロードする。
【０１２９】
ロード手順としては、メインプロセッサ５２は、まず、DC５６に読み出し命令を実行させることによって、記録部４３からプログラムを読み出し、次に、DMAC５４に書き込み命令を実行させることによって、そのプログラムをメインメモリ４２に書き込む。
【０１３０】
機能プログラム１２２に属する各プログラムについては、必要なときに必要なプログラムだけをロードするように構成してもよく、または、他のカテゴリに属するプログラムと同様に、主電源投入直後に各プログラムをロードするように構成してもよい。
【０１３１】
ここで、機能プログラム１２２に属する各プログラムは、ネットワーク２１に接続された全てのパソコン３１の記録部４３に記録されている必要はなく、いずれか１つのパソコン３１の記録部４３に記録されていれば、他のパソコン３１からロードすることができるので、この場合であっても、図７で示されるように、仮想的な１台のパソコンである仮想パソコン１００として機能プログラム１２２を実行することができる。
【０１３２】
図５のソフトウェアセルに示したように、機能プログラム１２２には、プログラムごとにプログラムを一意的に識別できる識別子が、機能プログラムＩＤとして割り当てられる。機能プログラムＩＤは、機能プログラム１２２の作成の段階で、作成日時や装置ＩＤなどから決定される。
【０１３３】
メインプロセッサ５２は、自身が動作するパソコン３１の装置情報（動作状態に関する情報）を格納するための領域をメインメモリ４２に確保し、装置情報を自装置の装置情報テーブルとして記録する。ここでの装置情報は、図６で示した装置ＩＤ以下の各情報である。
【０１３４】
上述した情報処理システムでは、あるパソコン３１への主電源投入時、そのパソコン３１の情報処理コントローラ４１のメインプロセッサ５２は、マスタ／スレーブマネージャ（以下、ＭＳマネージャと称する）１３１をメインメモリ４２にロードし、実行する。
【０１３５】
ＭＳマネージャ１３１は、自身が動作するパソコン３１がネットワーク２１に接続されていることを検知すると、同じネットワーク２１に接続されている他のパソコン３１の存在を確認する。ここでの「接続」または「存在」は、上述したように、パソコン３１が物理的にネットワーク２１に接続されているだけでなく、電気的、機能的にもネットワーク２１に接続されていることを示す。
【０１３６】
また、以下、自身が動作するパソコン３１を自装置、他のパソコン３１を他装置と称する。
【０１３７】
ＭＳマネージャ１３１が同じネットワーク２１に接続されている他のパソコン３１の存在を確認する方法を以下に示す。
【０１３８】
ＭＳマネージャ１３１は、DMAコマンドがステータス要求コマンドであり、送信元ＩＤおよび応答先ＩＤがパソコン３１−１で、送信先ＩＤを特定しないソフトウェアセルを生成して、パソコン３１が接続されたネットワーク２１上に送信して、ネットワーク接続確認用のタイマーを設定する。タイマーのタイムアウト時間は、例えば１０分とされる。
【０１３９】
情報処理システム上に他のパソコン３１が接続されている場合、その他装置は、上述したステータス要求コマンドのソフトウェアセルを受信し、応答先ＩＤで特定されるステータス要求コマンドを発行したパソコン３１に対して、DMAコマンドがステータス返信コマンドで、かつデータとして自身（その他装置）の装置情報を含むソフトウェアセルを送信する。このステータス返信コマンドのソフトウェアセルには、少なくとも他装置を特定する情報（装置ＩＤ、メインプロセッサ５２に関する情報、サブプロセッサ５３に関する情報など）および他装置のＭＳステータスが含まれる。
【０１４０】
ステータス要求コマンドを発行したパソコン３１のＭＳマネージャ１３１は、ネットワーク接続確認用のタイマーがタイムアウトするまで、ネットワーク２１上の他装置から送信されるステータス返信コマンドのソフトウェアセルの受信を監視する。その結果、ＭＳステータス＝０（マスタ装置）を示すステータス返信コマンドが受信された場合には、自装置の装置情報テーブルにおけるＭＳステータスを１に設定する。これによって、装置は、スレーブ装置となる。
【０１４１】
一方、ネットワーク接続確認用のタイマーがタイムアウトするまでの間にステータス返信コマンドが全く受信されなかった場合、またはＭＳステータス＝０（マスタ装置）を示すステータス返信コマンドが受信されなかった場合には、自装置の装置情報テーブルにおけるＭＳステータスを０に設定する。これによって、装置は、マスタ装置となる。
【０１４２】
すなわち、いずれの装置（パソコン３１）もネットワーク２１に接続されていない状態、またはネットワーク２１上にマスタ装置が存在しない状態において、新たなパソコン３１がネットワーク２１に接続されると、パソコン３１は自動的にマスタ装置として設定される。一方、ネットワーク２１上に既にマスタ装置が存在する状態において、新たなパソコン３１がネットワーク２１に接続されると、パソコン３１は自動的にスレーブ装置として設定される。
【０１４３】
マスタ装置およびスレーブ装置のいずれについても、ＭＳマネージャ１３１は、定期的にステータス要求コマンドをネットワーク２１上の他装置に送信してステータス情報を照会することにより、他装置の状況を監視する。その結果、ネットワーク２１に接続されているパソコン３１の主電源が遮断され、またはネットワーク２１からパソコン３１が切り離されることにより、あらかじめ判定用に設定された所定期間内に特定の他装置からステータス返信コマンドが返信されなかった場合や、ネットワーク２１に新たなパソコン３１が接続された場合など、ネットワーク２１の接続状態に変化があった場合には、その情報を後述する能力交換プログラム１３２に通知する。
【０１４４】
メインプロセッサ５２は、ＭＳマネージャ１３１から、ネットワーク２１上の他装置の照会および自装置のＭＳステータスの設定完了の通知を受けると、能力交換プログラム１３２を実行する。
【０１４５】
能力交換プログラム１３２は、自装置がマスタ装置である場合には、ネットワーク２１に接続されている全ての他装置の装置情報、すなわち各スレーブ装置の装置情報を取得する。
【０１４６】
他装置の装置情報の取得は、上述したように、DMAコマンドがステータス要求コマンドであるソフトウェアセルを生成して他装置に送信し、その後、DMAコマンドがステータス返信コマンドで、かつデータとして他装置の装置情報を含むソフトウェアセルを他装置から受信することによって可能とされる。
【０１４７】
能力交換プログラム１３２は、マスタ装置である自装置の装置情報テーブルと同様に、ネットワーク２１に接続されている全ての他装置（各スレーブ装置）の装置情報を格納するための領域を自装置のメインメモリ４２に確保し、これら情報を他装置（スレーブ装置）の装置情報テーブルとして記録する。
【０１４８】
すなわち、マスタ装置のメインメモリ４２には、自装置を含むネットワーク２１に接続されている全てのパソコン３１の装置情報が、装置情報テーブルとして記録される。
【０１４９】
一方、能力交換プログラム１３２は、自装置がスレーブ装置である場合には、ネットワーク２１に接続されている全ての他装置の装置情報、すなわちマスタ装置および自装置以外の各スレーブ装置の装置情報を取得し、これら装置情報に含まれる装置ＩＤおよびＭＳステータスを、自装置のメインメモリ４２に記録する。
【０１５０】
すなわち、スレーブ装置のメインメモリ４２には、自装置の装置情報が、装置情報テーブルとして記録されるとともに、自装置以外のネットワーク２１に接続されているマスタ装置および各スレーブ装置についての装置ＩＤおよびＭＳステータスが、別の装置情報テーブルとして記録される。
【０１５１】
また、マスタ装置およびスレーブ装置のいずれについても、能力交換プログラム１３２は、上述したようにＭＳマネージャ１３１から、新たにネットワーク２１にパソコン３１が接続されたことが通知された場合、そのパソコン３１の装置情報を取得し、上述したようにメインメモリ４２に記録する。
【０１５２】
なお、ＭＳマネージャ１３１および能力交換プログラム１３２は、メインプロセッサ５２で実行されることに限らず、いずれかのサブプロセッサ５３で実行されてもよい。また、ＭＳマネージャ１３１および能力交換プログラム１３２は、パソコン３１の主電源が投入されている間は常時動作する常駐プログラムであることが望ましい。
【０１５３】
マスタ装置およびスレーブ装置のいずれについても、能力交換プログラム１３２は、上述したようにＭＳマネージャ１３１から、ネットワーク２１に接続されているパソコン３１の主電源が遮断され、またはネットワーク２１からパソコン３１が切り離されたことが通知された場合、そのパソコン３１の装置情報テーブルを自装置のメインメモリ４２から削除する。
【０１５４】
さらに、このようにネットワーク２１から切断されたパソコン３１がマスタ装置である場合には、以下のような方法によって、新たにマスタ装置が決定される。
【０１５５】
具体的に、例えば、ネットワーク２１から切断されていないパソコン３１は、それぞれ、自装置および他装置の装置ＩＤを数値に置き換えて、自装置の装置ＩＤを他装置の装置ＩＤと比較し、自装置の装置ＩＤがネットワーク２１から切断されていないパソコン３１中で最小である場合、そのスレーブ装置は、マスタ装置に移行して、ＭＳステータスを０に設定し、マスタ装置として、上述したように、ネットワーク２１に接続されている全ての他装置（各スレーブ装置）の装置情報を取得して、メインメモリ４２に記録する。
【０１５６】
図７で示されるように、ネットワーク２１に接続されている複数のパソコン３１−１乃至パソコン３１−４を仮想パソコン１００として動作させるためには、マスタ装置がユーザの操作およびスレーブ装置の動作状態を把握する必要がある。
【０１５７】
図７においては、例えば、パソコン３１−１がマスタ装置、パソコン３１−２乃至３１−４がスレーブ装置として動作しているものとする。
【０１５８】
ユーザによりネットワーク２１に接続されているパソコン３１が操作された場合、操作の対象がマスタ装置であるパソコン３１−１であれば、その操作情報は、パソコン３１−１において直接把握され、操作対象がスレーブ装置であるパソコン３１−２乃至３１−４であれば、その操作情報は、操作されたパソコン３１−２乃至３１−４からパソコン３１−１に送信される。すなわち、ユーザの操作対象がマスタ装置であるパソコン３１−１、またはスレーブ装置であるパソコン３１−２乃至３１−４のいずれであるかにかかわらず、その操作情報は常にパソコン３１−１において把握される。操作情報の送信は、例えば、DMAコマンドが操作情報送信コマンドであるソフトウェアセルによって行われる。
【０１５９】
そして、パソコン３１−１の情報処理コントローラ４１に含まれるメインプロセッサ５２は、その操作情報に従って、実行する機能プログラム１２２を選択する。その際、必要であれば、パソコン３１−１の情報処理コントローラ４１に含まれるメインプロセッサ５２は、自装置の記録部４３からメインメモリ４２に機能プログラム１２２をロードするが、パソコン３１−２乃至パソコン３１−４（スレーブ装置）がパソコン３１−１に機能プログラム１２２を送信してもよい。
【０１６０】
機能プログラム１２２には、その実行単位ごとに必要となる、図６で示される各情報として表される装置種別ＩＤ、メインプロセッサ５２またはサブプロセッサ５３の処理能力、メインメモリ４２の使用量、記録部４３に関する条件などの、装置に関する要求スペックが規定されている。
【０１６１】
パソコン３１−１の情報処理コントローラ４１に含まれるメインプロセッサ５２は、各機能プログラム１２２について必要となる、上述した要求スペックを読み出す。また、あらかじめ能力交換プログラム１３２によってメインメモリ４２に記録された装置情報テーブルを参照し、各パソコン３１の装置情報を読み出す。ここでの装置情報は、図６で示される装置ＩＤ以下の各情報を示し、メインプロセッサ５２、サブプロセッサ５３、メインメモリ４２、および記録部４３に関する情報である。
【０１６２】
パソコン３１−１の情報処理コントローラ４１に含まれるメインプロセッサ５２は、ネットワーク２１に接続された各パソコン３１の装置情報と、機能プログラム１２２の実行に必要となる要求スペックとを順次比較する。
【０１６３】
そして、例えば、機能プログラム１２２が録画機能を必要とする場合には、装置種別ＩＤを基に、録画機能を有するパソコン３１のみを特定して抽出する。さらに、機能プログラム１２２を実行するために必要なメインプロセッサ５２またはサブプロセッサ５３の処理能力、メインメモリ４２の使用量、記録部４３に関する条件を確保できるスレーブ装置を、実行要求候補装置として特定する。ここで、複数の実行要求候補装置が特定された場合には、候補装置から１つの実行要求候補装置を特定して選択する。
【０１６４】
実行要求するスレーブ装置が特定されたら、パソコン３１−１の情報処理コントローラ４１に含まれるメインプロセッサ５２は、その特定されたスレーブ装置について、自装置の情報処理コントローラ４１に含まれるメインメモリ４２に記録されているスレーブ装置の装置情報テーブルを更新する。
【０１６５】
さらに、パソコン３１−１の情報処理コントローラ４１に含まれるメインプロセッサ５２は、DMAコマンドがロードコマンドおよびキックコマンドであるソフトウェアセルを生成し、ソフトウェアセルのセルインターフェースに、機能プログラム１２２に関する必要なサブプロセッサ５３の情報およびサンドボックスサイズ（図２参照）を設定して、実行要求されるスレーブ装置に対して送信する。
【０１６６】
機能プログラム１２２の実行を要求されたスレーブ装置は、その機能プログラム１２２を実行するとともに、自装置の装置情報テーブルを更新する。その際、必要であれば、スレーブ装置内の情報処理コントローラ４１に含まれるメインプロセッサ５２は、上記の方法によって自装置の記録部４３からメインメモリ４２に機能プログラム１２２をロードする。
【０１６７】
機能プログラム１２２の実行を要求されたスレーブ装置の記録部４３に、必要な機能プログラム１２２が記録されていない場合には、他のパソコン３１がメインメモリ用プログラムとして機能プログラム１２２を、その機能プログラム１２２の実行要求先のスレーブ装置に送信するように、システムを構成すればよい。
【０１６８】
さらに、メインメモリ用プログラムと同様に、サブプロセッサプログラムも、必要であれば、ソフトウェアセルによって他のパソコン３１に送信して、他のパソコン３１のサブプロセッサ５３にロードさせ、他のパソコン３１に実行させることができる。
【０１６９】
機能プログラム１２２の実行終了後、機能プログラム１２２を実行したスレーブ装置の情報処理コントローラ４１に含まれるメインプロセッサ５２は、終了通知をパソコン３１−１の情報処理コントローラ４１に含まれるメインプロセッサ５２に送信するとともに、自装置の装置情報テーブルを更新する。パソコン３１−１の情報処理コントローラ４１に含まれるメインプロセッサ５２は、その終了通知を受信して、機能プログラム１２２を実行したスレーブ装置の装置情報テーブルを更新する。
【０１７０】
パソコン３１−１の情報処理コントローラ４１に含まれるメインプロセッサ５２は、自装置および他装置の装置情報テーブルの参照結果から、機能プログラム１２２を実行することができるパソコン３１として、自身を選択する場合もあり得る。その場合には、パソコン３１−１が機能プログラム１２２を実行する。
【０１７１】
次に、ユーザがパソコン３１−１を操作し、所定のアプリケーションプログラムによるアプリケーションの実行を予約する場合を例に、仮想パソコン１００の処理を説明する。
【０１７２】
図９は、パソコン３１のメインプロセッサ５２が実行する、機能プログラム１２２に含まれる予約実行プログラム２１１の機能の構成の例を示すブロック図である。
【０１７３】
予約実行プログラム２１１は、再生プログラム１４１乃至ゲームプログラム１４３などのアプリケーションプログラムによるアプリケーションの実行の予約、および予約されたアプリケーションをアプリケーションプログラムにより実行させる。予約実行プログラム２１１は、必要資源演算部２３１、判定部２３２、プログラム起動停止部２３３、予約部２３４、表示制御部２３５、資源データ２５１、および予約データ２５２を含むように構成される。
【０１７４】
資源データ２５１の詳細は、図１３および図１４を参照して後述するが、資源データ２５１は、仮想パソコン１００において、利用される各アプリケーションプログラムによるアプリケーションに利用される資源の量および仮想パソコン１００の仕様としての資源の量を含む。また、予約データ２５２には、予約されたアプリケーションプログラムによるアプリケーションの予約に関する情報、例えば、録画チャンネル、録画開始時刻、および録画終了時刻などの情報が含まれる。
【０１７５】
必要資源演算部２３１は、アプリケーションプログラムによるアプリケーションの実行に必要な資源（リソース）の量を演算する。例えば、必要資源演算部２３１は、実行を予約しようとするアプリケーションが実行される時点において必要とされるリソースの量を演算する。
【０１７６】
より具体的には、例えば、必要資源演算部２３１は、資源データ２５１に格納されている情報や判定部２３２より供給された判定結果を基に、予約または実行されているアプリケーションプログラムによるアプリケーションの実行に必要な資源（リソース）を演算する。必要資源演算部２３１は、その演算結果を判定部２３２に出力する。
【０１７７】
判定部２３２は、必要資源演算部２３１より供給された演算結果および資源データ２５１に含まれる仮想パソコン１００の仕様としての資源の量を基に、予約されるアプリケーションプログラムによるアプリケーションの実行に必要な資源の量が、自分（仮想パソコン１００）の資源の量より多いか否かを判定する。また、判定部２３２は、判定結果を必要資源演算部２３１、プログラム起動停止部２３３、予約部２３４、および表示制御部２３５に出力する。
【０１７８】
プログラム起動停止部２３３は、判定部２３２より供給された判定結果を基に、予約または実行されているアプリケーションプログラムに対する種々の設定を行う。また、プログラム起動停止部２３３は、アプリケーションプログラムを起動させるか、停止させる。また、プログラム起動停止部２３３は、予約部２３４および表示制御部２３５に、予約または実行されているアプリケーションに対する設定情報を出力する。設定情報とは、後述する図１１のステップＳ３９および図１７のステップＳ７２の処理により設定される情報である。
【０１７９】
予約部２３４は、判定部２３２より供給された判定結果およびプログラム起動停止部２３３より供給された設定情報を基に、実行の予約が指示されたアプリケーションプログラムによるアプリケーションを登録（予約）する。
【０１８０】
表示制御部２３５は、出力部４６を制御し、判定部２３２より供給された判定結果およびプログラム起動停止部２３３より供給された設定情報を基に、ユーザにアプリケーションプログラムによるアプリケーションを予約に関する情報を提示（表示）する。
【０１８１】
図１０および図１１は、アプリケーションの実行の予約の処理を説明するフローチャートである。この処理は、ユーザによりアプリケーションプログラムによるアプリケーションの実行の予約が指示された場合に、実行される。具体的には、今、ユーザは、パソコン３１−１を操作し、図１２で示されるように、１６時から１８時の間に、インターネット放送の録画の実行を新規予約しようとしているとする。
【０１８２】
ステップＳ３１において、必要資源演算部２３１は、新規に実行を予約しようとするアプリケーションプログラムによるアプリケーションの開始時間から終了時間までの間に、すでに実行が予約されているアプリケーションプログラムによるアプリケーションに利用される、各資源の量を集計した集計値を算出する。
【０１８３】
図１２は、実行が予約されたアプリケーションプログラムにより行われるアプリケーションを説明する図である。図１２で示されるように、例えば、アプリケーションプログラムとして、再生プログラム１４１および録画プログラム１４２が実行される。例えば、再生プログラム１４１によるアプリケーションとして、DC５６および記録部４３であるHDD（Hard Disk Drive）に記録されている映像データの再生およびインターネット放送の再生が実行され、録画プログラム１４２によるアプリケーションとして、テレビジョン放送の録画およびインターネット放送の録画が実行される。
【０１８４】
図１２で示されるように、１５時から１７時までは、再生プログラム１４１によって、DC５６および記録部４３であるHDDに記録されている映像データの再生が実行され、１７時から１９時までは、再生プログラム１４１によって、インターネット放送の再生が実行される。また、１６時から１８時までは、録画プログラム１４２によって、テレビジョン放送の録画が実行される。
【０１８５】
ここで、インターネット放送とは、図示せぬサーバによる、インターネット１を介した、ビットストリームによる、画像または音声などのデータの送信をいう。インターネット放送の再生においては、インターネット１を介して、サーバから送信されてきた画像または音声などのデータを受信して、受信したデータを基に、画像または音声などが再生される。インターネット放送の録画においては、インターネット１を介して、サーバから送信されてきた画像または音声などのデータを受信して、受信したデータが記録部４３−１および記録部４３−２などに記録される。
【０１８６】
すなわち、例えば、図１０のステップＳ３１の処理においては、新規に実行を予約しようとするアプリケーションプログラムによるアプリケーションの開始時間（時刻）が１６時であり、終了時間（時刻）が１８時である場合、図１２で示されるように、すでに予約されているアプリケーションプログラムによるアプリケーションとして、１６時から１７時までの、再生プログラム１４１による、DC５６および記録部４３であるHDDに記録されている映像データの再生のアプリケーションに利用される資源の量と、録画プログラム１４２による、テレビジョン放送の録画のアプリケーションに利用される資源の量とを集計した集計値、および１７時から１８時までの、再生プログラム１４１による、インターネット放送の再生のアプリケーションに利用される資源の量と、録画プログラム１４２のテレビジョン放送の録画のアプリケーションに利用される資源の量とを集計した集計値の２つの集計値が算出される。
【０１８７】
なお、ステップＳ３１の処理においては、実行の予約の単位時間毎に、集計値が算出される。すなわち、例えば、１時間を単位として、アプリケーションの実行の予約が可能である場合には、１時間毎に必要とされる資源の量が集計値として算出される。例えば、５分を単位として、アプリケーションの実行の予約が可能である場合には、５分毎に必要とされる資源の量が集計値として算出される。
【０１８８】
図１３は、各アプリケーションプログラムにより実行されるアプリケーションに利用される資源の量の例を示す図である。図１３で示される資源の量の情報は、資源データ２５１に含まれる。
【０１８９】
図１３で示されるように、例えば、パソコン３１−１のアプリケーションプログラムにおいては、再生プログラム１４１、録画プログラム１４２、およびゲームプログラム１４３が実行される。
【０１９０】
パソコン３１−１において実行されるアプリケーションプログラムによるアプリケーションにおいては、再生プログラム１４１のアプリケーションとして、DC５６および記録部４３であるHDDに記録されている映像データの再生およびインターネット放送の再生が実行され、録画プログラム１４２のアプリケーションとして、テレビジョン放送の録画およびインターネット放送の録画が実行され、ゲームプログラム１４３のアプリケーションとして、ゲームであるアプリケーションが実行される。
【０１９１】
図１３においては、各アプリケーションプログラムによるアプリケーションに利用される資源の量の例として、仮想パソコン１００における、メインプロセッサ５２やサブプロセッサ５３の数を示す“プロセッサの数”、アプリケーションに利用される仮想パソコン１００のメインメモリ４２の必要な記憶容量を示す“使用するメモリの容量”、インターネット１との通信のバンド幅（通信速度）を示す“ネットワークのバンド幅”、および仮想パソコン１００の記録部４３のバンド幅（書き込み速度または読み出し速度）を示す“HDDのバンド幅”が示されている。
【０１９２】
図１３で示されるように、再生プログラム１４１による、DC５６および記録部４３であるHDDに記録されている映像データの再生のアプリケーションにおいては、例えば、“プロセッサの数”が３個、“使用するメモリの容量”が３０メガバイト（MB）、“ネットワークのバンド幅”が０メガビット毎秒（Mbps）、および“HDDのバンド幅”が５メガビット毎秒（Mbps）の資源の量が必要とされる。
【０１９３】
再生プログラム１４１による、インターネット放送の再生のアプリケーションにおいては、例えば、“プロセッサの数”が２個、“使用するメモリの容量”が２０メガバイト（MB）、“ネットワークのバンド幅”が１．５メガビット毎秒（Mbps）、および“HDDのバンド幅”が０メガビット毎秒（Mbps）の資源の量が必要とされる。
【０１９４】
録画プログラム１４２による、テレビジョン放送の録画のアプリケーションにおいては、例えば、“プロセッサの数”が１個、“使用するメモリの容量”が１０メガバイト（MB）、“ネットワークのバンド幅”が０メガビット毎秒（Mbps）、および“HDDのバンド幅”が５メガビット毎秒（Mbps）の資源の量が必要とされる。
【０１９５】
録画プログラム１４２による、インターネット放送の録画のアプリケーションにおいては、例えば、“プロセッサの数”が１個、“使用するメモリの容量”が１０メガバイト（MB）、“ネットワークのバンド幅”が１．５メガビット毎秒（Mbps）、および“HDDのバンド幅”が５メガビット毎秒（Mbps）の資源の量が必要とされる。
【０１９６】
ゲームプログラム１４３による、ゲームのアプリケーションにおいては、例えば、“プロセッサの数”が４個、“使用するメモリの容量”が５０メガバイト（MB）、“ネットワークのバンド幅”が０メガビット毎秒（Mbps）、および“HDDのバンド幅”が０メガビット毎秒（Mbps）の資源の量が必要とされる。
【０１９７】
従って、図１２を参照して上述したようにステップＳ３１の処理により算出された集計値、すなわち、１６時から１７時までの、再生プログラム１４１による、DC５６および記録部４３であるHDDに記録されている映像データの再生のアプリケーションに利用される資源の量と、録画プログラム１４２によるテレビジョン放送の録画のアプリケーションに利用される資源の量とを集計した集計値は、“プロセッサの数”が４個、“使用するメモリの容量”が４０メガバイト（MB）、“ネットワークのバンド幅”が０メガビット毎秒（Mbps）、および“HDDのバンド幅”が１０メガビット毎秒（Mbps）とされる。
【０１９８】
１７時から１８時までの、再生プログラム１４１によるインターネット放送の再生のアプリケーションに利用される資源の量と、録画プログラム１４２によるテレビジョン放送の録画のアプリケーションに利用される資源の量とを集計した集計値は、“プロセッサの数”が３個、“使用するメモリの容量”が３０メガバイト（MB）、“ネットワークのバンド幅”が１．５メガビット毎秒（Mbps）、および“HDDのバンド幅”が５メガビット毎秒（Mbps）とされる。
【０１９９】
図１０のステップＳ３２において、必要資源演算部２３１は、ステップＳ３１の処理により算出した集計値から、資源毎に、資源の量の最大値を抽出する。すなわち、ステップＳ３１の処理により算出された集計値の中から、最大値として“プロセッサの数”が４個、“使用するメモリの容量”が４０メガバイト（MB）、“ネットワークのバンド幅”が１．５メガビット毎秒（Mbps）、および“HDDのバンド幅”が１０メガビット毎秒（Mbps）の値が抽出される。
【０２００】
ステップＳ３３において、必要資源演算部２３１は、ステップＳ３２の処理により抽出した各資源の最大値に、新規に予約しようとするアプリケーションプログラムによるアプリケーションに利用される、資源の量を加算した加算値を算出する。例えば、ユーザが、新規に時刻を予約するアプリケーションプログラムによるアプリケーションとして、１６時から１８時の間に、録画プログラム１４２の、インターネット放送の録画のアプリケーションの実行を予約する場合、図１３で示されるように、“プロセッサの数”が１個、“使用するメモリの容量”が１０メガバイト（MB）、“ネットワークのバンド幅”が１．５メガビット毎秒（Mbps）、および“HDDのバンド幅”が５メガビット毎秒（Mbps）の資源の量がステップＳ３２の処理により抽出された最大値に加算される。
【０２０１】
この場合、ステップＳ３３の処理により算出される加算値は、“プロセッサの数”が５個、“使用するメモリの容量”が５０メガバイト（MB）、“ネットワークのバンド幅”が３メガビット毎秒（Mbps）、および“HDDのバンド幅”が１５メガビット毎秒（Mbps）とされる。
【０２０２】
図１１のステップＳ３４において、判定部２３２は、ステップＳ３３の処理により算出された加算値が、仮想パソコン１００の資源の量を超えているか否かを判定する。
【０２０３】
図１４は、仮想パソコン１００（パソコン３１−１乃至パソコン３１−４の全体）の仕様としての資源の量の例を示す図である。仮想パソコン１００の資源の量の情報は、資源データ２５１に含まれる。
【０２０４】
図１４で示される例においては、仮想パソコン１００の仕様としての資源の量は、“プロセッサの数”が７個、“使用可能なメモリの容量”が１２８メガバイト（MB）、“ネットワークのバンド幅”が３メガビット毎秒（Mbps）、および“HDDのバンド幅”が１５メガビット毎秒（Mbps）とされる。
【０２０５】
すなわち、ステップＳ３４の処理においては、ステップＳ３３の処理により算出された加算値が、図１４で示される仮想パソコン１００の仕様の資源の量より大きいか否かが判定される。この場合、より具体的には、ステップＳ３４の処理においては、“プロセッサの数”、“メモリの容量”、“ネットワークのバンド幅”、または“HDDのバンド幅”などの資源の種類毎に判定される。例えば、ステップＳ３４の処理においては、ステップＳ３３の処理により算出された加算値におけるプロセッサの数が、仮想パソコン１００のプロセッサの数を超えているか否かが判定される。例えば、ステップＳ３４の処理においては、ステップＳ３３の処理により算出された加算値における“使用するメモリの容量”が仮想パソコン１００の“使用可能なメモリの容量”を超えているか否かが判定される。
【０２０６】
図１５は、同時刻に、アプリケーションプログラムによるアプリケーションに利用される資源（リソース）を説明する図である。仮想パソコン１００における、プロセッサＡ乃至プロセッサＧの、７個のプロセッサの使用状況は、プロセッサＡ乃至プロセッサＣが１５時から１７時までの間、再生プログラム１４１による、DC５６および記録部４３であるHDDに記録されている映像データの再生のアプリケーションに利用されている。プロセッサＡおよびプロセッサＢは、１７時から１９時までの間、再生プログラム１４１によるインターネット放送の再生のアプリケーションに利用されている。
【０２０７】
また、プロセッサＤは、１６時から１８時まで間、録画プログラム１４２による、DC５６および記録部４３であるHDDに記録されている映像データの再生のアプリケーションに利用されている。
【０２０８】
したがって、１６時から１８時までの間は、プロセッサＥ乃至プロセッサＧを、録画プログラム１４２によるインターネット放送の録画のアプリケーションの資源として利用することができる。
【０２０９】
ステップＳ３４において、ステップＳ３３の処理により算出された加算値が仮想パソコン１００の資源の量を超えていないと判定された場合、ステップＳ３５に進み、必要資源演算部２３１は、ステップＳ３３の処理において算出した加算値に、現在、実行中のアプリケーションプログラムによるアプリケーションに利用されている資源の量を加算した総加算値を算出する。
【０２１０】
例えば、ユーザが１４時に、新規にアプリケーションプログラムによるアプリケーション（録画プログラム１４２の、インターネット放送の録画のアプリケーション）実行を予約し（予約の処理そのものを１４時において行い）、１４時の時点で、パソコン３１−１でゲームを実行していた場合、例えば、図１３で示されるゲームプログラム１４３による、ゲームのアプリケーションの利用されている資源の量が加算された総加算値が算出される。
【０２１１】
この場合、ステップＳ３５の処理により算出される総加算値は、“プロセッサの数”が９個、“使用するメモリの容量”が１００メガバイト（MB）、“ネットワークのバンド幅”が３メガビット毎秒（Mbps）、および“HDDのバンド幅”が１５メガビット毎秒（Mbps）とされる。
【０２１２】
ステップＳ３６において、判定部２３２は、ステップＳ３５の処理により算出された総加算値が、図１４に示される仮想パソコン１００の資源の量を超えているか否かを判定する。
【０２１３】
ステップＳ３６において、ステップＳ３５の処理により算出された総加算値が、仮想パソコン１００の資源の量を超えていると判定された場合、ステップＳ３７に進み、プログラム起動停止部２３３は、表示制御部２３５を制御し、出力部４６に新規に予約されるアプリケーションプログラムによるアプリケーションの実行が開始される時刻における、実行中のアプリケーションプログラムによるアプリケーションに対する対応方法を表示させる。
【０２１４】
ここで、対応方法を出力部４６に表示させるのは、複数の対応方法の中から、１つの対応方法を、ユーザに選択させるためである。
【０２１５】
また、出力部４６に表示される対応方法とは、新規に予約されるアプリケーションプログラムによるアプリケーションの実行が開始される時刻において、例えば、現在、実行中のアプリケーションプログラムによるアプリケーションを終了させたり、現在、実行中のアプリケーションプログラムによるアプリケーションのコンテキストをセーブし、予約されているアプリケーションプログラムによるアプリケーションの終了後、実行を再開させたりする方法である。
【０２１６】
例えば、録画プログラム１４２による、インターネット放送の録画のアプリケーションの実行を予約しようとする場合、ゲームプログラム１４３を実行していたとき、ステップＳ３７において、ゲームプログラム１４３に対する対応方法が表示される。
【０２１７】
また、対応方法は、パソコン３１（仮想パソコン１００）が自動的に設定するようにしてもよい。
【０２１８】
ステップＳ３８において、プログラム起動停止部２３３は、対応方法が選択されたか否かを判定する。ステップＳ３８において、対応方法が選択されていないと判定された場合、手続きは、ステップＳ３７に戻り、対応方法が選択されるまで、上述した処理が繰り返し実行される。
【０２１９】
ステップＳ３８において、対応方法が選択されたと判定された場合、ステップＳ３９に進み、プログラム起動停止部２３３は、選択された対応方法を設定する。例えば、上述したように、新規に予約されるアプリケーションプログラムによるアプリケーションの実行が開始される時刻において、実行中のアプリケーションプログラムによるアプリケーションを終了するように設定される。
【０２２０】
ステップＳ４０において、予約部２３４は、アプリケーションプログラムによるアプリケーションの実行を予約し、処理は終了する。すなわち、例えば、１６時から１８時の間に、録画プログラム１４２による、インターネット放送の録画のアプリケーションの実行を指示するデータが予約データ２５２に格納される。
【０２２１】
ステップＳ３６において、ステップＳ３５の処理により算出された総加算値が、仮想パソコン１００の資源の量を超えていないと判定された場合、ステップＳ３７乃至ステップＳ３９の処理はスキップされ、手続きは、ステップＳ４０に進み、上述した処理が実行される。
【０２２２】
一方、ステップＳ３４において、ステップＳ３３の処理により算出された加算値が仮想パソコン１００の資源の量を超えていると判定された場合、ステップＳ４１に進み、予約部２３４は、予約データ２５２から、予約されているアプリケーションプログラムによるアプリケーションを検索する。
【０２２３】
ステップＳ４０において、表示制御部２３５は、出力部４６を制御し、ユーザに検索結果を表示する。例えば、図１２で示されるように、１６時から１７時の間に、再生プログラム１４１による、DC５６および記録部４３であるHDDに記録されている映像データの再生のアプリケーションおよび録画プログラム１４２による、テレビジョン放送の録画のアプリケーションの実行が予約され、１７時から１８時の間に、再生プログラム１４１によるインターネット放送の再生のアプリケーションおよび録画プログラム１４２による、テレビジョン放送の録画のアプリケーションの実行が予約されていることが表示（提示）される。
【０２２４】
ステップＳ４２において、予約部２３４は、アプリケーションプログラムによるアプリケーションの予約の解除が指示されたか否かを判定する。ステップＳ４２において、アプリケーションプログラムによるアプリケーションの予約の解除が指示されたと判定された場合、ステップＳ４３に進み、予約部２３４は、アプリケーションプログラムによるアプリケーションの予約を解除する（予約データ２５２から削除する）。
【０２２５】
ステップＳ４４の処理の後、手続きは、図１０のステップＳ３１に進み、上述した処理が繰り返される。
【０２２６】
ステップＳ４３において、アプリケーションプログラムによるアプリケーションの予約の解除が指示されていないと判定された場合、ステップＳ４５に進み、表示制御部２３５は、出力部４６を制御し、ユーザに新規にアプリケーションプログラムによるアプリケーションの実行を予約することができない旨を表示して、新規に予約をしないで、処理は終了する。すなわち、１６時から１８時の間に、インターネット放送の録画をすることができない旨が出力部４６に表示（提示）される。
【０２２７】
図１６は、アプリケーションプログラムの起動の処理を説明するフローチャートである。この処理は、ユーザによって、所定のアプリケーションプログラムの実行が指示された場合に、実行される。例えば、１４時にユーザによって、インターネット放送の再生のアプリケーションの起動（実行）が指示されたとする。ステップＳ６１において、必要資源演算部２３１は、実行中のアプリケーションプログラムによるアプリケーションに利用されている、資源の量を集計した集計値を算出する。
【０２２８】
すなわち、例えば、ユーザが１４時の時点で、ゲームを行っていた場合、ゲームプログラム１４３によるゲームのアプリケーションが実行されているので、ステップＳ６１の処理により算出される集計値は、図１３で示されるように、“プロセッサの数”が４個、“使用するメモリの容量”が５０メガバイト（MB）、“ネットワークのバンド幅”が０メガビット毎秒（Mbps）、および“HDDのバンド幅”が０メガビット毎秒（Mbps）とされる。
【０２２９】
ステップＳ６２において、必要資源演算部２３１は、ステップＳ６１の処理において算出した集計値に、起動が指示された（起動しようとする）アプリケーションプログラムによるアプリケーションに利用される、資源の量を加算した加算値を算出する。インターネット放送の再生のアプリケーションの起動（実行）が指示されている場合、ステップＳ６１の処理において算出された集計値に加算される値は、図１３で示される“プロセッサの数”が２個、“使用するメモリの容量”が２０メガバイト（MB）、“ネットワークのバンド幅”が１．５メガビット毎秒（Mbps）、および“HDDのバンド幅”が０メガビット毎秒（Mbps）とされる。
【０２３０】
この場合、ステップＳ６２の処理により算出される加算値は、“プロセッサの数”が６個、“使用するメモリの容量”が７０メガバイト（MB）、“ネットワークのバンド幅”が１．５メガビット毎秒（Mbps）、および“HDDのバンド幅”が０メガビット毎秒（Mbps）とされる。
【０２３１】
ステップＳ６３において、判定部２３２は、ステップＳ６２の処理により算出された加算値が、図１４で示される仮想パソコン１００の資源の量を超えているか否かを判定する。
【０２３２】
ステップＳ６３において、ステップＳ６２の処理により算出された加算値が仮想パソコン１００の資源の量を超えていないと判定された場合、ステップＳ６４に進み、必要資源演算部２３１は、予約されているアプリケーションプログラムによるアプリケーションに利用される、資源の量を集計した集計値を算出する。例えば、図１２で示されるように、１５時の時点で、DC５６および記録部４３であるHDDに記録されている映像データの再生のアプリケーションの実行が予約されている場合、ステップＳ６３の処理により算出される集計値は、“プロセッサの数”が３個、“使用するメモリの容量”が３０メガバイト（MB）、“ネットワークのバンド幅”が０メガビット毎秒（Mbps）、および“HDDのバンド幅”が５メガビット毎秒（Mbps）とされる。
【０２３３】
１６時の時点で、DC５６および記録部４３であるHDDに記録されている映像データの再生、テレビジョン放送の録画、およびインターネット放送の録画のアプリケーションの実行が予約されている場合、ステップＳ６３の処理により算出される集計値は、“プロセッサの数”が５個、“使用するメモリの容量”が５０メガバイト（MB）、“ネットワークのバンド幅”が１．５メガビット毎秒（Mbps）、および“HDDのバンド幅”が１５メガビット毎秒（Mbps）とされる。
【０２３４】
１７時の時点で、インターネット放送の再生、テレビジョン放送の録画、およびインターネットの録画のアプリケーションの実行が予約されている場合、ステップＳ６３の処理により算出される集計値は、“プロセッサの数”が４個、“使用するメモリの容量”が４０メガバイト（MB）、“ネットワークのバンド幅”が３メガビット毎秒（Mbps）、および“HDDのバンド幅”が１０メガビット毎秒（Mbps）とされる。
【０２３５】
１８時の時点で、インターネット放送の再生のアプリケーションの実行が予約されている場合、ステップＳ６３の処理により算出される集計値は、“プロセッサの数”が２個、“使用するメモリの容量”が２０メガバイト（MB）、“ネットワークのバンド幅”が１．５メガビット毎秒（Mbps）、および“HDDのバンド幅”が０メガビット毎秒（Mbps）とされる。
【０２３６】
以上のように、図１２で示されるように、各アプリケーションの実行が予約されている場合、ステップＳ６３において、４つの時刻における各資源の量の集計値が算出される。
【０２３７】
ステップＳ６５において、必要資源演算部２３１は、ステップＳ６４の処理により算出された集計値から、資源毎に、資源の量の最大値を抽出する。すなわち、上述した４つの時刻における集計値を基に、最大値が算出され、その最大値は、“プロセッサの数”が５個、“使用するメモリの容量”が５０メガバイト（MB）、“ネットワークのバンド幅”が３メガビット毎秒（Mbps）、および“HDDのバンド幅”が１５メガビット毎秒（Mbps）とされる。
【０２３８】
ステップＳ６６において、必要資源演算部２３１は、ステップＳ６２に処理より算出した加算値に、ステップＳ６５の処理により算出した最大値を加算した総加算値を算出する。すなわち、総加算値は、“プロセッサの数”が１１個、“使用するメモリの容量”が１２０メガバイト（MB）、“ネットワークのバンド幅”が４．５メガビット毎秒（Mbps）、および“HDDのバンド幅”が１５メガビット毎秒（Mbps）とされる。
【０２３９】
ステップＳ６７において、判定部２３２は、ステップＳ６６の処理により算出された総加算値が、図１４で示される仮想パソコン１００の資源の量を超えているか否かを判定する。
【０２４０】
ステップＳ６７において、ステップＳ６６の処理により算出された総加算値が、仮想パソコン１００の資源の量を超えていると判定された場合、ステップＳ６８に進み、表示制御部２３５は、予約されているアプリケーションプログラムによるアプリケーションが実行されることにより、起動が指示されたアプリケーションプログラムによるアプリケーションに影響がある旨を表示する。すなわち、予約されているアプリケーションが実行される時刻において、起動が指示されている再生プログラム１４１による、インターネット放送の再生のアプリケーションに影響がある（資源の不足が起こりアプリケーションの実行を継続することができなくなる）ことを示す情報が出力部４６に表示される。
【０２４１】
ステップＳ６９において、プログラム起動停止部２３３は、操作入力部４５からの信号を基に、起動が指示されたアプリケーションプログラムによるアプリケーションの実行の継続（起動の継続）が指示されたか否かを判定する。
【０２４２】
ステップＳ６９において、起動が指示されたアプリケーションプログラムによるアプリケーションの実行の継続が指示されていないと判定された場合、すなわち、ユーザが起動を指示したアプリケーションプログラムによるアプリケーションの実行を中止した場合、アプリケーションプログラムを起動しないで、処理は終了する。
【０２４３】
ステップＳ６９において、起動が指示されたアプリケーションプログラムによるアプリケーションの実行の継続が指示されたと判定された場合、ステップＳ７０に進み、プログラム起動停止部２３３は、表示制御部２３５を制御し、出力部４６に予約されているアプリケーションプログラムによるアプリケーションの実行が開始される時刻における、起動が指示されたアプリケーションプログラムによるアプリケーションに対する対応方法を表示させる。
【０２４４】
出力部４６に表示される対応方法とは、新規に予約されるアプリケーションプログラムによるアプリケーションの実行が開始される時刻において、例えば、実行中のアプリケーションプログラムによるアプリケーションを終了させたり、実行中のアプリケーションプログラムによるアプリケーションのコンテキストをセーブし、予約されているアプリケーションプログラムによるアプリケーションの終了後、実行を再開させたりする方法である。
【０２４５】
また、対応方法は、パソコン３１（仮想パソコン１００）が自動的に設定するようにしてもよい。
【０２４６】
ステップＳ７１において、プログラム起動停止部２３３は、対応方法が選択されたか否かを判定する。ステップＳ７１において、対応方法が選択されていないと判定された場合、手続きは、ステップＳ７０に戻り、対応方法が選択されるまで、上述した処理が繰り返し実行される。
【０２４７】
ステップＳ７１において、対応方法が選択されたと判定された場合、ステップＳ７２に進み、プログラム起動停止部２３３は、選択された対応方法を設定する。例えば、上述したように、予約されているアプリケーションプログラムによるアプリケーションの実行が開始される時刻において、起動が指示されたアプリケーションプログラムによるアプリケーションを終了するように設定される。
【０２４８】
ステップＳ７３において、プログラム起動停止部２３３は、起動が指示されたアプリケーションプログラムによるアプリケーションを実行する（アプリケーションプログラムを起動する）。例えば、インターネット放送の再生のアプリケーションが実行される。
【０２４９】
ステップＳ６７において、ステップＳ６６の処理により算出された総加算値が、仮想パソコン１００の資源の量を超えていると判定された場合、ステップＳ６８乃至ステップＳ７２の処理はスキップされ、手続きは、ステップＳ７３に進み上述した処理が実行される。
【０２５０】
一方、図１６のステップＳ６３において、ステップＳ６２の処理により算出された加算値が、仮想パソコン１００の資源の量を超えていると判定された場合、図１７のステップＳ７４に進み、表示制御部２３５は、起動が指示されたアプリケーションプログラムによるアプリケーションを実行することができない旨を表示し、処理は終了する。
【０２５１】
図１８は、予約されているアプリケーションの実行の処理を説明するフローチャートである。この処理は、予約されているアプリケーションプログラムによるアプリケーションが実行される時間（時刻）になった場合に開始（実行）される。ステップＳ１０１において、必要資源演算部２３１は、実行中のアプリケーションプログラムによるアプリケーションに利用されている資源の量を集計した集計値を算出する。例えば、図１２で示される１６時の時点で、ユーザがゲームを行っている場合、図１３で示される再生プログラム１４１の、DC５６および記録部４３であるHDDに記録されている映像データの再生およびゲームプログラム１４３の、ゲームのアプリケーションの実行に必要な資源の量が集計値として算出され、その集計値は、“プロセッサの数”が７個、“使用するメモリの容量”が８０メガバイト（MB）、“ネットワークのバンド幅”が０メガビット毎秒（Mbps）、および“HDDのバンド幅”が５メガビット毎秒（Mbps）とされる。
【０２５２】
ステップＳ１０２において、必要資源演算部２３１は、ステップＳ１０１の処理により算出された集計値に、起動する（予約により起動しようとする）アプリケーションプログラムのアプリケーションに利用される資源の量を加算した加算値を算出する。例えば、ステップＳ１０１の処理により算出された集計値に、図１２で示される、録画プログラム１４２による、テレビジョン放送の録画およびインターネット放送の録画のアプリケーションに利用される資源の量（図１３参照）が加算された加算値が算出される。その加算値は、“プロセッサの数”が９個、“使用するメモリの容量”が１００メガバイト（MB）、“ネットワークのバンド幅”が１．５メガビット毎秒（Mbps）、および“HDDのバンド幅”が１５メガビット毎秒（Mbps）とされる。
【０２５３】
ステップＳ１０３において、判定部２３２は、ステップＳ１０２の処理により算出された加算値が、図１４で示される仮想パソコン１００の資源の量を超えているか否かを判定する。ステップＳ１０３において、ステップＳ１０２の処理により算出された加算値が、仮想パソコン１００の資源の量を超えていると判定された場合、ステップＳ１０４に進み、プログラム起動停止部２３３は、実行中のアプリケーションプログラムによるアプリケーションの中から、予約されていないアプリケーションプログラム（すなわち、図１６および図１７のフローチャートを参照して説明した処理により起動したアプリケーションプログラム）のアプリケーションを検出する。
【０２５４】
ステップＳ１０５において、プログラム起動停止部２３３は、検出されたアプリケーションプログラムによるアプリケーションに対して、図１１のステップＳ３９または図１７のステップＳ７２の処理により設定された対応方法を実行する。
【０２５５】
すなわち、図１２で示される１６時の時点で、再生プログラム１４１による、DC５６および記録部４３であるHDDに記録されている映像データの再生、およびゲームプログラム１４３の、ゲームのアプリケーションが実行されている場合、ステップＳ１０４において、予約されていない（ユーザが予約せずに起動させたアプリケーションプログラムによる）ゲームのアプリケーションが検出され、ステップＳ１０５において、そのゲームのアプリケーションに対して、例えば、図１１のステップＳ３９の処理により設定された対応方法が実行される。
【０２５６】
その後、手続きは、ステップＳ１０１に戻り、上述した処理が繰り返される。
【０２５７】
ステップＳ１０３において、ステップＳ１０２の処理により算出された加算値が、仮想パソコン１００に資源の量を超えていないと判定された場合、ステップ１０６に進み、プログラム起動停止部２３３は、予約されているアプリケーションプログラムによるアプリケーションを実行し、処理は終了する。すなわち、例えば、図１２に示される録画プログラム１４２による、テレビジョン放送の録画およびインターネット放送の録画のアプリケーションが実行される。
【０２５８】
以上のように、アプリケーションプログラムによる各アプリケーションの実行に必要な資源の情報が、予め記録されることで、予約しようとするアプリケーションプログラムによるアプリケーションの実行の時点における、利用可能な資源の状況を推測することができる。これにより、予約されているアプリケーションプログラムによるアプリケーションと同時に実行することが可能なアプリケーションプログラムによるアプリケーションは、特定のアプリケーションプログラムによるアプリケーションに限ることなく、また、全てのアプリケーションプログラムによるアプリケーションの実行を停止させることなく、予約されているアプリケーションプログラムによるアプリケーションを確実に実行させると共に、同時により多くのアプリケーションを実行させることができる。
【０２５９】
なお、本発明は、仮想パソコン１００において、実行されるように説明したが、これに限ることなく、１台のパソコン３１−１において、適用されるようにしてもよい。この場合、図１４で示される資源の量は、パソコン３１−１の仕様としての資源の量とされる。
【０２６０】
また、本発明が適用される情報処理装置の実施の形態は、図１に示されるパソコン３１に限定されず、記録媒体の記録および読み出しの制御が可能な情報処理装置であれば構わない。具体的には、例えば、PDA（Personal Digital Assistants）、携帯電話機、または、デジタル電化製品（例えば、ハードディスク録画装置）等様々な実施の形態が可能である。
【０２６１】
このように、アプリケーションプログラムによるアプリケーションを予約することができるようにした場合、ユーザは、例えば、録画したいテレビジョン放送の番組が開始される時刻に、録画を開始させるために、録画機能を有する装置の前で待機することなく（録画時刻を気にすることなく）、確実に録画のアプリケーションプログラムによるアプリケーションを実行させることができる。算出手段が、予約しようとする第１のアプリケーションが実行される期間において必要とされる資源の最大の量を算出し、判定手段が、算出された資源の最大の量が自分の資源の量を超えているか否かを判定し、予約手段が、算出された資源の最大の量が自分の資源の量を超えていないと判定された場合、第１のアプリケーションプログラムによる第１のアプリケーションの実行を予約するようにした場合には、ユーザは、予約したアプリケーションプログラムによるアプリケーションの実行中に、可能な限り多くのアプリケーションプログラムによるアプリケーションを実行することができる。
【０２６２】
この記録媒体は、図１に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）７１、光ディスク（CD-ROM（Compact Disk Read-Only Memory），DVD（Digital Versatile Disc）を含む）７２、光磁気ディスク（MD（Mini Disc）（商標）を含む）７３、若しくは半導体メモリ７４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM（Read Only Memory）もしくは記録部４３−１および記録部４３−２などのハードディスクなどで構成される。
【０２６３】
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【０２６４】
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくても、並列的あるいは個別に実行される処理を含むものである。
【０２６５】
さらに、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２６６】
【図１】本発明を適用した情報処理システムの構成の例を示すブロック図である。
【図２】メインメモリを説明する図である。
【図３】サブプロセッサのローカルストレージを説明する図である。
【図４】キー管理テーブルを説明する図である。
【図５】ソフトウェアセルの構成の例を示す図である。
【図６】DMAコマンドがステータス返信コマンドである場合におけるソフトウェアセルのデータ領域の構造を示す図である。
【図７】仮想的な１台のパーソナルコンピュータとしての複数のパーソナルコンピュータを説明するブロック図である。
【図８】情報処理コントローラに実行されるプログラムの構成の例を示すブロック図である。
【図９】メインプロセッサが実行する予約実行プログラムの機能の構成の例を示すブロック図である。
【図１０】アプリケーションの実行の予約の処理を説明するフローチャートである。
【図１１】アプリケーションの実行の予約の処理を説明するフローチャートである。
【図１２】アプリケーションプログラムによるアプリケーションの実行を説明する図である。
【図１３】各アプリケーションプログラムによるアプリケーションに利用される資源の量の例を示す図である。
【図１４】パーソナルコンピュータの仕様としての資源の量の例を示す図である。
【図１５】同時刻に、アプリケーションプログラムによるアプリケーションに利用される資源を説明する図である。
【図１６】アプリケーションプログラムの起動の処理を説明するフローチャートである。
【図１７】アプリケーションプログラムの起動の処理を説明するフローチャートである。
【図１８】予約されているアプリケーションの実行の処理を説明するフローチャートである。
【符号の説明】
【０２６７】
１  インターネット，  ２１  ネットワーク，  ３１−１乃至３１−４  パーソナルコンピュータ，  １００  仮想パーソナルコンピュータ，  １４１  再生プログラム，  １４２  録画プログラム，  １４３  ゲームプログラム，  ２１１  予約実行プログラム，  ２３１  必要資源演算部，  ２３２  判定部，  ２３３  プログラム起動停止部，  ２３４  予約部，  ２３５  表示制御部，  ２５１  資源データ，  ２５２  予約データ
【図１】
2005352909.tif 000003
【図２】
2005352909.tif 000004
【図３】
2005352909.tif 000005
【図４】
2005352909.tif 000006
【図５】
2005352909.tif 000007
【図６】
2005352909.tif 000008
【図７】
2005352909.tif 000009
【図８】
2005352909.tif 000010
【図９】
2005352909.tif 000011
【図１０】
2005352909.tif 000012
【図１１】
2005352909.tif 000013
【図１２】
2005352909.tif 000014
【図１３】
2005352909.tif 000015
【図１４】
2005352909.tif 000016
【図１５】
2005352909.tif 000017
【図１６】
2005352909.tif 000018
【図１７】
2005352909.tif 000019
【図１８】
2005352909.tif 000020