JPWO2014118940A1 - 計算機装置及び計算機装置の制御方法 - Google Patents
計算機装置及び計算機装置の制御方法 Download PDFInfo
- Publication number
- JPWO2014118940A1 JPWO2014118940A1 JP2014559432A JP2014559432A JPWO2014118940A1 JP WO2014118940 A1 JPWO2014118940 A1 JP WO2014118940A1 JP 2014559432 A JP2014559432 A JP 2014559432A JP 2014559432 A JP2014559432 A JP 2014559432A JP WO2014118940 A1 JPWO2014118940 A1 JP WO2014118940A1
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- initialization procedure
- ras
- cpu
- detection mechanism
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 201
- 238000001514 detection method Methods 0.000 claims abstract description 74
- 230000007246 mechanism Effects 0.000 claims abstract description 62
- 238000012545 processing Methods 0.000 claims description 68
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
計算機装置(100)の起動時に、CPU(101)が、RASモジュール(130)に含まれる第1の初期化手順(132)を実行して、RASモジュール(130)が用いる資源を初期化し、第1の初期化手順(132)の実行後に、OS(110)に含まれる初期化手順(111)を実行して、OS(110)が用いる資源を初期化し、初期化手順(111)の実行後に、RASモジュール(130)に含まれる第2の初期化手順(133)を実行して、OS(110)に含まれる割込み判定部(112)をRASモジュール(130)にコピーし、割込み検知機構(102)が割込みを検知した際にOS(110)の割込み判定部(112)ではなくRASモジュール(130)にコピーされた割込み判定部(134)を呼び出すように割込み検知機構(102)を設定する。
Description
本発明は、OS(Operating System)が実装されている計算機装置に、OSのモジュールの修正なしに、CPU(Central Processing Unit)例外に対処する異常対処機能(=RAS機能(RAS:Reliability, Availability, Serviceability)を実現するプログラムであるRASモジュールを追加する技術に関する。
また、OSとともにHypervisorが実装されている計算機装置に、OS及びHypervisorのモジュールの修正なしに、RASモジュールを追加する技術に関する。
また、OSとともにHypervisorが実装されている計算機装置に、OS及びHypervisorのモジュールの修正なしに、RASモジュールを追加する技術に関する。
なお、Hypervisorは、計算機装置の仮想化を実現するソフトウェアである。
Hypervisorは、OSと計算機ハードウェアの間に位置し、計算機装置の動作をエミュレートするソフトウェアであり、1つの計算機装置上で複数のOSを同時に動作させ、複数のOS間での通信や資源共有の仲介などを行う。
また、CPU例外は、CPUが通常の処理を続行できない状態になった場合(例えばゼロ除算など)の例外である。
CPU例外発生時には、前もって設定しておいた別のプログラムを呼び出すことができる仕組みとなっている。
なお、本明細書では、CPU例外と、CPU例外以外の割込みの双方を「割込み」と呼ぶ。
また、「割込み」のうち、CPU例外以外の割込みは「標準割込み」と呼び、CPU例外とは区別する。
Hypervisorは、OSと計算機ハードウェアの間に位置し、計算機装置の動作をエミュレートするソフトウェアであり、1つの計算機装置上で複数のOSを同時に動作させ、複数のOS間での通信や資源共有の仲介などを行う。
また、CPU例外は、CPUが通常の処理を続行できない状態になった場合(例えばゼロ除算など)の例外である。
CPU例外発生時には、前もって設定しておいた別のプログラムを呼び出すことができる仕組みとなっている。
なお、本明細書では、CPU例外と、CPU例外以外の割込みの双方を「割込み」と呼ぶ。
また、「割込み」のうち、CPU例外以外の割込みは「標準割込み」と呼び、CPU例外とは区別する。
従来技術では、OS(一つまたは複数存在してもよい)やHypervisor(Hypervisorはない構成でもよい)が、それぞれ独立したモジュール構成で動作している計算機装置において、CPU例外に対応したRAS機能を実現する場合、OSやHypervisorにCPU例外に対応する処理を追加するなどの方法で実現していた。
例えば、特許文献1では、本体系障害(=本明細書におけるCPU例外にあたる)に遭遇した仮想計算機で実行状態にあったプロセスの障害情報を障害情報格納領域から取り出す手段をVMモニタ(=本明細書におけるHypervisorにあたる)に設けた構成が開示されている。
また、例えば、特許文献2では、Hypervisorによって複数のOSを動作させる仮想計算機において例外を解決する技術が開示されている。
具体的には、例外発生時にOSが実行していた処理部分のメモリイメージをHypervisor側にコピーし、Hypervisorが、例外発生時にOSが実行していた処理のうちの特権命令をエミュレートすることで例外を解決する技術が開示されている。
例えば、特許文献1では、本体系障害(=本明細書におけるCPU例外にあたる)に遭遇した仮想計算機で実行状態にあったプロセスの障害情報を障害情報格納領域から取り出す手段をVMモニタ(=本明細書におけるHypervisorにあたる)に設けた構成が開示されている。
また、例えば、特許文献2では、Hypervisorによって複数のOSを動作させる仮想計算機において例外を解決する技術が開示されている。
具体的には、例外発生時にOSが実行していた処理部分のメモリイメージをHypervisor側にコピーし、Hypervisorが、例外発生時にOSが実行していた処理のうちの特権命令をエミュレートすることで例外を解決する技術が開示されている。
従来、OS(一つまたは複数存在してもよい)とHypervisor(Hypervisorは存在しなくてもよい)が独立したモジュールで構成されている計算機システムに、そのOSの例外処理に対応したRAS機能を追加する場合は、そのOSやHypervisorやCPUが持つ割込み検知機構に対して、修正・変更を加える必要があった。
例えば、特許文献1及び特許文献2の技術においても、Hypervisor側にCPU例外に対応する機能を予め持たせてRAS機能を実現している。
このため、OSやHypervisorのモジュールに修正を加えることが困難な場合(技術上の難易度が高くコストがかかる場合や、ライセンス上修正が加えられない場合や、品質保持の観点から修正を行いたくない場合なども含む)は、RAS機能を追加することが困難であるという課題がある。
例えば、特許文献1及び特許文献2の技術においても、Hypervisor側にCPU例外に対応する機能を予め持たせてRAS機能を実現している。
このため、OSやHypervisorのモジュールに修正を加えることが困難な場合(技術上の難易度が高くコストがかかる場合や、ライセンス上修正が加えられない場合や、品質保持の観点から修正を行いたくない場合なども含む)は、RAS機能を追加することが困難であるという課題がある。
この発明は、上記のような課題を解決することを主な目的とする。
つまり、この発明は、OSへの修正なしに、計算機装置にRASモジュールを追加でき、適切にRAS機能が実現されるようにすることを主な目的とする。
つまり、この発明は、OSへの修正なしに、計算機装置にRASモジュールを追加でき、適切にRAS機能が実現されるようにすることを主な目的とする。
本発明に係る計算機装置は、
割込みを検知する割込み検知機構が含まれるCPU(Central Processing Unit)と、
前記割込み検知機構が割り込みを検知した際に前記割込み検知機構により呼び出され、前記割込み検知機構が検知した割り込みがCPU例外であるか否かが判定される割込み判定部が含まれるOS(Operating System)とを備える計算機装置であって、
前記計算機装置に、CPU例外に対する処理を行うプログラムであるRAS(Reliability Availability Serviceability)モジュールが追加された場合に、
前記CPUが、
前記計算機装置の起動時に、前記RASモジュールに含まれる第1の初期化手順を呼び出し、前記第1の初期化手順を実行して、前記RASモジュールが用いる資源を初期化し、
前記RASモジュールの前記第1の初期化手順の実行後に、前記OSに含まれる初期化手順を呼び出し、前記初期化手順を実行して、前記OSが用いる資源を初期化し、
前記OSの前記初期化手順の実行後に、前記RASモジュールに含まれる第2の初期化手順を呼び出し、前記第2の初期化手順を実行して、前記OSに含まれる前記割込み判定部を前記RASモジュールにコピーし、前記割込み検知機構が割込みを検知した際に前記OSの割込み判定部ではなく前記RASモジュールにコピーされた割込み判定部を呼び出すように前記割込み検知機構を設定することを特徴とする。
割込みを検知する割込み検知機構が含まれるCPU(Central Processing Unit)と、
前記割込み検知機構が割り込みを検知した際に前記割込み検知機構により呼び出され、前記割込み検知機構が検知した割り込みがCPU例外であるか否かが判定される割込み判定部が含まれるOS(Operating System)とを備える計算機装置であって、
前記計算機装置に、CPU例外に対する処理を行うプログラムであるRAS(Reliability Availability Serviceability)モジュールが追加された場合に、
前記CPUが、
前記計算機装置の起動時に、前記RASモジュールに含まれる第1の初期化手順を呼び出し、前記第1の初期化手順を実行して、前記RASモジュールが用いる資源を初期化し、
前記RASモジュールの前記第1の初期化手順の実行後に、前記OSに含まれる初期化手順を呼び出し、前記初期化手順を実行して、前記OSが用いる資源を初期化し、
前記OSの前記初期化手順の実行後に、前記RASモジュールに含まれる第2の初期化手順を呼び出し、前記第2の初期化手順を実行して、前記OSに含まれる前記割込み判定部を前記RASモジュールにコピーし、前記割込み検知機構が割込みを検知した際に前記OSの割込み判定部ではなく前記RASモジュールにコピーされた割込み判定部を呼び出すように前記割込み検知機構を設定することを特徴とする。
本発明によれば、計算機装置に実装されているOSへの修正なしに、RASモジュールを計算機装置に追加することができ、また、CPUの割込み検知機構が割込みを検知した場合に適切にRASモジュールが呼び出されて、RAS機能が実現される。
以下の実施の形態1〜3では、1つまたは複数のOSやHypervisorが動作する計算機装置を説明する。
より具体的には、OSやHypervisorのモジュールの修正なしに、CPU例外に対処するRASモジュールを追加でき、また、CPU例外が発生した際に、適切にRASモジュールが呼び出され、RASモジュールによってCPU例外に対する処理が実施される計算機装置及び計算機装置の制御方法を説明する。
より具体的には、OSやHypervisorのモジュールの修正なしに、CPU例外に対処するRASモジュールを追加でき、また、CPU例外が発生した際に、適切にRASモジュールが呼び出され、RASモジュールによってCPU例外に対する処理が実施される計算機装置及び計算機装置の制御方法を説明する。
また、実施の形態1〜3では、CPU例外の発生に重ねて、OSやHypervisorに障害が発生した場合でも、RAS機能が実行される計算機装置を説明する。
OSやHypervisor自身がRAS機能を実現するように構成されている場合は、CPU例外発生時に動作していたOSやHypervisor自身の障害の発生が重なったときには、RAS機能が実行できないという課題がある。
実施の形態1〜3では、このような課題を解決する計算機装置を説明する。
OSやHypervisor自身がRAS機能を実現するように構成されている場合は、CPU例外発生時に動作していたOSやHypervisor自身の障害の発生が重なったときには、RAS機能が実行できないという課題がある。
実施の形態1〜3では、このような課題を解決する計算機装置を説明する。
また、実施の形態1〜3では、CPU例外発生時に、どのOS(またはHypervisor)が動作していたかを判定することにより、該当するOS(またはHypervisor)の障害情報を取得できるRASモジュールを説明する。
また、CPU例外ではなく、標準割込みが発生した場合に、OS側の割込み判定部を参照して対応する割込み処理部を呼び出すことにより、OS側で割込み登録内容が変更されていた場合(計算機装置の立上げから当該割込みの発生時までの間に動的に割込み登録内容が変更されていた場合も含む)でも、正しく割込み処理部を呼び出すことができるRASモジュールを説明する。
また、CPU例外ではなく、標準割込みが発生した場合に、OS側の割込み判定部を参照して対応する割込み処理部を呼び出すことにより、OS側で割込み登録内容が変更されていた場合(計算機装置の立上げから当該割込みの発生時までの間に動的に割込み登録内容が変更されていた場合も含む)でも、正しく割込み処理部を呼び出すことができるRASモジュールを説明する。
実施の形態1.
[実施の形態1:構成の説明]
図1は、実施の形態1に係る計算機装置(100)の構成例を示すブロック図である。
計算機装置(100)の構成は、ハードウェアとソフトウェアに大別される。
[実施の形態1:構成の説明]
図1は、実施の形態1に係る計算機装置(100)の構成例を示すブロック図である。
計算機装置(100)の構成は、ハードウェアとソフトウェアに大別される。
計算機装置(100)には、ハードウェアとして、CPU(101)、メモリ(103)、二次記憶装置(104)が存在する。
CPU(101)は、1つでも複数存在する構成(マルチコア、マルチCPU、マルチプロセッサなど)でもよい。
CPU(101)には、割込み検知機構(102)が存在する。
割込み検知機構(102)は、割込み(CPU例外及び標準割込み)を検知する。
メモリ(103)は、RAM(Random Access Memory)である。
また、二次記憶装置(104)は、例えば、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)である。
後述するソフトウェアは、二次記憶装置(104)に記憶されており、実行の際に、二次記憶装置(104)からメモリ(103)にロードされ、順次メモリ(103)からCPU(101)に読み込まれ、実行される。
また、後述するソフトウェアの実行により得られた情報、データ、変数値等がメモリ(103)やCPU(101)内のレジスタに記憶される。
また、図1では、図示を省略しているが、計算機装置(100)には、入出力装置や通信装置を含む各種のデバイスが装備されている。
CPU(101)は、1つでも複数存在する構成(マルチコア、マルチCPU、マルチプロセッサなど)でもよい。
CPU(101)には、割込み検知機構(102)が存在する。
割込み検知機構(102)は、割込み(CPU例外及び標準割込み)を検知する。
メモリ(103)は、RAM(Random Access Memory)である。
また、二次記憶装置(104)は、例えば、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)である。
後述するソフトウェアは、二次記憶装置(104)に記憶されており、実行の際に、二次記憶装置(104)からメモリ(103)にロードされ、順次メモリ(103)からCPU(101)に読み込まれ、実行される。
また、後述するソフトウェアの実行により得られた情報、データ、変数値等がメモリ(103)やCPU(101)内のレジスタに記憶される。
また、図1では、図示を省略しているが、計算機装置(100)には、入出力装置や通信装置を含む各種のデバイスが装備されている。
また、計算機装置(100)のソフトウェアとして、OS(110)、RASモジュール(130)、ブートプログラム(140)がそれぞれ別モジュールとして存在する。
ブートプログラム(140)は、計算機装置(100)が起動されるときに実行される。
OS(110)は1つでも複数存在してもよい。
OS(110)のモジュールには、初期化手順(111)、割込み判定部(112)、CPU例外処理部(113)、割込み処理部(115)が存在する。
ブートプログラム(140)は、計算機装置(100)が起動されるときに実行される。
OS(110)は1つでも複数存在してもよい。
OS(110)のモジュールには、初期化手順(111)、割込み判定部(112)、CPU例外処理部(113)、割込み処理部(115)が存在する。
初期化手順(111)は、OS(110)が用いる資源を初期化するためのプログラムである。
OS(110)が用いる資源には、ハードウェア資源、ソフトウェア資源の両者が含まれる。
OS(110)が用いる資源には、ハードウェア資源、ソフトウェア資源の両者が含まれる。
割込み判定部(112)は、割込み検知機構(102)が割り込みを検知した際に割込み検知機構(102)により呼び出されるプログラムである。
割込み判定部(112)では、割込み検知機構(102)が検知した割り込みがCPU例外であるか標準割込みであるかが判定される。
なお、後述するように、計算機装置(100)の起動時に、割込み判定部(112)はRASモジュール(130)にコピーされて割込み判定部(134)となり、また、割込み検知機構(102)の設定が変更されて、割込み検知機構(102)が割り込みを検知した際に割込み検知機構(102)は割込み判定部(134)を呼び出す。
このため、計算機装置(100)にRASモジュール(130)が追加された後は、割込み判定部(112)は割込み検知機構(102)から呼び出されることはない。
割込み判定部(112)では、割込み検知機構(102)が検知した割り込みがCPU例外であるか標準割込みであるかが判定される。
なお、後述するように、計算機装置(100)の起動時に、割込み判定部(112)はRASモジュール(130)にコピーされて割込み判定部(134)となり、また、割込み検知機構(102)の設定が変更されて、割込み検知機構(102)が割り込みを検知した際に割込み検知機構(102)は割込み判定部(134)を呼び出す。
このため、計算機装置(100)にRASモジュール(130)が追加された後は、割込み判定部(112)は割込み検知機構(102)から呼び出されることはない。
CPU例外処理部(113)及び割込み処理部(115)は、CPU例外ではない標準割込みが発生した場合に実行されるプログラムである。
CPU例外処理部(113)及び割込み処理部(115)の動作の詳細は、実施の形態3において説明する。
CPU例外処理部(113)及び割込み処理部(115)の動作の詳細は、実施の形態3において説明する。
RASモジュール(130)は、CPU例外に対する処理を行うプログラムである。
RASモジュール(130)には、第1の初期化手順(132)、第2の初期化手順(133)、割込み判定部(134)、OS特定部(135)、故障検知部(136)、故障情報収集部(137)、故障同定部(138)、故障対処部(139)が存在する。
なお、RASモジュール(130)は、単にRASともいう。
RASモジュール(130)には、第1の初期化手順(132)、第2の初期化手順(133)、割込み判定部(134)、OS特定部(135)、故障検知部(136)、故障情報収集部(137)、故障同定部(138)、故障対処部(139)が存在する。
なお、RASモジュール(130)は、単にRASともいう。
第1の初期化手順(132)は、OS(110)の初期化手順(111)が実行される前に実行されるプログラムである。
第1の初期化手順(132)では、RASモジュール(130)が用いる資源が初期化される。
RASモジュール(130)が用いる資源には、ハードウェア資源、ソフトウェア資源の両者が含まれる。
また、第1の初期化手順(132)では、後述の第2の初期化手順(133)が実行されるように、OS(110)の初期化手順(111)のプログラムコードの最後の部分を書き換える処理が行われる。
第1の初期化手順(132)では、RASモジュール(130)が用いる資源が初期化される。
RASモジュール(130)が用いる資源には、ハードウェア資源、ソフトウェア資源の両者が含まれる。
また、第1の初期化手順(132)では、後述の第2の初期化手順(133)が実行されるように、OS(110)の初期化手順(111)のプログラムコードの最後の部分を書き換える処理が行われる。
第2の初期化手順(133)は、OS(110)の初期化手順(111)の実行後に実行されるプログラムである。
第2の初期化手順(133)では、OS(110)に含まれる割込み判定部(112)をRASモジュール(130)にコピーし、割込み検知機構(102)が割込みを検知した際にOS(110)の割込み判定部(112)ではなくRASモジュール(130)にコピーされた割込み判定部(134)を呼び出すように割込み検知機構(102)を設定する処理が行われる。
第2の初期化手順(133)では、OS(110)に含まれる割込み判定部(112)をRASモジュール(130)にコピーし、割込み検知機構(102)が割込みを検知した際にOS(110)の割込み判定部(112)ではなくRASモジュール(130)にコピーされた割込み判定部(134)を呼び出すように割込み検知機構(102)を設定する処理が行われる。
割込み判定部(134)は、前述したように、RASモジュール(130)にコピーされた割込み判定部(112)である。
このため、割込み判定部(134)では、割込み判定部(112)と同じ処理が行われる。
すなわち、割込み判定部(134)では、割込み検知機構(102)が検知した割り込みがCPU例外であるか標準割込みであるかが判定される。
このため、割込み判定部(134)では、割込み判定部(112)と同じ処理が行われる。
すなわち、割込み判定部(134)では、割込み検知機構(102)が検知した割り込みがCPU例外であるか標準割込みであるかが判定される。
OS特定部(135)は、割込み判定部(134)により、割込み検知機構(102)が検知した割り込みが標準割込みであると判定された場合に実行されるプログラムである。
OS特定部(135)では、割込みが発生したときに動作していたOS(110)が特定される。
OS特定部(135)の動作の詳細は、実施の形態3で説明する。
OS特定部(135)では、割込みが発生したときに動作していたOS(110)が特定される。
OS特定部(135)の動作の詳細は、実施の形態3で説明する。
故障検知部(136)、故障情報収集部(137)、故障同定部(138)及び故障対処部(139)は、それぞれ、割込み判定部(134)により、割込み検知機構(102)が検知した割り込みがCPU例外であると判定された場合に実行されるプログラムである。
故障検知部(136)では、CPU例外の原因となった故障が特定される。
故障情報収集部(137)では、CPU例外が発生したときに動作していたOS(110)が特定され、特定されたOS(110)から故障に関する情報が収集される。
故障同定部(138)では、故障情報収集部(137)により収集された情報から、故障に対応する故障対処方法が同定される。
故障対処部(139)では、故障同定部(138)で同定された故障対処方法が実施される。
故障検知部(136)、故障情報収集部(137)、故障同定部(138)及び故障対処部(139)は、それぞれ、CPU例外処理部の例に相当する。
故障検知部(136)では、CPU例外の原因となった故障が特定される。
故障情報収集部(137)では、CPU例外が発生したときに動作していたOS(110)が特定され、特定されたOS(110)から故障に関する情報が収集される。
故障同定部(138)では、故障情報収集部(137)により収集された情報から、故障に対応する故障対処方法が同定される。
故障対処部(139)では、故障同定部(138)で同定された故障対処方法が実施される。
故障検知部(136)、故障情報収集部(137)、故障同定部(138)及び故障対処部(139)は、それぞれ、CPU例外処理部の例に相当する。
なお、上記の割込み判定部(112)及び割込み判定部(134)は、CPU例外および標準割込みに対処する処理(プログラム)のメモリ(103)上のアドレスを保持する。
また、上記の割込み処理部(115)は、割込み発生時に対処するための処理(プログラム)を保持する。
また、上記の割込み処理部(115)は、割込み発生時に対処するための処理(プログラム)を保持する。
上述したように、OS(110)、RASモジュール(130)、ブートプログラム(140)は、それぞれプログラムであり、計算機装置(100)では、CPU(101)がこれらのプログラムを読込み、プログラムに記述されている内容に従って処理を行う。
以下では、「CPU(101)が〜する」又は「CPU(101)により〜される」という説明を行うとともに、理解のしやすさ、文脈を考慮して、OS(110)、RASモジュール(130)、ブートプログラム(140)が「〜する」、または、これらに含まれる要素(例えば、第1の初期化手順(132))が「〜する」という表現を用いることもある。
本明細書では、ソフトウェアが動作主体として記述されていても、その記述は、CPU(101)によるプログラムの実行により処理が行われていることを表している。
以下では、「CPU(101)が〜する」又は「CPU(101)により〜される」という説明を行うとともに、理解のしやすさ、文脈を考慮して、OS(110)、RASモジュール(130)、ブートプログラム(140)が「〜する」、または、これらに含まれる要素(例えば、第1の初期化手順(132))が「〜する」という表現を用いることもある。
本明細書では、ソフトウェアが動作主体として記述されていても、その記述は、CPU(101)によるプログラムの実行により処理が行われていることを表している。
[実施の形態1:動作の概要説明(初期化時の全体的な動作の概要)]
まず、本実施の形態に係る計算機装置(100)の初期化時の全体的な動作の概要について説明する。
実施の形態1に係る計算機装置(100)を起動する際の、RASモジュール(130)、OS(110)の初期化処理の全体的なフローチャートを図2に示す。
まず、本実施の形態に係る計算機装置(100)の初期化時の全体的な動作の概要について説明する。
実施の形態1に係る計算機装置(100)を起動する際の、RASモジュール(130)、OS(110)の初期化処理の全体的なフローチャートを図2に示す。
最初に、計算機装置(100)が起動されると、CPU(101)により、ブートプログラム(140)が実行され、RASモジュール(130)の第1の初期化手順(132)が呼び出され(S201)、RASモジュール(130)の第1の初期化手順(132)が実行される(S202)。
ブートプログラム(140)やRASモジュール(130)の「第1の初期化手順」(S202)の詳細については後述する。
ブートプログラム(140)やRASモジュール(130)の「第1の初期化手順」(S202)の詳細については後述する。
次に、OS(110)の初期化手順(111)が呼び出され、OS(110)の初期化手順(111)が実行される(S204)。
OSの「初期化手順」(S204)の詳細については後述する。
OSの「初期化手順」(S204)の詳細については後述する。
最後に、RASモジュール(130)の第2の初期化手順(133)が呼び出され、RASモジュール(130)の第2の初期化手順(133)が実行される(S205)。
RASモジュール(130)の「第2の初期化手順」(S205)の詳細については後述する。
RASモジュール(130)の「第2の初期化手順」(S205)の詳細については後述する。
また、計算機装置(100)に複数のOS(110)が存在する場合は、OS(110)の「初期化手順」(S204)では、それぞれのOS(110)の初期化手順(111)が順番に実行される。
[実施の形態1:動作の概要説明(RASモジュールの「第1の初期化手順」の動作)]
次に、実施の形態1における初期化時の動作の詳細について説明する。
前述のRASモジュール(130)の「第1の初期化手順」(S202)の詳細フローチャートを図3に示す。
次に、実施の形態1における初期化時の動作の詳細について説明する。
前述のRASモジュール(130)の「第1の初期化手順」(S202)の詳細フローチャートを図3に示す。
「第1の初期化手順」(S202)では、まず、CPU(101)が第1の初期化手順(132)を実行して、RASモジュール(130)の初期化を実施する(S301)。
S301では、主にRASモジュール(130)が使用する資源の初期化処理が実施される。
その後、CPU(101)は、「OSの「初期化手順」実行後にRASモジュールの「第2の初期化手順」を呼び出す」という処理を、OSの「初期化手順」の最後に付け加える処理を実施する(S302)。
具体的には、RASモジュール(130)の第2の初期化手順(133)はメモリ(103)上に配置されたプログラムであり、OS(110)の初期化手順(S204)の最後で、このRASモジュール(130)の第2の初期化手順(133)のプログラムのメモリ(103)上のアドレスを呼び出すように、OSの初期化手順(111)の最後の部分を書換える。
つまり、CPU(101)は、メモリ(103)に格納されている、OS(110)の初期化手順(111)のプログラムコードの最後の記述をRASモジュール(130)の第2の初期化手順(133)のプログラムコードへのジャンプ命令に変更する。
この処理のより具体的な実現方法の例を、以下の(1)〜(4)に示す。
S301では、主にRASモジュール(130)が使用する資源の初期化処理が実施される。
その後、CPU(101)は、「OSの「初期化手順」実行後にRASモジュールの「第2の初期化手順」を呼び出す」という処理を、OSの「初期化手順」の最後に付け加える処理を実施する(S302)。
具体的には、RASモジュール(130)の第2の初期化手順(133)はメモリ(103)上に配置されたプログラムであり、OS(110)の初期化手順(S204)の最後で、このRASモジュール(130)の第2の初期化手順(133)のプログラムのメモリ(103)上のアドレスを呼び出すように、OSの初期化手順(111)の最後の部分を書換える。
つまり、CPU(101)は、メモリ(103)に格納されている、OS(110)の初期化手順(111)のプログラムコードの最後の記述をRASモジュール(130)の第2の初期化手順(133)のプログラムコードへのジャンプ命令に変更する。
この処理のより具体的な実現方法の例を、以下の(1)〜(4)に示す。
(1)OS(110)のコンパイル後の実行ファイルのシンボル情報から、OS(110)の初期化手順(111)のコード位置(=メモリ上のプログラムのアドレス)やサイズを、RASモジュール(130)側で把握できるようにする。
例えば、OS(110)のシンボル情報をメモリ(103)上にロードしておきRASモジュール(130)側からシンボル情報を参照できるようにする方法や、予めOS(110)のシンボル情報をRASモジュール(130)に(ハードコーディングするなどして)取り込んでおく方法により、RASモジュール(130)がOS(110)の初期化手順(111)のコード位置やサイズを把握できるようにする。
(2)RASモジュール(130)の第1の初期化手順(132)が、前述(1)で把握可能としたOS(110)の初期化手順(111)のコード位置とサイズ情報より、OS(110)の初期化手順(111)の最後のコード位置を把握する。
(3)この最後のコード位置の部分には、OS(110)の初期化手順(111)の呼び出し元の位置に戻るというコード(ジャンプ命令)が書かれている。
RASモジュール(130)の第1の初期化手順(132)は、この呼び出し元の位置を記録しておき、この最後のコード部分を、RASモジュール(130)の第2の初期化手順(133)のコード位置へのジャンプ命令に修正する。
(4)RASモジュール(130)の第1の初期化手順(132)は、第2の初期化手順(133)のコードの最後の部分を、前述(3)で記録したOS(110)の初期化手順(111)の呼び出し元の位置へのジャンプ命令に修正する。
例えば、OS(110)のシンボル情報をメモリ(103)上にロードしておきRASモジュール(130)側からシンボル情報を参照できるようにする方法や、予めOS(110)のシンボル情報をRASモジュール(130)に(ハードコーディングするなどして)取り込んでおく方法により、RASモジュール(130)がOS(110)の初期化手順(111)のコード位置やサイズを把握できるようにする。
(2)RASモジュール(130)の第1の初期化手順(132)が、前述(1)で把握可能としたOS(110)の初期化手順(111)のコード位置とサイズ情報より、OS(110)の初期化手順(111)の最後のコード位置を把握する。
(3)この最後のコード位置の部分には、OS(110)の初期化手順(111)の呼び出し元の位置に戻るというコード(ジャンプ命令)が書かれている。
RASモジュール(130)の第1の初期化手順(132)は、この呼び出し元の位置を記録しておき、この最後のコード部分を、RASモジュール(130)の第2の初期化手順(133)のコード位置へのジャンプ命令に修正する。
(4)RASモジュール(130)の第1の初期化手順(132)は、第2の初期化手順(133)のコードの最後の部分を、前述(3)で記録したOS(110)の初期化手順(111)の呼び出し元の位置へのジャンプ命令に修正する。
次に、OS(110)の初期化手順(111)が呼び出される(S303)。
具体的には、OS(110)の初期化手順(111)のプログラムのメモリ上のアドレスが呼び出される。
具体的には、OS(110)の初期化手順(111)のプログラムのメモリ上のアドレスが呼び出される。
[実施の形態1:動作の概要説明(OSの「初期化手順」の動作)]
次に、前述のOS(110)の「初期化手順」(S204)の詳細フローチャートを図4に示す。
次に、前述のOS(110)の「初期化手順」(S204)の詳細フローチャートを図4に示す。
ここでは、CPU(101)は、OS(110)の初期化を実施する(S401)。
S401では、主にOS(110)自身が使用する資源の初期化処理が実施される。
その後、CPU(101)は、前述のRASモジュール(130)の「第1の初期化手順」(S202)にて書換えられた通り、RASモジュール(130)の第2の初期化手順(133)を呼び出す(S402)。
具体的には、CPU(101)は、RASモジュール(130)の第2の初期化手順(133)のプログラムのメモリ上のアドレスを呼び出すことにより実現する。
S401では、主にOS(110)自身が使用する資源の初期化処理が実施される。
その後、CPU(101)は、前述のRASモジュール(130)の「第1の初期化手順」(S202)にて書換えられた通り、RASモジュール(130)の第2の初期化手順(133)を呼び出す(S402)。
具体的には、CPU(101)は、RASモジュール(130)の第2の初期化手順(133)のプログラムのメモリ上のアドレスを呼び出すことにより実現する。
[実施の形態1:動作の概要説明(RASモジュールの「第2の初期化手順」の動作)]
最後に、前述のRASモジュール(130)の「第2の初期化手順」(S205)の詳細フローチャートを図5に示す。
ここでは、CPU(101)は、OS(110)の割込み判定部(112)のプログラムコードを、RASモジュール(130)にコピーする(S501)。
RASモジュール(130)にコピーされた割込み判定部(112)は、割込み判定部(134)となる。
その後、CPU(101)は、割込み発生時にRASモジュール(130)の割込み判定部(134)を呼び出すように割込み検知機構(102)を設定する処理を実施する(S502)。
最後に、前述のRASモジュール(130)の「第2の初期化手順」(S205)の詳細フローチャートを図5に示す。
ここでは、CPU(101)は、OS(110)の割込み判定部(112)のプログラムコードを、RASモジュール(130)にコピーする(S501)。
RASモジュール(130)にコピーされた割込み判定部(112)は、割込み判定部(134)となる。
その後、CPU(101)は、割込み発生時にRASモジュール(130)の割込み判定部(134)を呼び出すように割込み検知機構(102)を設定する処理を実施する(S502)。
[実施の形態1:動作の概要説明(RASモジュールを追加する方法)]
以上では、既にRASモジュール(130)が追加された構成での、起動時の初期化動作を説明したが、以下では、RASモジュール(130)を計算機装置(100)に追加する方法を説明する。
以上では、既にRASモジュール(130)が追加された構成での、起動時の初期化動作を説明したが、以下では、RASモジュール(130)を計算機装置(100)に追加する方法を説明する。
RASモジュール(130)を追加する前の計算機装置(100)の構成例を図16に示す。
RASモジュール(130)を追加する前の計算機装置(100)は、OS(一つでも複数のOSが存在する構成でもよい)が独立したモジュールで構成されている。
RASモジュール(130)が追加される前は、計算機装置(100)は、図16のようにRASモジュール(130)がない状態で、通常動作を行っている。
図16の計算機装置(100)の起動時は、まず計算機装置(100)上のブートプログラム(140)が立ち上がり、ブートプログラム(140)からOS(110)の初期化手順(111)が呼び出される。
RASモジュール(130)を追加する前の計算機装置(100)は、OS(一つでも複数のOSが存在する構成でもよい)が独立したモジュールで構成されている。
RASモジュール(130)が追加される前は、計算機装置(100)は、図16のようにRASモジュール(130)がない状態で、通常動作を行っている。
図16の計算機装置(100)の起動時は、まず計算機装置(100)上のブートプログラム(140)が立ち上がり、ブートプログラム(140)からOS(110)の初期化手順(111)が呼び出される。
この図16の計算機装置(100)に対し、本実施の形態のRASモジュール(130)を追加する場合、まず、追加するRASモジュール(130)のプログラムを、計算機装置(100)の二次記憶装置(104)上の空き領域に配置する。
また、計算機装置(100)のブートプログラム(140)を、計算機装置(100)の起動時にRASモジュール(130)の第1の初期化手順(132)を呼び出すよう変更する。
具体的には、RASモジュール(130)の第1の初期化手順(132)のプログラムのメモリ(103)上のアドレスを、ブートプログラム(140)から呼び出すよう変更する。
以上がRASモジュール(130)を計算機装置(100)に追加する方法の概要である。
以上のようにRASモジュール(130)を計算機装置(100)に追加した後(図1の状態)に、計算機装置(100)を起動した場合、前述した図2のフローチャートのような動作が行われる。
また、計算機装置(100)のブートプログラム(140)を、計算機装置(100)の起動時にRASモジュール(130)の第1の初期化手順(132)を呼び出すよう変更する。
具体的には、RASモジュール(130)の第1の初期化手順(132)のプログラムのメモリ(103)上のアドレスを、ブートプログラム(140)から呼び出すよう変更する。
以上がRASモジュール(130)を計算機装置(100)に追加する方法の概要である。
以上のようにRASモジュール(130)を計算機装置(100)に追加した後(図1の状態)に、計算機装置(100)を起動した場合、前述した図2のフローチャートのような動作が行われる。
以上のような構成、動作により、OS(一つでも複数のOSが存在する構成でもよい)が独立したモジュールで構成されている計算機装置に、OSのモジュールへの修正なしに、OSが所有する割込み判定部に対応したRAS機能を、容易に追加することが可能である。
[実施の形態1:動作の概要説明(割込み発生時の動作概要)]
次に、割込みが発生した場合の実施の形態1に係る計算機装置(100)動作の概要を説明する。
図6は、OS(110)の動作時に割込みが発生した場合の処理の流れを示す。
ここで、OSは複数存在していてもよい。
なお、図6では、説明に直接関係のないメモリ(103)、二次記憶装置(104)、ブートプログラム(140)の図示は省略している。
また、図6の実線の矢印は処理の流れを示しており、破線の矢印は処理の内容を示している。
次に、割込みが発生した場合の実施の形態1に係る計算機装置(100)動作の概要を説明する。
図6は、OS(110)の動作時に割込みが発生した場合の処理の流れを示す。
ここで、OSは複数存在していてもよい。
なお、図6では、説明に直接関係のないメモリ(103)、二次記憶装置(104)、ブートプログラム(140)の図示は省略している。
また、図6の実線の矢印は処理の流れを示しており、破線の矢印は処理の内容を示している。
割込みが発生した場合に、CPU(101)の割込み検知機構(102)が、RASモジュール(130)を呼び出す。
RASモジュール(130)は、発生した割込みがCPU例外であるかどうかを判定する。
そして、発生した割込みがCPU例外であれば、RASモジュール(130)は、どのOSが動作していたかを、計算機装置(100)のプログラムカウンタ(CPUの実行アドレスを保持しているレジスタ)により判定(どのOSが動作中だったかを、プログラムカウンタが保持する実行中のコードの場所より判定)し、該当するOSを特定し、特定したOSから故障情報を収集する。
この動作により、OSが複数の構成の場合、CPU例外発生時に、どのOSが動作していたかを判定することが可能となり、該当のOSから障害情報を収集することができる。
RASモジュール(130)は、発生した割込みがCPU例外であるかどうかを判定する。
そして、発生した割込みがCPU例外であれば、RASモジュール(130)は、どのOSが動作していたかを、計算機装置(100)のプログラムカウンタ(CPUの実行アドレスを保持しているレジスタ)により判定(どのOSが動作中だったかを、プログラムカウンタが保持する実行中のコードの場所より判定)し、該当するOSを特定し、特定したOSから故障情報を収集する。
この動作により、OSが複数の構成の場合、CPU例外発生時に、どのOSが動作していたかを判定することが可能となり、該当のOSから障害情報を収集することができる。
[実施の形態1:動作の概要説明(割込み発生時のフローチャート)]
割込み発生時のフローチャートを図7に示す。
割込み発生時のフローチャートを図7に示す。
最初に、割込み検知機構(102)が割込みを検知する(S701)。
次に、割込み検知機構(102)は、RASモジュール(130)の割込み判定部(134)を呼び出す(S702)。
割込み判定部(134)は、割込み検知機構(102)が検知した割込みがCPU例外か標準割込みかの判定を行う(S703)。
次に、割込み検知機構(102)は、RASモジュール(130)の割込み判定部(134)を呼び出す(S702)。
割込み判定部(134)は、割込み検知機構(102)が検知した割込みがCPU例外か標準割込みかの判定を行う(S703)。
割込み検知機構(102)が検知した割込みが標準割込みである場合(S703でNO)は、処理が図15のS1001へ移る。
図15のフローチャートの詳細は、実施の形態3において説明する。
一方、割込み検知機構(102)が検知した割込みがCPU例外である場合(S703でYES)は、RASモジュール(130)の故障検知部(136)がCPU例外の原因の故障を特定する(S705)。
次に、RASモジュール(130)の故障情報収集部(137)が、CPU例外発生時に動作していたOS(110)を特定し、該当するOS(110)から故障情報を収集する(S706−1)。
なお、RASモジュール(130)の故障情報収集部(137)は、前述の通り計算機装置(100)のプログラムカウンタにより、CPU例外発生時に動作していたOS(110)を特定する。
次に、RASモジュール(130)の故障同定部(138)が、S705で特定された故障に対応する故障対処方法を同定する(S707)。
最後に、RASモジュール(130)の故障対処部(139)が、S707で同定された故障対処方法に従って、故障に対処する処理を行う(S708)。
図15のフローチャートの詳細は、実施の形態3において説明する。
一方、割込み検知機構(102)が検知した割込みがCPU例外である場合(S703でYES)は、RASモジュール(130)の故障検知部(136)がCPU例外の原因の故障を特定する(S705)。
次に、RASモジュール(130)の故障情報収集部(137)が、CPU例外発生時に動作していたOS(110)を特定し、該当するOS(110)から故障情報を収集する(S706−1)。
なお、RASモジュール(130)の故障情報収集部(137)は、前述の通り計算機装置(100)のプログラムカウンタにより、CPU例外発生時に動作していたOS(110)を特定する。
次に、RASモジュール(130)の故障同定部(138)が、S705で特定された故障に対応する故障対処方法を同定する(S707)。
最後に、RASモジュール(130)の故障対処部(139)が、S707で同定された故障対処方法に従って、故障に対処する処理を行う(S708)。
以上、実施の形態1によれば、CPU例外発生時にRASモジュール(130)内の割込み判定部(134)、故障検知部(136)等が実行されることにより、CPU例外とOSの障害の発生が重なった場合でも、RAS機能を実行することができる。
以上、本実施の形態では、OS(一つでも複数のOSが存在する構成でもよい)が独立したモジュールで構成されている計算機装置に、OSのモジュールへの修正なしに、OSが所有する割込み判定部に対応したRAS機能を追加することを可能とするRAS方式を説明した。
より具体的には、本実施の形態では主に以下の(1)〜(4)を説明した。
(1)計算機装置の起動時に呼び出されるRASモジュールの「初期化手順」は、OSの「初期化手順」よりも前に実行される「第1の初期化手順」と、OSの「初期化手順」が完了した後に実行される「第2の初期化手順」の2つに分かれる。
(2)RASモジュールの「第1の初期化手順」では、OSの「初期化手順」の最後の部分が、OSの「初期化手順」の後にRASモジュールの「第2の初期化手順」を呼び出すように書換えられる。
(3)RASモジュールの「第2の初期化手順」では、OSの「割込み判定部」がRASモジュールにコピーされる。
(4)RASモジュールの「第2の初期化手順」では、割込み発生時にOSの「割込み判定部」ではなくRASモジュールの「割込み判定部」を呼び出すように、「割込み検知機構」が設定される。
より具体的には、本実施の形態では主に以下の(1)〜(4)を説明した。
(1)計算機装置の起動時に呼び出されるRASモジュールの「初期化手順」は、OSの「初期化手順」よりも前に実行される「第1の初期化手順」と、OSの「初期化手順」が完了した後に実行される「第2の初期化手順」の2つに分かれる。
(2)RASモジュールの「第1の初期化手順」では、OSの「初期化手順」の最後の部分が、OSの「初期化手順」の後にRASモジュールの「第2の初期化手順」を呼び出すように書換えられる。
(3)RASモジュールの「第2の初期化手順」では、OSの「割込み判定部」がRASモジュールにコピーされる。
(4)RASモジュールの「第2の初期化手順」では、割込み発生時にOSの「割込み判定部」ではなくRASモジュールの「割込み判定部」を呼び出すように、「割込み検知機構」が設定される。
また、本実施の形態では、CPU例外発生時にRASモジュール内の割込み判定部、故障検知部等が実行されることにより、CPU例外とOSの障害の発生が重なった場合でも、RAS機能が実行されるRAS方式を説明した。
また、本実施の形態では、RASモジュール内の故障情報収集部が実行されることにより、CPU例外発生時に、どのOSが動作していたかを、CPU例外発生時のプログラムカウンタから判定し、該当のOSから障害情報を収集することが可能なRAS方式を説明した。
実施の形態2.
[実施の形態2:構成の説明]
図8は、実施の形態2に係る計算機装置(100)の構成例を示すブロック図である。
実施の形態1の構成(図1)との違いは、Hypervisor(120)およびHypervisor(120)の初期化手順(121)が存在することのみであり、他は実施の形態1の構成(図1)と同じある。
本実施の形態でも、OS(110)は1つでも複数存在する構成でもよい。
CPU(101)も、1つでも複数存在する構成(マルチコア、マルチCPU、マルチプロセッサなど)でもよい。
[実施の形態2:構成の説明]
図8は、実施の形態2に係る計算機装置(100)の構成例を示すブロック図である。
実施の形態1の構成(図1)との違いは、Hypervisor(120)およびHypervisor(120)の初期化手順(121)が存在することのみであり、他は実施の形態1の構成(図1)と同じある。
本実施の形態でも、OS(110)は1つでも複数存在する構成でもよい。
CPU(101)も、1つでも複数存在する構成(マルチコア、マルチCPU、マルチプロセッサなど)でもよい。
[実施の形態2:動作の概要説明(初期化時の全体的な動作の概要)]
実施の形態2における動作の説明として、まず、初期化時の全体的な動作の概要について説明する。
実施の形態2における計算機装置(100)を起動する際の、RASモジュール(130)、OS(110)、Hypervisor(120)のモジュールの初期化処理の全体的なフローを図9に示す。
実施の形態2における動作の説明として、まず、初期化時の全体的な動作の概要について説明する。
実施の形態2における計算機装置(100)を起動する際の、RASモジュール(130)、OS(110)、Hypervisor(120)のモジュールの初期化処理の全体的なフローを図9に示す。
ここで、実施の形態1の初期化時の動作(図2)との違いは、S202とS204の処理の間に、Hypervisorの「初期化手順」(S203)が追加されている部分であり、他は実施の形態1のフロー(図2)と同じである。
このため、ここではS203の処理とその前後の処理を主に説明する。
このため、ここではS203の処理とその前後の処理を主に説明する。
まず、図9のRASモジュールの「第1の初期化手順」(S202)までは、実施の形態1と同じである。
次に、Hypervisor(120)の初期化手順(121)が呼び出されて実行される(S203)。
S203では、CPU(101)は、主にHypervisor(120)が使用する資源の初期化などを実施する。
次に、図9のOSの「初期化手順」(S204)以降は、実施の形態1と同じである。
また、S205の詳細は、実施の形態1の図5に示すとおりである。
また、OSが複数存在する構成の場合には、図9のフローチャートのOSの「初期化手順」(S204)で、それぞれのOS(110)の初期化手順(111)が順番に実行される。
次に、Hypervisor(120)の初期化手順(121)が呼び出されて実行される(S203)。
S203では、CPU(101)は、主にHypervisor(120)が使用する資源の初期化などを実施する。
次に、図9のOSの「初期化手順」(S204)以降は、実施の形態1と同じである。
また、S205の詳細は、実施の形態1の図5に示すとおりである。
また、OSが複数存在する構成の場合には、図9のフローチャートのOSの「初期化手順」(S204)で、それぞれのOS(110)の初期化手順(111)が順番に実行される。
[実施の形態2:動作の概要説明(RASモジュールの「第1の初期化手順」の動作)]
次に、実施の形態2における初期化時の動作の詳細について説明する。
前述のRASモジュールの「第1の初期化手順」(S202)の詳細フローを図10に示す。
ここで、実施の形態1のRASモジュールの「第1の初期化手順」(図3)との違いは、最後にOSの「初期化手順」(図3のS303)を呼び出すのではなく、Hypervisorの「初期化手順」を呼び出す(図10のS304)部分のみであるため、この部分のみ説明する。
次に、実施の形態2における初期化時の動作の詳細について説明する。
前述のRASモジュールの「第1の初期化手順」(S202)の詳細フローを図10に示す。
ここで、実施の形態1のRASモジュールの「第1の初期化手順」(図3)との違いは、最後にOSの「初期化手順」(図3のS303)を呼び出すのではなく、Hypervisorの「初期化手順」を呼び出す(図10のS304)部分のみであるため、この部分のみ説明する。
S304では、CPU(101)は、Hypervisor(120)の初期化手順(121)を呼び出す。
具体的には、CPU(101)は、Hypervisor(120)の初期化手順(121)のプログラムのメモリ(103)上のアドレスを呼び出すことにより実現する。
具体的には、CPU(101)は、Hypervisor(120)の初期化手順(121)のプログラムのメモリ(103)上のアドレスを呼び出すことにより実現する。
[実施の形態2:動作の概要説明(RASモジュールを追加する方法)]
以上では、既にRASモジュール(130)が追加された構成での、起動時の初期化動作を説明したが、以下では、RASモジュール(130)を計算機装置(100)に追加する方法を説明する。
以上では、既にRASモジュール(130)が追加された構成での、起動時の初期化動作を説明したが、以下では、RASモジュール(130)を計算機装置(100)に追加する方法を説明する。
RASモジュール(130)を追加する前の計算機装置(100)の構成例を図17に示す。
RASモジュール(130)を追加する前の計算機装置(100)は、OS(一つでも複数のOSが存在する構成でもよい)と、Hypervisorが独立したモジュールで構成されている。
RASモジュール(130)が追加される前は、計算機装置(100)は、図17のようにRASモジュール(130)がない状態で、通常動作を行っている。
図17の計算機装置(100)の起動時は、まず計算機装置(100)上のブートプログラム(140)が立ち上がり、ブートプログラム(140)からHypervisor(120)の初期化手順(121)が呼び出され、Hypervisor(120)の初期化手順(121)からOS(110)の初期化手順(111)が呼び出される。
RASモジュール(130)を追加する前の計算機装置(100)は、OS(一つでも複数のOSが存在する構成でもよい)と、Hypervisorが独立したモジュールで構成されている。
RASモジュール(130)が追加される前は、計算機装置(100)は、図17のようにRASモジュール(130)がない状態で、通常動作を行っている。
図17の計算機装置(100)の起動時は、まず計算機装置(100)上のブートプログラム(140)が立ち上がり、ブートプログラム(140)からHypervisor(120)の初期化手順(121)が呼び出され、Hypervisor(120)の初期化手順(121)からOS(110)の初期化手順(111)が呼び出される。
この図17の計算機装置(100)に対し、本実施の形態のRASモジュール(130)を追加する場合、まず、追加するRASモジュール(130)のプログラムを、計算機装置(100)の二次記憶装置(104)上の空き領域に配置する。
また、計算機装置(100)のブートプログラム(140)を、計算機装置(100)の起動時にRASモジュール(130)の第1の初期化手順(132)を呼び出すよう変更する。
具体的には、RASモジュール(130)の第1の初期化手順(132)のプログラムのメモリ(103)上のアドレスを、ブートプログラム(140)から呼び出すよう変更する。
以上がRASモジュール(130)を計算機装置(100)に追加する方法の概要である。
以上のようにRASモジュール(130)を計算機装置(100)に追加した後(図8の状態)に、計算機装置(100)を起動した場合、前述した図9のフローチャートのような動作が行われる。
また、計算機装置(100)のブートプログラム(140)を、計算機装置(100)の起動時にRASモジュール(130)の第1の初期化手順(132)を呼び出すよう変更する。
具体的には、RASモジュール(130)の第1の初期化手順(132)のプログラムのメモリ(103)上のアドレスを、ブートプログラム(140)から呼び出すよう変更する。
以上がRASモジュール(130)を計算機装置(100)に追加する方法の概要である。
以上のようにRASモジュール(130)を計算機装置(100)に追加した後(図8の状態)に、計算機装置(100)を起動した場合、前述した図9のフローチャートのような動作が行われる。
以上のような構成、動作により、OS(一つでも複数のOSが存在する構成でもよい)と、Hypervisorが独立したモジュールで構成されている計算機装置に、OSやHypervisorのモジュールへの修正なしに、OSが所有する割込み判定部に対応したRAS機能を、容易に追加することが可能である。
[実施の形態2:動作の概要説明(割込み発生時の動作概要)]
次に、割込みが発生した場合の実施の形態2に係る計算機装置(100)動作の概要を説明する。
図11は、OS(110)の動作時に割込みが発生した場合の処理の流れを示す。
ここで、OSは複数存在していてもよい。
図12は、Hypervisor(120)の動作時に割込みが発生した場合の処理の流れを示す。
図11と図12の違いはRASモジュール(130)の故障情報収集部(137)が、OSの故障情報を収集するか、Hypervisorの故障情報を収集するかの違いのみである。
また、図11及び図12では、説明に直接関係のないメモリ(103)、二次記憶装置(104)、ブートプログラム(140)の図示は省略している。
また、図11及び図12の実線の矢印は処理の流れを示しており、破線の矢印は処理の内容を示している。
次に、割込みが発生した場合の実施の形態2に係る計算機装置(100)動作の概要を説明する。
図11は、OS(110)の動作時に割込みが発生した場合の処理の流れを示す。
ここで、OSは複数存在していてもよい。
図12は、Hypervisor(120)の動作時に割込みが発生した場合の処理の流れを示す。
図11と図12の違いはRASモジュール(130)の故障情報収集部(137)が、OSの故障情報を収集するか、Hypervisorの故障情報を収集するかの違いのみである。
また、図11及び図12では、説明に直接関係のないメモリ(103)、二次記憶装置(104)、ブートプログラム(140)の図示は省略している。
また、図11及び図12の実線の矢印は処理の流れを示しており、破線の矢印は処理の内容を示している。
割込みが発生した場合に、CPU(101)の割込み検知機構(102)が、RASモジュール(130)を呼び出す。
RASモジュール(130)は、発生した割込みがCPU例外であるかどうかを判定する。
そして、発生した割込みがCPU例外であれば、RASモジュール(130)は、CPU例外が発生した時にどのOSまたはHypervisorが動作していたかを、計算機装置(100)のプログラムカウンタ(CPUの実行アドレスを保持しているレジスタ)により判定(どのOSまたはHypervisorが動作中だったかを、プログラムカウンタが保持する実行中のコードの場所より判定)し、該当するOSまたはHypervisorを特定し、特定したOSまたはHypervisorから故障情報を収集する。
この動作により、CPU例外発生時に、どのOS(OSは複数の構成でもよい)、またはHypervisorが動作していたかを判定することが可能となり、該当のOS、またはHypervisorから障害情報を収集することができる。
RASモジュール(130)は、発生した割込みがCPU例外であるかどうかを判定する。
そして、発生した割込みがCPU例外であれば、RASモジュール(130)は、CPU例外が発生した時にどのOSまたはHypervisorが動作していたかを、計算機装置(100)のプログラムカウンタ(CPUの実行アドレスを保持しているレジスタ)により判定(どのOSまたはHypervisorが動作中だったかを、プログラムカウンタが保持する実行中のコードの場所より判定)し、該当するOSまたはHypervisorを特定し、特定したOSまたはHypervisorから故障情報を収集する。
この動作により、CPU例外発生時に、どのOS(OSは複数の構成でもよい)、またはHypervisorが動作していたかを判定することが可能となり、該当のOS、またはHypervisorから障害情報を収集することができる。
[実施の形態2:動作の概要説明(割込み発生時のフローチャート)]
割込み発生時のフローチャートを図13に示す。
割込み発生時のフローチャートを図13に示す。
このフローチャートと実施の形態1の図7のフローチャートとの違いは、S706−1の処理がS706−2の処理となっていることのみである。
このため、以下では、S706−2の処理のみを説明する。
このため、以下では、S706−2の処理のみを説明する。
RASモジュール(130)の故障検知部(136)で該当の故障を特定(S705)した後、RASモジュール(130)の故障情報収集部(137)が、CPU例外発生時に動作していたOS(またはHypervisor)を特定し、該当するOS(またはHypervisor)から故障情報を収集する(S706−2)。
なお、RASモジュール(130)の故障情報収集部(137)は、前述の通り計算機装置(100)のプログラムカウンタにより、CPU例外発生時に動作していたOS(またはHypervisor)を特定する。
以降の処理(S707以降)は、実施の形態1の図7と同じである。
なお、RASモジュール(130)の故障情報収集部(137)は、前述の通り計算機装置(100)のプログラムカウンタにより、CPU例外発生時に動作していたOS(またはHypervisor)を特定する。
以降の処理(S707以降)は、実施の形態1の図7と同じである。
以上、実施の形態2によれば、CPU例外発生時にRASモジュール(130)内の割込み判定部(134)、故障検知部(136)等が実行されることにより、CPU例外とOSの障害の発生が重なった場合でも、RAS機能を実行することができる。
また、CPU例外発生時にRASモジュール(130)内の割込み判定部(134)、故障検知部(136)等が実行されることにより、CPU例外とHypervisorの障害の発生が重なった場合でも、RAS機能を実行することができる。
また、CPU例外発生時にRASモジュール(130)内の割込み判定部(134)、故障検知部(136)等が実行されることにより、CPU例外とHypervisorの障害の発生が重なった場合でも、RAS機能を実行することができる。
以上、本実施の形態では、OS(一つでも複数のOSが存在する構成でも良い)と、Hypervisorが独立したモジュールで構成されている計算機装置に、OSやHypervisorのモジュールへの修正なしに、OSが所有する割込み判定部に対応したRAS機能を追加することを可能とするRAS方式を説明した。
より具体的には、本実施の形態では以下の(1)〜(4)を説明した。
(1)計算機装置の起動時に呼び出されるRASモジュールの「初期化手順」は、OSやHypervisorの「初期化手順」よりも前に実行される「第1の初期化手順」と、OSやHypervisorの「初期化手順」が完了した後に実行される「第2の初期化手順」の2つに分かれる。
(2)RASモジュールの「第1の初期化手順」では、OSの「初期化手順」の最後の部分が、OSの「初期化手順」の後にRASモジュールの「第2の初期化手順」を呼び出すように書換えられる。
(3)RASモジュールの「第2の初期化手順」では、OSの「割込み判定部」がRASモジュールにコピーされる。
(4)RASモジュールの「第2の初期化手順」では、割込み発生時にOSの「割込み判定部」ではなくRASモジュールの「割込み判定部」を呼び出すように、「割込み検知機構」が設定される。
より具体的には、本実施の形態では以下の(1)〜(4)を説明した。
(1)計算機装置の起動時に呼び出されるRASモジュールの「初期化手順」は、OSやHypervisorの「初期化手順」よりも前に実行される「第1の初期化手順」と、OSやHypervisorの「初期化手順」が完了した後に実行される「第2の初期化手順」の2つに分かれる。
(2)RASモジュールの「第1の初期化手順」では、OSの「初期化手順」の最後の部分が、OSの「初期化手順」の後にRASモジュールの「第2の初期化手順」を呼び出すように書換えられる。
(3)RASモジュールの「第2の初期化手順」では、OSの「割込み判定部」がRASモジュールにコピーされる。
(4)RASモジュールの「第2の初期化手順」では、割込み発生時にOSの「割込み判定部」ではなくRASモジュールの「割込み判定部」を呼び出すように、「割込み検知機構」が設定される。
また、本実施の形態では、CPU例外発生時にRASモジュール内の割込み判定部、故障検知部等が実行されることにより、CPU例外発生とHypervisorの障害の発生が重なった場合でも、RAS機能が実行されるRAS方式を説明した。
また、本実施の形態では、RASモジュール内の故障情報収集部が実行されることにより、CPU例外発生時に、どのOS(OSは複数の構成でもよい)、またはHypervisorが動作していたかを、CPU例外発生時のプログラムカウンタから判定し、該当のOS、またはHypervisorから障害情報を収集することが可能なRAS方式を説明した。
実施の形態3.
本実施の形態では、割込み検知機構(102)で検知した割込みが、CPU例外ではなく標準割込みであった場合の動作の概要を説明する。
計算機装置(100)の構成は、実施の形態1の構成例(図1)でも、実施の形態2の構成図(図8)でもよい。
ここでは実施の形態2の構成(Hypervisorがある構成)にて説明するが、実施の形態1の構成(Hypervisorがない構成)でも以下の動作が行われる。
本実施の形態では、割込み検知機構(102)で検知した割込みが、CPU例外ではなく標準割込みであった場合の動作の概要を説明する。
計算機装置(100)の構成は、実施の形態1の構成例(図1)でも、実施の形態2の構成図(図8)でもよい。
ここでは実施の形態2の構成(Hypervisorがある構成)にて説明するが、実施の形態1の構成(Hypervisorがない構成)でも以下の動作が行われる。
[実施の形態3:動作の概要説明(割込み発生時の動作)]
図14に割込みが発生した場合の処理の流れを示す。
図14では、説明に直接関係のないメモリ(103)、二次記憶装置(104)、ブートプログラム(140)の図示は省略している。
また、図14の実線の矢印は処理の流れを示しており、破線の矢印は処理の内容を示している。
図14に割込みが発生した場合の処理の流れを示す。
図14では、説明に直接関係のないメモリ(103)、二次記憶装置(104)、ブートプログラム(140)の図示は省略している。
また、図14の実線の矢印は処理の流れを示しており、破線の矢印は処理の内容を示している。
図14において、Hypervisor(120)は割込みをマスクする処理をしており、割込みを受付けないものとする。
このため、Hypervisor(120)の処理中に割込みが発生した場合には、Hypervisor(120)からOS(110)側に処理が移ったタイミングで、割込み検知機構(102)がRASモジュール(130)の割込み判定部(134)を呼び出す。
従って、Hypervisor(120)からOS(110)側に処理が戻った時が割込み発生のタイミングとなり、割込み発生時のプログラムカウンタはOSの処理実行中となる(プログラムカウンタがHypervisorの処理中を指すことはない)。
実施の形態1(Hypervisorがない構成)では、Hypervisor(120)自体がないため、このようなHypervisor(120)の割込みのマスク処理は存在しない。
このため、Hypervisor(120)の処理中に割込みが発生した場合には、Hypervisor(120)からOS(110)側に処理が移ったタイミングで、割込み検知機構(102)がRASモジュール(130)の割込み判定部(134)を呼び出す。
従って、Hypervisor(120)からOS(110)側に処理が戻った時が割込み発生のタイミングとなり、割込み発生時のプログラムカウンタはOSの処理実行中となる(プログラムカウンタがHypervisorの処理中を指すことはない)。
実施の形態1(Hypervisorがない構成)では、Hypervisor(120)自体がないため、このようなHypervisor(120)の割込みのマスク処理は存在しない。
[実施の形態3:動作の概要説明(割込み発生時の動作)]
図15は、図7又は図13のS703でNOと判定された後の動作を示す。
つまり、図7又は図13のS703で割込み判定部(134)により割込みがCPU例外ではなく標準割込みと判定された場合に、図15のS1001が行われる。
図15は、図7又は図13のS703でNOと判定された後の動作を示す。
つまり、図7又は図13のS703で割込み判定部(134)により割込みがCPU例外ではなく標準割込みと判定された場合に、図15のS1001が行われる。
図15において、まず、RASモジュール(130)のOS特定部(135)が、標準割込み発生時に動作していたOS(110)を特定する(S1001)。
OS特定部(135)は、実施の形態1及び実施の形態2で説明した故障情報収集部(137)と同様に、計算機装置(100)のプログラムカウンタにより、標準割込み発生時に動作していたOS(110)を特定する。
次に、OS特定部(135)は、該当するOS(110)の割込み判定部(112)を参照して、該当するOS(110)の割込み処理部(115)のプログラムのアドレスを特定して呼び出す(S1002)。
次に、OS(110)の割込み処理部(115)が実行され、以降、OS(110)側に処理が戻る(S1003)。
OS特定部(135)は、実施の形態1及び実施の形態2で説明した故障情報収集部(137)と同様に、計算機装置(100)のプログラムカウンタにより、標準割込み発生時に動作していたOS(110)を特定する。
次に、OS特定部(135)は、該当するOS(110)の割込み判定部(112)を参照して、該当するOS(110)の割込み処理部(115)のプログラムのアドレスを特定して呼び出す(S1002)。
次に、OS(110)の割込み処理部(115)が実行され、以降、OS(110)側に処理が戻る(S1003)。
実施の形態1または実施の形態2により追加されたRAS機能において、実施の形態3で説明した動作を実施することにより、割込み検知機構で検知した割込みがCPU例外ではなく標準割込みであった場合に、正しくOS側の割込み処理部を呼び出すことができる。
例えば、OS側で初期化時から割込み発生時までの間にユーザ操作などによって、割込み動作の登録が動的に追加・変更されていた場合でも、実施の形態3で説明した動作により、OSに適正に割込みを処理させることができる。
例えば、OS側で初期化時から割込み発生時までの間にユーザ操作などによって、割込み動作の登録が動的に追加・変更されていた場合でも、実施の形態3で説明した動作により、OSに適正に割込みを処理させることができる。
以上、本実施の形態では、CPU例外ではなく標準割込みが発生した場合に、OS側の割込み判定部を参照し、対応するOSの割込み処理部を呼び出すことにより、正しくOS側の割込み処理部を呼び出すことができるRAS方式を説明した。
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
100 計算機装置、101 CPU、102 割込み検知機構、103 メモリ、104 二次記憶装置、110 OS、111 初期化手順、112 割込み判定部、113 CPU例外処理部、115 割込み処理部、120 Hypervisor、121 初期化手順、130 RASモジュール、132 第1の初期化手順、133 第2の初期化手順、134 割込み判定部、135 OS特定部、136 故障検知部、137 故障情報収集部、138 故障同定部、139 故障対処部、140 ブートプログラム。
Claims (9)
- 割込みを検知する割込み検知機構が含まれるCPU(Central Processing Unit)と、
前記割込み検知機構が割り込みを検知した際に前記割込み検知機構により呼び出され、前記割込み検知機構が検知した割り込みがCPU例外であるか否かが判定される割込み判定部が含まれるOS(Operating System)とを備える計算機装置であって、
前記計算機装置に、CPU例外に対する処理を行うプログラムであるRAS(Reliability Availability Serviceability)モジュールが追加された場合に、
前記CPUが、
前記計算機装置の起動時に、前記RASモジュールに含まれる第1の初期化手順を呼び出し、前記第1の初期化手順を実行して、前記RASモジュールが用いる資源を初期化し、
前記RASモジュールの前記第1の初期化手順の実行後に、前記OSに含まれる初期化手順を呼び出し、前記初期化手順を実行して、前記OSが用いる資源を初期化し、
前記OSの前記初期化手順の実行後に、前記RASモジュールに含まれる第2の初期化手順を呼び出し、前記第2の初期化手順を実行して、前記OSに含まれる前記割込み判定部を前記RASモジュールにコピーし、前記割込み検知機構が割込みを検知した際に前記OSの割込み判定部ではなく前記RASモジュールにコピーされた割込み判定部を呼び出すように前記割込み検知機構を設定することを特徴とする計算機装置。 - 前記計算機装置は、更に、
前記OSのプログラムコード及び前記RASモジュールのプログラムコードが格納されるメモリを備え、
前記OSの前記初期化手順に対応するプログラムコードの最後に、前記初期化手順の呼び出し元のプログラムコードへのジャンプ命令が記述されており、
前記CPUは、
前記RASモジュールの前記第1の初期化手順を実行して、前記メモリに格納されている、前記OSの前記初期化手順に対応するプログラムコードの最後の記述を前記RASモジュールの前記第2の初期化手順のプログラムコードへのジャンプ命令に変更することを特徴とする請求項1に記載の計算機装置。 - 前記CPUは、
前記RASモジュールの前記第1の初期化手順を実行して、前記メモリに格納されている、前記RASモジュールの前記第2の初期化手順に対応するプログラムコードの最後の記述を前記OSの前記初期化手順の呼び出し元のプログラムコードへのジャンプ命令に変更することを特徴とする請求項2に記載の計算機装置。 - 前記RASモジュールには、CPU例外に対する処理を行うCPU例外処理部が含まれ、
前記割込み検知機構が割込みを検知した場合に、前記割込み検知機構により、前記RASモジュールにコピーされた割込み判定部が呼び出され、
前記RASモジュールにコピーされた割込み判定部により、前記割込み検知機構により検知された割込みがCPU例外であると判定された場合に、前記CPU例外処理部によりCPU例外に対する処理が行われることを特徴とする請求項1〜3のいずれかに記載の計算機装置。 - 前記割込み検知機構が割込みを検知した場合に、前記割込み検知機構により、前記RASモジュールにコピーされた割込み判定部が呼び出され、
前記RASモジュールにコピーされた割込み判定部により、前記割込み検知機構により検知された割込みがCPU例外であると判定された場合に、前記CPU例外処理部によりCPU例外の発生時に動作していたOSが特定され、前記CPU例外処理部により、特定されたOSから情報が収集されてCPU例外に対する処理が行われることを特徴とする請求項4に記載の計算機装置。 - 前記RASモジュールには、CPU例外以外の割込みの発生時に動作していたOSを特定するOS特定部が含まれ、
前記割込み検知機構が割込みを検知した場合に、前記割込み検知機構により、前記RASモジュールにコピーされた割込み判定部が呼び出され、
前記RASモジュールにコピーされた割込み判定部により、前記割込み検知機構により検知された割込みがCPU例外以外であると判定された場合に、前記OS特定部により割込みの発生時に動作していたOSが特定され、特定されたOSにより割込みに対する処理が行われることを特徴とする請求項1〜5のいずれかに記載の計算機装置。 - 前記計算機装置は、更に、
ハイパーバイザーを備え、
前記CPUは、
前記RASモジュールの前記第1の初期化手順の実行後に、前記ハイパーバイザーに含まれる初期化手順を呼び出し、前記初期化手順を実行して、前記ハイパーバイザーが用いる資源を初期化し、
前記ハイパーバイザーの前記初期化手順の実行後に、前記OSに含まれる初期化手順を呼び出し、前記初期化手順を実行して、前記OSが用いる資源を初期化し、
前記OSの前記初期化手順の実行後に、前記RASモジュールに含まれる第2の初期化手順を呼び出し、前記第2の初期化手順を実行することを特徴とする請求項1〜6のいずれかに記載の計算機装置。 - 前記RASモジュールには、CPU例外に対する処理を行うCPU例外処理部が含まれ、
前記割込み検知機構が割込みを検知した場合に、前記割込み検知機構により、前記RASモジュールにコピーされた割込み判定部が呼び出され、
前記RASモジュールにコピーされた割込み判定部により、前記割込み検知機構により検知された割込みがCPU例外であると判定された場合に、前記CPU例外処理部によりCPU例外の発生時に動作していたハイパーバイザーが特定され、前記CPU例外処理部により、特定されたハイパーバイザーから情報が収集されてCPU例外に対する処理が行われることを特徴とする請求項7に記載の計算機装置。 - 割込みを検知する割込み検知機構が含まれるCPU(Central Processing Unit)と、
前記割込み検知機構が割り込みを検知した際に前記割込み検知機構により呼び出され、前記割込み検知機構が検知した割り込みがCPU例外であるか否かが判定される割込み判定部が含まれるOS(Operating System)とを備える計算機装置に、
CPU例外に対する処理を行うプログラムであるRAS(Reliability Availability Serviceability)モジュールが追加された場合に、
前記CPUが、
前記計算機装置の起動時に、前記RASモジュールに含まれる第1の初期化手順を呼び出し、前記第1の初期化手順を実行して、前記RASモジュールが用いる資源を初期化し、
前記RASモジュールの前記第1の初期化手順の実行後に、前記OSに含まれる初期化手順を呼び出し、前記初期化手順を実行して、前記OSが用いる資源を初期化し、
前記OSの前記初期化手順の実行後に、前記RASモジュールに含まれる第2の初期化手順を呼び出し、前記第2の初期化手順を実行して、前記OSに含まれる前記割込み判定部を前記RASモジュールにコピーし、前記割込み検知機構が割込みを検知した際に前記OSの割込み判定部ではなく前記RASモジュールにコピーされた割込み判定部を呼び出すように前記割込み検知機構を設定することを特徴とする計算機装置の制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/052205 WO2014118940A1 (ja) | 2013-01-31 | 2013-01-31 | 計算機装置及び計算機装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5877533B2 JP5877533B2 (ja) | 2016-03-08 |
JPWO2014118940A1 true JPWO2014118940A1 (ja) | 2017-01-26 |
Family
ID=51261685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014559432A Expired - Fee Related JP5877533B2 (ja) | 2013-01-31 | 2013-01-31 | 計算機装置及び計算機装置の制御方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9959225B2 (ja) |
EP (1) | EP2953028A4 (ja) |
JP (1) | JP5877533B2 (ja) |
CN (1) | CN104956337B (ja) |
WO (1) | WO2014118940A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101887974B1 (ko) * | 2016-12-01 | 2018-08-13 | 현대오트론 주식회사 | 엔진제어기의 안전부팅을 위한 시스템 및 방법 |
KR20220154879A (ko) * | 2021-05-14 | 2022-11-22 | 현대자동차주식회사 | 차량 제어 장치 및 방법 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6453238A (en) | 1987-08-24 | 1989-03-01 | Nec Corp | Processing system at fault generation of main body system in virtual computer system |
JPH0193830A (ja) | 1987-10-05 | 1989-04-12 | Nec Corp | 仮想計算機システムにおける割り込み制御方式 |
US5369770A (en) * | 1992-11-02 | 1994-11-29 | Microsoft Corporation | Standardized protected-mode interrupt manager |
JPH0816420A (ja) * | 1994-06-28 | 1996-01-19 | Hitachi Ltd | 小型情報処理装置のエラー処理方法 |
US5790846A (en) * | 1996-04-18 | 1998-08-04 | International Business Machines Corporation | Interrupt vectoring for instruction address breakpoint facility in computer systems |
US5941972A (en) * | 1997-12-31 | 1999-08-24 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
JP4140286B2 (ja) * | 2002-06-04 | 2008-08-27 | 株式会社日立製作所 | 計算機システム |
JP2004287618A (ja) | 2003-03-19 | 2004-10-14 | Ntt Data Corp | オペレーティングシステム起動制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム起動制御装置 |
US20050283599A1 (en) * | 2004-06-22 | 2005-12-22 | Zimmerman Toby S | Exposing BIOS information to an ACPI aware operating system |
US7587639B2 (en) * | 2004-11-09 | 2009-09-08 | Intel Corporation | System and method for error injection using a flexible program interface field |
JP2006155272A (ja) | 2004-11-30 | 2006-06-15 | Hitachi Ltd | 仮想計算機の制御方法及びプログラム |
US7941810B2 (en) * | 2006-12-28 | 2011-05-10 | Intel Corporation | Extensible and flexible firmware architecture for reliability, availability, serviceability features |
JP2008217728A (ja) | 2007-03-08 | 2008-09-18 | Hitachi Ltd | 仮想計算機システムの障害情報採取方法 |
US8145819B2 (en) * | 2007-06-04 | 2012-03-27 | International Business Machines Corporation | Method and system for stealing interrupt vectors |
CN101373450B (zh) * | 2007-08-21 | 2010-09-29 | 联想(北京)有限公司 | 处理cpu异常的方法及系统 |
JP4678396B2 (ja) | 2007-09-25 | 2011-04-27 | 日本電気株式会社 | 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム |
US8522236B2 (en) * | 2007-12-28 | 2013-08-27 | Intel Corporation | Method and system for establishing a robust virtualized environment |
US8255931B2 (en) * | 2008-02-11 | 2012-08-28 | Blue Coat Systems, Inc. | Method for implementing ejection-safe API interception |
US8418166B2 (en) * | 2011-01-11 | 2013-04-09 | International Business Machines Corporation | Transparent update of adapter firmware for self-virtualizing input/output device |
GB2510091B (en) * | 2011-11-22 | 2020-05-20 | Intel Corp | Collaborative processor and system performance and power management |
JP5786955B2 (ja) * | 2011-11-28 | 2015-09-30 | 富士通株式会社 | メモリ縮退方法及び情報処理装置 |
KR101581608B1 (ko) * | 2012-02-13 | 2015-12-30 | 미쓰비시덴키 가부시키가이샤 | 프로세서 시스템 |
US9229884B2 (en) * | 2012-04-30 | 2016-01-05 | Freescale Semiconductor, Inc. | Virtualized instruction extensions for system partitioning |
EP2965246A4 (en) * | 2013-03-07 | 2016-10-19 | Intel Corp | MECHANISM FOR RELIABILITY, AVAILABILITY, AND MAINTENANCE CAPACITY (RAS) MECHANISM IN A PAIR MONITOR |
-
2013
- 2013-01-31 US US14/650,630 patent/US9959225B2/en not_active Expired - Fee Related
- 2013-01-31 CN CN201380071709.4A patent/CN104956337B/zh not_active Expired - Fee Related
- 2013-01-31 WO PCT/JP2013/052205 patent/WO2014118940A1/ja active Application Filing
- 2013-01-31 JP JP2014559432A patent/JP5877533B2/ja not_active Expired - Fee Related
- 2013-01-31 EP EP13873790.3A patent/EP2953028A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP2953028A4 (en) | 2016-10-12 |
US9959225B2 (en) | 2018-05-01 |
WO2014118940A1 (ja) | 2014-08-07 |
CN104956337A (zh) | 2015-09-30 |
EP2953028A1 (en) | 2015-12-09 |
JP5877533B2 (ja) | 2016-03-08 |
CN104956337B (zh) | 2018-01-09 |
US20150331816A1 (en) | 2015-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9811369B2 (en) | Method and system for physical computer system virtualization | |
US7774636B2 (en) | Method and system for kernel panic recovery | |
TWI467490B (zh) | 包括複數個處理器之系統以及操作該系統之方法 | |
EP2867770B1 (en) | Methods, systems and apparatus to capture error conditions in lightweight virtual machine managers | |
JP5423871B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
RU2628921C1 (ru) | Система и способ выполнения антивирусной проверки файла на виртуальной машине | |
JP2007226413A (ja) | メモリダンプ方法、メモリダンププログラム、及び、計算機システム | |
JP2005322242A (ja) | 仮想環境からのハードウェアへの直接アクセスの提供 | |
US9229820B2 (en) | Information processing device with memory dump function, memory dump method, and recording medium | |
TW200813833A (en) | Launching hypervisor under running operating system | |
US9146818B2 (en) | Memory degeneracy method and information processing device | |
TW200813838A (en) | Method and apparatus for handling exceptions during binding to native code | |
JP2012079130A (ja) | デバッグ支援プログラム、デバッグ支援装置、及びデバッグ支援方法 | |
TWI470434B (zh) | 在電腦系統中執行之方法,電腦系統,處理器 | |
JP2009157684A (ja) | 仮想化プログラム、シミュレーション装置、仮想化方法 | |
US9864708B2 (en) | Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels | |
JP5877533B2 (ja) | 計算機装置及び計算機装置の制御方法 | |
US9535772B2 (en) | Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels | |
US9158550B2 (en) | Caching based operating system installation | |
JP5427814B2 (ja) | 障害解析情報収集装置 | |
Li et al. | Enhancing security of embedded Linux on a multi-core processor | |
Russinovich | Inside windows server 2008 kernel changes | |
JP6007532B2 (ja) | 仮想化システム、仮想化サーバ、マイグレーション方法、マイグレーションプログラム | |
US10365972B2 (en) | Storage systems | |
JP2009282726A (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: 20151222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160119 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5877533 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |