(57)【要約】【課題】ＯＳ間で一定時間以内にイベント通知ができるようにする。【解決手段】ＯＳ１とＯＳ２は、相互にイベントを送受信する。ＯＳ１では、ＯＳ２からのイベントの受信を確認する周期がポーリング周期９として指定されている。ＯＳ２では、ＯＳ１からのイベントの受信を確認する周期がポーリング周期１４として指定されている。ＯＳ１は、ＯＳ２に、自身のポーリング周期９の値を通知する。ＯＳ２は、ポーリング周期１４の値を、ＯＳ１から通知されたポーリング周期９に変更し、ポーリング周期９を、以降のＯＳ１からのイベントの受信を確認する周期とする。【選択図】図１
2014157386.tif 000002
【特許請求の範囲】
【請求項１】
相互にデータを送受信する第１の通信システムと第２の通信システムとを有し、
前記第１の通信システムにおいて、前記第２の通信システムからのデータの受信を確認する周期が指定受信確認周期として指定されているデータ処理システムであって、
前記第１の通信システムは、
前記第２の通信システムに、前記指定受信確認周期を通知する周期通知データを送信し、
前記第２の通信システムは、
前記第１の通信システムから前記周期通知データを受信し、前記周期通知データで通知された前記指定受信確認周期を、以降の前記第１の通信システムからのデータの受信を確認する周期とすることを特徴とするデータ処理システム。
【請求項２】
前記第１の通信システムは、
所定の時刻を起点にして前記指定受信確認周期ごとに、前記第２の通信システムからのデータの受信を確認し、
前記第２の通信システムは、
前記第１の通信システムにおける起点の時刻から前記指定受信確認周期の半周期分をずらした時刻を起点にして前記指定受信確認周期ごとに、前記第１の通信システムからのデータの受信を確認し、
前記第１の通信システムと前記第２の通信システムは、
相互に前記指定受信確認周期の半周期分をずらしたタイミングで、他方の通信システムからのデータの受信を確認することを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
前記第１の通信システムは、
前記第２の通信システムに、時間計測用の第１の時間計測用データを送信し、
前記第２の通信システムは、
前記第１の通信システムから前記第１の時間計測用データを受信し、前記第１の時間計測用データに応答する第２の時間計測用データを前記第１の通信システムに送信し、
前記第１の通信システムは、
前記第２の通信システムから前記第２の時間計測用データを受信し、前記第２の時間計測用データに応答する第３の時間計測用データを前記第２の通信システムに送信し、
前記第３の時間計測用データの送信時刻を起点にして前記指定受信確認周期ごとに、前記第２の通信システムからのデータの受信を確認し、
前記第２の通信システムは、
前記第１の通信システムから前記第３の時間計測用データを受信し、
前記第１の時間計測用データの受信から前記第３の時間計測用データの受信までの時間を計測し、
前記第１の時間計測用データの受信から前記第３の時間計測用データの受信までの時間の半分の時間を、前記指定受信確認周期の半周期分の時間から減算し、
前記第３の時間計測用データの受信時刻から減算により得られた時間を経過した時刻を起点にして前記指定受信確認周期ごとに、前記第１の通信システムからのデータの受信を確認することを特徴とする請求項２に記載のデータ処理システム。
【請求項４】
前記第１の通信システムは、
前記第１の時間計測用データの送信前に、前記第２の通信システムからのデータの受信を確認する周期を０にし、
前記第３の時間計測用データを送信した際に、前記第２の通信システムからのデータの受信を確認する周期を前記指定受信確認周期にし、
前記第２の通信システムは、
前記第１の時間計測用データの受信前に、前記第１の通信システムからのデータの受信を確認する周期を０にし、
前記指定受信確認周期の起点の時刻を決定した際に、前記第１の通信システムからのデータの受信を確認する周期を前記指定受信確認周期にすることを特徴とする請求項３に記載のデータ処理システム。
【請求項５】
前記第２の通信システムは、
前記第１の通信システムに、時間計測用の第１の時間計測用データを送信し、
前記第１の通信システムは、
前記第２の通信システムから前記第１の時間計測用データを受信し、前記第１の時間計測用データに応答する第２の時間計測用データを前記第１の通信システムに送信し、
前記第２の通信システムは、
前記第１の通信システムから前記第２の時間計測用データを受信し、前記第２の時間計測用データに応答する第３の時間計測用データを前記第１の通信システムに送信し、
前記第３の時間計測用データの送信時刻を起点にして前記指定受信確認周期ごとに、前記第１の通信システムからのデータの受信を確認し、
前記第１の通信システムは、
前記第２の通信システムから前記第３の時間計測用データを受信し、
前記第１の時間計測用データの受信から前記第３の時間計測用データの受信までの時間を計測し、
前記第１の時間計測用データの受信から前記第３の時間計測用データの受信までの時間の半分の時間を、前記指定受信確認周期の半周期分の時間から減算し、
前記第３の時間計測用データの受信時刻から減算により得られた時間を経過した時刻を起点にして前記指定受信確認周期ごとに、前記第２の通信システムからのデータの受信を確認することを特徴とする請求項２に記載のデータ処理システム。
【請求項６】
前記第２の通信システムは、
前記第１の時間計測用データの送信前に、前記第１の通信システムからのデータの受信を確認する周期を０にし、
前記第３の時間計測用データを送信した際に、前記第１の通信システムからのデータの受信を確認する周期を前記指定受信確認周期にし、
前記第１の通信システムは、
前記第１の時間計測用データの受信前に、前記第２の通信システムからのデータの受信を確認する周期を０にし、
前記指定受信確認周期の起点の時刻を決定した際に、前記第２の通信システムからのデータの受信を確認する周期を前記指定受信確認周期にすることを特徴とする請求項５に記載のデータ処理システム。
【請求項７】
前記第１の通信システムと前記第２の通信システムは、
所定の期間ごとに、前記第１の時間計測用データの送受信、前記第２の時間計測用データの送受信、前記第３の時間計測用データの送受信を行って、それぞれの通信システムにおける前記指定受信確認周期の起点の時刻を決定することを特徴とする請求項３〜６のいずれかに記載のデータ処理システム。
【請求項８】
前記第１の通信システムと前記第２の通信システムは、それぞれ、
相互にイベント通知データを送受信するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）であることを特徴とする請求項１〜７のいずれかに記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信システム間で周期的に相互にデータを送受信する技術に関する。
なお、本明細書では、複数の通信システムには、例えば、それぞれがＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ等から構成される複数の計算機装置、１つ又は複数の計算機装置に実装されている複数のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が含まれる。
【背景技術】
【０００２】
複数の通信システム間で、相互にイベントの発生を通知するイベント通知を行う方法には、ポーリングと割込みの２種類の手段がある。
【０００３】
従来技術では、計算機装置間のイベント通知を高速化する方法として、ＣＰＵに対して割込処理が頻発し、ＯＳ上での制御処理以外の処理を実行することができない課題に対し、連続的な割込みの発生を制御する通信処理用アクセラレータを用意し、他の計算機装置からのイベント通知を高速化する方式が示されている（例えば、特許文献１）。
【０００４】
また、周期的なイベント通知の遅延保証を実現する技術として、タスクの周期、要求処理時間、許容遅延時間を計測し、得られたそのタスクの実行に用いる周期、要求処理時間および許容遅延時間の最適値が変化した場合に、その新たに得られた時間を用いてタスクの実行制御を行う方式が示されている（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−０７２９１５号公報
【特許文献２】特開２０００−０５６９８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１による割込みによるイベント通知では、割込みの発生により本来優先すべき他の処理が実行できず、装置に必要となる制御のリアルタイム性が維持できない。
また、特許文献２による周期タスクの遅延保証方式では、複数の計算機装置のＯＳ間で周期処理を同期して、一定時間ずらすことは実現できない。
【０００７】
本発明は、これらの事情に鑑みたものであり、制御のリアルタイム性を妨げずに複数の通信システム間でイベント通知を行うために、割込みを使わずに周期的なポーリングによりイベントの到着を監視してイベント通知を行う方式を実現し、通信システム間で一定時間以内にイベント通知ができるようにすることを主な目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るデータ処理システムは、
相互にデータを送受信する第１の通信システムと第２の通信システムとを有し、
前記第１の通信システムにおいて、前記第２の通信システムからのデータの受信を確認する周期が指定受信確認周期として指定されているデータ処理システムであって、
前記第１の通信システムは、
前記第２の通信システムに、前記指定受信確認周期を通知する周期通知データを送信し、
前記第２の通信システムは、
前記第１の通信システムから前記周期通知データを受信し、前記周期通知データで通知された前記指定受信確認周期を、以降の前記第１の通信システムからのデータの受信を確認する周期とすることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、第１の通信システムと第２の通信システムは共通の受信確認周期で相互に他方の通信システムからのデータの受信を確認するため、通信システム間で一定時間以内にイベント通知ができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る計算機装置のソフトウェア構成例を示す図。
【図２】ＯＳと計算機装置との関係を示す図。
【図３】ＯＳと計算機装置との関係を示す図。
【図４】ＯＳと計算機装置との関係を示す図。
【図５】実施の形態１に係る動作例を示すフローチャート図。
【図６】実施の形態１に係るイベント通知に要する時間を示す図。
【図７】実施の形態２に係る計算機装置のソフトウェア構成例を示す図。
【図８】実施の形態２に係る動作例を示すフローチャート図。
【図９】実施の形態２に係る動作例を示すフローチャート図。
【図１０】実施の形態２に係るイベント通知に要する時間を示す図。
【図１１】実施の形態３に係る計算機装置のソフトウェア構成例を示す図。
【図１２】実施の形態３に係る動作例を示すフローチャート図。
【図１３】実施の形態３に係る動作例を示すフローチャート図。
【図１４】実施の形態１〜３に係る計算機装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１１】
以下の実施の形態１〜３では、複数の通信システムを有するデータ処理システムについて説明を行う。
具体的には、データ処理システムを計算機装置とし、各通信システムを計算機装置内のＯＳとし、２つのＯＳの間でイベント通知を行う例を説明する。
【００１２】
実施の形態１．
実施の形態１では、制御のリアルタイム性を妨げずにＯＳ間でイベント通知を行うために、割込みを使わずに周期的なポーリングによりイベントの到着を監視してイベント通知を行う方式を説明する。
本実施の形態では、通信するＯＳ間でポーリング周期を等しくし、かつ周期の同期をとることにより、ＯＳ間で一定時間以内にイベント通知ができるようにする。
イベント通知は、他のＯＳに対して、イベントを非同期に通知することであり、仮想ネットワークやＯＳ間の共有メモリなどを用いて行う。
【００１３】
図１は、本実施の形態に係る計算機装置１００のソフトウェア構成例を示す図である。
ＯＳ１、ＯＳ２は、それぞれ計算機装置１００で動作するオペレーティングシステムである。
ＯＳ１とＯＳ２は同じ構成をとる。
ＯＳ１は第１の通信システムの例に相当し、ＯＳ２は第２の通信システムの例に相当する。
【００１４】
ＯＳと計算機装置１００の構成は図２〜図４のように３種類ある。
図２のようにＯＳ１及びＯＳ２が、同じ計算機装置１００上にあるものと、図３と図４のように異なる計算機装置１００、２００上にあるものがある。
図３及び図４の計算機装置１００、計算機装置２００は同じ構成をとる。
図１は、図２に示す、１つの計算機装置１００に２つのＯＳが実装されている例を示している。
【００１５】
図１において、ハイパーバイザ３は、計算機装置１００上で複数のＯＳを実行するためのソフトウェアである。
ハイパーバイザ３には、イベント通知部４を持つ。
イベント通知部４は、ハイパーバイザ３上のＯＳ１、２間のイベント通知を行う。
【００１６】
ＯＳ１、２が異なる計算機装置１００、２００上にある場合、図３に示すようにハイパーバイザがある構成と、図４のようにハイパーバイザがない構成がある。
図３のハイパーバイザ５４、５５には、他の計算機装置のＯＳと通信するＯＳ間通信部５６、５７が存在する。
ＯＳ間通信部５６、５７は、図１のイベント通知部４に代わるものである。
図４のＯＳ１、ＯＳ２には、イベント通知部４に代わり、他の計算機装置のＯＳとネットワークで通信するためのネットワーク通信部５８、５９がある。
ハイパーバイザ５４とハイパーバイザ５５、ＯＳ間通信部５６とＯＳ間通信部５７、ネットワーク通信部５８とネットワーク通信部５９は、それぞれ同じものとする。
【００１７】
次に、ＯＳ１、ＯＳ２の内部構成を説明する。
以下では、図１の構成例について説明を行うが、図３及び図４の構成でも、図１と同様に、ＯＳ１及びＯＳ２に、イベント送信部５、１０、イベント受信部６、１１、ポーリング周期取得部７、１２、ポーリング周期通知部８、１３、ポーリング周期９、１４が実装されているものとする。
【００１８】
図１のＯＳ１において、イベント送信部５は、イベント通知部４を介して、ＯＳ２にイベントを送信する。
イベント受信部６は、イベント通知部４を介して、ＯＳ２からイベントを受信する。
ポーリング周期取得部７は、ＯＳ１のポーリング周期９の値を取得する。
ポーリング周期通知部８は自身のポーリング周期９をＯＳ２へ送信する、またはＯＳ２からポーリング周期１４を受信したとき、自身のポーリング周期９の値を受信した値に変更する。
ポーリング周期９は、ＯＳ１において指定されているポーリング周期である。
ポーリング周期９は、ＯＳ２からのイベントの受信を確認・検知する周期であり、イベント受信部６は、ポーリング周期９に示されている時間ごとに、ＯＳ２からのイベントの受信を確認・検知する。
ポーリング周期９は指定受信確認周期の例に相当する。
【００１９】
イベント送信部１０はイベント送信部５と同様であり、イベント送信部１０は、イベント通知部４を介して、ＯＳ１にイベントを送信する。
イベント受信部１１はイベント受信部６と同様であり、イベント受信部１１は、イベント通知部４を介して、ＯＳ１からイベントを受信する。
ポーリング周期取得部１２はポーリング周期取得部７と同様であり、ポーリング周期取得部１２は、ＯＳ２のポーリング周期１４の値を取得する。
ポーリング周期通知部１３はポーリング周期通知部８と同様であり、ポーリング周期通知部１３は自身のポーリング周期１４をＯＳ１へ送信する、またはＯＳ１からポーリング周期９を受信したとき、自身のポーリング周期１４の値を受信した値に変更する。
ポーリング周期１４は、ＯＳ２において指定されているポーリング周期である。
ポーリング周期１４は、ＯＳ１からのイベントの受信を確認・検知する周期であり、イベント受信部１１は、ポーリング周期１４に示されている時間ごとに、ＯＳ１からのイベントの受信を確認・検知する。
【００２０】
計算機装置１００のハードウェア構成としては、図１４に示すように、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【００２１】
演算装置９０１は、プログラムを実行するＣＰＵである。
外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置である。
主記憶装置９０３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、例えばＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【００２２】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
つまり、演算装置９０１は、ＯＳ１、ＯＳ２、ハイパーバイザ３のプログラムコードを読込み、読み込んだプログラムコードを実行する。
このため、以下の説明において、イベント通知部４、イベント送信部５、１０、イベント受信部６、１１、ポーリング周期取得部７、１２、ポーリング周期通知部８、１３の動作として説明するものは、演算装置９０１の動作と読み替えることができる。
【００２３】
また、以下の説明において、「〜の判断」、「〜の判定」、「〜の確認」、「〜の検知」、「〜の計測」、「〜の設定」、「〜の決定」、「〜の選択」、「〜の生成」、「〜の変更」、「〜の受信」、等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
【００２４】
なお、図１４の構成は、あくまでも計算機装置１００のハードウェア構成の一例を示すものであり、計算機装置１００のハードウェア構成は図１４に記載の構成に限らず、他の構成であってもよい。
【００２５】
次に、ＯＳ２のポーリング周期１４を、ＯＳ１のポーリング周期９と等しくする場合の動作について説明する。
図５は、この動作のフローチャートである。
【００２６】
まず、ステップ１００において、ポーリング周期取得部７はＯＳ１のポーリング周期９の値を取得する。
【００２７】
次に、ステップ１０１において、ポーリング周期通知部８はステップ１００で取得したＯＳ１のポーリング周期９の値をＯＳ２にイベント通知部４を用いて送信する。
このポーリング周期９の値を通知するイベント通知は、周期通知データの例に相当する。
なお、以降のＯＳ１とＯＳ２の間の通信もイベント通知部４を介して行われるものとする。
また、ＯＳ１とＯＳ２の間の通信は、例えば、共有メモリを用いたプロセス間通信である。
【００２８】
次に、ステップ１０２において、ＯＳ２のポーリング周期通知部１３はステップ１０１で送信されたＯＳ１のポーリング周期９を受信する。
【００２９】
次に、ステップ１０３において、ポーリング周期通知部１３はＯＳ２のポーリング周期１４の値をステップ１０２で受信したＯＳ１のポーリング周期９の値に変更する。
【００３０】
次に、ステップ１０４において、ポーリング周期通知部１３はＯＳ２のポーリング周期１４を変更したことをＯＳ１に通知する。
【００３１】
次に、ステップ１０５において、ＯＳ１のポーリング周期通知部８はＯＳ２のポーリング周期１４が変更されたという通知を受信する。
ここまでは、ＯＳの初期設定で行う。
【００３２】
ステップ１０６でＯＳ１は通常処理を開始する。
同様に、ステップ１０７でＯＳ２も通常処理を開始する。
そして、ステップ１０８でＯＳ１を終了する。
同様に、ステップ１０９でＯＳ２を終了する。
【００３３】
ステップ１０６の通常処理では、ＯＳ１は、ポーリング周期９に示されている時間ごとに、ＯＳ２からのイベントの受信を確認・検知し、ＯＳ２からのイベントの受信を確認・検知した後、次のポーリング周期の到達時に、ＯＳ２へのイベント通知を行う。
なお、ＯＳ１におけるポーリング周期９の起点は、例えば、ステップ１０１のポーリング周期９の送信時である。
同様に、ステップ１０７の通常処理では、ＯＳ２は、ステップ１０３で変更されたポーリング周期、すなわち、ポーリング周期９に示されている時間ごとに、ＯＳ１からのイベントの受信を確認・検知し、ＯＳ１からのイベントの受信を確認・検知した後、次のポーリング周期の到達時に、ＯＳ１へのイベント通知を行う。
なお、ＯＳ２におけるポーリング周期９の起点は、例えば、ステップ１０２のポーリング周期９の受信時である。
【００３４】
このように、ＯＳ間のイベント通知をポーリングで行う場合、ＯＳ間でポーリング周期を等しくすることにより、イベント通知にかかる時間は一定時間内となる。
【００３５】
図６はＯＳ１からＯＳ２にイベントを通知し、その後ＯＳ２からＯＳ１へイベントを通知した場合の、イベント通知にかかる時間を表している。
矢印２００はＯＳ１の状態を、矢印２０１はＯＳ２の状態を表しており、右に行くほど時間が経過している。
直線２０２は、他方のＯＳからのイベントの受信を確認・検知するポーリングのタイミング、点線２０３がイベント通知の状態を表している。
前述したように、イベントの受信を確認・検知するタイミング２０２は、ＯＳ１とＯＳ２とで一致している。
また、２０２と２０２との間の時間がポーリング周期である。
【００３６】
図６において、ＯＳ２からのイベント受信を確認・検知したＯＳ１は点ＡでイベントをＯＳ２に送信し、点Ｂ’でＯＳ２にイベントが到着するが、実際にＯＳ２がイベントを受信する（イベントの受信を確認・検知する）のは点Ｂとなる。
次に、点Ｂでイベントの受信を確認・検知した後、ＯＳ２がイベントをＯＳ１に送信し、点Ｃ’でＯＳ１にイベントが到着するが、実際にＯＳ１がイベントを受信する（イベントの受信を確認・検知する）のは点Ｃとなる。
ＡＢ’とＢＣ’はイベント配送の遅延時間であり、ＡＣがイベントの往復にかかる時間となる。
このことから、イベントの往復にかかる時間は必ず、ポーリング周期×２の時間内で収められることが分かる。
【００３７】
このように、本実施の形態によれば、通信するＯＳ間でポーリング周期を等しくし、かつ周期の同期をとることにより、ＯＳ間で一定時間以内にイベント通知ができる。
【００３８】
以上、本実施の形態では、
ポーリング周期を取得するポーリング周期取得部と、
他のＯＳのポーリング周期を送受信し、ポーリング周期を変更するポーリング周期通知部を備える、
ＯＳ間の通信方式について説明した。
【００３９】
実施の形態２．
本実施の形態では、ＯＳのポーリングの周期を等しくし、かつポーリングのタイミングをＯＳ間で半周期ずらすことにより、イベント通知にかかる時間を短縮する方式を説明する。
【００４０】
図７は、本実施の形態に係る計算機装置１００のソフトウェア構成例を示す。
【００４１】
ＯＳ１、２、ハイパーバイザ３、イベント通知部４、イベント送信部５、１０、イベント受信部６、１１、ポーリング周期取得部７、１２、ポーリング周期通知部８、１３、ポーリング周期９、１４は実施の形態１と同じである。
本実施の形態２では、新たに通知時間計測部１５、１８とポーリング時刻算出部１６、１９とポーリング設定部１７、２０を追加する。
【００４２】
通知時間計測部１５は、イベントが片方のＯＳからもう片方のＯＳに届くまでの時間を計測する。
ポーリング時刻算出部１６は、片方のＯＳのポーリングがもう片方のＯＳのポーリングから半周期ずれるようなポーリングの時刻を算出する。
ポーリング設定部１７は、ポーリングのタイミングを算出した時刻に設定する。
【００４３】
通知時間計測部１８は通知時間計測部１５と、ポーリング時刻算出部１９はポーリング時刻算出部１６と、ポーリング設定部２０はポーリング設定部１７と同じである。
【００４４】
なお、本実施の形態においても、以下の説明は、図３及び図４の構成に適用可能であり、また、本実施の形態に係る計算機装置１００のハードウェア構成例は図１４に示したものと同様である。
【００４５】
次にＯＳ２のポーリング周期を変更するとともに、ＯＳ２のポーリングの時刻を変更する場合の動作について説明する。
図８及び図９は、この動作のフローチャートである。
【００４６】
初めに、ＯＳ１とＯＳ２のポーリング周期を等しくするため、ステップ１００〜１０５を行う。
これは実施の形態１で説明したステップ１００〜１０５と同じである。
【００４７】
次に、イベント配送の遅延時間を計測する。
まず、ステップ１１０において、ＯＳ２の通知時間計測部１８はＯＳ２のポーリング周期を０に変更する。
これにより、ＯＳ２では、ＯＳ１からのイベント通知の受信を常時確認・検知することになる。
【００４８】
次に、ステップ１１１において、通知時間計測部１８はＯＳ２のポーリング周期を０に変更したことをＯＳ１へ通知する。
【００４９】
次に、ステップ１１２において、通知時間計測部１５はＯＳ２のポーリング周期が０に変更されたという通知を受け取る。
【００５０】
次に、ステップ１１３において、通知時間計測部１５はＯＳ１のポーリング周期を０に変更する。
これにより、ＯＳ１では、ＯＳ２からのイベント通知の受信を常時確認・検知することになる。
【００５１】
次に、ステップ１１４において、イベント送信部５はＯＳ２へイベントを送信する。
このイベント送信は、イベント配送の遅延時間を計測するためのものであり、第１の時間計測用データの例に相当する。
【００５２】
次に、ステップ１１５において、ＯＳ２のイベント受信部１１はＯＳ１からイベントを受信する。
【００５３】
次に、ステップ１１６において、ＯＳ２のイベント送信部１０はＯＳ１へイベントを送信する。
このイベント送信も、イベント配送の遅延時間を計測するためのものであり、第２の時間計測用データの例に相当する。
【００５４】
次に、ステップ１１７において、ＯＳ１のイベント受信部６はＯＳ２からイベントを受信する。
【００５５】
次に、ステップ１１８において、ＯＳ１のイベント送信部５はＯＳ２へイベントを送信する。
このイベント送信も、イベント配送の遅延時間を計測するためのものであり、第３の時間計測用データの例に相当する。
【００５６】
次に、ステップ１１９において、ＯＳ２のイベント受信部１１はＯＳ１からイベントを受信する。
【００５７】
次に、ステップ１２０において、ＯＳ２の通知時間計測部１８はＯＳ１からＯＳ２へのイベント通知にかかった時間を求める。
時間はステップ１１５からステップ１１９にかかった時間を２で割ったものとする。
これをＸ（ｍｓ）とする。
これが、イベント配送の遅延時間となる。
【００５８】
そして、ステップ１２１において、ＯＳ２のポーリング時刻算出部１９は、ＯＳ２のポーリングがＯＳ１のポーリングと半周期ずれるよう、ＯＳ２のポーリングの時刻を算出する。
算出方法は、ＯＳ２がＯＳ１から受信したポーリング周期９をＹ（ｍｓ）とすると、ステップ１１９のイベント受信時刻からＹ／２−Ｘ（ｍｓ）後の時刻がＯＳ２のポーリングのタイミングとなる。
つまり、ＯＳ２では、ステップ１１９のイベント受信時刻からＹ／２−Ｘ（ｍｓ）後の時刻を起点にしてポーリングを行う。
一方、ＯＳ１では、ステップ１１８のイベント送信時刻を起点にしてポーリングを行う。
これにより、ＯＳ１とＯＳ２の間では、ポーリングのタイミングが、ポーリング周期の半周期分ずれることになる。
【００５９】
次に、ステップ１２２において、ポーリング設定部２０はステップ１１７で求めた時刻にポーリングを合わせる。
【００６０】
次に、ステップ１２３において、ＯＳ１のポーリング設定部１７はＯＳ１のポーリング周期を０からステップ１００の時点でのポーリング周期の値に戻す。
【００６１】
最後にステップ１２４において、ポーリング設定部２０はＯＳ１のポーリング周期を０からステップ１０４の時点でのポーリング周期の値に戻す。
ここまでは、ＯＳの初期設定で行う。
そして、実施の形態１と同様にステップ１０６〜１０９を実施しＯＳを終了する。
【００６２】
このように、ＯＳ間のイベント通知をポーリングで行う場合、ポーリング周期を同じにして、更にポーリングのタイミングをＯＳ間で半周期ずらすことにより、イベント通知にかかる時間は一定時間内となり、さらに時間を短縮できる。
【００６３】
図１０は、実施の形態１の図６と同様に、ＯＳ１からＯＳ２にイベントを通知し、その後ＯＳ２からＯＳ１へイベントを通知した場合の、イベント通知にかかる時間を表している。
矢印２００、矢印２０１、点線２０３のそれぞれの意味は、実施の形態１と同じである。
直線２０２ａはＯＳ１におけるポーリングのタイミングを示し、直線２０２ｂはＯＳ２におけるポーリングのタイミングを示している。
前述したように、ＯＳ１とＯＳ２の間では、ポーリングのタイミングが、ポーリング周期の半周期分ずれるので、図１０においても直線２０２ａと直線２０２ｂはポーリング周期の半周期分ずれている。
【００６４】
点ＯでＯＳ１はイベントを送信し、点Ｐ’でＯＳ２にイベントが到着するが、実際にＯＳ２がイベントを受信する（イベントの受信を確認・検知する）のは点Ｐとなる。
次に、ＯＳ２がイベントを送信し、点Ｑ’でＯＳ１にイベントが到着するが、実際にＯＳ１がイベントを受信する（イベントの受信を確認・検知する）のは点Ｑとなる。
ＯＰ’とＰＱ’はイベント配送の遅延時間であり、ＯＱがイベントの往復にかかる時間となる。
このことから、イベントの往復にかかる時間は必ず、ポーリング周期の時間内で収められることが分かる。
【００６５】
このように、本実施の形態によれば、通信するＯＳ間でポーリング周期を等しくし、更にポーリングのタイミングをＯＳ間で半周期ずらすことにより、イベント通知にかかる時間を短縮することができる。
【００６６】
なお、図８及び図９では、ステップ１１４においてＯＳ１から時間計測のためのイベントを送信し、ステップ１１６においてＯＳ２から応答のためのイベントを送信し、更に、ステップ１１７においてＯＳ１が再度イベントを送信し、ステップ１２０においてＯＳ２がステップ１１５からステップ１１７までの時間を計測し、計測した時間に基づきステップ１２１でポーリングすべき時刻を算出し、ステップ１２２でポーリングの時刻を設定することとしている。
これに対して、ＯＳ１とＯＳ２の処理を入れ替えてもよい。
つまり、ステップ１１４においてＯＳ２から時間計測のためのイベントを送信し、ステップ１１６においてＯＳ１から応答のためのイベントを送信し、更に、ステップ１１７においてＯＳ２が再度イベントを送信し、ステップ１２０においてＯＳ１がステップ１１５からステップ１１７までの時間を計測し、計測した時間に基づきステップ１２１でポーリングすべき時刻を算出し、ステップ１２２でポーリングの時刻を設定するようにしてもよい。
この場合は、ＯＳ２はステップ１１８のイベントの送信時点を起点にしてポーリングを行う。
【００６７】
以上、本実施の形態では、
ポーリングの周期を０（ｍｓ）にしてイベント通知時間を計測する通知時間計測部と、
片方のＯＳのポーリングのタイミングを、もう片方のポーリングから半周期ずれるようなポーリングの時刻を算出するポーリング時刻算出部を備える、
ＯＳ間の通信方式を説明した。
【００６８】
実施の形態３．
図１１は、本実施の形態に係るソフトウェア構成例を示す。
【００６９】
図１１において、ＯＳ１、２、ハイパーバイザ３、イベント通知部４、イベント送信部５、１０、イベント受信部６、１１、ポーリング周期取得部７、１２、ポーリング周期通知部８、１３、ポーリング周期９、１４、通知時間計測部１５、１８、ポーリング時刻算出部１６、１９、ポーリング設定部１７、２０は実施の形態１、２と同じである。
本実施の形態では、新たにポーリング調整部２１、２３と周期同期補正時間２２、２４を追加する。
【００７０】
ポーリング調整部２１は、ポーリングのタイミングのずれを修正するため、周期同期補正時間２２ごとに実施の形態２のステップ１０６〜１２０を繰り返す。
ポーリング調整部２３はポーリング調整部２１と同じである。
また、周期同期補正時間２４は周期同期補正時間２２と同じ時間である。
【００７１】
なお、本実施の形態においても、以下の説明は、図３及び図４の構成に適用可能であり、また、本実施の形態に係る計算機装置１００のハードウェア構成例は図１４に示したものと同様である。
【００７２】
次に、実施の形態２の後、ＯＳ２のポーリングの調整を定期的に行う動作について説明する。
図１２及び図１３は、この動作のフローチャートである。
なお、図１２はＯＳ１の動作例を示し、図１３はＯＳ２の動作例を示す。
【００７３】
本実施の形態に係るＯＳ１、２では、通常処理を行っている間に、ポーリングのタイミングがずれていくのを防ぐため、周期同期補正時間２４ごとに、実施の形態２のステップ１１０〜１２４を繰り返す。
【００７４】
まず、ステップ１２５において、ＯＳ２は終了する場合はステップ１０９でＯＳを終了し、終了しない場合はそのまま動作し続ける。
【００７５】
次に、ステップ１２６において、周期同期補正時間２４が経過していたらステップ１２７に、経過していなかったらステップ１０７で通常処理を行う。
【００７６】
次に、ステップ１２７において、ポーリング調整部２３はＯＳ１にステップ１１０〜１２４の繰返し命令を送信する。
【００７７】
次に、ステップ１２８において、ＯＳ１は終了する場合はステップ１０８でＯＳを終了し、終了しない場合はそのまま動作し続ける。
【００７８】
次に、ステップ１２９において、ポーリング調整部２１はＯＳ２からの繰返し命令を受信したら、ステップ１１２に、受信しなければステップ１０６で通常処理を行う。
ステップ１１０〜１２４は、実施の形態２と同じである。
【００７９】
このように、ポーリングのタイミングの調整を定期的に繰り返すことで、イベント通知に効率のよいポーリングの状態を維持する。
【００８０】
なお、以上では、ＯＳ２側で周期同期補正時間２４が経過しているか否かを判定し、周期同期補正時間２４が経過していれば、ＯＳ１に繰り返し命令を送信する例を説明している。
これに代えて、ＯＳ１側で周期同期補正時間２２が経過しているか否かを判定し、周期同期補正時間２２が経過していれば、ＯＳ２に繰り返し命令を送信するようにしてもよい。
【００８１】
以上、本実施の形態では、
定期的にポーリングのタイミングを調節するポーリング調整部を備える、
ＯＳ間の通信方式を説明した。
【符号の説明】
【００８２】
１  ＯＳ、２  ＯＳ、３  ハイパーバイザ、４  イベント通知部、５  イベント送信部、６  イベント受信部、７  ポーリング周期取得部、８  ポーリング周期通知部、９  ポーリング周期、１０  イベント送信部、１１  イベント受信部、１２  ポーリング周期取得部、１３  ポーリング周期通知部、１４  ポーリング周期、１５  通知時間計測部、１６  ポーリング時刻算出部、１７  ポーリング設定部、１８  通知時間計測部、１９  ポーリング時刻算出部、２０  ポーリング設定部、２１  ポーリング調整部、２２  周期同期補正時間、２３  ポーリング調整部、２４  周期同期補正時間、５４  ハイパーバイザ、５５  ハイパーバイザ、５６  ＯＳ間通信部、５７  ＯＳ間通信部、５８  ネットワーク通信部、５９  ネットワーク通信部、１００  計算機装置、２００  計算機装置。
【図１】
2014157386.tif 000003
【図２】
2014157386.tif 000004
【図３】
2014157386.tif 000005
【図４】
2014157386.tif 000006
【図５】
2014157386.tif 000007
【図６】
2014157386.tif 000008
【図７】
2014157386.tif 000009
【図８】
2014157386.tif 000010
【図９】
2014157386.tif 000011
【図１０】
2014157386.tif 000012
【図１１】
2014157386.tif 000013
【図１２】
2014157386.tif 000014
【図１３】
2014157386.tif 000015
【図１４】
2014157386.tif 000016