JP2014157386A - データ処理システム - Google Patents
データ処理システム Download PDFInfo
- Publication number
- JP2014157386A JP2014157386A JP2013026423A JP2013026423A JP2014157386A JP 2014157386 A JP2014157386 A JP 2014157386A JP 2013026423 A JP2013026423 A JP 2013026423A JP 2013026423 A JP2013026423 A JP 2013026423A JP 2014157386 A JP2014157386 A JP 2014157386A
- Authority
- JP
- Japan
- Prior art keywords
- communication system
- reception
- data
- time
- time measurement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】OS間で一定時間以内にイベント通知ができるようにする。
【解決手段】OS1とOS2は、相互にイベントを送受信する。OS1では、OS2からのイベントの受信を確認する周期がポーリング周期9として指定されている。OS2では、OS1からのイベントの受信を確認する周期がポーリング周期14として指定されている。OS1は、OS2に、自身のポーリング周期9の値を通知する。OS2は、ポーリング周期14の値を、OS1から通知されたポーリング周期9に変更し、ポーリング周期9を、以降のOS1からのイベントの受信を確認する周期とする。
【選択図】図1
【解決手段】OS1とOS2は、相互にイベントを送受信する。OS1では、OS2からのイベントの受信を確認する周期がポーリング周期9として指定されている。OS2では、OS1からのイベントの受信を確認する周期がポーリング周期14として指定されている。OS1は、OS2に、自身のポーリング周期9の値を通知する。OS2は、ポーリング周期14の値を、OS1から通知されたポーリング周期9に変更し、ポーリング周期9を、以降のOS1からのイベントの受信を確認する周期とする。
【選択図】図1
Description
本発明は、複数の通信システム間で周期的に相互にデータを送受信する技術に関する。
なお、本明細書では、複数の通信システムには、例えば、それぞれがCPU(Central Processing Unit)、メモリ等から構成される複数の計算機装置、1つ又は複数の計算機装置に実装されている複数のOS(Operating System)が含まれる。
なお、本明細書では、複数の通信システムには、例えば、それぞれがCPU(Central Processing Unit)、メモリ等から構成される複数の計算機装置、1つ又は複数の計算機装置に実装されている複数のOS(Operating System)が含まれる。
複数の通信システム間で、相互にイベントの発生を通知するイベント通知を行う方法には、ポーリングと割込みの2種類の手段がある。
従来技術では、計算機装置間のイベント通知を高速化する方法として、CPUに対して割込処理が頻発し、OS上での制御処理以外の処理を実行することができない課題に対し、連続的な割込みの発生を制御する通信処理用アクセラレータを用意し、他の計算機装置からのイベント通知を高速化する方式が示されている(例えば、特許文献1)。
また、周期的なイベント通知の遅延保証を実現する技術として、タスクの周期、要求処理時間、許容遅延時間を計測し、得られたそのタスクの実行に用いる周期、要求処理時間および許容遅延時間の最適値が変化した場合に、その新たに得られた時間を用いてタスクの実行制御を行う方式が示されている(例えば、特許文献2)。
しかし、特許文献1による割込みによるイベント通知では、割込みの発生により本来優先すべき他の処理が実行できず、装置に必要となる制御のリアルタイム性が維持できない。
また、特許文献2による周期タスクの遅延保証方式では、複数の計算機装置のOS間で周期処理を同期して、一定時間ずらすことは実現できない。
また、特許文献2による周期タスクの遅延保証方式では、複数の計算機装置のOS間で周期処理を同期して、一定時間ずらすことは実現できない。
本発明は、これらの事情に鑑みたものであり、制御のリアルタイム性を妨げずに複数の通信システム間でイベント通知を行うために、割込みを使わずに周期的なポーリングによりイベントの到着を監視してイベント通知を行う方式を実現し、通信システム間で一定時間以内にイベント通知ができるようにすることを主な目的とする。
本発明に係るデータ処理システムは、
相互にデータを送受信する第1の通信システムと第2の通信システムとを有し、
前記第1の通信システムにおいて、前記第2の通信システムからのデータの受信を確認する周期が指定受信確認周期として指定されているデータ処理システムであって、
前記第1の通信システムは、
前記第2の通信システムに、前記指定受信確認周期を通知する周期通知データを送信し、
前記第2の通信システムは、
前記第1の通信システムから前記周期通知データを受信し、前記周期通知データで通知された前記指定受信確認周期を、以降の前記第1の通信システムからのデータの受信を確認する周期とすることを特徴とする。
相互にデータを送受信する第1の通信システムと第2の通信システムとを有し、
前記第1の通信システムにおいて、前記第2の通信システムからのデータの受信を確認する周期が指定受信確認周期として指定されているデータ処理システムであって、
前記第1の通信システムは、
前記第2の通信システムに、前記指定受信確認周期を通知する周期通知データを送信し、
前記第2の通信システムは、
前記第1の通信システムから前記周期通知データを受信し、前記周期通知データで通知された前記指定受信確認周期を、以降の前記第1の通信システムからのデータの受信を確認する周期とすることを特徴とする。
本発明によれば、第1の通信システムと第2の通信システムは共通の受信確認周期で相互に他方の通信システムからのデータの受信を確認するため、通信システム間で一定時間以内にイベント通知ができる。
以下の実施の形態1〜3では、複数の通信システムを有するデータ処理システムについて説明を行う。
具体的には、データ処理システムを計算機装置とし、各通信システムを計算機装置内のOSとし、2つのOSの間でイベント通知を行う例を説明する。
具体的には、データ処理システムを計算機装置とし、各通信システムを計算機装置内のOSとし、2つのOSの間でイベント通知を行う例を説明する。
実施の形態1.
実施の形態1では、制御のリアルタイム性を妨げずにOS間でイベント通知を行うために、割込みを使わずに周期的なポーリングによりイベントの到着を監視してイベント通知を行う方式を説明する。
本実施の形態では、通信するOS間でポーリング周期を等しくし、かつ周期の同期をとることにより、OS間で一定時間以内にイベント通知ができるようにする。
イベント通知は、他のOSに対して、イベントを非同期に通知することであり、仮想ネットワークやOS間の共有メモリなどを用いて行う。
実施の形態1では、制御のリアルタイム性を妨げずにOS間でイベント通知を行うために、割込みを使わずに周期的なポーリングによりイベントの到着を監視してイベント通知を行う方式を説明する。
本実施の形態では、通信するOS間でポーリング周期を等しくし、かつ周期の同期をとることにより、OS間で一定時間以内にイベント通知ができるようにする。
イベント通知は、他のOSに対して、イベントを非同期に通知することであり、仮想ネットワークやOS間の共有メモリなどを用いて行う。
図1は、本実施の形態に係る計算機装置100のソフトウェア構成例を示す図である。
OS1、OS2は、それぞれ計算機装置100で動作するオペレーティングシステムである。
OS1とOS2は同じ構成をとる。
OS1は第1の通信システムの例に相当し、OS2は第2の通信システムの例に相当する。
OS1、OS2は、それぞれ計算機装置100で動作するオペレーティングシステムである。
OS1とOS2は同じ構成をとる。
OS1は第1の通信システムの例に相当し、OS2は第2の通信システムの例に相当する。
OSと計算機装置100の構成は図2〜図4のように3種類ある。
図2のようにOS1及びOS2が、同じ計算機装置100上にあるものと、図3と図4のように異なる計算機装置100、200上にあるものがある。
図3及び図4の計算機装置100、計算機装置200は同じ構成をとる。
図1は、図2に示す、1つの計算機装置100に2つのOSが実装されている例を示している。
図2のようにOS1及びOS2が、同じ計算機装置100上にあるものと、図3と図4のように異なる計算機装置100、200上にあるものがある。
図3及び図4の計算機装置100、計算機装置200は同じ構成をとる。
図1は、図2に示す、1つの計算機装置100に2つのOSが実装されている例を示している。
図1において、ハイパーバイザ3は、計算機装置100上で複数のOSを実行するためのソフトウェアである。
ハイパーバイザ3には、イベント通知部4を持つ。
イベント通知部4は、ハイパーバイザ3上のOS1、2間のイベント通知を行う。
ハイパーバイザ3には、イベント通知部4を持つ。
イベント通知部4は、ハイパーバイザ3上のOS1、2間のイベント通知を行う。
OS1、2が異なる計算機装置100、200上にある場合、図3に示すようにハイパーバイザがある構成と、図4のようにハイパーバイザがない構成がある。
図3のハイパーバイザ54、55には、他の計算機装置のOSと通信するOS間通信部56、57が存在する。
OS間通信部56、57は、図1のイベント通知部4に代わるものである。
図4のOS1、OS2には、イベント通知部4に代わり、他の計算機装置のOSとネットワークで通信するためのネットワーク通信部58、59がある。
ハイパーバイザ54とハイパーバイザ55、OS間通信部56とOS間通信部57、ネットワーク通信部58とネットワーク通信部59は、それぞれ同じものとする。
図3のハイパーバイザ54、55には、他の計算機装置のOSと通信するOS間通信部56、57が存在する。
OS間通信部56、57は、図1のイベント通知部4に代わるものである。
図4のOS1、OS2には、イベント通知部4に代わり、他の計算機装置のOSとネットワークで通信するためのネットワーク通信部58、59がある。
ハイパーバイザ54とハイパーバイザ55、OS間通信部56とOS間通信部57、ネットワーク通信部58とネットワーク通信部59は、それぞれ同じものとする。
次に、OS1、OS2の内部構成を説明する。
以下では、図1の構成例について説明を行うが、図3及び図4の構成でも、図1と同様に、OS1及びOS2に、イベント送信部5、10、イベント受信部6、11、ポーリング周期取得部7、12、ポーリング周期通知部8、13、ポーリング周期9、14が実装されているものとする。
以下では、図1の構成例について説明を行うが、図3及び図4の構成でも、図1と同様に、OS1及びOS2に、イベント送信部5、10、イベント受信部6、11、ポーリング周期取得部7、12、ポーリング周期通知部8、13、ポーリング周期9、14が実装されているものとする。
図1のOS1において、イベント送信部5は、イベント通知部4を介して、OS2にイベントを送信する。
イベント受信部6は、イベント通知部4を介して、OS2からイベントを受信する。
ポーリング周期取得部7は、OS1のポーリング周期9の値を取得する。
ポーリング周期通知部8は自身のポーリング周期9をOS2へ送信する、またはOS2からポーリング周期14を受信したとき、自身のポーリング周期9の値を受信した値に変更する。
ポーリング周期9は、OS1において指定されているポーリング周期である。
ポーリング周期9は、OS2からのイベントの受信を確認・検知する周期であり、イベント受信部6は、ポーリング周期9に示されている時間ごとに、OS2からのイベントの受信を確認・検知する。
ポーリング周期9は指定受信確認周期の例に相当する。
イベント受信部6は、イベント通知部4を介して、OS2からイベントを受信する。
ポーリング周期取得部7は、OS1のポーリング周期9の値を取得する。
ポーリング周期通知部8は自身のポーリング周期9をOS2へ送信する、またはOS2からポーリング周期14を受信したとき、自身のポーリング周期9の値を受信した値に変更する。
ポーリング周期9は、OS1において指定されているポーリング周期である。
ポーリング周期9は、OS2からのイベントの受信を確認・検知する周期であり、イベント受信部6は、ポーリング周期9に示されている時間ごとに、OS2からのイベントの受信を確認・検知する。
ポーリング周期9は指定受信確認周期の例に相当する。
イベント送信部10はイベント送信部5と同様であり、イベント送信部10は、イベント通知部4を介して、OS1にイベントを送信する。
イベント受信部11はイベント受信部6と同様であり、イベント受信部11は、イベント通知部4を介して、OS1からイベントを受信する。
ポーリング周期取得部12はポーリング周期取得部7と同様であり、ポーリング周期取得部12は、OS2のポーリング周期14の値を取得する。
ポーリング周期通知部13はポーリング周期通知部8と同様であり、ポーリング周期通知部13は自身のポーリング周期14をOS1へ送信する、またはOS1からポーリング周期9を受信したとき、自身のポーリング周期14の値を受信した値に変更する。
ポーリング周期14は、OS2において指定されているポーリング周期である。
ポーリング周期14は、OS1からのイベントの受信を確認・検知する周期であり、イベント受信部11は、ポーリング周期14に示されている時間ごとに、OS1からのイベントの受信を確認・検知する。
イベント受信部11はイベント受信部6と同様であり、イベント受信部11は、イベント通知部4を介して、OS1からイベントを受信する。
ポーリング周期取得部12はポーリング周期取得部7と同様であり、ポーリング周期取得部12は、OS2のポーリング周期14の値を取得する。
ポーリング周期通知部13はポーリング周期通知部8と同様であり、ポーリング周期通知部13は自身のポーリング周期14をOS1へ送信する、またはOS1からポーリング周期9を受信したとき、自身のポーリング周期14の値を受信した値に変更する。
ポーリング周期14は、OS2において指定されているポーリング周期である。
ポーリング周期14は、OS1からのイベントの受信を確認・検知する周期であり、イベント受信部11は、ポーリング周期14に示されている時間ごとに、OS1からのイベントの受信を確認・検知する。
計算機装置100のハードウェア構成としては、図14に示すように、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
演算装置901は、プログラムを実行するCPUである。
外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
通信装置904は、例えばNIC(Network Interface Card)である。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
通信装置904は、例えばNIC(Network Interface Card)である。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
つまり、演算装置901は、OS1、OS2、ハイパーバイザ3のプログラムコードを読込み、読み込んだプログラムコードを実行する。
このため、以下の説明において、イベント通知部4、イベント送信部5、10、イベント受信部6、11、ポーリング周期取得部7、12、ポーリング周期通知部8、13の動作として説明するものは、演算装置901の動作と読み替えることができる。
つまり、演算装置901は、OS1、OS2、ハイパーバイザ3のプログラムコードを読込み、読み込んだプログラムコードを実行する。
このため、以下の説明において、イベント通知部4、イベント送信部5、10、イベント受信部6、11、ポーリング周期取得部7、12、ポーリング周期通知部8、13の動作として説明するものは、演算装置901の動作と読み替えることができる。
また、以下の説明において、「〜の判断」、「〜の判定」、「〜の確認」、「〜の検知」、「〜の計測」、「〜の設定」、「〜の決定」、「〜の選択」、「〜の生成」、「〜の変更」、「〜の受信」、等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
なお、図14の構成は、あくまでも計算機装置100のハードウェア構成の一例を示すものであり、計算機装置100のハードウェア構成は図14に記載の構成に限らず、他の構成であってもよい。
次に、OS2のポーリング周期14を、OS1のポーリング周期9と等しくする場合の動作について説明する。
図5は、この動作のフローチャートである。
図5は、この動作のフローチャートである。
まず、ステップ100において、ポーリング周期取得部7はOS1のポーリング周期9の値を取得する。
次に、ステップ101において、ポーリング周期通知部8はステップ100で取得したOS1のポーリング周期9の値をOS2にイベント通知部4を用いて送信する。
このポーリング周期9の値を通知するイベント通知は、周期通知データの例に相当する。
なお、以降のOS1とOS2の間の通信もイベント通知部4を介して行われるものとする。
また、OS1とOS2の間の通信は、例えば、共有メモリを用いたプロセス間通信である。
このポーリング周期9の値を通知するイベント通知は、周期通知データの例に相当する。
なお、以降のOS1とOS2の間の通信もイベント通知部4を介して行われるものとする。
また、OS1とOS2の間の通信は、例えば、共有メモリを用いたプロセス間通信である。
次に、ステップ102において、OS2のポーリング周期通知部13はステップ101で送信されたOS1のポーリング周期9を受信する。
次に、ステップ103において、ポーリング周期通知部13はOS2のポーリング周期14の値をステップ102で受信したOS1のポーリング周期9の値に変更する。
次に、ステップ104において、ポーリング周期通知部13はOS2のポーリング周期14を変更したことをOS1に通知する。
次に、ステップ105において、OS1のポーリング周期通知部8はOS2のポーリング周期14が変更されたという通知を受信する。
ここまでは、OSの初期設定で行う。
ここまでは、OSの初期設定で行う。
ステップ106でOS1は通常処理を開始する。
同様に、ステップ107でOS2も通常処理を開始する。
そして、ステップ108でOS1を終了する。
同様に、ステップ109でOS2を終了する。
同様に、ステップ107でOS2も通常処理を開始する。
そして、ステップ108でOS1を終了する。
同様に、ステップ109でOS2を終了する。
ステップ106の通常処理では、OS1は、ポーリング周期9に示されている時間ごとに、OS2からのイベントの受信を確認・検知し、OS2からのイベントの受信を確認・検知した後、次のポーリング周期の到達時に、OS2へのイベント通知を行う。
なお、OS1におけるポーリング周期9の起点は、例えば、ステップ101のポーリング周期9の送信時である。
同様に、ステップ107の通常処理では、OS2は、ステップ103で変更されたポーリング周期、すなわち、ポーリング周期9に示されている時間ごとに、OS1からのイベントの受信を確認・検知し、OS1からのイベントの受信を確認・検知した後、次のポーリング周期の到達時に、OS1へのイベント通知を行う。
なお、OS2におけるポーリング周期9の起点は、例えば、ステップ102のポーリング周期9の受信時である。
なお、OS1におけるポーリング周期9の起点は、例えば、ステップ101のポーリング周期9の送信時である。
同様に、ステップ107の通常処理では、OS2は、ステップ103で変更されたポーリング周期、すなわち、ポーリング周期9に示されている時間ごとに、OS1からのイベントの受信を確認・検知し、OS1からのイベントの受信を確認・検知した後、次のポーリング周期の到達時に、OS1へのイベント通知を行う。
なお、OS2におけるポーリング周期9の起点は、例えば、ステップ102のポーリング周期9の受信時である。
このように、OS間のイベント通知をポーリングで行う場合、OS間でポーリング周期を等しくすることにより、イベント通知にかかる時間は一定時間内となる。
図6はOS1からOS2にイベントを通知し、その後OS2からOS1へイベントを通知した場合の、イベント通知にかかる時間を表している。
矢印200はOS1の状態を、矢印201はOS2の状態を表しており、右に行くほど時間が経過している。
直線202は、他方のOSからのイベントの受信を確認・検知するポーリングのタイミング、点線203がイベント通知の状態を表している。
前述したように、イベントの受信を確認・検知するタイミング202は、OS1とOS2とで一致している。
また、202と202との間の時間がポーリング周期である。
矢印200はOS1の状態を、矢印201はOS2の状態を表しており、右に行くほど時間が経過している。
直線202は、他方のOSからのイベントの受信を確認・検知するポーリングのタイミング、点線203がイベント通知の状態を表している。
前述したように、イベントの受信を確認・検知するタイミング202は、OS1とOS2とで一致している。
また、202と202との間の時間がポーリング周期である。
図6において、OS2からのイベント受信を確認・検知したOS1は点AでイベントをOS2に送信し、点B’でOS2にイベントが到着するが、実際にOS2がイベントを受信する(イベントの受信を確認・検知する)のは点Bとなる。
次に、点Bでイベントの受信を確認・検知した後、OS2がイベントをOS1に送信し、点C’でOS1にイベントが到着するが、実際にOS1がイベントを受信する(イベントの受信を確認・検知する)のは点Cとなる。
AB’とBC’はイベント配送の遅延時間であり、ACがイベントの往復にかかる時間となる。
このことから、イベントの往復にかかる時間は必ず、ポーリング周期×2の時間内で収められることが分かる。
次に、点Bでイベントの受信を確認・検知した後、OS2がイベントをOS1に送信し、点C’でOS1にイベントが到着するが、実際にOS1がイベントを受信する(イベントの受信を確認・検知する)のは点Cとなる。
AB’とBC’はイベント配送の遅延時間であり、ACがイベントの往復にかかる時間となる。
このことから、イベントの往復にかかる時間は必ず、ポーリング周期×2の時間内で収められることが分かる。
このように、本実施の形態によれば、通信するOS間でポーリング周期を等しくし、かつ周期の同期をとることにより、OS間で一定時間以内にイベント通知ができる。
以上、本実施の形態では、
ポーリング周期を取得するポーリング周期取得部と、
他のOSのポーリング周期を送受信し、ポーリング周期を変更するポーリング周期通知部を備える、
OS間の通信方式について説明した。
ポーリング周期を取得するポーリング周期取得部と、
他のOSのポーリング周期を送受信し、ポーリング周期を変更するポーリング周期通知部を備える、
OS間の通信方式について説明した。
実施の形態2.
本実施の形態では、OSのポーリングの周期を等しくし、かつポーリングのタイミングをOS間で半周期ずらすことにより、イベント通知にかかる時間を短縮する方式を説明する。
本実施の形態では、OSのポーリングの周期を等しくし、かつポーリングのタイミングをOS間で半周期ずらすことにより、イベント通知にかかる時間を短縮する方式を説明する。
図7は、本実施の形態に係る計算機装置100のソフトウェア構成例を示す。
OS1、2、ハイパーバイザ3、イベント通知部4、イベント送信部5、10、イベント受信部6、11、ポーリング周期取得部7、12、ポーリング周期通知部8、13、ポーリング周期9、14は実施の形態1と同じである。
本実施の形態2では、新たに通知時間計測部15、18とポーリング時刻算出部16、19とポーリング設定部17、20を追加する。
本実施の形態2では、新たに通知時間計測部15、18とポーリング時刻算出部16、19とポーリング設定部17、20を追加する。
通知時間計測部15は、イベントが片方のOSからもう片方のOSに届くまでの時間を計測する。
ポーリング時刻算出部16は、片方のOSのポーリングがもう片方のOSのポーリングから半周期ずれるようなポーリングの時刻を算出する。
ポーリング設定部17は、ポーリングのタイミングを算出した時刻に設定する。
ポーリング時刻算出部16は、片方のOSのポーリングがもう片方のOSのポーリングから半周期ずれるようなポーリングの時刻を算出する。
ポーリング設定部17は、ポーリングのタイミングを算出した時刻に設定する。
通知時間計測部18は通知時間計測部15と、ポーリング時刻算出部19はポーリング時刻算出部16と、ポーリング設定部20はポーリング設定部17と同じである。
なお、本実施の形態においても、以下の説明は、図3及び図4の構成に適用可能であり、また、本実施の形態に係る計算機装置100のハードウェア構成例は図14に示したものと同様である。
次にOS2のポーリング周期を変更するとともに、OS2のポーリングの時刻を変更する場合の動作について説明する。
図8及び図9は、この動作のフローチャートである。
図8及び図9は、この動作のフローチャートである。
初めに、OS1とOS2のポーリング周期を等しくするため、ステップ100〜105を行う。
これは実施の形態1で説明したステップ100〜105と同じである。
これは実施の形態1で説明したステップ100〜105と同じである。
次に、イベント配送の遅延時間を計測する。
まず、ステップ110において、OS2の通知時間計測部18はOS2のポーリング周期を0に変更する。
これにより、OS2では、OS1からのイベント通知の受信を常時確認・検知することになる。
まず、ステップ110において、OS2の通知時間計測部18はOS2のポーリング周期を0に変更する。
これにより、OS2では、OS1からのイベント通知の受信を常時確認・検知することになる。
次に、ステップ111において、通知時間計測部18はOS2のポーリング周期を0に変更したことをOS1へ通知する。
次に、ステップ112において、通知時間計測部15はOS2のポーリング周期が0に変更されたという通知を受け取る。
次に、ステップ113において、通知時間計測部15はOS1のポーリング周期を0に変更する。
これにより、OS1では、OS2からのイベント通知の受信を常時確認・検知することになる。
これにより、OS1では、OS2からのイベント通知の受信を常時確認・検知することになる。
次に、ステップ114において、イベント送信部5はOS2へイベントを送信する。
このイベント送信は、イベント配送の遅延時間を計測するためのものであり、第1の時間計測用データの例に相当する。
このイベント送信は、イベント配送の遅延時間を計測するためのものであり、第1の時間計測用データの例に相当する。
次に、ステップ115において、OS2のイベント受信部11はOS1からイベントを受信する。
次に、ステップ116において、OS2のイベント送信部10はOS1へイベントを送信する。
このイベント送信も、イベント配送の遅延時間を計測するためのものであり、第2の時間計測用データの例に相当する。
このイベント送信も、イベント配送の遅延時間を計測するためのものであり、第2の時間計測用データの例に相当する。
次に、ステップ117において、OS1のイベント受信部6はOS2からイベントを受信する。
次に、ステップ118において、OS1のイベント送信部5はOS2へイベントを送信する。
このイベント送信も、イベント配送の遅延時間を計測するためのものであり、第3の時間計測用データの例に相当する。
このイベント送信も、イベント配送の遅延時間を計測するためのものであり、第3の時間計測用データの例に相当する。
次に、ステップ119において、OS2のイベント受信部11はOS1からイベントを受信する。
次に、ステップ120において、OS2の通知時間計測部18はOS1からOS2へのイベント通知にかかった時間を求める。
時間はステップ115からステップ119にかかった時間を2で割ったものとする。
これをX(ms)とする。
これが、イベント配送の遅延時間となる。
時間はステップ115からステップ119にかかった時間を2で割ったものとする。
これをX(ms)とする。
これが、イベント配送の遅延時間となる。
そして、ステップ121において、OS2のポーリング時刻算出部19は、OS2のポーリングがOS1のポーリングと半周期ずれるよう、OS2のポーリングの時刻を算出する。
算出方法は、OS2がOS1から受信したポーリング周期9をY(ms)とすると、ステップ119のイベント受信時刻からY/2−X(ms)後の時刻がOS2のポーリングのタイミングとなる。
つまり、OS2では、ステップ119のイベント受信時刻からY/2−X(ms)後の時刻を起点にしてポーリングを行う。
一方、OS1では、ステップ118のイベント送信時刻を起点にしてポーリングを行う。
これにより、OS1とOS2の間では、ポーリングのタイミングが、ポーリング周期の半周期分ずれることになる。
算出方法は、OS2がOS1から受信したポーリング周期9をY(ms)とすると、ステップ119のイベント受信時刻からY/2−X(ms)後の時刻がOS2のポーリングのタイミングとなる。
つまり、OS2では、ステップ119のイベント受信時刻からY/2−X(ms)後の時刻を起点にしてポーリングを行う。
一方、OS1では、ステップ118のイベント送信時刻を起点にしてポーリングを行う。
これにより、OS1とOS2の間では、ポーリングのタイミングが、ポーリング周期の半周期分ずれることになる。
次に、ステップ122において、ポーリング設定部20はステップ117で求めた時刻にポーリングを合わせる。
次に、ステップ123において、OS1のポーリング設定部17はOS1のポーリング周期を0からステップ100の時点でのポーリング周期の値に戻す。
最後にステップ124において、ポーリング設定部20はOS1のポーリング周期を0からステップ104の時点でのポーリング周期の値に戻す。
ここまでは、OSの初期設定で行う。
そして、実施の形態1と同様にステップ106〜109を実施しOSを終了する。
ここまでは、OSの初期設定で行う。
そして、実施の形態1と同様にステップ106〜109を実施しOSを終了する。
このように、OS間のイベント通知をポーリングで行う場合、ポーリング周期を同じにして、更にポーリングのタイミングをOS間で半周期ずらすことにより、イベント通知にかかる時間は一定時間内となり、さらに時間を短縮できる。
図10は、実施の形態1の図6と同様に、OS1からOS2にイベントを通知し、その後OS2からOS1へイベントを通知した場合の、イベント通知にかかる時間を表している。
矢印200、矢印201、点線203のそれぞれの意味は、実施の形態1と同じである。
直線202aはOS1におけるポーリングのタイミングを示し、直線202bはOS2におけるポーリングのタイミングを示している。
前述したように、OS1とOS2の間では、ポーリングのタイミングが、ポーリング周期の半周期分ずれるので、図10においても直線202aと直線202bはポーリング周期の半周期分ずれている。
矢印200、矢印201、点線203のそれぞれの意味は、実施の形態1と同じである。
直線202aはOS1におけるポーリングのタイミングを示し、直線202bはOS2におけるポーリングのタイミングを示している。
前述したように、OS1とOS2の間では、ポーリングのタイミングが、ポーリング周期の半周期分ずれるので、図10においても直線202aと直線202bはポーリング周期の半周期分ずれている。
点OでOS1はイベントを送信し、点P’でOS2にイベントが到着するが、実際にOS2がイベントを受信する(イベントの受信を確認・検知する)のは点Pとなる。
次に、OS2がイベントを送信し、点Q’でOS1にイベントが到着するが、実際にOS1がイベントを受信する(イベントの受信を確認・検知する)のは点Qとなる。
OP’とPQ’はイベント配送の遅延時間であり、OQがイベントの往復にかかる時間となる。
このことから、イベントの往復にかかる時間は必ず、ポーリング周期の時間内で収められることが分かる。
次に、OS2がイベントを送信し、点Q’でOS1にイベントが到着するが、実際にOS1がイベントを受信する(イベントの受信を確認・検知する)のは点Qとなる。
OP’とPQ’はイベント配送の遅延時間であり、OQがイベントの往復にかかる時間となる。
このことから、イベントの往復にかかる時間は必ず、ポーリング周期の時間内で収められることが分かる。
このように、本実施の形態によれば、通信するOS間でポーリング周期を等しくし、更にポーリングのタイミングをOS間で半周期ずらすことにより、イベント通知にかかる時間を短縮することができる。
なお、図8及び図9では、ステップ114においてOS1から時間計測のためのイベントを送信し、ステップ116においてOS2から応答のためのイベントを送信し、更に、ステップ117においてOS1が再度イベントを送信し、ステップ120においてOS2がステップ115からステップ117までの時間を計測し、計測した時間に基づきステップ121でポーリングすべき時刻を算出し、ステップ122でポーリングの時刻を設定することとしている。
これに対して、OS1とOS2の処理を入れ替えてもよい。
つまり、ステップ114においてOS2から時間計測のためのイベントを送信し、ステップ116においてOS1から応答のためのイベントを送信し、更に、ステップ117においてOS2が再度イベントを送信し、ステップ120においてOS1がステップ115からステップ117までの時間を計測し、計測した時間に基づきステップ121でポーリングすべき時刻を算出し、ステップ122でポーリングの時刻を設定するようにしてもよい。
この場合は、OS2はステップ118のイベントの送信時点を起点にしてポーリングを行う。
これに対して、OS1とOS2の処理を入れ替えてもよい。
つまり、ステップ114においてOS2から時間計測のためのイベントを送信し、ステップ116においてOS1から応答のためのイベントを送信し、更に、ステップ117においてOS2が再度イベントを送信し、ステップ120においてOS1がステップ115からステップ117までの時間を計測し、計測した時間に基づきステップ121でポーリングすべき時刻を算出し、ステップ122でポーリングの時刻を設定するようにしてもよい。
この場合は、OS2はステップ118のイベントの送信時点を起点にしてポーリングを行う。
以上、本実施の形態では、
ポーリングの周期を0(ms)にしてイベント通知時間を計測する通知時間計測部と、
片方のOSのポーリングのタイミングを、もう片方のポーリングから半周期ずれるようなポーリングの時刻を算出するポーリング時刻算出部を備える、
OS間の通信方式を説明した。
ポーリングの周期を0(ms)にしてイベント通知時間を計測する通知時間計測部と、
片方のOSのポーリングのタイミングを、もう片方のポーリングから半周期ずれるようなポーリングの時刻を算出するポーリング時刻算出部を備える、
OS間の通信方式を説明した。
実施の形態3.
図11は、本実施の形態に係るソフトウェア構成例を示す。
図11は、本実施の形態に係るソフトウェア構成例を示す。
図11において、OS1、2、ハイパーバイザ3、イベント通知部4、イベント送信部5、10、イベント受信部6、11、ポーリング周期取得部7、12、ポーリング周期通知部8、13、ポーリング周期9、14、通知時間計測部15、18、ポーリング時刻算出部16、19、ポーリング設定部17、20は実施の形態1、2と同じである。
本実施の形態では、新たにポーリング調整部21、23と周期同期補正時間22、24を追加する。
本実施の形態では、新たにポーリング調整部21、23と周期同期補正時間22、24を追加する。
ポーリング調整部21は、ポーリングのタイミングのずれを修正するため、周期同期補正時間22ごとに実施の形態2のステップ106〜120を繰り返す。
ポーリング調整部23はポーリング調整部21と同じである。
また、周期同期補正時間24は周期同期補正時間22と同じ時間である。
ポーリング調整部23はポーリング調整部21と同じである。
また、周期同期補正時間24は周期同期補正時間22と同じ時間である。
なお、本実施の形態においても、以下の説明は、図3及び図4の構成に適用可能であり、また、本実施の形態に係る計算機装置100のハードウェア構成例は図14に示したものと同様である。
次に、実施の形態2の後、OS2のポーリングの調整を定期的に行う動作について説明する。
図12及び図13は、この動作のフローチャートである。
なお、図12はOS1の動作例を示し、図13はOS2の動作例を示す。
図12及び図13は、この動作のフローチャートである。
なお、図12はOS1の動作例を示し、図13はOS2の動作例を示す。
本実施の形態に係るOS1、2では、通常処理を行っている間に、ポーリングのタイミングがずれていくのを防ぐため、周期同期補正時間24ごとに、実施の形態2のステップ110〜124を繰り返す。
まず、ステップ125において、OS2は終了する場合はステップ109でOSを終了し、終了しない場合はそのまま動作し続ける。
次に、ステップ126において、周期同期補正時間24が経過していたらステップ127に、経過していなかったらステップ107で通常処理を行う。
次に、ステップ127において、ポーリング調整部23はOS1にステップ110〜124の繰返し命令を送信する。
次に、ステップ128において、OS1は終了する場合はステップ108でOSを終了し、終了しない場合はそのまま動作し続ける。
次に、ステップ129において、ポーリング調整部21はOS2からの繰返し命令を受信したら、ステップ112に、受信しなければステップ106で通常処理を行う。
ステップ110〜124は、実施の形態2と同じである。
ステップ110〜124は、実施の形態2と同じである。
このように、ポーリングのタイミングの調整を定期的に繰り返すことで、イベント通知に効率のよいポーリングの状態を維持する。
なお、以上では、OS2側で周期同期補正時間24が経過しているか否かを判定し、周期同期補正時間24が経過していれば、OS1に繰り返し命令を送信する例を説明している。
これに代えて、OS1側で周期同期補正時間22が経過しているか否かを判定し、周期同期補正時間22が経過していれば、OS2に繰り返し命令を送信するようにしてもよい。
これに代えて、OS1側で周期同期補正時間22が経過しているか否かを判定し、周期同期補正時間22が経過していれば、OS2に繰り返し命令を送信するようにしてもよい。
以上、本実施の形態では、
定期的にポーリングのタイミングを調節するポーリング調整部を備える、
OS間の通信方式を説明した。
定期的にポーリングのタイミングを調節するポーリング調整部を備える、
OS間の通信方式を説明した。
1 OS、2 OS、3 ハイパーバイザ、4 イベント通知部、5 イベント送信部、6 イベント受信部、7 ポーリング周期取得部、8 ポーリング周期通知部、9 ポーリング周期、10 イベント送信部、11 イベント受信部、12 ポーリング周期取得部、13 ポーリング周期通知部、14 ポーリング周期、15 通知時間計測部、16 ポーリング時刻算出部、17 ポーリング設定部、18 通知時間計測部、19 ポーリング時刻算出部、20 ポーリング設定部、21 ポーリング調整部、22 周期同期補正時間、23 ポーリング調整部、24 周期同期補正時間、54 ハイパーバイザ、55 ハイパーバイザ、56 OS間通信部、57 OS間通信部、58 ネットワーク通信部、59 ネットワーク通信部、100 計算機装置、200 計算機装置。
Claims (8)
- 相互にデータを送受信する第1の通信システムと第2の通信システムとを有し、
前記第1の通信システムにおいて、前記第2の通信システムからのデータの受信を確認する周期が指定受信確認周期として指定されているデータ処理システムであって、
前記第1の通信システムは、
前記第2の通信システムに、前記指定受信確認周期を通知する周期通知データを送信し、
前記第2の通信システムは、
前記第1の通信システムから前記周期通知データを受信し、前記周期通知データで通知された前記指定受信確認周期を、以降の前記第1の通信システムからのデータの受信を確認する周期とすることを特徴とするデータ処理システム。 - 前記第1の通信システムは、
所定の時刻を起点にして前記指定受信確認周期ごとに、前記第2の通信システムからのデータの受信を確認し、
前記第2の通信システムは、
前記第1の通信システムにおける起点の時刻から前記指定受信確認周期の半周期分をずらした時刻を起点にして前記指定受信確認周期ごとに、前記第1の通信システムからのデータの受信を確認し、
前記第1の通信システムと前記第2の通信システムは、
相互に前記指定受信確認周期の半周期分をずらしたタイミングで、他方の通信システムからのデータの受信を確認することを特徴とする請求項1に記載のデータ処理システム。 - 前記第1の通信システムは、
前記第2の通信システムに、時間計測用の第1の時間計測用データを送信し、
前記第2の通信システムは、
前記第1の通信システムから前記第1の時間計測用データを受信し、前記第1の時間計測用データに応答する第2の時間計測用データを前記第1の通信システムに送信し、
前記第1の通信システムは、
前記第2の通信システムから前記第2の時間計測用データを受信し、前記第2の時間計測用データに応答する第3の時間計測用データを前記第2の通信システムに送信し、
前記第3の時間計測用データの送信時刻を起点にして前記指定受信確認周期ごとに、前記第2の通信システムからのデータの受信を確認し、
前記第2の通信システムは、
前記第1の通信システムから前記第3の時間計測用データを受信し、
前記第1の時間計測用データの受信から前記第3の時間計測用データの受信までの時間を計測し、
前記第1の時間計測用データの受信から前記第3の時間計測用データの受信までの時間の半分の時間を、前記指定受信確認周期の半周期分の時間から減算し、
前記第3の時間計測用データの受信時刻から減算により得られた時間を経過した時刻を起点にして前記指定受信確認周期ごとに、前記第1の通信システムからのデータの受信を確認することを特徴とする請求項2に記載のデータ処理システム。 - 前記第1の通信システムは、
前記第1の時間計測用データの送信前に、前記第2の通信システムからのデータの受信を確認する周期を0にし、
前記第3の時間計測用データを送信した際に、前記第2の通信システムからのデータの受信を確認する周期を前記指定受信確認周期にし、
前記第2の通信システムは、
前記第1の時間計測用データの受信前に、前記第1の通信システムからのデータの受信を確認する周期を0にし、
前記指定受信確認周期の起点の時刻を決定した際に、前記第1の通信システムからのデータの受信を確認する周期を前記指定受信確認周期にすることを特徴とする請求項3に記載のデータ処理システム。 - 前記第2の通信システムは、
前記第1の通信システムに、時間計測用の第1の時間計測用データを送信し、
前記第1の通信システムは、
前記第2の通信システムから前記第1の時間計測用データを受信し、前記第1の時間計測用データに応答する第2の時間計測用データを前記第1の通信システムに送信し、
前記第2の通信システムは、
前記第1の通信システムから前記第2の時間計測用データを受信し、前記第2の時間計測用データに応答する第3の時間計測用データを前記第1の通信システムに送信し、
前記第3の時間計測用データの送信時刻を起点にして前記指定受信確認周期ごとに、前記第1の通信システムからのデータの受信を確認し、
前記第1の通信システムは、
前記第2の通信システムから前記第3の時間計測用データを受信し、
前記第1の時間計測用データの受信から前記第3の時間計測用データの受信までの時間を計測し、
前記第1の時間計測用データの受信から前記第3の時間計測用データの受信までの時間の半分の時間を、前記指定受信確認周期の半周期分の時間から減算し、
前記第3の時間計測用データの受信時刻から減算により得られた時間を経過した時刻を起点にして前記指定受信確認周期ごとに、前記第2の通信システムからのデータの受信を確認することを特徴とする請求項2に記載のデータ処理システム。 - 前記第2の通信システムは、
前記第1の時間計測用データの送信前に、前記第1の通信システムからのデータの受信を確認する周期を0にし、
前記第3の時間計測用データを送信した際に、前記第1の通信システムからのデータの受信を確認する周期を前記指定受信確認周期にし、
前記第1の通信システムは、
前記第1の時間計測用データの受信前に、前記第2の通信システムからのデータの受信を確認する周期を0にし、
前記指定受信確認周期の起点の時刻を決定した際に、前記第2の通信システムからのデータの受信を確認する周期を前記指定受信確認周期にすることを特徴とする請求項5に記載のデータ処理システム。 - 前記第1の通信システムと前記第2の通信システムは、
所定の期間ごとに、前記第1の時間計測用データの送受信、前記第2の時間計測用データの送受信、前記第3の時間計測用データの送受信を行って、それぞれの通信システムにおける前記指定受信確認周期の起点の時刻を決定することを特徴とする請求項3〜6のいずれかに記載のデータ処理システム。 - 前記第1の通信システムと前記第2の通信システムは、それぞれ、
相互にイベント通知データを送受信するOS(Operating System)であることを特徴とする請求項1〜7のいずれかに記載のデータ処理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013026423A JP2014157386A (ja) | 2013-02-14 | 2013-02-14 | データ処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013026423A JP2014157386A (ja) | 2013-02-14 | 2013-02-14 | データ処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014157386A true JP2014157386A (ja) | 2014-08-28 |
Family
ID=51578245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013026423A Pending JP2014157386A (ja) | 2013-02-14 | 2013-02-14 | データ処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014157386A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019069518A1 (ja) * | 2017-10-04 | 2019-04-11 | 株式会社日立製作所 | 分散エネルギーリソース管理装置、管理方法並びに管理システム |
WO2020158319A1 (ja) * | 2019-02-01 | 2020-08-06 | 株式会社デンソー | 車両用装置、車両用装置の時刻同期方法 |
-
2013
- 2013-02-14 JP JP2013026423A patent/JP2014157386A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019069518A1 (ja) * | 2017-10-04 | 2019-04-11 | 株式会社日立製作所 | 分散エネルギーリソース管理装置、管理方法並びに管理システム |
JP2019067286A (ja) * | 2017-10-04 | 2019-04-25 | 株式会社日立製作所 | 分散エネルギーリソース管理装置、管理方法並びに管理システム |
JP6993832B2 (ja) | 2017-10-04 | 2022-01-14 | 株式会社日立製作所 | 分散エネルギーリソース管理装置、管理方法並びに管理システム |
WO2020158319A1 (ja) * | 2019-02-01 | 2020-08-06 | 株式会社デンソー | 車両用装置、車両用装置の時刻同期方法 |
JP2020126317A (ja) * | 2019-02-01 | 2020-08-20 | 株式会社デンソー | 車両用装置、車両用装置の時刻同期方法 |
JP7135903B2 (ja) | 2019-02-01 | 2022-09-13 | 株式会社デンソー | 車両用装置、車両用装置の時刻同期方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9979998B1 (en) | System for time synchronization of audio devices | |
KR101636496B1 (ko) | 신호 동기 시스템, 노드 동기 시스템, 신호 동기 방법, 및 노드 동기 방법 | |
JP2010182101A (ja) | フィールド制御システム | |
CN107947888B (zh) | 一种基于网络通信的任务级同步方法 | |
JP2011193457A (ja) | 時間同期を行うためのシステムおよび方法 | |
US9882705B2 (en) | Communication apparatus, communication method, and computer readable medium using propagation delay for time synchronization | |
JP6116319B2 (ja) | リアルタイムシステムでタイムスタンプを形成する方法、データ処理装置、コンピュータプログラム製品、および、ディジタル記憶媒体 | |
JP2014157386A (ja) | データ処理システム | |
JP6423971B2 (ja) | 機能ユニット及び制御装置 | |
US20160209200A1 (en) | Distance measurement device and distance measurement method | |
WO2018063704A1 (en) | Push telemetry data accumulation | |
JP2010061458A (ja) | マシンコントローラシステムおよびマシンコントローラ間同期方法 | |
JP6196505B2 (ja) | クラウド制御システム、及びその制御プログラムの実行方法 | |
KR102284043B1 (ko) | 단말 간 시간 동기화 및 이를 이용한 멀티 단말의 동시 실행 방법, 시스템 및 컴퓨터-판독가능 기록매체 | |
US9703315B2 (en) | Transmission device and time synchronization method | |
KR101491347B1 (ko) | 프로세서와 와치독 모듈의 동작 방법 및 장치 | |
JP2014160367A (ja) | 演算処理装置 | |
JP5493880B2 (ja) | 並列コンピュータシステム、プロセッサ、同期装置、通信方法および通信支援方法 | |
RU2674878C1 (ru) | Устройство синхронизации микроконтроллеров | |
JP2011071728A (ja) | 情報処理装置、無線通信システム、無線通信方法及びプログラム | |
JP2015014863A (ja) | 冗長化した安全装置の処理を同期化させる装置およびシステム | |
JP5724772B2 (ja) | 試験条件設定方法、電流変動試験方法、及び情報処理装置 | |
JP2015022686A (ja) | 解析システム | |
US20180152323A1 (en) | Relay device and communication system | |
JP5380884B2 (ja) | データ処理装置及び同期方法 |