JP2011090553A - 情報処理装置、同期制御方法およびプログラム - Google Patents
情報処理装置、同期制御方法およびプログラム Download PDFInfo
- Publication number
- JP2011090553A JP2011090553A JP2009244410A JP2009244410A JP2011090553A JP 2011090553 A JP2011090553 A JP 2011090553A JP 2009244410 A JP2009244410 A JP 2009244410A JP 2009244410 A JP2009244410 A JP 2009244410A JP 2011090553 A JP2011090553 A JP 2011090553A
- Authority
- JP
- Japan
- Prior art keywords
- access right
- information processing
- processors
- timing
- processing apparatus
- 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
- Hardware Redundancy (AREA)
Abstract
【課題】マルチ・プロセッサ・コンピュータをフォールト・トレラントに適用した場合に、障害発生の切り替え時に正常な処理を行う。
【解決手段】タイミング制御部は、複数のプロセッサのうち1つのプロセッサに共有リソースを使用するためのアクセス権を付与している間にプロセッサ以外の複数のプロセッサからアクセス権の付与が要求された場合、アクセス権の解放後、アクセス権の付与を要求した複数のプロセッサにその付与を要求してきた順序でアクセス権を順次付与する。同期制御部は、一定の監視タイミングにて、複数のプロセッサが搭載された他の情報処理装置と当該情報処理装置との同期を制御する。タイミング制御部によるアクセス権の解放は、監視タイミングにて行われる。
【選択図】図1
【解決手段】タイミング制御部は、複数のプロセッサのうち1つのプロセッサに共有リソースを使用するためのアクセス権を付与している間にプロセッサ以外の複数のプロセッサからアクセス権の付与が要求された場合、アクセス権の解放後、アクセス権の付与を要求した複数のプロセッサにその付与を要求してきた順序でアクセス権を順次付与する。同期制御部は、一定の監視タイミングにて、複数のプロセッサが搭載された他の情報処理装置と当該情報処理装置との同期を制御する。タイミング制御部によるアクセス権の解放は、監視タイミングにて行われる。
【選択図】図1
Description
本発明は、情報処理装置、同期制御方法およびプログラムに関する。
近年、複数のプロセッサが搭載され、各プロセッサが命令を実行するためのリソースを互いに共有するマルチ・プロセッサ・コンピュータが普及してきている。
また、複数台のコンピュータに同じ命令をそれぞれ実行させることで、これらのコンピュータの一部に障害が発生した場合でも残りのコンピュータにより命令を継続して実行するフォールト・トレラント・コンピュータ・システムという技術が存在する。フォールト・トレラント・コンピュータ・システムでは、複数のコンピュータで互いに同じタイミングで処理を行うために、特殊な回路などを用いて各コンピュータへ互いに同期をとるための同期信号を入力させることにより、各コンピュータ間において処理の同期がとられている。
近年では、ハードウェアにて同期信号を入力する代わりに、ハイパーバイザなどを用いて複数台のコンピュータに同じ命令を実行させることで、フォールト・トレラント・コンピュータ・システムを実現する技術が登場してきた(例えば、特許文献1、非特許文献1,2参照。)。
VMWare、""Protecting Mission-Critical Workloads with VMware Fault Tolerance″、[online]、Revision: 20090507 Item: WP-084-PRD-01-02、平成 21年 5月 7日、[平成 21年 9月 28日検索]、インターネット〈URL:http://www.vmware.com/files/pdf/resources/ft_virtualization_wp.pdf〉
Marathon、"Bringing XenServer to Mission Critical Systems"、[online]、平成 20年11月、[平成 21年 9月 28日検索]、インターネット〈URL:http://www.xen.org/files/xensummit_tokyo/12_SatoshiWatanabe-ja.pdf〉
しかし、マルチ・プロセッサ・コンピュータにおいては、各コンピュータを構成するマルチ・プロセッサが、お互いに同期することなく命令を実行する。
よって、複数のマルチ・プロセッサ・コンピュータに同じ処理を実行させた場合、それぞれのプロセッサが共有リソースへアクセスする順番がお互いに異なるおそれがある。その場合、ある時点で行っている処理が、マルチ・プロセッサ・コンピュータごとに互いに異なってしまう。
それにより、マルチ・プロセッサ・コンピュータは、フォールト・トレラント・コンピュータ・システムなどの冗長構成にそのまま適用しても互いのコンピュータ間で処理の同期をとれないおそれがある。また、それに伴って、障害発生の切り替え時に正常に処理を継続できないおそれがある。
本発明は、上述した課題を解決する情報処理装置、同期制御方法およびプログラムを提供することを目的とする。
上記課題を解決するために、本発明の情報処理装置は、共有リソースを用いて動作する複数のプロセッサが搭載された情報処理装置であって、前記複数のプロセッサのうち1つのプロセッサに前記共有リソースを使用するためのアクセス権を付与している間に該プロセッサ以外の複数のプロセッサから該共有リソースに対するアクセス権の付与が要求された場合、該アクセス権を解放した後、該アクセス権の付与を要求した複数のプロセッサに該アクセス権の付与を要求してきた順序で該アクセス権を順次付与するタイミング制御部と、一定の監視タイミングにて、前記命令をそれぞれ実行する複数のプロセッサが搭載された他の情報処理装置と当該情報処理装置との同期を制御する同期制御部とを有し、前記タイミング制御部は、前記アクセス権の解放を前記監視タイミングにて行う。
また、上記課題を解決するために、本発明の同期制御方法は、共有リソースを用いて動作する複数のプロセッサが搭載された情報処理装置における同期制御方法であって、前記複数のプロセッサのうち1つのプロセッサに前記共有リソースを使用するためのアクセス権を付与している間に該プロセッサ以外の複数のプロセッサから該共有リソースに対するアクセス権の付与が要求された場合、該アクセス権を解放した後、該アクセス権の付与を要求した複数のプロセッサに該アクセス権の付与を要求してきた順序で該アクセス権を順次付与するタイミング制御処理と、一定の監視タイミングにて、前記命令をそれぞれ実行する複数のプロセッサが搭載された他の情報処理装置と当該情報処理装置との同期を制御する同期制御処理とを有し、前記タイミング制御処理では、前記アクセス権の解放を前記監視タイミングにて行う。
また、コンピュータに実行させるプログラムであって、共有リソースを用いて動作する複数のプロセッサが搭載された情報処理装置に、前記複数のプロセッサのうち1つのプロセッサに前記共有リソースを使用するためのアクセス権を付与している間に該プロセッサ以外の複数のプロセッサから該共有リソースに対するアクセス権の付与が要求された場合、該アクセス権を解放した後、該アクセス権の付与を要求した複数のプロセッサに該アクセス権の付与を要求してきた順序で該アクセス権を順次付与するタイミング制御手順と、一定の監視タイミングにて、前記命令をそれぞれ実行する複数のプロセッサが搭載された他の情報処理装置と当該情報処理装置との同期を制御する同期制御手順とを実行させ、前記タイミング制御手順では、前記アクセス権の解放を前記監視タイミングにて行う。
本発明によれば、マルチ・プロセッサ・コンピュータをフォールト・トレラント・コンピュータ・システムに適用した場合でも、障害発生の切り替え時に正常な処理を継続できる。
以下、本発明のフォールト・トレラント・コンピュータ・システム(情報処理装置、同期制御方法およびプログラムを含む)の実施形態を説明する。
まず、本実施形態のフォールト・トレラント・コンピュータ・システムの構成について、図1を参照して説明する。
図1に示すように、本実施形態のフォールト・トレラント・コンピュータ・システムは、情報処理装置100−1と、情報処理装置100−2とから構成され、情報処理装置100−1と情報処理装置100−2とがインターコネクト14を介して接続されている。
情報処理装置100−1、100−2それぞれは、「共有リソース」を用いて動作する複数のプロセッサが搭載されたマルチ・プロセッサ・コンピュータである。
つぎに、情報処理装置100−1、100−2の構成について説明する。なお、情報処理装置100−1の構成と情報処理装置100−2の構成とは同じであるため、以下では、情報処理装置100−1の構成を例に挙げて説明する。
情報処理装置100−1には、ソフトウェア1−1と、ハイパーバイザ6−1と、プロセッサ群9−1とが設けられている。
ソフトウェア1−1の例としては、任意のOS(オペレーティング・システム)、任意のアプリケーション・ソフトウェアなどが挙げられる。
ソフトウェア1−1は、ハイパーバイザ6−1から提供された共有リソースを用いて、所定の情報を処理するための任意の命令列を実行する。
以下では、ソフトウェア1−1が共有リソースを用いて実行する複数の命令列それぞれを「スレッド」と呼ぶ。本実施形態では、ソフトウェア1−1が実行する命令列は、4つのスレッド2−1、3−1、4−1、5−1で構成されている場合を例に挙げて説明する。
プロセッサ群9−1は、複数のプロセッサから構成される。本実施形態では、プロセッサ群9−1は、4個のプロセッサ10−1、11−1、12−1、13−1から構成されている。ソフトウェア1−1およびハイパーバイザ6−1は、これらのプロセッサ10−1、11−1、12−1、13−1を用いて動作する。
ハイパーバイザ6−1は、プロセッサ10−1、11−1、12−1、13−1、メモリ(図示せず)、I/O(Input/Output)ポート(図示せず)などの物理的なハードウェアを、仮想的な「共有リソース」としてソフトウェア1−1へ提供する。「共有リソース」は一定の粒度(単位)でアクセス制御を行う。例えば、メモリはページフレーム単位でアクセス制御を行い、I/Oポートはポート単位でアクセス制御を行う。
なお、ハイパーバイザ6−1はソフトウェア1−1に対して透過である。つまり、ソフトウェア1−1からは、仮想的な共有リソースを構成する物理的なハードウェアに直接アクセスしているように見える。
また、ハイパーバイザ6−1には、タイミング制御部7−1と、同期制御部8−1とが設けられている。
タイミング制御部7−1は、ソフトウェア1−1が起動した際、共有リソースに対するアクセス権をスレッド2−1、3−1、4−1、5−1のいずれに対しても付与されていない状態に設定する。
スレッド2−1、3−1、4−1、5−1のいずれかによって、アクセス権が付与されていない共有リソース又は、他のスレッドにアクセス権が付与されている共有リソースにアクセスを試みられた場合、スレッドが一時停止され、タイミング制御部7−1に制御が移る。このとき、スレッドがアクセス権の付与を要求したと見なす。以下に述べる処理によってスレッドが「待機状態」にならず「稼動状態」のままならば、処理が完了した後、スレッドの実行が再開される。
その後、タイミング制御部7−1は、共有リソースに対するアクセス権の付与がスレッド2−1、3−1、4−1、5−1のいずれかより要求されたかどうかを判定する。
アクセス権の付与がスレッド2−1、3−1、4−1、5−1のいずれかより要求されたと判定した場合、タイミング制御部7−1は、そのアクセス権が、付与を要求してきたスレッドと異なる他のスレッドに付与されているかどうかを判定する。
要求されたアクセス権が他のスレッドに付与されていないと判定した場合、タイミング制御部7−1は、付与を要求してきたスレッドにそのアクセス権を付与する。
また、タイミング制御部7−1は、アクセス権を付与したスレッドを「稼動状態」に設定し、起動させる。すると、アクセス権が付与されたスレッドは、当該アクセス権によりアクセスが許可されたリソースを用いて命令を実行する。
ここで、「稼動状態」とは、アクセス権が付与されたスレッドが、当該アクセス権によりアクセスが許可された共有リソースを用いて命令を実行している状態を指す。
また、要求されたアクセス権が他のスレッドに付与されていると判定した場合、タイミング制御部7−1は、アクセス権の付与を要求してきたスレッドを「待機状態」に設定する。
ここで、「待機状態」とは、アクセス権の付与を要求してから、そのアクセス権が付与されるまでの間のスレッドの状態を指し、「稼動状態」と排他的なものである。
なお、タイミング制御部7−1は、スレッド2−1、3−1、4−1、5−1のうちのあるスレッド(例えば、スレッド2−1)が命令を実行している間に、それ以外の複数のスレッド(例えば、スレッド3−1、4−1)からアクセス権の付与が要求された場合、付与を要求してきたスレッドすべて(スレッド3−1、4−1)を待機状態に設定する。
また、タイミング制御部7−1は、スレッド2−1、3−1、4−1、5−1のいずれかを待機状態に設定した場合、要求されたアクセス権が付与されているスレッドが「監視タイミング」まで実行されたかを判定する。なお、「監視タイミング」は、スレッドの命令境界の中から、後述する同期制御部8−1が、一定の規則に従って定める。
スレッドが「監視タイミング」まで実行されていないと判定した場合、アクセス権の付与が当該スレッドから要求された際、タイミング制御部7−1は、そのアクセス権を当該スレッドに付与したままにする。
また、スレッドが監視タイミングまで実行されたと判定した場合は、タイミング制御部7−1は、命令を実行したスレッドに付与されているアクセス権を、待機状態にあるスレッドに当該アクセス権の付与を要求してきた順序で順次付与する。
具体的には、タイミング制御部7−1は、スレッド3−1、4−1が待機状態にあり、かつスレッド4−1がスレッド3−1よりも先にアクセス権の付与を要求してきた場合、当該アクセス権を、スレッド4−1に付与した後に、スレッド3−1に付与する。
同期制御部8−1は、情報処理装置100−1と情報処理装置100−2との同期をロックステッピング方式で制御するロックステッピング機構でもよく、これらの同期をリプレイ方式で制御するリプレイ機構でもよい。
同期制御部8−1は、ロックステッピング機構である場合、スレッド2−1、3−1、4−1、5−1がそれぞれ実行する命令列を、任意の個数の命令が個々に含まれた「命令量子」と呼ばれる単位で分割する。
そして、同期制御部8−1は、ある命令量子とその命令量子に続いて実行される命令量子との境界(以下、「監視タイミング」と称する)で、スレッド2−1、3−1、4−1、5−1それぞれによる命令の実行結果を取得する。
同期制御部8−1は、ソフトウェア1−2の実行結果を情報処理装置100−2から取得する。そして、同期制御部8−1は、ソフトウェア1−1の実行結果と、ソフトウェア1−2の実行結果とを比較する。
同期制御部8−1は、比較の結果、これらの実行結果が同じである場合、情報処理装置100−1と情報処理装置100−2とが同期していると判定する。
また、同期制御部8−1は、これらの実行結果が異なっている場合、監視タイミングにおけるスレッド2−1、3−1、4−1、5−1それぞれによる命令の実行結果にエラーが存在するかどうかを判定する。そして、同期制御部8−1は、エラーが存在すると判定した場合、情報処理装置100−2のメモリ(図示せず)に記憶されている情報すべてを取得して情報処理装置100−1のメモリ(図示せず)にコピーするなどの一般的な再同期制御を行う。
また、同期制御部8−1は、監視タイミングをタイミング制御部7−1に通知する。
また、同期制御部8−1は、リプレイ機構である場合、一般的なバイナリ・トランスレーション技術を用いて、一定の規則に従って設けられた監視タイミングで、スレッド2−1、3−1、4−1、5−1それぞれが実行する命令を監視する。
また、同期制御部8−1は、監視タイミングごとに、ソフトウェア1−1へ任意の情報を入力する。また、同期制御部8−1は、監視タイミングごとに、ソフトウェア1−1へ入力した情報を、情報処理装置100−2が具備する同期制御部8−2へ送信する。すると、同期制御部8−2は、情報処理装置100−1から送信されてきた情報をソフトウェア1−2へ入力する。
また、同期制御部8−1は、ロックステッピング機構である場合と同様に、監視タイミングをタイミング制御部7−1に通知する。
つぎに、上記構成を有する情報処理装置100−1、100−2それぞれに設けられたタイミング制御部7−1、7−2における処理について説明する。なお、タイミング制御部7−1における処理とタイミング制御部7−2における処理とは同じであるため、以下では、タイミング制御部7−1における処理を例に挙げて説明する。
まず、情報処理装置100−1において、ソフトウェア1−1が起動した際のタイミング制御部7−1における処理について、図2を参照して説明する。
このとき、図2に示すステップ301にて、タイミング制御部7−1は、ソフトウェア1−1を起動させると、共有リソースに対するアクセス権を、スレッド2−1、3−1、4−1、5−1のいずれに対しても付与されていない状態に設定する。
つぎに、スレッド2−1、3−1、4−1、5−1のいずれかが共有リソースへのアクセス権の付与を要求した場合のタイミング制御部7−1における処理について、図3を参照して説明する。
まず、図3に示すステップ401にて、タイミング制御部7−1は、共有リソースに対するアクセス権の付与がスレッド2−1、3−1、4−1、5−1のいずれかより要求されたかどうかを判定している。
アクセス権の付与が要求されたと判定した場合、ステップ402にて、タイミング制御部7−1は、そのアクセス権が、付与を要求してきたスレッドと異なる他のスレッドに付与されているかどうかを判定する。
他のスレッドに付与されていないと判定した場合、ステップ403にて、タイミング制御部7−1は、アクセス権の付与を要求してきたスレッドに当該アクセス権を付与する。
続いて、ステップ404にて、タイミング制御部7−1は、アクセス権を付与したスレッドを稼動状態に設定し、起動させる。
すると、ステップ405にて、アクセス権が付与されたスレッドは、そのアクセス権によりアクセスが許可された共有リソースを用いて命令を実行する。
また、要求されたアクセス権が他のスレッドに付与されていると判定した場合、ステップ406にて、タイミング制御部7−1は、アクセス権の付与を要求してきたスレッドを待機状態に設定する。
なお、タイミング制御部7−1は、スレッド2−1、3−1、4−1、5−1のうちのあるスレッドが命令を実行している間に、それ以外の複数のスレッドからアクセス権の付与が要求された場合、付与を要求してきたスレッドすべてを待機状態に設定する。
続いて、ステップ407にて、タイミング制御部7−1は、要求されたアクセス権が付与されているスレッドが監視タイミングまで実行されたかを判定する。アクセス権の付与が命令を実行しているスレッドから要求された際、当該スレッドが監視タイミングまで実行されていないと判定した場合、タイミング制御部7−1は、そのアクセス権をそのスレッドに付与したままにする。
また、スレッドが監視タイミングまで実行されたと判定した場合、ステップ408にて、タイミング制御部7−1は、その命令の実行が終了した監視タイミングで、命令を実行したスレッドに付与されているアクセス権を、待機状態にあるスレッドに当該アクセス権の付与を要求してきた順序で順次付与する。
続いて、ステップ409にて、タイミング制御部7−1は、アクセス権を付与したスレッドを稼動状態に設定して起動させる。
すると、ステップ410にて、アクセス権が付与されたスレッドは、当該アクセス権によりアクセスが許可された共有リソースを用いて命令を実行する。
タイミング制御部7−1は、スレッド2−1、3−1、4−1、5−1それぞれによるすべての命令列の実行が完了するまで、上述したステップ401〜ステップ410の処理を繰り返し実行する。
なお、情報処理装置100−2内のタイミング制御部7−2においても、上述したタイミング制御部7−1と同様の処理が行われる。
つぎに、情報処理装置100−1における命令実行タイミングと情報処理装置100−2における命令実行タイミングとの制御により、本発明のフォールト・トレラント・コンピュータ・システムが情報処理装置100−1と情報処理装置100−2とを同期させる処理の一例を、図4を参照して説明する。
図4は、情報処理装置100−1内の共有リソースに対するアクセス権がスレッド2−1、3−1に付与される様子と、情報処理装置100−2内の共有リソースに対するアクセス権がスレッド2−2、3−2に付与される様子とを表すシーケンス図である。なお、この説明例では、ソフトウェア1−1とソフトウェア1−2とが同じタイミングで起動した場合を例に挙げて説明する。
情報処理装置100−1においてソフトウェア1−1が起動した際、タイミング制御部7−1は、共有リソースに対するアクセス権をスレッド2−1、3−1、4−1、5−1のいずれに対しても付与されていない状態に設定する。そのため、図4に示す監視タイミング501が経過する前において、スレッド2−1、3−1、4−1、5−1のうち共通リソースに対するアクセス権を付与されたスレッドは存在しない。また、スレッド2−1、3−1、4−1、5−1を稼動状態とする。
監視タイミング501の経過後、情報処理装置100−1が具備するタイミング制御部7−1は、スレッド2−1が共有リソースに対するアクセス権の付与を要求してきた場合、スレッド2−1にアクセス権を付与する。
続いて、タイミング制御部7−1は、アクセス権を付与したスレッド2−1を稼動状態に設定して起動させる。すると、アクセス権が付与されたスレッド2−1は、当該アクセス権によりアクセスが許可された共有リソースを用いて命令の実行を開始する。
その後、情報処理装置100−1上でスレッド2−1が命令を実行している間に、スレッド2−1に付与されているアクセス権の付与がスレッド3−1から要求された場合、タイミング制御部7−1は、スレッド3−1を待機状態に設定する。
なお、タイミング制御部7−1は、スレッド2−1が命令を実行している間にアクセス権の付与がスレッド2−1から要求された場合、そのアクセス権をスレッド2−1に付与したままにする。
その後、同期制御部8−1は、スレッド2−1が監視タイミング502まで実行されたことを検知した場合、その旨をタイミング制御部7−1へ通知する。また、タイミング制御部7−1は、スレッド2−1が監視タイミング502まで実行されたと判定し、命令の実行を終了したスレッド2−1を稼動状態のままにする。スレッド2−1は、次にアクセス権の付与要求を行うまで、実行される。
さらに、タイミング制御部7−1は、スレッド2−1に付与されていたアクセス権を、待機状態にあるスレッド3−1へ付与する。なお、タイミング制御部7−1は、待機状態のスレッドが複数存在する場合、これらのスレッドに、アクセス権を、当該アクセス権の付与を要求してきた順序で順次付与する。
続いて、タイミング制御部7−1は、アクセス権を付与したスレッド3−1を稼動状態に設定して起動させる。すると、アクセス権が付与されたスレッド3−1は、当該アクセス権によりアクセスが許可された共有リソースを用いて命令を実行する。
また、スレッド3−1が命令を実行している間に、スレッド3−1に付与されているアクセス権の付与がスレッド2−1から要求された場合、タイミング制御部7−1は、スレッド2−1を待機状態に設定する。
その後、同期制御部8−1は、スレッド3−1が監視タイミング503まで実行されたことを検知した際、その旨をタイミング制御部7−1へ通知する。タイミング制御部7−1は、スレッド3−1が監視タイミング503まで実行されたと判定する。
さらに、タイミング制御部7−1は、監視タイミング503にて、スレッド3−1に付与されていたアクセス権を待機状態にあるスレッド2−1へ付与する。続いて、タイミング制御部7−1は、アクセス権を付与したスレッド2−1を稼動状態に設定して起動させる。すると、スレッド2−1は、共有リソースを用いて命令を実行する。
なお、タイミング制御部7−1は、監視タイミング504にて、スレッド2−1が監視タイミング504まで実行されたと判定した場合、スレッド2−1を稼動状態のままにする。
また、情報処理装置100−2のタイミング制御部7−2は、情報処理装置100−1のタイミング制御部7−1がスレッド2−1、3−1に対して行った制御と同様の制御を、スレッド2−2、3−2に対して行う。
なお、情報処理装置100−1が具備する同期制御部8−1は、一定の監視タイミングごとに、命令のトラップやバイナリ・トランスレーションによって、スレッド2−1、3−1、4−1、5−1による命令の実行結果を監視する。また、同期制御部8−1は、スレッド2−1、3−1、4−1、5−1が監視タイミングまで実行されたことをタイミング制御部7−1へ通知する。
また、情報処理装置100−2が具備する同期制御部8−2は、一定の監視タイミングごとに、命令のトラップやバイナリ・トランスレーションによって、スレッド2−2、3−2、4−2、5−2による命令の実行結果を監視する。また、同期制御部8−2は、スレッド2−2、3−2、4−2、5−2が監視タイミングまで実行されたことをタイミング制御部7−2へ通知する。
そして、同期制御部8−1、8−2は、ロックステッピング方式やリプレイ方式に従って協働することにより、情報処理装置100−1と情報処理装置100−2との同期を制御する。
なお、「協働」とは、ロックステッピング方式において、情報処理装置100−1と情報処理装置100−2との少なくとも一方が、監視タイミングにおける当該情報処理装置による命令の実行結果と、当該監視タイミングにて残りの一方から取得した命令の実行結果との比較に基づいて、同期を制御することを指す。
また、「協働」とは、リプレイ方式において、監視タイミングごとに、情報処理装置100−1がソフトウェア1−1に入力した情報を情報処理装置100−2へ送信し、情報処理装置100−2が当該情報をソフトウェア1−2へ入力することを指す。
以上説明したように、本発明の実施形態によれば、このようなスレッド間の命令実行タイミングの制御を複数のマルチ・プロセッサ・コンピュータにてそれぞれ実施することで、マルチ・プロセッサ・コンピュータをフォールト・トレラント・コンピュータ・システムに適用した場合でも、障害発生の切り替え時に正常に処理を継続することが可能となる。
また、本発明によれば、共有リソースを使用するスレッド間のみで命令の実行タイミングを制御する。そのため、すべてのスレッド間における命令の実行タイミングを制御する場合と比較して、命令の実行タイミングを制御するためのプロセッサに対する処理負荷を少なくでき、それに伴って、ソフトウェアの処理速度を向上させることができる。
また、本発明によれば、複数のスレッドにスピンロックやミューテックスなどのアクセス権を付与するタイミングを、アクセス権を要求してきた順序に応じて制御することができる。
なお、本発明の要旨を逸脱しない範囲で、様々な変形例を構成することが可能である。
図5に示すように、本発明の情報処理装置100Aには、図1に示したタイミング制御部7−1、同期制御部8−1を含むフォールト・トレラント・ソフトウェア701が実装されていてもよい。
この場合、情報処理装置100Aは、図1に示したハイパーバイザ6−1に代えて、ハイパーバイザ6Aを有する。
ハイパーバイザ6Aは、プロセッサ10−1、11−1、12−1、13−1、メモリ(図示せず)、I/Oポート(図示せず)などの物理的なハードウェアを、仮想的な共有リソースとしてソフトウェア1−1およびフォールト・トレラント・ソフトウェア701へ提供する。
また、このハイパーバイザ6Aには、フォールト・トレラント・ソフトウェア701と連携して動作するためのソフトウェア連携部702が設けられている。
例えば、ハイパーバイザ6Aは、ソフトウェア1−1が起動した際、ソフトウェア連携部702を介して、タイミング制御部7−1を呼び出す。すると、タイミング制御部7−1は、共有リソースに対するアクセス権をスレッド2−1、3−1、4−1、5−1のいずれに対しても付与されていない状態に設定する。
なお、図5に示した構成においては、ハイパーバイザ6Aは、共有リソースに対するアクセス権の付与がスレッド2−1、3−1、4−1、5−1のいずれかによって要求されたかどうかを判定してもよい。さらに、アクセス権の付与が要求されたと判定した場合、ソフトウェア連携部702が、その旨をタイミング制御部7−1へ通知してもよい。そして、アクセス権の付与が要求された旨の通知を受けたタイミング制御部7−1は、要求されたアクセス権が、その付与を要求したスレッドと異なる他のスレッドに付与されているかどうかを判定し、この判定結果に基づいて上述した命令の実行タイミングを制御してもよい。
なお、本発明においては、情報処理装置100−1内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、情報処理装置100−1として動作させるコンピュータにて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをそのコンピュータに読み込ませ、実行するものであってもよい。情報処理装置100−1として動作させるコンピュータにて読取可能な記録媒体とは、フロッピーディスク(登録商標)、光磁気ディスク、DVD、CDなどの移設可能な記録媒体の他、そのコンピュータに内蔵されたHDD等を指す。この記録媒体に記録されたプログラムは、例えば、情報処理装置100−1として動作させるコンピュータが有するタイミング制御部7−1、同期制御部8−1として動作するプロセッサにて読み込まれ、そのプロセッサの制御によって、上述したものと同様の処理が行われる。
ここで、タイミング制御部7−1、同期制御部8−1として動作するプロセッサは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するものである。なお、上述したプログラムは、情報処理装置100−2に対しても同様に適用可能である。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明の要旨を逸脱しない範囲で当業者が理解し得る各種の変形が可能である。
100−1、100−2、100A 情報処理装置
1−1、1−2 ソフトウェア
2−1、2−2、3−1、3−2、4−1、4−2、5−1、5−2 スレッド
6−1、6−2、6A ハイパーバイザ
7−1、7−2 タイミング制御部
8−1、8−2 同期制御部
9−1、9−2 プロセッサ群
10−1、10−2、11−1、11−2、12−1、12−2、13−1、13−2 プロセッサ
14 インターコネクト
701 フォールト・トレラント・ソフトウェア
702 ソフトウェア連携部
1−1、1−2 ソフトウェア
2−1、2−2、3−1、3−2、4−1、4−2、5−1、5−2 スレッド
6−1、6−2、6A ハイパーバイザ
7−1、7−2 タイミング制御部
8−1、8−2 同期制御部
9−1、9−2 プロセッサ群
10−1、10−2、11−1、11−2、12−1、12−2、13−1、13−2 プロセッサ
14 インターコネクト
701 フォールト・トレラント・ソフトウェア
702 ソフトウェア連携部
Claims (9)
- 共有リソースを用いて動作する複数のプロセッサが搭載された情報処理装置であって、
前記複数のプロセッサのうち1つのプロセッサに前記共有リソースを使用するためのアクセス権を付与している間に該プロセッサ以外の複数のプロセッサから該共有リソースに対するアクセス権の付与が要求された場合、該アクセス権を解放した後、該アクセス権の付与を要求した複数のプロセッサに該アクセス権の付与を要求してきた順序で該アクセス権を順次付与するタイミング制御部と、
一定の監視タイミングにて、前記命令をそれぞれ実行する複数のプロセッサが搭載された他の情報処理装置と当該情報処理装置との同期を制御する同期制御部とを有し、
前記タイミング制御部は、前記アクセス権の解放を前記監視タイミングにて行う情報処理装置。 - 請求項1に記載の情報処理装置において、
前記タイミング制御部は、前記共有リソースに対するアクセス権が前記複数のプロセッサのいずれにも付与されていない状態で、前記複数のプロセッサのうち1つのプロセッサから前記アクセス権の付与が要求された場合、該プロセッサに該アクセス権を付与することを特徴とする情報処理装置。 - 請求項1または2に記載の情報処理装置において、
前記同期制御部は、前記命令の実行が終了したタイミングにおける該命令の実行結果と該タイミングにおける前記他の情報処理装置による実行結果との比較結果に基づいて、当該情報処理装置と該他の情報処理装置との同期を制御することを特徴とする情報処理装置。 - 共有リソースを用いて動作する複数のプロセッサが搭載された情報処理装置における同期制御方法であって、
前記複数のプロセッサのうち1つのプロセッサに前記共有リソースを使用するためのアクセス権を付与している間に該プロセッサ以外の複数のプロセッサから該共有リソースに対するアクセス権の付与が要求された場合、該アクセス権を解放した後、該アクセス権の付与を要求した複数のプロセッサに該アクセス権の付与を要求してきた順序で該アクセス権を順次付与するタイミング制御処理と、
一定の監視タイミングにて、前記命令をそれぞれ実行する複数のプロセッサが搭載された他の情報処理装置と当該情報処理装置との同期を制御する同期制御処理とを有し、
前記タイミング制御処理では、前記アクセス権の解放を前記監視タイミングにて行う同期制御方法。 - 請求項4に記載の同期制御方法において、
前記タイミング制御処理では、前記共有リソースに対するアクセス権が前記複数のプロセッサのいずれにも付与されていない状態で、前記複数のプロセッサのうち1つのプロセッサから前記アクセス権の付与が要求された場合、該プロセッサに該アクセス権を付与することを特徴とする同期制御方法。 - 請求項4または5に記載の同期制御方法において、
前記同期制御処理では、前記命令の実行が終了したタイミングにおける該命令の実行結果と該タイミングにおける前記他の情報処理装置による実行結果との比較結果に基づいて、当該情報処理装置と該他の情報処理装置との同期を制御することを特徴とする同期制御方法。 - 共有リソースを用いて動作する複数のプロセッサが搭載された情報処理装置に、
前記複数のプロセッサのうち1つのプロセッサに前記共有リソースを使用するためのアクセス権を付与している間に該プロセッサ以外の複数のプロセッサから該共有リソースに対するアクセス権の付与が要求された場合、該アクセス権を解放した後、該アクセス権の付与を要求した複数のプロセッサに該アクセス権の付与を要求してきた順序で該アクセス権を順次付与するタイミング制御手順と、
一定の監視タイミングにて、前記命令をそれぞれ実行する複数のプロセッサが搭載された他の情報処理装置と当該情報処理装置との同期を制御する同期制御手順とを実行させ、
前記タイミング制御手順では、前記アクセス権の解放を前記監視タイミングにて行うプログラム。 - 請求項7に記載のプログラムにおいて、
前記タイミング制御手順では、前記共有リソースに対するアクセス権が前記複数のプロセッサのいずれにも付与されていない状態で、前記複数のプロセッサのうち1つのプロセッサから前記アクセス権の付与が要求された場合、該プロセッサに該アクセス権を付与することを特徴とするプログラム。 - 請求項7または8に記載のプログラムにおいて、
前記同期制御手順では、前記命令の実行が終了したタイミングにおける該命令の実行結果と該タイミングにおける前記他の情報処理装置による実行結果との比較に基づいて、当該情報処理装置と該他の情報処理装置との同期を制御することを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009244410A JP2011090553A (ja) | 2009-10-23 | 2009-10-23 | 情報処理装置、同期制御方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009244410A JP2011090553A (ja) | 2009-10-23 | 2009-10-23 | 情報処理装置、同期制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011090553A true JP2011090553A (ja) | 2011-05-06 |
Family
ID=44108739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009244410A Pending JP2011090553A (ja) | 2009-10-23 | 2009-10-23 | 情報処理装置、同期制御方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011090553A (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05165793A (ja) * | 1991-12-13 | 1993-07-02 | Mitsubishi Electric Corp | 計算機システムにおける資源の排他制御方式 |
JP2004046599A (ja) * | 2002-07-12 | 2004-02-12 | Nec Corp | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム |
JP2004110803A (ja) * | 2002-08-30 | 2004-04-08 | Nec Computertechno Ltd | フォールトトレラントコンピュータ、そのトランザクション同期制御方法及びプログラム |
JP2008542878A (ja) * | 2005-05-24 | 2008-11-27 | マラソン テクノロジーズ コーポレイション | 対称型マルチプロセッサ・フォルトトレラントコンピュータシステム |
JP2009217503A (ja) * | 2008-03-10 | 2009-09-24 | Hitachi Ltd | 計算機システム、計算機制御方法及び計算機制御プログラム |
-
2009
- 2009-10-23 JP JP2009244410A patent/JP2011090553A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05165793A (ja) * | 1991-12-13 | 1993-07-02 | Mitsubishi Electric Corp | 計算機システムにおける資源の排他制御方式 |
JP2004046599A (ja) * | 2002-07-12 | 2004-02-12 | Nec Corp | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム |
JP2004110803A (ja) * | 2002-08-30 | 2004-04-08 | Nec Computertechno Ltd | フォールトトレラントコンピュータ、そのトランザクション同期制御方法及びプログラム |
JP2008542878A (ja) * | 2005-05-24 | 2008-11-27 | マラソン テクノロジーズ コーポレイション | 対称型マルチプロセッサ・フォルトトレラントコンピュータシステム |
JP2009217503A (ja) * | 2008-03-10 | 2009-09-24 | Hitachi Ltd | 計算機システム、計算機制御方法及び計算機制御プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Comparing containers versus virtual machines for achieving high availability | |
US8407518B2 (en) | Using virtual machine cloning to create a backup virtual machine in a fault tolerant system | |
JP5742410B2 (ja) | フォールトトレラント計算機システム、フォールトトレラント計算機システムの制御方法、及びフォールトトレラント計算機システムの制御プログラム | |
JP3982353B2 (ja) | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム | |
US9317314B2 (en) | Techniques for migrating a virtual machine using shared storage | |
Minhas et al. | Remusdb: Transparent high availability for database systems | |
US20070294578A1 (en) | Method and apparatus for facilitating process migration | |
US9639486B2 (en) | Method of controlling virtualization software on a multicore processor | |
US9811404B2 (en) | Information processing system and method | |
US9734016B2 (en) | Secure live virtual machine guest based snapshot recovery | |
US20110131425A1 (en) | Systems and methods for power management in a high performance computing (hpc) cluster | |
US20170364394A1 (en) | System and method to perform live migration of a virtual machine without suspending operation thereof | |
US9571584B2 (en) | Method for resuming process and information processing system | |
WO2012143844A1 (en) | Virtual machine high availability | |
WO2016106756A1 (zh) | 一种容灾方法、系统和装置 | |
JP5561334B2 (ja) | データ転送装置 | |
US9454445B2 (en) | Fault tolerant server | |
US20160170912A1 (en) | Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels | |
Stojkovic et al. | Mxfaas: Resource sharing in serverless environments for parallelism and efficiency | |
US9535772B2 (en) | Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels | |
Takano et al. | Cooperative VM migration for a virtualized HPC cluster with VMM-bypass I/O devices | |
US8799903B1 (en) | Systems and methods for exchanging runtime functionalities between software stacks | |
US9952941B2 (en) | Elastic virtual multipath resource access using sequestered partitions | |
JP2011090553A (ja) | 情報処理装置、同期制御方法およびプログラム | |
US10481936B2 (en) | Efficient virtual machine memory monitoring with hyper-threading |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121029 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121106 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130305 |