(57)【特許請求の範囲】
【請求項１】
時刻を提供する第１の時計デバイスを備える制御部と、
それぞれが、時刻を提供する第２の時計デバイスを備え、仮想的な情報処理装置として機能する論理ドメインを１つ以上実行可能な複数の物理ドメインと、
を有し、
前記制御部は、各物理ドメインが備える第２の時計デバイスの時刻と前記第１の時計デバイスの時刻との間の第１の時刻差分を管理し、
前記各物理ドメインは、当該物理ドメインで実行される論理ドメインの時刻と当該物理ドメインが備える第２の時計デバイスの時刻との間の第２の時刻差分を管理し、
前記第１の時刻差分と前記第２の時刻差分とに基づいて、前記複数の物理ドメインで実行される論理ドメインの時刻を管理し、
前記制御部は、前記第１の時刻差分と前記複数の物理ドメインの少なくとも１つから通知される前記第２の時刻差分とに基づいて、前記論理ドメインの時刻についての情報を生成する、
ことを特徴とする情報処理装置。
【請求項２】
前記制御部は、何れかの物理ドメインが起動するとき、当該物理ドメインが備える第２の時計デバイスに前記第１の時計デバイスの時刻を設定し、設定後に生じる前記第１の時刻差分を管理することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記各物理ドメインは、前記第２の時刻差分を示す情報を保持し、
前記各物理ドメインは、当該物理ドメインが備える第２の時計デバイスの時刻を読み出し、読み出した時刻と前記第２の時刻差分を示す情報とに基づいて算出される時刻を、当該物理ドメインで実行される論理ドメインに提供する、
ことを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
前記各物理ドメインは、当該物理ドメインで実行される論理ドメインにより時刻設定の命令が発行されたことを検出すると、前記時刻設定の命令に基づいて前記第２の時刻差分を示す情報を更新することを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記制御部は、何れかの物理ドメインが起動するとき、当該物理ドメインに前記論理ドメインの時刻についての情報を出力し、
前記各物理ドメインは、前記制御部から取得した前記論理ドメインの時刻についての情報に基づいて、前記第２の時刻差分の初期値を設定する、
ことを特徴とする請求項４記載の情報処理装置。
【請求項６】
何れかの論理ドメインが第１の物理ドメインから第２の物理ドメインに移動する場合、前記第２の物理ドメインは、前記制御部で管理される前記第１および第２の物理ドメインそれぞれの前記第１の時刻差分に応じて、当該論理ドメインの前記第２の時刻差分を更新することを特徴とする請求項１乃至５の何れか一項に記載の情報処理装置。
【請求項７】
制御部と複数の物理ドメインとを有する情報処理装置の時刻制御方法であって、
各物理ドメインが、仮想的な情報処理装置として機能する論理ドメインを実行し、
前記制御部が、前記制御部が備える第１の時計デバイスの時刻と前記各物理ドメインが備える第２の時計デバイスの時刻との間の第１の時刻差分を管理し、
前記各物理ドメインが、当該物理ドメインで実行される論理ドメインの時刻と当該物理ドメインが備える第２の時計デバイスの時刻との間の第２の時刻差分を管理し、
前記第１の時刻差分と前記第２の時刻差分とに基づいて、前記複数の物理ドメインで実行される論理ドメインの時刻を管理し、
前記制御部が、前記第１の時刻差分と前記複数の物理ドメインの少なくとも１つから通知される前記第２の時刻差分とに基づいて、前記論理ドメインの時刻についての情報を生成する、
ことを特徴とする時刻制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および時刻制御方法に関する。
【背景技術】
【０００２】
現在、物理的な情報処理装置上で、１またはそれ以上の仮想的な情報処理装置（仮想マシンや論理ドメインと呼ぶことがある）を実行させる仮想化技術が利用されている。仮想化技術を用いる情報処理装置では、例えば、論理ドメインを制御するソフトウェア（ハイパーバイザと呼ぶことがある）が実行される。ハイパーバイザは、ＣＰＵ（Central Processing Unit）やＲＡＭ（Random Access Memory）などのリソースを、論理ドメインに割り当てる。論理ドメイン上では、オペレーティングシステム（ＯＳ：Operating System）が実行される。論理ドメインのＯＳは、ハイパーバイザから割り当てられたリソースを管理し、アプリケーションプログラムの実行を制御する。
【０００３】
論理ドメインのＯＳは、時刻取得や時刻設定などの時計アクセスを行うことがある。ここで、論理ドメインが認識する現在時刻を、情報処理装置が備える時計デバイスの時刻と異なるものに変換する（時計デバイスを仮想化する）ことも可能である。例えば、仮想計算機を実行する実計算機において、時刻機構オフセットを保持し、実計算機が備える実時刻機構の時刻と時刻機構オフセットとを用いて、仮想計算機上の仮想的な時刻機構を実現する時刻機構制御方法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−４０５５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、情報処理装置上で実行される論理ドメインが増加すると、情報処理装置が備える時計デバイスへのアクセスが増加するおそれがある。このため、アクセスの集中により、例えば、時計デバイスの負荷の増大や時計デバイスが接続されたバスの混雑などが発生し、応答速度が低下する可能性があるという問題がある。一方、単に情報処理装置が備える時計デバイスの数を増やすだけでは、時計デバイス間で時刻のずれが生じたときに、どのように時刻の整合性をとればよいかが問題となる。
【０００６】
本発明はこのような点に鑑みてなされたものであり、時計デバイスへのアクセスを効率的に分散できる情報処理装置および時刻制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
制御部と複数の物理ドメインとを有する情報処理装置が提供される。制御部は、時刻を提供する第１の時計デバイスを備える。複数の物理ドメインは、それぞれが、時刻を提供する第２の時計デバイスを備え、仮想的な情報処理装置として機能する論理ドメインを１つ以上実行可能である。制御部は、各物理ドメインが備える第２の時計デバイスの時刻と第１の時計デバイスの時刻との間の第１の時刻差分を管理する。各物理ドメインは、当該物理ドメインで実行される論理ドメインの時刻と当該物理ドメインが備える第２の時計デバイスの時刻との間の第２の時刻差分を管理する。第１の時刻差分と第２の時刻差分とに基づいて、複数の物理ドメインで実行される論理ドメインの時刻が管理される。
【０００８】
また、制御部と複数の物理ドメインとを有する情報処理装置の時刻制御方法が提供される。時刻制御方法では、各物理ドメインが、仮想的な情報処理装置として機能する論理ドメインを実行する。制御部が、制御部が備える第１の時計デバイスの時刻と各物理ドメインが備える第２の時計デバイスの時刻との間の第１の時刻差分を管理する。各物理ドメインが、当該物理ドメインで実行される論理ドメインの時刻と当該物理ドメインが備える第２の時計デバイスの時刻との間の第２の時刻差分を管理する。第１の時刻差分と第２の時刻差分とに基づいて、複数の物理ドメインで実行される論理ドメインの時刻を管理する。
【発明の効果】
【０００９】
上記情報処理装置および時刻制御方法によれば、時計デバイスへのアクセスを効率的に分散させることができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】ハードウェア構成例を示すブロック図である。
【図４】情報処理システムの論理構成例を示すブロック図である。
【図５】時刻オフセットテーブルの例を示す図である。
【図６】第２の実施の形態の時刻制御の例を示すシーケンス図である。
【図７】第２の実施の形態の時刻制御の例を示すシーケンス図（続き）である。
【図８】論理ドメインへのＴＯＤの割り当て例を示す図である。
【図９】時刻設定状況の第１の例を示す図である。
【図１０】時刻設定状況の第２の例を示す図である。
【図１１】時刻設定状況の第３の例を示す図である。
【図１２】ＴＯＤ差分テーブルの例を示す図である。
【図１３】第３の実施の形態の時刻制御の例を示すシーケンス図である。
【図１４】時刻設定状況の第４の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置を示す図である。第１の実施の形態の情報処理装置１０は、制御部１１および物理ドメイン１２，１３を有する。
【００１２】
制御部１１は、物理ドメイン１２，１３の管理を行う。制御部１１は、例えば、ＣＰＵおよびＲＡＭを有するコンピュータに、物理ドメイン１２，１３を管理するためのプログラムを実行させることで実現できる。制御部１１は、時計デバイス１１ａを有する。時計デバイス１１ａは、情報処理装置１０の基準となる時刻を提供するハードウェアである。
【００１３】
物理ドメイン１２，１３は、ＣＰＵやＲＡＭなどのリソースを有するコンピュータであり、仮想的な情報処理装置として機能する論理ドメインを１つ以上実行する。物理ドメイン１２，１３は、自身が有するリソースを論理ドメインに割り当てる。物理ドメイン１２，１３では、例えば、論理ドメインを制御するハイパーバイザが実行される。図１の例では、物理ドメイン１２で論理ドメイン１４が実行され、物理ドメイン１３で論理ドメイン１５が実行されている。論理ドメイン１４，１５上では、それぞれＯＳが実行される。
【００１４】
物理ドメイン１２は時計デバイス１２ａを有し、物理ドメイン１３は時計デバイス１３ａを有する。時計デバイス１２ａ，１３ａは、時刻を提供するハードウェアである。時計デバイス１２ａは、物理ドメイン１２で実行される論理ドメイン１４への時刻の提供に用いられる。時計デバイス１３ａは、物理ドメイン１３で実行される論理ドメイン１５への時刻の提供に用いられる。時計デバイス１２ａ，１３ａは、物理ドメイン１２，１３の停止によって保持している時刻を失う揮発性の時計デバイスであってもよい。
【００１５】
ここで、制御部１１は、時計デバイス１２ａ，１３ａそれぞれの時刻と時計デバイス１１ａの時刻との間の差分（第１の時刻差分）を管理する。物理ドメイン１２（例えば、物理ドメイン１２のハイパーバイザ）は、論理ドメイン１４が認識する時刻と時計デバイス１２ａの時刻との間の差分（第２の時刻差分）を管理する。同様に、物理ドメイン１３（例えば、物理ドメイン１３のハイパーバイザ）は、論理ドメイン１５が認識する時刻と時計デバイス１３ａの時刻との間の差分（第２の時刻差分）を管理する。情報処理装置１０では、時計デバイス１１ａが提供する時刻を基準として、第１の時刻差分と第２の時刻差分とに基づいて、論理ドメイン１４，１５それぞれの時刻が管理される。
【００１６】
例えば、制御部１１は、物理ドメイン１２が起動するとき、時計デバイス１１ａの時刻を時計デバイス１２ａに複製する。物理ドメイン１２は、時計デバイス１２ａの時刻に第２の時刻差分を加えた時刻を、論理ドメイン１４に提供する。第２の時刻差分は、論理ドメイン１４のＯＳが発行する時刻設定の命令に応じて、変化することがある。
【００１７】
一方、時計デバイス１２ａの時刻は、物理ドメイン１２が起動した後は、修正しないようにしてもよい。制御部１１は、時計デバイス１２ａの時刻を修正せずに、物理ドメイン１２の起動後に生じる時計デバイス１１ａと時計デバイス１２ａとの間の時刻のずれを管理することが考えられる。制御部１１は、論理ドメイン１４が停止するとき、物理ドメイン１２から第２の時刻差分を示す情報を取得し、第１の時刻差分と第２の時刻差分の合計を、論理ドメイン１４の時刻差分として保持してもよい。これにより、論理ドメイン１４が再起動するとき、その時点の時計デバイス１１ａの時刻に制御部１１が保持している時刻差分を加えた時刻を、論理ドメイン１４の初期設定時刻とすることができる。
【００１８】
情報処理装置１０では、物理ドメイン１２，１３それぞれが、仮想的な情報処理装置として機能する論理ドメインを実行する。制御部１１が、時計デバイス１１ａの時刻と時計デバイス１２ａ，１３ａの時刻との間の第１の時刻差分を管理する。物理ドメイン１２，１３それぞれが、当該物理ドメインで実行される論理ドメインの時刻と当該物理ドメインの時計デバイスの時刻との間の第２の時刻差分を管理する。情報処理装置１０は、第１の時刻差分と第２の時刻差分とに基づいて、論理ドメイン１４，１５の時刻を管理する。
【００１９】
これにより、論理ドメイン１４，１５によるアクセスを、時計デバイス１２ａ，１３ａに分散させることができる。よって、特定の時計デバイスへの負荷の集中やバスの混雑を抑制することができ、起動する論理ドメインの数を増やしても、応答速度の低下を抑制できる。また、制御部１１が第１の時刻差分を管理し、物理ドメイン１２，１３が第２の時刻差分を管理するため、時計デバイス１２ａ，１３ａの時刻を継続的に修正しなくても、時刻の整合性を確保できる。よって、整合性確保のための処理のオーバヘッドを抑制できる。また、物理ドメイン１２，１３が、時計デバイス１２ａ，１３ａを用いずソフトウェアによって時刻管理を行う場合と比べて、時刻精度の維持が容易となり、ＮＴＰ（Network Time Protocol）通信などの精度維持のための処理を抑制できる。
【００２０】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、ビルディングブロック（ＢＢ：Building Block）１００，２００，３００を含む。ＢＢ１００，２００，３００は、仮想的な情報処理装置として機能する論理ドメインを実行可能なコンピュータの筐体である。ＢＢ１００，２００，３００は、通信ケーブルによって連結されている。例えば、ＢＢ１００，２００，３００が全対全に接続される。ただし、スイッチなどの通信装置を介して、間接的に接続されていてもよい。
【００２１】
図３は、ハードウェア構成例を示すブロック図である。ＢＢ１００は、システムボード（ＳＢ：System Board）１１０，１１０ａ、サービスプロセッサ（ＳＰ：Service Processor）１２０、ディスクユニット１３０および通信インタフェース１４０を有する。これらユニットは、例えば、ＢＢ１００内でバスに接続されている。なお、ＢＢ２００，３００も、ＢＢ１００と同様のハードウェア構成として実現できる。
【００２２】
ＳＢ１１０，１１０ａは、論理ドメインおよび論理ドメインを制御するハイパーバイザの実行に用いられるリソースの集合としてのコンピュータである。ＳＢ１１０は、ＴＯＤ（Time of Day）１１１、ＣＰＵ１１２〜１１４およびＲＡＭ１１５〜１１７を有する。ＳＢ１１０ａも、ＳＢ１１０と同様に、ＴＯＤ、ＣＰＵおよびＲＡＭを有する。ただし、ＢＢ１００が有するＳＢの数は、１つでもよいし３以上でもよい。
【００２３】
ＴＯＤ１１１は、ＳＢ１１０内で現在時刻を提供するハードウェアである。ただし、ＴＯＤ１１１が保持する現在時刻は、揮発性であり、ＳＢ１１０の起動時に初期値がＳＰ１２０によって設定され、ＳＢ１１０の停止に伴って失われる。ＣＰＵ１１２〜１１４は、ＯＳやハイパーバイザなどのプログラムを実行する演算装置である。ＲＡＭ１１５〜１１７は、プログラムやデータの少なくとも一部を一時的に記憶する揮発性のメモリである。ハイパーバイザによって、ＣＰＵ１１２〜１１４の処理能力およびＲＡＭ１１５〜１１７の記憶領域が、論理ドメインに割り当てられる。
【００２４】
ＳＰ１２０は、ＳＢ１１０，１１０ａを管理するコンピュータである。ＳＰ１２０は、ＴＯＤ１２１、ＣＰＵ１２２およびＲＡＭ１２３を有する。ＴＯＤ１２１は、ＢＢ１００全体の基準となる現在時刻を提供するハードウェアである。ＴＯＤ１２１にはバッテリから電力が供給されており、ＴＯＤ１２１が保持する時刻はＳＰ１２０が停止しても失われない不揮発性である。ＣＰＵ１２２は、ＳＢ１１０，１１０ａを管理するためのプログラムを実行する演算装置である。ＲＡＭ１２３は、プログラムやデータの少なくとも一部を一時的に記憶する揮発性のメモリである。
【００２５】
ディスクユニット１３０は、ＳＢ１１０，１１０ａやＳＰ１２０が使用するプログラムやデータを記憶する不揮発性の記憶装置の集合である。ディスクユニット１３０は、ＨＤＤ（Hard Disk Drive）１３１〜１３３を有する。ＨＤＤ１３１〜１３３は、ＳＢ１１０，１１０ａやＳＰ１２０からのアクセスに応じて、内蔵されたディスクに対して磁気的に書き込みおよび読み出しを行う。なお、ＨＤＤ１３１〜１３３に代えて、フラッシュメモリなど他の種類の不揮発性の記憶装置を用いてもよい。
【００２６】
通信インタフェース１４０は、通信ケーブルが接続される通信ポートを有するインタフェースである。通信インタフェース１４０は、接続された通信ケーブルを介して、他のＢＢ（ＢＢ２００，３００）と通信を行う。なお、ＢＢ１００，２００，３００間には、ＳＢが通信を行うための論理リンクと、ＳＰが通信を行うための論理リンクとが確立される。ＳＢ用の論理リンクとＳＰ用の論理リンクは、同一の物理的な通信ケーブルを共用してもよいし、互いに異なる物理的な通信ケーブルを用いてもよい。後者の場合、２つのＢＢの接続には、少なくとも２本の通信ケーブルが使用される。
【００２７】
図４は、情報処理システムの論理構成例を示すブロック図である。図４の例では、ＢＢ１００が有するＳＢ１１０と、ＢＢ２００が有するＳＢ２１０と、ＢＢ３００が有するＳＢ３１０とが、論理ドメインの実行に用いられる。なお、図４の例では、互いに異なるＢＢに属するＳＢを使用しているが、同一のＢＢに属する複数のＳＢを使用してもよい。
【００２８】
複数のＳＢは、物理ドメイン（物理パーティション（ＰＰＡＲ：Physical Partition）と呼ぶこともある）に分割される。同一の物理ドメインに属する複数のＳＢは、論理的に連結されており、ソフトウェアから単一のリソース集合として認識される。よって、論理ドメインを複数のＳＢに跨がるように配置することも可能である。一方、異なる物理ドメインに属するＳＢ同士は、論理的に分断されており、ソフトウェアからは互いに他のリソースを認識できない。
【００２９】
例えば、ＳＢ１１０，２１０が物理ドメイン＃０に属し、ＳＢ３１０が物理ドメイン＃１に属する。物理ドメイン＃０では、論理ドメイン＃０〜＃２とハイパーバイザ４１１が実現される。物理ドメイン＃１では、論理ドメイン＃３とハイパーバイザ４１２が実現される。
【００３０】
ハイパーバイザ４１１は、ＳＢ１１０，２１０に跨がって配置され、物理ドメイン＃０内の論理ドメイン＃０〜＃２を管理する。ＳＢ１１０，２１０それぞれで実行されるハイパーバイザのプログラムが互いに通信して連携することで、ハイパーバイザ４１１が実現される。ハイパーバイザ４１１により、論理ドメイン＃０がＳＢ１１０に配置され、論理ドメイン＃１がＳＢ１１０，２１０に跨がって配置され、論理ドメイン＃２がＳＢ２１０に配置される。ハイパーバイザ４１１が通信を行い、論理ドメイン＃１の状態を示す情報をＳＢ１１０とＳＢ２１０の間で受け渡すことで、論理ドメイン＃１が実現される。同様に、ハイパーバイザ４１２は、ＳＢ３１０に配置され、論理ドメイン＃３を管理する。
【００３１】
ＢＢ１００が有するＳＰ１２０と、ＢＢ２００が有するＳＰ２２０と、ＢＢ３００が有するＳＰ３２０とは、連携して時刻制御を行う。まず、ＢＢ１００〜３００が連結されると、ＳＰ１２０，２２０，３２０の中から、複数のＳＰを統括するマスタＳＰが選択される。第２の実施の形態では、ＳＰ１２０がマスタＳＰであるとする。マスタＳＰでないスレーブＳＰ（ＳＰ２２０，３２０）は、各スレーブＳＰが有するＴＯＤ（ＴＯＤ２２１，３２１）の時刻を、マスタＳＰが有するＴＯＤ（ＴＯＤ１２１）の時刻に同期させる。
【００３２】
そして、ＳＰ１２０は、ＴＯＤ１２１を用いて、ＳＢ１１０が有するＴＯＤ１１１の時刻を管理する。ＳＰ２２０は、ＴＯＤ２２１を用いて、ＳＢ２１０が有するＴＯＤ２１１の時刻を管理する。ＳＰ３２０は、ＴＯＤ３２１を用いて、ＳＢ３１０が有するＴＯＤ３１１の時刻を管理する。ハイパーバイザ４１１は、ＴＯＤ１１１，２１１を用いて、論理ドメイン＃０〜＃２に提供する時刻を管理する。ハイパーバイザ４１２は、ＴＯＤ３１１を用いて、論理ドメイン＃３に提供する時刻を管理する。
【００３３】
なお、ＴＯＤ１２１，２２１，３２１とＴＯＤ１１１，２１１，３１１の間では、時間の経過に伴って時刻のずれが生じる可能性がある。また、論理ドメイン＃０〜＃３では、ＯＳが時刻設定の命令を発行することで、それぞれ異なる時刻を設定することができる。すなわち、第２の実施の形態の情報処理システムは、各ＳＰの時刻と各ＳＢの時刻と各論理ドメインの時刻の３種類の時刻をもつことができる。
【００３４】
また、ＳＰ１２０，２２０，３２０は、第１の実施の形態の制御部１１の一例である。ＴＯＤ１２１，２２１，３２１は、時計デバイス１１ａの一例である。ＳＢ１１０，２１０，３１０は、物理ドメイン１２，１３の一例である。ＴＯＤ１１１，２１１，３１１は、時計デバイス１２ａ，１３ａの一例である。論理ドメイン＃０〜＃３は、論理ドメイン１４，１５の一例である。
【００３５】
図５は、時刻オフセットテーブルの例を示す図である。図５に示すような時刻オフセットテーブル１２４を、マスタＳＰであるＳＰ１２０が保持している。例えば、ＲＡＭ１２３に、時刻オフセットテーブル１２４が記憶される。時刻オフセットテーブル１２４は、ＩＤ（Identifier）とオフセットの項目を有する。ＩＤは、論理ドメイン＃０〜＃３を識別するための識別情報である。オフセットは、論理ドメイン＃０〜＃３が認識する仮想的な時刻と実際の時刻との差を示す時刻オフセットである。
【００３６】
論理ドメインが起動すると、時刻オフセットテーブル１２４が示す時刻オフセットを適用して当該論理ドメインが認識する仮想的な時刻が算出される。例えば、ＩＤ＝Ｄｏｍａｉｎ＃０，オフセット＝＋００：０１：１３が、時刻オフセットテーブル１２４に登録される。これは、論理ドメイン＃０の時刻が、実際の時刻より１分１３秒進んでいることを示す。なお、時刻オフセットは、論理ドメインのＯＳが時刻設定の命令を発行することで更新され得る。また、初めて起動する論理ドメインの時刻オフセットはゼロである。
【００３７】
図６は、第２の実施の形態の時刻制御の例を示すシーケンス図である。ここでは、ＳＢ２１０上で実行される論理ドメイン＃２についての時刻制御を中心に説明する。他の論理ドメインについても、同様の時刻制御が行われる。
【００３８】
（ステップＳ１１）スレーブＳＰであるＳＰ２２０は、ＴＯＤ２２１の時刻を、マスタＳＰであるＳＰ１２０のＴＯＤ１２１と定期的に同期させる。例えば、ＳＰ２２０は、ＮＴＰ通信によりＳＰ１２０から時刻を取得し、取得した時刻をＴＯＤ２２１に書き込む。ＳＰ３２０も、ＳＰ２２０と同様に時刻同期を行う。
【００３９】
なお、ＳＰ１２０，２２０，３２０は、ＴＯＤ１２１，２２１，３２１のハードウェア時計に加えて、ソフトウェア時計を有していてもよい。その場合、ハードウェア時計とソフトウェア時計の間でも、時刻同期が行われる。例えば、ＳＰ１２０は、後述するように外部のＮＴＰサーバを利用する場合、ＮＴＰ通信によりソフトウェア時計が更新されたとき、ソフトウェア時計の時刻をＴＯＤ１２１に書き込む。ＮＴＰサーバを利用しない場合は、ＴＯＤ１２１の時刻をソフトウェア時計に複製する。一方、ＳＰ２２０，３２０は、上記の時刻同期により、ＴＯＤ２２１，３２１とソフトウェア時計の両方を更新する。
【００４０】
次に、電源ＯＦＦになっていたＳＢ２１０が、電源ＯＮになり起動する場合を考える。
（ステップＳ２１）ＳＰ２２０は、同一ＢＢ内のＳＢ２１０の起動を検出すると、ＴＯＤ２２１の時刻をＳＢ２１０のＴＯＤ２１１に書き込む。例えば、ＴＯＤ２１１のＦＰＧＡ（Field Programmable Gate Array）に、ＴＯＤ２２１の値を書き込む。ＴＯＤ２１１は、書き込まれた時刻を初期値として、現在時刻のカウントを開始する。なお、時間の経過に伴い、ＴＯＤ２１１とＴＯＤ２２１の間で時刻のずれが発生する可能性がある。しかし、ＴＯＤ２１１の時刻は、ＳＢ２１０が次に再起動するまで修正されない。
【００４１】
（ステップＳ２２）ＳＰ２２０は、ＳＰ１２０にＳＢ２１０の起動を通知する。ＳＰ１２０は、時刻オフセットテーブル１２４に登録された時刻オフセットをＳＰ２２０に送信する。
【００４２】
（ステップＳ２３）ＳＰ２２０は、ＳＰ１２０から受信した時刻オフセットを、ＳＢ２１０で実行されるハイパーバイザ４１１に送信する。ハイパーバイザ４１１は、ＳＰ２２０から受信した時刻オフセットをＲＡＭに記憶しておく。なお、ＳＢ１１０が起動する場合は、ＳＰ１２０が単独で時刻設定および時刻オフセットの送信を行う。
【００４３】
次に、停止していた論理ドメイン＃２が、物理ドメイン＃０上で起動される場合を考える。
（ステップＳ３１）ハイパーバイザ４１１は、ＳＢ１１０，２１０が有するＣＰＵの中から、各ＳＢの負荷が偏らないように、論理ドメイン＃２の実行に用いる１または以上のＣＰＵを割り当てる。そして、論理ドメイン＃２に割り当てたＣＰＵの中から、それらＣＰＵによる処理を統括する（例えば、ＯＳを実行する）１つのマスタＣＰＵを選択する。ここでは、ＳＢ２１０の有するＣＰＵがマスタＣＰＵに選択されたとする。
【００４４】
（ステップＳ３２）ハイパーバイザ４１１は、ステップＳ３１で選択されたマスタＣＰＵと同一のＳＢに属するＴＯＤを、論理ドメイン＃２に割り当てる。ＳＢ２１０の有するＣＰＵがマスタＣＰＵに選択されることで、ＴＯＤ２１１が論理ドメイン＃２に割り当てられる。以降、ハイパーバイザ４１１は、論理ドメイン＃２についての時刻処理を、論理ドメイン＃２に割り当てたＴＯＤ２１１を用いて実行する。
【００４５】
次に、論理ドメイン＃２のＯＳが時刻を取得する場合を考える。
（ステップＳ４１）ハイパーバイザ４１１は、ＳＢ２１０上で、論理ドメイン＃２のＯＳが時刻取得のハイパーバイザコール（ｔｏｄ＿ｇｅｔ）を発行したことを検出する。
【００４６】
（ステップＳ４２）ハイパーバイザ４１１は、ＲＡＭに記憶されている時刻オフセットの中から、論理ドメイン＃２の時刻オフセットを検索する。
（ステップＳ４３）ハイパーバイザ４１１は、論理ドメイン＃２に割り当てられているＴＯＤ２１１にアクセスし、ＴＯＤ２１１の時刻を読み出す。そして、ＴＯＤ２１１の時刻に論理ドメイン＃２の時刻オフセットを加算して、論理ドメイン＃２の仮想的な時刻を算出し、算出した時刻をハイパーバイザコールの発行元である論理ドメイン＃２のＯＳに通知する。なお、時刻取得の際には、ＳＰ２２０のＴＯＤ２２１はアクセスされない。
【００４７】
次に、論理ドメイン＃２のＯＳが時刻を変更する場合を考える。
（ステップＳ５１）ハイパーバイザ４１１は、ＳＢ２１０上で、論理ドメイン＃２のＯＳが時刻設定のハイパーバイザコール（ｔｏｄ＿ｓｅｔ）を発行したことを検出する。なお、ｔｏｄ＿ｓｅｔが発行される場合としては、例えば、論理ドメイン＃２上でアプリケーションプログラムが時刻設定のコマンドを実行した場合などが考えられる。
【００４８】
（ステップＳ５２）ハイパーバイザ４１１は、上記ステップＳ４２，Ｓ４３と同様の方法により、変更前の論理ドメイン＃２の仮想的な時刻を算出する。そして、ハイパーバイザコールで指定された設定時刻と変更前の時刻との差を算出する。
【００４９】
（ステップＳ５３）ハイパーバイザ４１１は、算出した時刻の差が１秒以上ある場合、論理ドメイン＃２の時刻オフセットに算出した差を加算し、ＲＡＭに記憶されている時刻オフセットを更新する。そして、時刻設定の完了を、ハイパーバイザコールの発行元である論理ドメイン＃２のＯＳに通知する。なお、時刻設定の際には、ＳＢ２１０のＴＯＤ２１１およびＳＰ２２０のＴＯＤ２２１の時刻は修正されない。
【００５０】
図７は、第２の実施の形態の時刻制御の例を示すシーケンス図（続き）である。
ここでは、ＳＢ２１０上で実行されている論理ドメイン＃２が停止する場合を考える。
（ステップＳ６１）ハイパーバイザ４１１は、ＳＢ２１０上で、ＯＳのシャットダウンなど論理ドメイン＃２の停止を検出する。すると、ハイパーバイザ４１１は、ＲＡＭに記憶されている最新の論理ドメイン＃２の時刻オフセットを、ＳＰ２２０に送信する。
【００５１】
（ステップＳ６２）ＳＰ２２０は、ＳＢ２１０のＴＯＤ２１１から時刻を読み出す。
（ステップＳ６３）ＳＰ２２０は、ＴＯＤ２２１から時刻を読み出す。そして、ＴＯＤ２１１の時刻とＴＯＤ２２１の時刻の差分を算出する。なお、ＴＯＤ２１１の時刻の読み出しとＴＯＤ２２１の時刻の読み出しの間に、割り込みが発生しないよう制御する。
【００５２】
（ステップＳ６４）ＳＰ２２０は、ＳＢ２１０から受信した時刻オフセットにステップＳ６３で算出したＴＯＤ差分を加算し、時刻オフセットを更新する。そして、更新した時刻オフセットを、ＳＰ１２０に送信する。
【００５３】
（ステップＳ６５）ＳＰ１２０は、ＳＰ２２０から受信した時刻オフセットを、論理ドメイン＃２と対応付けて時刻オフセットテーブル１２４に登録する。なお、ＳＢ１１０上で実行されている論理ドメインが停止する場合は、ＳＰ１２０がステップＳ６２〜Ｓ６４に相当する処理も実行する。
【００５４】
次に、ＳＰ１２０のＴＯＤ１２１の時刻が更新される場合を考える。なお、ここでは、ＳＢ３１０が電源ＯＦＦであるとする。
（ステップＳ７１）ＳＰ１２０は、ＮＴＰ通信によりＮＴＰサーバから現在時刻を取得し、ＴＯＤ１２１に書き込む。
【００５５】
（ステップＳ７２）ＳＰ２２０は、ＴＯＤ２２１の時刻を、ＳＰ１２０のＴＯＤ１２１と同期させる。そして、時刻更新が発生したことをハイパーバイザ４１１に通知する。なお、ＳＰ３２０も、ＳＰ２２０と同様にＴＯＤ３２１の時刻を更新する。また、ＳＰ１２０は、ＳＰ２２０と同様に時刻更新が発生したことをハイパーバイザ４１１に通知する。
【００５６】
（ステップＳ７３）ハイパーバイザ４１１は、ＳＢ２１０のＴＯＤ２１１が割り当てられた論理ドメイン＃２についての時刻オフセットを、ＳＰ２２０に送信する。なお、ハイパーバイザ４１１は、ＳＢ２２０の場合と同様に、ＳＢ１１０のＴＯＤ１１１が割り当てられた論理ドメインについての時刻オフセットを、ＳＰ１２０に送信する。
【００５７】
（ステップＳ７４）ＳＰ２２０は、ＳＢ２１０のＴＯＤ２１１から時刻を読み出す。
（ステップＳ７５）ＳＰ２２０は、ＮＴＰによる更新が反映された時刻をＴＯＤ２２１から読み出す。そして、ＴＯＤ２１１の時刻とＴＯＤ２２１の時刻の差分を算出する。
【００５８】
（ステップＳ７６）ＳＰ２２０は、ＳＢ２１０から受信した時刻オフセットにステップＳ７５で算出したＴＯＤ差分を加算し、時刻オフセットを更新する。そして、更新した時刻オフセットを、ＳＰ１２０に送信する。
【００５９】
（ステップＳ７７）ＳＰ１２０は、ＳＰ２２０から受信した時刻オフセットを、論理ドメイン＃２と対応付けて時刻オフセットテーブル１２４に登録する。なお、ステップＳ７４〜Ｓ７６に相当する処理がＳＰ１２０でも実行され、ＴＯＤ１１１が割り当てられた論理ドメインについての時刻オフセットが更新される。
【００６０】
（ステップＳ７８）ＳＰ１２０は、ＮＴＰによる更新後の時刻と更新前の時刻との差を算出する。
（ステップＳ７９）ＳＰ１２０は、時刻オフセットテーブル１２４に登録された時刻オフセットのうち、ステップＳ７７で更新されなかった時刻オフセット（稼動していない論理ドメインの時刻オフセット）に、ＮＴＰによる時刻更新を反映させる。例えば、現在の時刻オフセットから、ステップＳ７８で算出した差を減算する。
【００６１】
図８は、論理ドメインへのＴＯＤの割り当て例を示す図である。図８の例では、論理ドメイン＃０に、ＳＢ１１０の２つのＣＰＵが割り当てられ、そのうち１つがマスタＣＰＵに選択される。論理ドメイン＃１に、ＳＢ１１０のＣＰＵとＳＢ２１０の２つのＣＰＵが割り当てられ、ＳＢ１１０のＣＰＵがマスタＣＰＵに選択される。論理ドメイン＃２に、ＳＢ２１０のＣＰＵが割り当てられ、当該ＣＰＵがマスタＣＰＵに選択される。
【００６２】
この場合、論理ドメイン＃０，＃１に対しては、ＴＯＤ１１１が割り当てられる。論理ドメイン＃０，＃１のＯＳが時刻取得や時刻設定のハイパーバイザコールを行うと、ハイパーバイザ４１１は、ＴＯＤ１１１の時刻を用いて時刻処理を行う。一方、論理ドメイン＃２に対しては、ＴＯＤ２１１が割り当てられる。論理ドメイン＃２のＯＳが時刻取得や時刻設定のハイパーバイザコールを行うと、ハイパーバイザ４１１は、ＴＯＤ２１１の時刻を用いて時刻処理を行う。
【００６３】
図９は、時刻設定状況の第１の例を示す図である。図９の例では、ＳＢ１１０とＳＢ２１０が同時期に起動する場合を考える。ＳＰ１２０が保持する時刻オフセットテーブル１２４には、論理ドメイン＃０のオフセット＝ａ０，論理ドメイン＃１のオフセット＝ｂ０，論理ドメイン＃２のオフセット＝ｃ０，論理ドメイン＃３のオフセット＝ｄ０が登録されている。また、ＴＯＤ１２１，２２１，３２１が示す現在時刻はＸ０である。
【００６４】
この場合、ＴＯＤ１１１にはＴＯＤ１２１の時刻Ｘ０が設定され、ＴＯＤ２１１にはＴＯＤ２２１の時刻Ｘ０が設定される。また、時刻オフセットテーブル１２４に登録された時刻オフセットが、ＳＰ１２０からハイパーバイザ４１１に送信される。ハイパーバイザ４１１は、論理ドメイン＃０の時刻Ａ０を、ＴＯＤ１１１の時刻Ｘ０に時刻オフセットａ０を加えて算出する。同様に、論理ドメイン＃１の時刻Ｂ０を、ＴＯＤ１１１の時刻Ｘ０に時刻オフセットｂ０を加えて算出する。論理ドメイン＃２の時刻Ｃ０を、ＴＯＤ２１１の時刻Ｘ０に時刻オフセットｃ０を加えて算出する。
【００６５】
図１０は、時刻設定状況の第２の例を示す図である。前述の通り、ＳＢ１１０，２１０が起動してから時間が経過すると、ＴＯＤ１２１，２２１，３２１とＴＯＤ１１１とＴＯＤ２１１の間で時刻のずれが生じる可能性がある。図１０の例では、ＴＯＤ１２１，２２１，３２１の時刻はＸ１、ＴＯＤ１１１の時刻はＹ１、ＴＯＤ２１１の時刻はＺ１である。
【００６６】
論理ドメイン＃０〜＃２を停止させる場合、ハイパーバイザ４１１は、論理ドメイン＃０の時刻Ａ１とＴＯＤ１１１の時刻Ｙ１の差である時刻オフセットＡ１−Ｙ１を、ＴＯＤ１１１と同一ＢＢに属するＳＰ１２０に送信する。論理ドメイン＃１の時刻Ｂ１とＴＯＤ１１１の時刻Ｙ１の差である時刻オフセットＢ１−Ｙ１をＳＰ１２０に送信する。また、論理ドメイン＃２の時刻Ｃ１とＴＯＤ２１１の時刻Ｚ１の差である時刻オフセットＣ１−Ｚ１を、ＴＯＤ２１１と同一ＢＢに属するＳＰ２２０に送信する。
【００６７】
ＳＰ１２０は、ＳＢ１１０から受信した時刻オフセットに、ＴＯＤ１１１の時刻Ｙ１とＴＯＤ１２１の時刻Ｘ１の差Ｙ１−Ｘ１を加え、時刻オフセットａ１，ｂ１を算出する。ＳＰ２２０は、ＳＢ２１０から受信した時刻オフセットに、ＴＯＤ２１１の時刻Ｚ１とＴＯＤ２２１の時刻Ｘ１の差Ｚ１−Ｘ１を加え、時刻オフセットｃ１を算出する。ＳＰ１２０は、時刻オフセットａ１，ｂ１，ｃ１を、時刻オフセットテーブル１２４に登録する。
【００６８】
図１１は、時刻設定状況の第３の例を示す図である。図１１の例では、ＴＯＤ１２１の時刻がＸ１からＸ２に変更された場合を考える。また、ＳＢ３１０は停止しており、ハイパーバイザ４１２および論理ドメイン＃３は稼動していないとする。
【００６９】
ＴＯＤ１２１の時刻がＸ２に変更されると、同期によりＴＯＤ２２１，３２１の時刻もＸ２に変更される。ＳＰ１２０，２２０は、それぞれハイパーバイザ４１１に時刻変更を通知する。ハイパーバイザ４１１は、論理ドメイン＃０の時刻オフセットＡ１−Ｙ１および論理ドメイン＃１の時刻オフセットＢ１−Ｙ１を、ＳＰ１２０に送信する。また、論理ドメイン＃２の時刻オフセットＣ１−Ｚ１をＳＰ２２０に送信する。
【００７０】
ＳＰ１２０は、ＳＢ１１０から受信した時刻オフセットに、ＴＯＤ１１１とＴＯＤ１２１の時刻の差Ｙ１−Ｘ２を加え、時刻オフセットａ２，ｂ２を算出する。ＳＰ２２０は、ＳＢ２１０から受信した時刻オフセットに、ＴＯＤ２１１とＴＯＤ２２１の時刻の差Ｚ１−Ｘ２を加え、時刻オフセットｃ２を算出する。ＳＰ１２０は、時刻オフセットａ２，ｂ２，ｃ２を、時刻オフセットテーブル１２４に登録する。
【００７１】
また、ＳＰ１２０は、ＴＯＤ１２１の変更前後の時刻の差Ｘ２−Ｘ１を算出する。そして、時刻オフセットテーブル１２４に登録されている稼動していない論理ドメイン＃３の時刻オフセットｄ０から差Ｘ２−Ｘ１を減じて、時刻オフセットｄ２に更新する。
【００７２】
なお、以上の説明では、ＳＰ１２０が保持する時刻オフセットテーブル１２４は、各論理ドメインが停止するとき、および、ＳＰ１２０のＴＯＤ１２１の時刻が変更されたときに更新されることとした。しかし、ハイパーバイザ４１１，４１２が異常終了する場合に備えて、上記以外のタイミングで時刻オフセットテーブル１２４を更新してもよい。例えば、ハイパーバイザ４１１，４１２が、各論理ドメインの時刻オフセットを定期的（例えば、１時間毎）に出力することで、定期的に時刻オフセットテーブル１２４が更新されるようにしてもよい。また、時刻設定のハイパーバイザコールが実行されて時刻オフセットが変更されたときに、時刻オフセットテーブル１２４が更新されるようにしてもよい。
【００７３】
第２の実施の形態の情報処理システムによれば、論理ドメイン＃０〜＃３がハイパーバイザコールを発行したときの時計アクセスを、ＴＯＤ１１１，２１１，３１１に分散させることができる。よって、特定のＴＯＤへの負荷の集中やバスの混雑を抑制することができ、起動する論理ドメインの数を増やしても、応答速度の低下を抑制できる。また、ＳＰ１２０，２２０，３２０がＴＯＤ間の時刻のずれを管理し、ハイパーバイザ４１１，４１２がＴＯＤと論理ドメインの間の時刻の差を分散管理するため、ＳＢ１１０，２１０，３１０の起動後にＴＯＤ１１１，２１１，３１１の時刻を継続的に修正しなくても、時刻の整合性を確保できる。よって、整合性確保のための処理のオーバヘッドを抑制できる。
【００７４】
［第３の実施の形態］
次に、第３の実施の形態を説明する。第２の実施の形態との差異を中心に説明し、同様の事項については説明を省略する。第３の実施の形態の情報処理システムは、論理ドメインの稼動中に当該論理ドメインに割り当てるＴＯＤを変更する場合を考える。第３の実施の形態の情報処理システムは、第２の実施の形態と同様に、図２に示したシステム構成、および、図３に示したハードウェア構成を用いて実現できる。以下では、図２〜４と同じ符号を用いて、第３の実施の形態を説明する。
【００７５】
図１２は、ＴＯＤ差分テーブルの例を示す図である。図１２に示すようなＴＯＤ差分テーブル１２５を、マスタＳＰであるＳＰ１２０が保持している。例えば、ＲＡＭ１２３にＴＯＤ差分テーブル１２５が記憶される。ＴＯＤ差分テーブル１２５は、ＩＤと差分の項目を有する。ＩＤは、ＳＢ１１０，２１０，３１０を識別するための識別情報である。差分は、各ＳＢが有するＴＯＤ（ＴＯＤ１１１，２１１，３１１）と各ＳＰが有するＴＯＤ（ＴＯＤ１２１，２２１，３２１）の間の時刻の差分（ＴＯＤ差分）である。
【００７６】
ＴＯＤ差分テーブル１２５に登録されたＴＯＤ差分は、定期的（例えば、１時間毎）に更新される。例えば、ＩＤ＝ＳＢ＃０，差分＝＋００：００：１５という情報が、ＴＯＤ差分テーブル１２５に登録される。これは、ＳＢ１１０の有するＴＯＤ１１１の時刻が、ＳＰ１２０の有するＴＯＤ１２１の時刻より１５秒進んでいることを示している。なお、停止しているＳＢについてのＴＯＤ差分はゼロである。
【００７７】
図１３は、第３の実施の形態の時刻制御の例を示すシーケンス図である。ここでは、論理ドメイン＃０，＃１に割り当てるＴＯＤを、ＴＯＤ１１１からＴＯＤ２１１に変更する場合を考える。ＴＯＤを変更する場合としては、例えば、ＳＢ１１０が故障により異常終了した場合、ユーザ操作によりＳＢ１１０を正常に停止させる場合などが考えられる。
【００７８】
（ステップＳ８１）ＳＰ２２０は、ＳＢ２１０のＴＯＤ２１１から時刻を読み出す。
（ステップＳ８２）ＳＰ２２０は、ＴＯＤ２２１から時刻を読み出す。そして、ＴＯＤ２１１とＴＯＤ２２１の間のＴＯＤ差分を算出し、ＴＯＤ差分をＳＰ１２０に送信する。
【００７９】
（ステップＳ８３）ＳＰ１２０は、ＳＰ２２０から受信したＴＯＤ差分を、ＳＢ２１０と対応付けてＴＯＤ差分テーブル１２５に登録する。なお、ＳＰ１２０は、ＳＢ１１０について、ステップＳ８１，Ｓ８２と同様の処理を行ってＴＯＤ差分をＴＯＤ差分テーブル１２５に登録する。以上のステップＳ８１〜Ｓ８３の処理が、定期的に行われる。
【００８０】
（ステップＳ８４）ハイパーバイザ４１１は、ＳＢ２１０上で、ＳＢ１１０が異常停止したことを検出する。例えば、ＳＢ２１０で実行されるプログラムが、ＳＢ１１０で実行されるプログラムからの応答がないことを検出する。すると、ハイパーバイザ４１１は、ＳＢ２１０が有するＣＰＵの中から、論理ドメイン＃０，＃１の実行に用いるＣＰＵを割り当て直す。そして、割り当てたＣＰＵの中から、マスタＣＰＵを選択し直す。
【００８１】
（ステップＳ８５）ハイパーバイザ４１１は、ＳＢ２１０が有するＴＯＤ２１１を、論理ドメイン＃０，＃１に割り当て直す。また、ＴＯＤ１１１からＴＯＤ２１１への変更をＳＰ２２０に通知する。ＳＰ２２０は、ＴＯＤの変更をＳＰ１２０に通知する。
【００８２】
（ステップＳ８６）ＳＰ１２０は、変更前のＴＯＤ１１１のＴＯＤ差分（ＳＢ１１０のＴＯＤ差分）と変更後のＴＯＤ２１１のＴＯＤ差分（ＳＢ２１０のＴＯＤ差分）とを、ＴＯＤ差分テーブル１２５から検索する。そして、後者のＴＯＤ差分から前者のＴＯＤ差分を引くことで、ＴＯＤ１１１とＴＯＤ２１１の間の時刻ずれを算出し、ＳＰ２２０に送信する。ＳＰ２２０は、時刻のずれをハイパーバイザ４１１に送信する。
【００８３】
（ステップＳ８７）ハイパーバイザ４１１は、ＲＡＭに保持している時刻オフセットのうち、ＴＯＤの割り当てを変更した論理ドメイン＃０，＃１の時刻オフセットに、ＰＳ２２０から取得した時刻のずれを加算する。以降は、ＴＯＤ２１１の時刻と更新された時刻オフセットを用いて、論理ドメイン＃０，＃１に提供する時刻を算出する。
【００８４】
次に、ユーザ操作を受けてＳＢ１１０が正常に停止する場合を考える。正常停止の場合も、上記の異常停止の場合と同様の手順に従って、論理ドメイン＃０，＃１に割り当てるＴＯＤを変更することが可能である。ただし、正常停止の場合は、ＳＢ１１０が停止するまで猶予時間があるため、ＴＯＤ差分テーブル１２５を参照しないことも可能である。
【００８５】
（ステップＳ９１）ハイパーバイザ４１１は、ＳＢ１１０が停止することを検出する。すると、ＳＢ２１０が有するＣＰＵの中から、論理ドメイン＃０，＃１の実行に用いるＣＰＵを割り当て直す。そして、割り当てたＣＰＵの中から、マスタＣＰＵを選択し直す。
【００８６】
（ステップＳ９２）ハイパーバイザ４１１は、ＳＢ２１０が有するＴＯＤ２１１を、論理ドメイン＃０，＃１に割り当て直す。
（ステップＳ９３）ハイパーバイザ４１１は、ＳＢ１１０の停止が完了する前に、ＴＯＤ１１１から時刻を読み出す。また、ＴＯＤ２１１から時刻を読み出す。そして、ハイパーバイザ４１１は、ＴＯＤ２１１の時刻からＴＯＤ１１１の時刻を引くことで、ＴＯＤ１１１とＴＯＤ２１１の間の時刻のずれを算出する。
【００８７】
（ステップＳ９４）ハイパーバイザ４１１は、ＲＡＭに保持している時刻オフセットのうち、ＴＯＤの割り当てを変更した論理ドメイン＃０，＃１の時刻オフセットに、算出した時刻のずれを加算する。以降は、ＴＯＤ２１１の時刻と更新された時刻オフセットを用いて、論理ドメイン＃０，＃１に提供する時刻を算出する。
【００８８】
図１４は、時刻設定状況の第４の例を示す図である。図１４の例では、ＳＢ１１０，２１０が稼動しており、その後にＳＢ１１０が異常停止する場合を考える。ＳＢ１１０が異常停止する前は、論理ドメイン＃０がＳＢ１１０に配置され、論理ドメイン＃１がＳＢ１１０，２１０に跨がって配置され、論理ドメイン＃２がＳＢ２１０に配置されている。
【００８９】
ＳＰ１２０が保持するＴＯＤ差分テーブル１２５には、ＳＢ１１０のＴＯＤ差分Δ０＝Ｙ３（ＴＯＤ１１１の時刻）−Ｘ３（ＴＯＤ１２１の時刻）と、ＳＢ２１０のＴＯＤ差分Δ１＝Ｚ３（ＴＯＤ２１１の時刻）−Ｘ３（ＴＯＤ２２１の時刻）が登録されている。
【００９０】
ＳＢ１１０が異常停止すると、ハイパーバイザ４１１は、論理ドメイン＃０，＃１に割り当てるＴＯＤを、ＴＯＤ１１１からＴＯＤ２１１に変更する。ＳＰ１２０は、ＴＯＤ差分テーブル１２５を参照して、ＴＯＤ２１１とＴＯＤ１１１の間の時刻のずれΔ１−Δ０を算出し、ハイパーバイザ４１１に通知する。ハイパーバイザ４１１は、ＳＰ１２０から通知された時刻のずれΔ１−Δ０を、論理ドメイン＃０，＃１の時刻オフセットに加算する。以降、ハイパーバイザ４１１は、ＴＯＤ２１１の時刻と更新した時刻オフセットとを用いて、論理ドメイン＃０，＃１に時刻を提供する。
【００９１】
第３の実施の形態の情報処理装置によれば、第２の実施の形態と同様に、論理ドメイン＃０〜＃３がハイパーバイザコールを発行したときの時計アクセスを、効率的に分散させることができる。また、論理ドメイン＃０〜＃３に割り当てるＴＯＤを動的に変更する場合でも、変更前後のＴＯＤの時刻のずれを考慮して、論理ドメイン＃０〜＃３の時刻の整合性を維持することができる。
【符号の説明】
【００９２】
１０  情報処理装置
１１  制御部
１１ａ，１２ａ，１３ａ  時計デバイス
１２，１３  物理ドメイン
１４，１５  論理ドメイン
【図１】
0005764985.tif 000002
【図２】
0005764985.tif 000003
【図３】
0005764985.tif 000004
【図４】
0005764985.tif 000005
【図５】
0005764985.tif 000006
【図６】
0005764985.tif 000007
【図７】
0005764985.tif 000008
【図８】
0005764985.tif 000009
【図９】
0005764985.tif 000010
【図１０】
0005764985.tif 000011
【図１１】
0005764985.tif 000012
【図１２】
0005764985.tif 000013
【図１３】
0005764985.tif 000014
【図１４】
0005764985.tif 000015