JP5996110B2 - 計算機システム及び制御方法 - Google Patents
計算機システム及び制御方法 Download PDFInfo
- Publication number
- JP5996110B2 JP5996110B2 JP2015521256A JP2015521256A JP5996110B2 JP 5996110 B2 JP5996110 B2 JP 5996110B2 JP 2015521256 A JP2015521256 A JP 2015521256A JP 2015521256 A JP2015521256 A JP 2015521256A JP 5996110 B2 JP5996110 B2 JP 5996110B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- cpu core
- alternative
- program
- execution
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
Description
そして、特許文献1では、1つのドメインに異常が発生した場合に、異常が発生したドメインの処理を他のドメインで引継ぎ、異常が発生したドメインが再起動され、再起動されたドメインの処理が回復する。
また、特許文献2では、共有メモリを用いることでオーバヘッドが少なく迅速に処理をドメイン間で引き継ぐことができる方法が示されている。
しかし、AMPにより定常的に複数のOSをマルチコア上で並列に動作させると、各OSがそれぞれメモリを消費し効率が悪く、スループットが低下するという課題がある。
一方で、複数のCPUコアに処理を分散させる対称型マルチプロセッサ(SMP:Symmetric Multiprocessor)では、使用可能なCPUコア数が多いほど、スループットが向上する。
複数のCPU(Central Processing Unit)を有する計算機システムであって、
前記複数のCPUがOS(Operating System)及び前記OS上で動作するプログラムの実行を分担している際に、
前記複数のCPUのうちの特定のCPUが、
前記OS及び前記プログラムの実行の分担を停止し、前記OSを代替する代替OSを起動し、前記プログラムが動作するOSを前記OSから前記代替OSに切り替え、
前記特定のCPU以外のCPUである他のCPUが、
前記プログラムが動作するOSが前記代替OSに切り替わった後に、前記OSの実行を終了することを特徴とする。
更に、例えばOSに関連する障害が発生した場合に、特定のCPUがOS及びプログラムの分担を停止し、代替OSを起動し、プログラムが動作するOSを代替OSに切り替える。
このため、OSに関連する障害が発生した場合にも、プログラムを代替OSで継続して実行することができる。
本実施の形態では、平時は対称型マルチプロセッサ(SMP)で動作し、障害が発生した際に、一時的に非対称型マルチプロセッサ(AMP)で動作してOSの切り替えを行い、OSの切り替え後はSMPに戻る計算機システムを説明する。
マルチコアプロセッサ100は、CPUコア(1)101及びCPUコア(2)102を有する。
バス110は、マルチコアプロセッサ100、RAM111、ROM112、IO装置113を接続する。
RAM111は、バス110に接続される揮発性メモリである。
ROM112は、バス110に接続される不揮発性メモリである。
IO装置113は、バス110に接続され、後述するOS(1)201及びOS(2)211によりアクセスされる。
また、OS(1)201は、スケジューラ202及び不安定検知部203を有する。
ブートローダ200は、マルチコアプロセッサ100の起動時に、CPUコア(1)101或いはCPUコア(2)102によってROM112から読み出され、ハードウェアの初期化処理を行い、ROM112内の後述するOS実行イメージ302をバス110を介してRAM111に展開して実行する。
OS(1)201は、マルチコアプロセッサ100で動作するオペレーティングシステムである。
プログラム(A)204及びプログラム(B)205は、OS(1)201上で動作するアプリケーションプログラムである。
スケジューラ202は、OS(1)201で動作するプログラムをCPUコア(1)101或いはCPUコア(2)102に割り当てて、実行させる機能を持つ。
不安定検知部203は、OS(1)201で動作するプログラムがメモリリークや、指定範囲外のアドレスに対するアクセスを行った時に、OS(1)201に対して異常を通知する機能を持つ。
OS(2)211は、マルチコアプロセッサ100においてOS(1)201とは別個に動作する。
OS(2)211の内部構成もOS(1)201と同様であり、スケジューラ212と不安定検知部213が含まれる。
スケジューラ212は、スケジューラ202と同様であり、不安定検知部213は不安定検知部203と同様である。
CPUコア(1)101及びCPUコア(2)102は、互いに割り込み信号を発生させる、CPU間割込み機構を有する。
OS(1)201及びOS(2)211は、マルチコアプロセッサ100においてSMP対応のOSとして動作する。
また、SMPのみでなく、CPUコア(1)101が単独でOS(1)201を実行する場合もあり、また、CPUコア(2)102が単独でOS(1)201を実行する場合もある。
同様に、CPUコア(1)101が単独でOS(2)211を実行する場合もあり、また、CPUコア(2)102が単独でOS(2)211を実行する場合もある。
つまり、CPUコア(2)102がOS(1)201の実行の分担を停止し、CPUコア(2)102が再稼動し、再稼動したCPUコア(2)102がOS(2)211を起動する。
本実施の形態では、OS(2)211はOS(1)201を代替するOSであり、代替OSの例に相当する。
そして、CPUコア(2)102がOS(2)211を起動した後に、CPUコア(1)101がOS(1)201の実行を終了し、CPUコア(1)101が再稼動する。
CPUコア(1)101が再稼動した後は、CPUコア(1)101とCPUコア(2)102がSMPによりOS(2)211を実行する。
なお、CPUコア(2)102の再稼動とは、ブートローダ200を起動し、CPUコア(2)102用に確保されていたRAM111内の領域のデータを初期化し、CPUコア(2)102内のレジスタのデータを初期化することである。
同様に、CPUコア(1)101の再稼動とは、ブートローダ200を起動し、CPUコア(1)101用に確保されていたRAM111内の領域のデータを初期化し、CPUコア(1)101内のレジスタのデータを初期化することである。
OS実行イメージ302は、OSの実行イメージである。
図1及び図6では、OS実行イメージ302がマルチコアプロセッサ100により実行されている状態が、OS(1)201又はOS(2)211として表現されている。
アプリケーションイメージ303は、アプリケーションプログラムの実行イメージを示す。
図1及び図6では、アプリケーションイメージ303がマルチコアプロセッサ100により実行されている状態が、プログラム(A)204及びプログラム(B)205として表現されている。
スナップショットイメージ(1)304は、OS(1)201においてOS(1)201及びデバイスドライバの初期化完了時のワークメモリの内容をデータとして保存したスナップショットイメージである。
スナップショットイメージ(2)305は、OS(2)211においてOS(2)211及びデバイスドライバの初期化完了時のワークメモリの内容をデータとして保存したスナップショットイメージである。
OS(2)実行領域312は、OS(2)211がマルチコアプロセッサ100により実行される際に、OS実行イメージ302がロードされる物理メモリ領域である。
共有メモリ領域313は、OS(1)201とOS(2)211が同時に動作した際にCPUコア(1)101とCPUコア(2)102によりアクセスされる物理メモリ領域である。
OS(1)専用領域321は、OS(1)201のみ(つまり、OS(1)201を実行しているCPUコアのみ)が書き込みできる物理メモリ領域である。
OS(2)専用領域322は、OS(2)211のみ(つまり、OS(2)211を実行しているCPUコアのみ)が書き込みできる物理メモリ領域である。
起動フラグ331では、OS(2)211をSMPにより実行するための起動モード(定常起動モード)、または、OS(2)211をCPUコア(2)102のみで実行するための起動モード(分離OS起動モード)が示される。
OS起動許可フラグ333は、OS(2)211によるIO装置113へのアクセス(以下、IO装置113へのアクセスをIOアクセスともいう)の許否を通知するためのフラグである。
プロセス移行フラグ334は、OS(1)201で処理されていたプロセスのコンテキスト情報の保存が完了したことを通知するためのフラグである。
CPU待機フラグ335は、CPUコア(1)101の再稼動によってCPUコア(1)101の初期化が完了し、CPUコア(1)101が処理待ち状態(アイドル)になっていることを通知するためのフラグである。
再稼動動作フラグ336は、CPUコア(1)101に、再稼動時にOSを起動するか、処理待ち状態(アイドル)で待機するかを指示するフラグである。
準備完了フラグ332は、CPUコア(2)102がIOアクセスを伴わないOS(2)211の起動を完了したことを通知するフラグである。
また、OS(1)201からOS(2)211への通知並びにCPUコア(1)101からCPUコア(2)102への通知はOS(1)専用領域321が用いられ、OS(2)211からOS(1)201への通知並びに、CPUコア(2)102からCPUコア(1)101への通知はOS(2)専用領域322が用いられる。
このとき、プログラム(B)205の動作が不安定となり、プログラム(B)205の不安定な動作がシステム全体に影響を与えることを不安定検知部203が検知すると、CPUコア(1)101は、スケジューラ202を実行し、CPUコア(2)102をOS(1)201から切り離すために、CPUコア(2)102への処理割り当てを停止する。
つまり、CPUコア(2)102は、OS(1)201及びプログラム(A)204の実行の分担を停止する。
これにより、CPUコア(1)101のみがOS(1)201を実行し、OS(1)201上で動作するプログラム(A)204及びプログラム(B)205も必然的にCPUコア(1)101のみが実行する(図5)。
この通知は、CPUコア(1)101が起動フラグ331(図3)に「分離OS起動モード」を表す値を設定することにより行われる。
また、CPUコア(1)101はCPUコア(2)102の再稼動を要求する。
この要求は、CPUコア(1)101からCPUコア(2)102へのCPU間割込み或いは、CPUコア(1)101のレジスタ操作によるCPUコア(2)102のリセットにより行われる。
CPUコア(2)102は、ブートローダ200を起動し、初期化処理を行い、OS実行イメージ302(図2)をROM112から読み出し、OS(2)211を起動する(図6)。
なお、この時、CPUコア(1)101が実行中のOS(1)201の動作を阻害しないように、CPUコア(2)102は、IO装置113へのアクセスを伴わないOS初期化処理(第1の初期化処理に相当)を行う。
このOS初期化処理は、予めROM112に保存しておいたスナップショットイメージ(2)305をRAM111に展開してOS及びデバイスドライバの初期化を短縮化する起動手法を用いてもよい。
OS(2)211についてIO装置113へのアクセスを伴わないOS初期化処理を完了すると、CPUコア(2)102は、起動フラグ331の値を読み、「分離OS起動モード」を表す値が設定されていることを検知する。
そして、CPUコア(2)102は、CPUコア(1)101に、OS(2)211が動作可能であることを通知する。
この通知は、所定の値を準備完了フラグ332に設定することにより行われる。
次に、CPUコア(1)101は、動作不安定となったプログラム(B)205の終了処理を行う。
また、CPUコア(1)101は、プログラム(A)204の実行主体をOS(2)211へ切り替えるために、プログラム(A)204のコンテキスト情報をOS(1)専用領域321に格納する。
また、CPUコア(1)101は、コンテキスト情報の格納が完了したことを表す値をプロセス移行フラグ334に設定する。
更に、CPUコア(1)101は、OS(2)211からIO装置113にアクセス可能であることをCPUコア(2)102に通知する。
この通知は、所定の値をOS起動許可フラグ333に設定することにより行われる。
CPUコア(2)102は、OS起動許可フラグ333の値を読み、OS(2)211によるIO装置113へのアクセスが許可されていることを検知し、IO装置113のアクセスを伴うOS初期化処理(第2の処理化処理に相当)を行う。
また、CPUコア(2)102は、プロセス移行フラグ334の値に基づき、プログラム(A)204のコンテキスト情報を読み出し、プログラム(A)204のOS(2)211での動作の再開を行う。
また、CPUコア(2)102は、プログラム(B)205を新たにOS(2)211上で実行する。
そして、CPUコア(1)101は、OS(1)201の実行を終了し、再稼動を行う。
また、CPUコア(1)101は、CPU待機フラグ335に値を設定したことを、CPU間割込みでCPUコア(2)102に対して通知し、CPUコア(1)101はアイドル状態で待機する。
プログラム(A)204の動作再開後、CPUコア(2)102が、CPU待機フラグ335を読み、CPUコア(1)101がアイドル状態であることを検知すると、OS(2)211のスケジューラ212がCPUコア(1)101への処理割り当てを開始する。
この結果、OS(2)211は、SMP対応OSとして、CPUコア(1)101及びCPUコア(2)102によって実行される(図7)。
例えばプログラム(B)205の動作が不安定であることを判断すると(S402でYES)、CPUコア(1)101は、スケジューラ202を実行し、動作が不安定なプログラム(B)205をスケジューラ202の待ち行列から外す等の処理で不安定動作のプログラム(B)205の実行を停止する(S403)。
その後、CPUコア(1)101は、スケジューラ202の実行により、CPUコア(2)102に対してプログラムの割り当てを中止する(S404)。
更に、CPUコア(1)101は、スケジューラ202の実行により、CPUコア(2)102に既に割り当てられていた処理が終了したことを確認し(S405)、CPUコア(2)102がアイドル状態となったことを確認する(S406)。
CPUコア(2)102がアイドル状態となった後、CPUコア(1)101は、スケジューラ202の実行により、CPUコア(2)102を処理の割り当て対象から外す(S407)。
次に、CPUコア(1)101は、MMU(Memory Management Unit)等を操作して、OS(1)201が管理しているRAM111の領域をOS(2)211用に解放する(S408)。
次に、CPUコア(1)101は、起動フラグ331(図3)に、「分離OS起動モード」を表す値を設定する(S409)。
次に、CPUコア(1)101は、CPUコア(2)102へCPU間割込みやリセットによってCPUコア(2)102の再稼動を要求する(S410)。
そして、OS(2)211の起動準備が完了したことを検知した場合(S411でYES)に、CPUコア(1)101は、スケジューラ202を実行して、正常に動作しているプログラム(A)204の動作を停止する(S412)。
また、CPUコア(1)101は、OS(1)201からIO装置113へのIOアクセスが発生しないように制御し、OS起動許可フラグ333(図3)に、OS(2)211によるIOアクセスの許可を通知する値を設定する(S413)。
これにより、CPUコア(2)102は、IOアクセスを伴うOS(2)211のOS初期化処理を実行することができる。
また、CPUコア(1)101は、OS(1)201で動作していた正常なプログラム(A)204のコンテキスト情報をOS(1)専用領域321へ書き出す(S414)。
更に、CPUコア(1)101は、S414で書き出したコンテキスト情報の利用許可を通知する値をプロセス移行フラグ334に設定する(S415)。
次に、CPUコア(1)101は、再稼動後にアイドル状態で待機するために、再稼動動作フラグ336(図3)に、「アイドル待機モード」を表す値を設定する(S416)。
そして、CPUコア(1)101は、OS(1)201の実行を終了し、再稼動を行う(S417)。
再稼動後に、CPUコア(1)101は、再稼動動作フラグ336の値を読み(S418)、再稼動動作フラグ336の値が「アイドル待機モード」なので、CPUコア(1)101が処理待ち状態(アイドル)であることを通知する値をCPU待機フラグ335(図3)に設定する(S419)。
そして、CPUコア(1)101はアイドル状態の無限待ちとなる(S420)。
一方で、S418において、再稼動動作フラグ336の値が「定常起動モード」であれば、SMP用OSとして、OS(1)201を通常通りに起動する(S421)。
また、CPUコア(2)102は、所定の初期化処理も行う。
次に、CPUコア(2)102は、RAM111のOS(2)実行領域312に、ROM112内のOS実行イメージ302をロードする(S502)。
次に、CPUコア(2)102は、OS(2)211の初期化処理を開始する(S503)。
S503では、CPUコア(2)102は、IOアクセスを伴わない初期化のみを行う。
次に、CPUコア(2)102は、ROM112内のスナップショットイメージ(2)305を用いて、システムの初期化状態を復帰させる(S504)。
次に、CPUコア(2)102は、起動フラグ331の値を確認し(S505)、起動フラグ331の値が「定常起動モード」を表す値であれば、SMP用OSとしてOS(2)211を通常通りに起動する(S506)。
一方、起動フラグ331の値が「分離OS起動モード」を表す値であれば、CPUコア(2)102は、IOアクセスを伴わないOS(2)211の起動を完了したことを通知する値を準備完了フラグ332に設定する(S507)。
また、CPUコア(2)102は、CPUコア(1)101によりOS起動許可フラグ333(図3)が設定されるのを待つ(S508)。
OS起動許可フラグ333の値が、IOアクセスの許可を通知する値になると(S508で「起動指示あり」)、CPUコア(2)102は、IOアクセスを伴うOS(2)211の初期化処理を行う(S509)。
また、CPUコア(2)102は、プロセス移行フラグ334(図3)を監視し(S511)、プロセス移行フラグ334の値が有効になると、OS(1)201で正常に動作していたプログラム(A)204のコンテキスト情報をOS(1)専用領域321から読み出し、プログラム(A)204の動作をOS(2)211で再開させる(S512)。
次に、CPUコア(2)102は、CPU待機フラグ335を参照して、CPUコア(1)101がアイドル状態であるか否かを確認する(S513)。
CPUコア(1)101がアイドル状態である場合(S513でYES)は、CPUコア(2)102は、CPUコア(1)101をスケジューラ212の管理下に組込み(S514)、OS(2)211をSMP用OSとして動作させる。
また、CPUコア(2)102は、OS(1)201が使用していたOS(1)実行領域311をOS(2)211用に新たに確保し、OS(2)211の管理下に加える(S515)。
以上の説明では、OS(1)201上のプログラムで不安定動作が発生した際にOS(2)211を用いて安定状態へ復帰する手順を示した。
OS(2)211上のプログラムに不安定動作が発生した場合も同様に、OS(1)201を用いて安定状態へと復帰することができる。
また、以上では、マルチコアプロセッサ100を構成するCPUコアが2個の例を説明した。
なお、CPUコアが3個以上のコアの場合でも、同様に一部のCPUコアを切り離して、安定状態への復帰が可能である。
また、以上では、複数のCPUコアが含まれるマルチコアプロセッサ100の計算機システムを説明したが、複数のプロセッサ(CPU)で構成される計算機システムにも、本実施の形態を適用することができる。
また、本実施の形態に示した手順により、本発明に係る制御方法を実現することができる。
マルチコアプロセッサにおいて動作中のCPUコアを途中で分離し、
分離したCPUコアで新たにOSを動作させ、
すでに動作していたOSでの処理を新たに動作させたOSで引き継がせることにより
システムの安定化を行う高可用性計算機方式を説明した。
新たに動作するOSが、
動作していたOSで使用していたCPUコアを統合して処理を継続する高可用性計算機方式を説明した。
OSの使用するメモリを動的に変更する高可用性計算機方式を説明した。
Claims (6)
- 複数のCPU(Central Processing Unit)を有する計算機システムであって、
前記複数のCPUがOS(Operating System)及び前記OS上で動作するプログラムの実行を分担している際に、
前記複数のCPUのうちの特定のCPUが、
前記OS及び前記プログラムの実行の分担を停止し、前記OSを代替する代替OSを起動し、前記プログラムが動作するOSを前記OSから前記代替OSに切り替え、
前記特定のCPU以外のCPUである他のCPUが、
前記プログラムが動作するOSが前記代替OSに切り替わった後に、前記OSの実行を終了することを特徴とする計算機システム。 - 前記他のCPUは、
前記OSの実行を終了した後に、前記特定のCPUと、前記代替OS及び前記代替OS上で動作するプログラムの実行を分担することを特徴とする請求項1に記載の計算機システム。 - 前記複数のCPUが前記OS及び前記OS上で動作するプログラムの実行を分担している際に、前記OSに関連した障害が検知された場合に、
前記特定のCPUが、
前記OS及び前記プログラムの実行の分担を停止し、前記特定のCPUを再稼動し、前記代替OSを起動し、前記プログラムが動作するOSを前記OSから前記代替OSに切り替え、
前記他のCPUが、
前記プログラムが動作するOSが前記代替OSに切り替わった後に、前記OSの実行を終了し、前記他のCPUを再稼動することを特徴とする請求項1又は2に記載の計算機システム。 - 前記計算機システムは、
前記OS及び前記代替OSによりアクセスされるデバイスに接続されており、
前記特定のCPUは、
前記代替OSによる前記デバイスへのアクセスが発生しない前記代替OSの第1の初期化処理を行い、前記第1の初期化処理を行ったことを前記他のCPUに通知し、前記代替OSによる前記デバイスへのアクセスが許可されたことが前記他のCPUから通知された場合に、前記代替OSによる前記デバイスへのアクセスが発生する前記代替OSの第2の初期化処理を行って、前記代替OSを起動し、
前記他のCPUは、
前記第1の初期化処理が行われたことが前記特定のCPUから通知された場合に、前記OSによる前記デバイスへのアクセスを禁止し、前記代替OSによる前記デバイスへのアクセスを許可することを前記特定のCPUに通知することを特徴とする請求項1〜3のいずれかに記載の計算機システム。 - 前記計算機システムは、更に、
前記複数のCPUが共有する共有メモリを有し、
前記特定のCPUは、
前記第2の初期化処理を行った場合に、前記第2の初期化処理を行ったことを前記他のCPUに通知し、前記プログラムのコンテキスト情報が前記共有メモリに格納されたことが前記他のCPUから通知された場合に、前記プログラムが動作するOSを前記OSから前記代替OSに切り替え、前記共有メモリに格納された前記コンテキスト情報を用いて前記代替OS上で前記プログラムを実行し、
前記他のCPUは、
前記第2の初期化処理が行われたことが前記特定のCPUから通知された場合に、前記プログラムのコンテキスト情報を前記共有メモリに格納し、前記コンテキスト情報を前記共有メモリに格納したことを前記特定のCPUに通知することを特徴とする請求項4に記載の計算機システム。 - 複数のCPU(Central Processing Unit)を有する計算機システムで行われる制御方法であって、
前記複数のCPUがOS(Operating System)及び前記OS上で動作するプログラムの実行を分担している際に、
前記複数のCPUのうちの特定のCPUが、
前記OS及び前記プログラムの実行の分担を停止し、前記OSを代替する代替OSを起動し、前記プログラムが動作するOSを前記OSから前記代替OSに切り替え、
前記特定のCPU以外のCPUである他のCPUが、
前記プログラムが動作するOSが前記代替OSに切り替わった後に、前記OSの実行を終了することを特徴とする制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/065884 WO2014196083A1 (ja) | 2013-06-07 | 2013-06-07 | 計算機システム及び制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5996110B2 true JP5996110B2 (ja) | 2016-09-21 |
JPWO2014196083A1 JPWO2014196083A1 (ja) | 2017-02-23 |
Family
ID=52007754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015521256A Active JP5996110B2 (ja) | 2013-06-07 | 2013-06-07 | 計算機システム及び制御方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9880888B2 (ja) |
JP (1) | JP5996110B2 (ja) |
CN (1) | CN105247491B (ja) |
DE (1) | DE112013007143T5 (ja) |
WO (1) | WO2014196083A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103608792B (zh) * | 2013-05-28 | 2016-03-09 | 华为技术有限公司 | 支持多核架构下资源隔离的方法及系统 |
US9678903B1 (en) | 2014-10-15 | 2017-06-13 | Intel Corporation | Systems and methods for managing inter-CPU interrupts between multiple CPUs |
US11531607B2 (en) * | 2019-12-10 | 2022-12-20 | Cisco Technology, Inc. | Fault isolation and recovery of CPU cores for failed secondary asymmetric multiprocessing instance |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272755A (ja) * | 1995-03-29 | 1996-10-18 | Fujitsu Ltd | プロセッサ切替え装置 |
JP2006172100A (ja) * | 2004-12-15 | 2006-06-29 | Hitachi Ltd | オペレーティングシステムの高速切替え方式及びその方法 |
JP2008077388A (ja) * | 2006-09-21 | 2008-04-03 | Nec Corp | マルチプロセッサ制御システム、方法、およびプログラム |
JP2008510238A (ja) * | 2004-08-18 | 2008-04-03 | ジャルナ エスアー | オペレーティングシステム |
WO2008044423A1 (fr) * | 2006-10-13 | 2008-04-17 | Nec Corporation | Processeur d'informations et procédé de couverture de panne |
JP2008123439A (ja) * | 2006-11-15 | 2008-05-29 | Denso Corp | オペレーティング・システム、プログラム及び移動体操縦支援装置 |
JP2011043892A (ja) * | 2009-08-19 | 2011-03-03 | Nec Corp | マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1467282B1 (en) * | 2003-04-09 | 2008-10-01 | Jaluna SA | Operating systems |
US7251746B2 (en) * | 2004-01-21 | 2007-07-31 | International Business Machines Corporation | Autonomous fail-over to hot-spare processor using SMI |
US20080091974A1 (en) | 2006-10-11 | 2008-04-17 | Denso Corporation | Device for controlling a multi-core CPU for mobile body, and operating system for the same |
JP2008123357A (ja) | 2006-11-14 | 2008-05-29 | Honda Motor Co Ltd | 並列計算機システム、並列計算方法および並列計算機用プログラム |
JP5131269B2 (ja) * | 2007-03-20 | 2013-01-30 | 富士通株式会社 | マルチプロセッシングシステム |
JP2010020621A (ja) * | 2008-07-11 | 2010-01-28 | Toyota Infotechnology Center Co Ltd | プログラム修復システムおよび方法 |
US20130007729A1 (en) * | 2008-07-14 | 2013-01-03 | Alexander Sirotkin | Method and System for virtualization assisted remote access system designed For e-Support |
JP5035299B2 (ja) | 2009-06-15 | 2012-09-26 | 株式会社日立製作所 | マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム |
CN101782861A (zh) * | 2009-12-24 | 2010-07-21 | 华为终端有限公司 | 在嵌入式系统中操作系统的管理方法及装置 |
JP5644380B2 (ja) | 2010-11-04 | 2014-12-24 | トヨタ自動車株式会社 | 情報処理装置 |
-
2013
- 2013-06-07 CN CN201380076847.1A patent/CN105247491B/zh active Active
- 2013-06-07 JP JP2015521256A patent/JP5996110B2/ja active Active
- 2013-06-07 DE DE112013007143.6T patent/DE112013007143T5/de active Pending
- 2013-06-07 US US14/782,819 patent/US9880888B2/en active Active
- 2013-06-07 WO PCT/JP2013/065884 patent/WO2014196083A1/ja active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272755A (ja) * | 1995-03-29 | 1996-10-18 | Fujitsu Ltd | プロセッサ切替え装置 |
JP2008510238A (ja) * | 2004-08-18 | 2008-04-03 | ジャルナ エスアー | オペレーティングシステム |
JP2006172100A (ja) * | 2004-12-15 | 2006-06-29 | Hitachi Ltd | オペレーティングシステムの高速切替え方式及びその方法 |
JP2008077388A (ja) * | 2006-09-21 | 2008-04-03 | Nec Corp | マルチプロセッサ制御システム、方法、およびプログラム |
WO2008044423A1 (fr) * | 2006-10-13 | 2008-04-17 | Nec Corporation | Processeur d'informations et procédé de couverture de panne |
JP2008123439A (ja) * | 2006-11-15 | 2008-05-29 | Denso Corp | オペレーティング・システム、プログラム及び移動体操縦支援装置 |
JP2011043892A (ja) * | 2009-08-19 | 2011-03-03 | Nec Corp | マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ |
Also Published As
Publication number | Publication date |
---|---|
DE112013007143T5 (de) | 2016-02-18 |
US20160041850A1 (en) | 2016-02-11 |
CN105247491B (zh) | 2019-03-12 |
US9880888B2 (en) | 2018-01-30 |
JPWO2014196083A1 (ja) | 2017-02-23 |
WO2014196083A1 (ja) | 2014-12-11 |
CN105247491A (zh) | 2016-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6089349B2 (ja) | マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム | |
JP5212360B2 (ja) | 制御プログラム、制御システムおよび制御方法 | |
US10671426B2 (en) | Data processing | |
US9639486B2 (en) | Method of controlling virtualization software on a multicore processor | |
JP2016508647A5 (ja) | ||
JP6165964B2 (ja) | 計算機 | |
US20130254446A1 (en) | Memory Management Method and Device for Distributed Computer System | |
JP2013225208A (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP5996110B2 (ja) | 計算機システム及び制御方法 | |
US9910677B2 (en) | Operating environment switching between a primary and a secondary operating system | |
JP5035227B2 (ja) | 情報処理装置、プログラムの起動制御方法、及び起動制御プログラム | |
WO2011104812A1 (ja) | マルチコアプロセッサシステム、割込プログラム、および割込方法 | |
JP5557612B2 (ja) | 計算機及び転送プログラム | |
JPWO2008114415A1 (ja) | マルチプロセッシングシステム | |
US9448871B2 (en) | Information processing device and method for selecting processor for memory dump processing | |
WO2013136457A1 (ja) | 仮想計算機システム、情報保存処理プログラム及び情報保存処理方法 | |
WO2016017219A1 (ja) | データ処理システム及びデータ処理方法及びプログラム | |
JP5867630B2 (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム | |
JP5699665B2 (ja) | サーバ装置、処理実行方法およびプログラム | |
JP6007532B2 (ja) | 仮想化システム、仮想化サーバ、マイグレーション方法、マイグレーションプログラム | |
JP4730386B2 (ja) | 仮想計算機装置、計算資源活用方法、および、プログラム | |
RU2589853C1 (ru) | Способ обеспечения совместной работы нескольких гипервизоров в компьютерной системе | |
JP5582241B2 (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム | |
JP2011180840A (ja) | プロセッサ、マルチプロセッサシステム、及びメモリアクセス不正検出方法 | |
JP2013130999A (ja) | マルチコアプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160726 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160823 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5996110 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |