JP5921306B2 - 情報処理装置および情報処理方法およびプログラム - Google Patents

情報処理装置および情報処理方法およびプログラム Download PDF

Info

Publication number
JP5921306B2
JP5921306B2 JP2012094836A JP2012094836A JP5921306B2 JP 5921306 B2 JP5921306 B2 JP 5921306B2 JP 2012094836 A JP2012094836 A JP 2012094836A JP 2012094836 A JP2012094836 A JP 2012094836A JP 5921306 B2 JP5921306 B2 JP 5921306B2
Authority
JP
Japan
Prior art keywords
program
programs
driver
application
information processing
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.)
Expired - Fee Related
Application number
JP2012094836A
Other languages
English (en)
Other versions
JP2013222396A (ja
Inventor
昌弘 出口
昌弘 出口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012094836A priority Critical patent/JP5921306B2/ja
Publication of JP2013222396A publication Critical patent/JP2013222396A/ja
Application granted granted Critical
Publication of JP5921306B2 publication Critical patent/JP5921306B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、実行中プログラムの障害発生時に復旧を行う情報処理装置および情報処理方法およびプログラムに関する。
従来、情報処理装置が実行中のドライバプログラム(以降、ドライバプログラムを「ドライバ」と称する)の障害が発生した場合(以降、障害を「異常」とも称する)、障害が発生したドライバが記録される。そして、次回の情報処理装置のシステム起動時に当該ドライバの起動がスキップされる技術が提案されている(例えば、特許文献1)。
また、情報処理装置が実行中のドライバの障害が発生した場合、情報処理装置の動作を停止することなく、障害が発生したドライバと当該ドライバの処理結果を利用するドライバとを、あらかじめ準備され、かつ、固定された順序で復旧する技術が知られている。
ここで、ドライバの復旧とは、ドライバを再起動させるなどして、障害が発生しているドライバや当該ドライバの処理結果を利用するドライバ、または、当該ドライバの障害の影響を受けているドライバを正常な状態に戻すことである。よって、「復旧」を「再起動」とも称する。
特開2011−253339号公報
情報処理装置は、障害が発生したドライバの処理データを用いるドライバや、それらのドライバの処理データを用いて処理を行うアプリケーションプログラム(以降、アプリケーションプログラムを「アプリケーション」と称する)など複数のプログラムを実行する。そして、従来の障害復旧方法では、動作継続の優先されるアプリケーションがある場合でも、アプリケーションの動作継続の優先度は考慮されず、ドライバの再起動順が決定される。そのため、動作継続の優先度が高いアプリケーションである動作必須アプリケーションが利用するドライバの再起動が後回しになる場合がある。そして、動作必須アプリケーションが利用するドライバが再起動するまで、動作必須アプリケーションの動作が中断するという課題がある。
この発明は前記のような課題を解決することを主な目的とするもので、例えば、動作必須アプリケーションの動作継続を優先させることを主な目的とする。
この発明に係る情報処理装置は、
複数のプログラムを実行するプログラム実行部と、
前記プログラム実行部による前記複数のプログラムの実行中に前記複数のプログラムのうちのいずれかのプログラムに異常が発生した場合に、前記複数のプログラムのうち、異常が発生した異常発生プログラムの処理の結果を利用して前記複数のプログラム以外の特定のプログラムの処理に利用される処理が行われるプログラムを優先再起動プログラムとして抽出し、抽出した優先再起動プログラムを前記異常発生プログラム以外のプログラムに優先して再起動するプログラム再起動部と
を備えることを特徴とする。
この発明に係る情報処理装置は、特定のプログラム(例えば、動作必須アプリケーション)により利用されるプログラムを優先して再起動(復旧)する。その為、この発明に係る情報処理装置は、特定のプログラム(例えば、動作必須アプリケーション)の動作継続を優先させることが可能である。
実施の形態1を示す図で、情報処理装置のハードウェア資源の一例を示す図。 実施の形態1を示す図で、情報処理装置の構成の第1の例を示す図。 実施の形態1を示す図で、情報処理装置の構成の第2の例を示す図。 実施の形態1を示す図で、情報処理装置の構成の第3の例を示す図。 実施の形態1を示す図で、プログラム起動管理リストの第1の例を示す図。 実施の形態1を示す図で、アプリケーション−プログラム関連性リストの例を示す図。 実施の形態1を示す図で、情報処理装置の処理の例を示すフローチャート。 実施の形態1を示す図で、プログラム起動管理リストの第2の例を示す図。 実施の形態2を示す図で、情報処理装置の構成の第4の例を示す図。 実施の形態2を示す図で、情報処理装置の構成の第5の例を示す図。 実施の形態2を示す図で、情報処理装置の構成の第6の例を示す図。 実施の形態2を示す図で、プログラム起動管理リストの第3の例を示す図。 実施の形態2を示す図で、情報処理装置の処理の例を示すフローチャート。
実施の形態1.
最初に、実施の形態1に示す情報処理装置100のハードウェア構成例について説明する。
図1は、実施の形態1に示す情報処理装置100のハードウェア資源の一例を示す図である。
なお、図1の構成は、あくまでも情報処理装置100のハードウェア構成の一例を示すものであり、情報処理装置100のハードウェア構成は図1に記載の構成に限らず、例えば後述するような他の構成であってもよい。
図1において、情報処理装置100は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。
CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。
更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)と接続していてもよい。また、磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード(登録商標)読み書き装置、Flash ROM、ROM913以外のROMなどの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード915、キーボード902、スキャナ装置907、マウス903、FDD904などは、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力装置の一例である。
通信ボード915は、ネットワークに接続されている。
例えば、ネットワークは、LAN、インターネットの他、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)などでも構わない。
磁気ディスク装置920には、カーネル921、プログラム群923、ファイル群924が記憶されている。
カーネル921は、オペレーティングシステム(OS)とも称される。
プログラム群923のプログラムは、CPU911がカーネル921を利用しながら実行する。
例えば、アプリケーションやドライバは、プログラム群923のプログラムの一例である。
また、後述のプログラム起動管理リスト、アプリケーション−プログラム関連性リストは、ファイル群924のファイルの一例である。
また、RAM914には、CPU911に実行させるカーネル921のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、RAM914には、CPU911による処理に必要な各種データが格納される。
また、ROM913には、BIOS(Basic Input Output System)プログラムが格納され、磁気ディスク装置920にはブートプログラムが格納されている。
情報処理装置100の起動時には、ROM913のBIOSプログラム及び磁気ディスク装置920のブートプログラムが実行され、BIOSプログラム及びブートプログラムによりカーネル921が起動される。
上記プログラム群923には、更に、実施の形態1の説明において「〜部」(「〜記憶部」以外、以下同様)として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態1の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の照合」、「〜の参照」、「〜の検索」、「〜の抽出」、「〜の検査」、「〜の生成」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の入力」、「〜の受信」、「〜の作成」、「〜の判定」、「〜の定義」、「〜の算出」、「〜の更新」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜リスト」の各項目として記憶されている。
「〜リスト」は、ディスクやメモリなどの記録媒体に記憶される。
ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出される。
そして、読み出された情報やデータや信号値や変数値やパラメータは、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示・制御・判定・識別・検知・判別・選択・算出・導出・更新・作成・取得・通知・指示・判断・復旧などのCPU911の動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示・制御・判定・識別・検知・判別・選択・算出・導出・更新・作成・取得・通知・指示・判断・復旧などのCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1で説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示す。
データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。
また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
また、実施の形態1の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
すなわち、実施の形態1で説明するフローチャートに示すステップ、手順、処理により、本発明に係る情報処理方法を実現することができる。
また、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。
ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。
プログラムはCPU911により読み出され、CPU911により実行される。
すなわち、プログラムは、実施の形態1の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態1の「〜部」の手順や方法をコンピュータに実行させるものである。
このように、実施の形態1に示す情報処理装置100は、処理装置、記憶装置、入力装置、出力装置を備える情報処理装置である。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
(情報処理装置の構成)
図2は、情報処理装置の構成の第1の例を示す図である。
図3は、情報処理装置の構成の第2の例を示す図である。
図4は、情報処理装置の構成の第3の例を示す図である。
最初に図2を用いて、情報処理装置100の構成を説明する。
前述の通り、情報処理装置100は、磁気ディスク装置920を備える。そして、磁気ディスク装置920はカーネル921、アプリケーション180、ドライバ130を記憶する。
アプリケーション180とドライバ130とについての数量は限定されない。
本実施の形態の説明においては、ドライバ130は、ドライバ1〜5(ドライバ130a〜130e)の5つ、アプリケーション180はアプリケーション1(アプリケーション180a)とアプリケーション2(アプリケーション180b)との2つの場合について説明する。
なお、2つのアプリケーション180のうち、アプリケーション180bは情報処理装置100の処理に必須の動作必須アプリケーションであるとする。
すなわち、動作必須のアプリケーション180と動作必須でないアプリケーション180とが同じ情報処理装置100内で実行されている。
ここで、動作必須アプリケーションとは、情報処理装置100において継続して動作することが要求されるプログラムである。
そして、磁気ディスク装置920に記憶されているアプリケーション180のプログラム関連性通知機能191がCPU911により実行され、CPU911をプログラム関連性通知部190として機能させる。
また図示は省略するが、磁気ディスク装置920に記憶されているプログラムがCPU911により実行され、CPU911を復旧処理管理部140、アプリケーション関連性管理部150、手段判定部160、プログラム起動管理部170、プログラム実行部200として機能させる。
ここで、磁気ディスク装置920は、動作必須プログラム情報記憶部と被利用プログラム情報記憶部とに対応する。
また、手段判定部160と復旧処理管理部140とは、プログラム再起動部に対応する。
図3は、図2に示される情報処理装置100の構成の例から磁気ディスク装置920とプログラム関連性通知部190との図示を省略し、CPU911の図示を追加したものである。
図3は、復旧処理管理部140、アプリケーション関連性管理部150、手段判定部160、プログラム起動管理部170、プログラム実行部200がアプリケーション層で動作していることを示している。すなわち、復旧処理管理部140、アプリケーション関連性管理部150、手段判定部160、プログラム起動管理部170、プログラム実行部200はアプリケーション層で動作してもよい。
一方、図4は、復旧処理管理部140、アプリケーション関連性管理部150、手段判定部160、プログラム起動管理部170、プログラム実行部200がカーネル921内にあることを示している。すなわち、復旧処理管理部140、アプリケーション関連性管理部150、手段判定部160、プログラム起動管理部170、プログラム実行部200はカーネル921内で動作してもよい。
本実施の形態の説明では、図2に示す情報処理装置100の構成の例を用いて、説明を進める。
また、本実施の形態ではドライバ130に障害が発生し、情報処理装置100がドライバ130の復旧を行う例を説明するが、情報処理装置100が復旧を行うプログラムおよび障害が発生するプログラムはドライバ130に限定されず、例えばアプリケーション180であっても良い。
CPU911は、情報処理装置100の起動時にカーネル921を実行する。
そして、プログラム実行部200は、カーネル921により指定された複数のドライバ130を起動し、起動した複数のドライバ130を実行する。また、プログラム実行部200はカーネル921により指定されたアプリケーション180を起動し、起動したアプリケーション180を実行する。
プログラム起動管理部170は、情報処理装置100の起動時に起動されたドライバ130に対してプログラム起動管理リスト(後述)を生成する。生成されたプログラム起動管理リストは磁気ディスク装置920に記憶される。
プログラム関連性通知部190は、アプリケーション180の起動時に、当該アプリケーション180が使用するプログラム(例えばドライバ130)と当該アプリケーション180が動作必須アプリケーションで有るか否かをアプリケーション関連性管理部150に通知する。
アプリケーション関連性管理部150は、プログラム関連性通知部190からの通知に基づき、アプリケーション−プログラム関連性リスト503(後述)を生成する。生成されたアプリケーション−プログラム関連性リスト503は磁気ディスク装置920に記憶される。
手段判定部160は、動作中の複数のプログラム(例えばドライバ130)のうちのいずれかに障害が発生した場合にプログラムを復旧する順番を判定する。
復旧処理管理部140は、手段判定部160の判定に基づき、プログラム(例えばドライバ130)を復旧する。
(プログラム起動管理リストの説明)
図5は、プログラム起動管理リストの第1の例を示す図である。
プログラム起動管理リスト500は、プログラム(例えばドライバ130)が示されるプログラムカラム501と、プログラムカラム501に示されるプログラムが処理に用いるデータを出力するプログラムが示されるリンクカラム502とから構成される。
ここで、例えば、図5のD51のプログラムカラム501には、「ドライバ2」が示される。そして、「ドライバ2」は「ドライバ4」の処理の結果を利用して処理を行う。よって、図5のD51のリンクカラム502には、「ドライバ2」が処理に用いるデータを出力する「ドライバ4」が示される。
すなわち、プログラム起動管理リスト500には、ドライバ130間の実行順序が示されている。プログラム起動管理リスト500のプログラムカラム501とリンクカラム502とには、ドライバ130以外に例えばアプリケーション180が示されていてもよい。
なお、他のプログラム(ここでは「ドライバ2」)が用いるデータを出力(処理)するプログラム(ここでは「ドライバ4)」)を下位のプログラムと称する。また、他のプログラム(ここでは「ドライバ4」)の出力(処理)したデータを用いて処理を行うプログラム(ここでは「ドライバ2」)を上位のプログラムと称する。
(アプリケーション−プログラム関連性リストの説明)
図6は、アプリケーション−プログラム関連性リストの例を示す図である。
アプリケーション−プログラム関連性リスト503は、アプリケーション180が示されるアプリケーションカラム504と、当該アプリケーション180が動作必須アプリケーションであるか否かが示される必須カラム505と、当該アプリケーションに使用されるプログラムが示される使用プログラムカラム506とから構成される。
図6の例では、「アプリケーション2」が動作必須アプリケーションであることが示されている。
すなわち、アプリケーション−プログラム関連性リスト503には、継続して動作することが要求される動作必須アプリケーションが定義されている。
アプリケーション180は、使用プログラムカラム506に示されるドライバ130により処理されたデータが用いられ、処理が行われる。
そして、図6の例では、「アプリケーション2」が「ドライバ1」と「ドライバ2」との処理の結果を利用することが示されている。アプリケーション−プログラム関連性リスト503には、例えば「アプリケーション2」が他のアプリケーション180の処理の結果を利用することが示されていてもよい。
すなわち、動作必須アプリケーションの処理に利用される処理が行われるプログラムがアプリケーション−プログラム関連性リスト503には示されている。
(情報処理装置の起動時の処理の説明)
前述の通り、情報処理装置100の起動時に、プログラム起動管理部170は、起動されたプログラム(例えばドライバ130)に対してプログラム起動管理リスト(図5)を生成する。
生成されたプログラム起動管理リストは磁気ディスク装置920に記憶される。
そして、プログラム関連性通知部190は、アプリケーション180の起動時に、当該アプリケーション180が使用するプログラム(例えばドライバ130)と当該アプリケーション180が動作必須アプリケーションで有るか否かをアプリケーション関連性管理部150に通知する。
アプリケーション関連性管理部150は、プログラム関連性通知部190からの通知に基づき、アプリケーション−プログラム関連性リスト503(図6)を生成する。
この時、アプリケーション関連性管理部150は、PID(Process ID)等のアプリケーション180を特定する情報をアプリケーション180に対応付けてアプリケーション−プログラム関連性リスト503に記憶させてもよい。
また、アプリケーション関連性管理部150は、アプリケーション180を特定する情報をプログラム関連性通知部190から通知されてもよい。
生成されたアプリケーション−プログラム関連性リスト503は磁気ディスク装置920に記憶される。
なお、アプリケーション180によってはプログラム関連性通知機能191を備えていない場合がある。このようなアプリケーション180は、情報処理装置100の処理の対象外としてもよい。
また、カーネル921を実行するCPU911が、プログラム関連性通知機能191を備えていないアプリケーション180については、動作必須でないアプリケーションとしてアプリケーション関連性管理部150に通知してもよい。そして、アプリケーション関連性管理部150は、CPU911からの通知に基づき、プログラム関連性通知機能191を備えていないアプリケーション180を動作必須アプリケーションではないとしてアプリケーション−プログラム関連性リスト503を生成してもよい。
(ドライバ130に障害発生時の情報処理装置の処理の説明)
図7は、情報処理装置の処理の例を示すフローチャートである。
CPU911による複数のドライバ130の実行中に、いずれかのプログラム(例えばドライバ130)に障害が発生した場合、手段判定部160は、障害が発生したプログラムを特定する。障害が発生したプログラムを異常発生プログラムとも称する。ここで例えば、手段判定部160は、障害が発生したプログラムを特定する情報を例えばカーネル921を実行中のCPU911から受信する。
ここでは、ドライバ130d「ドライバ4」(図2)に障害が発生したものとして説明を進める。また、プログラム起動管理リスト500は図5に示す例を用い、アプリケーション−プログラム関連性リスト503は図6に示す例を用いる。
手段判定部160は、アプリケーション−プログラム関連性リスト503(図6)を参照し、動作必須アプリケーションが有るか否かを判定する(図7のS200)。
ここでは、アプリケーション180b「アプリケーション2」が動作必須アプリケーションであるため(S200で「YES」)、手段判定部160は、PID等の情報に基づき、動作必須アプリケーションが動作中であるか否かを判定する(図7のS201)。ここでは、動作必須アプリケーションは動作中であるものとする(S201で「YES」)。
また、アプリケーション180終了時に、プログラム関連性通知部190は、アプリケーション関連性管理部150にアプリケーション180が終了したことを通知してもよい。そして、アプリケーション関連性管理部150は、アプリケーション−プログラム関連性リスト503から終了が通知されたアプリケーション180を示す情報を削除してもよい。そして、手段判定部160は、アプリケーション−プログラム関連性リスト503を参照することにより、アプリケーション180が動作中か否かを判定してもよい。
なお、動作必須アプリケーションが無い場合(S200で「NO」)もしくは、動作必須アプリケーションが停止中の場合(S201で「NO」)、復旧処理管理部140は、予め磁気ディスク装置920に記憶されている復旧順序に従って復旧が必要なプログラムを復旧する(図7のS206)。ここで、予め設定されている復旧順序に従ってプログラムを復旧することを通常復旧と称する。
次に、手段判定部160は、プログラム起動管理リスト500(図5)を参照し、障害が発生したドライバ130d「ドライバ4」の上位のプログラムを特定する(図7のS202)。
すなわち、手段判定部160は、障害が発生したドライバ130d「ドライバ4」の処理の結果を利用するプログラムを特定(抽出)する。
ここでは、手段判定部160は、ドライバ130b「ドライバ2」とドライバ130c「ドライバ3」とを特定する。
また、手段判定部160は、アプリケーション−プログラム関連性リスト503(図6)を参照し、動作必須アプリケーションであるアプリケーション180b「アプリケーション2」に使用されるプログラムを特定する(図7のS203)。
すなわち、手段判定部160は、動作必須アプリケーションの処理に利用される処理が行われるプログラムを特定(抽出)する。
ここでは、手段判定部160は、ドライバ130a「ドライバ1」とドライバ130b「ドライバ2」とを特定する。
もしくは、手段判定部160は、図7のS202の処理で特定したプログラム(「ドライバ2」と「ドライバ3」)のいずれかが動作必須アプリケーション(「アプリケーション2」)に使用されるか否かをアプリケーション−プログラム関連性リスト503を参照して判定する。
すなわち、手段判定部160は、障害が発生したドライバ130d「ドライバ4」および図7のS202の処理で特定したプログラム(ドライバ130)が動作必須アプリケーションに影響を与えるか否かを判定する(図7のS204)。
ここで、図7のS202の処理で特定されたプログラム(「ドライバ2」と「ドライバ3」)のうち「ドライバ2」が動作必須アプリケーション(「アプリケーション2」)に使用される。
すなわち、障害が発生したドライバ130d「ドライバ4」の上位のプログラム「ドライバ2」が動作必須アプリケーションに使用され、動作必須アプリケーションは影響を与えられる(S204で「YES」)。従って、手段判定部160は、動作必須アプリケーションに使用されるプログラム(ドライバ130)を復旧処理管理部140により優先的に復旧させると判定する(図7のS205)。一方、手段判定部160は、動作必須アプリケーションに影響なしと判定した場合(S204で「NO」)、復旧処理管理部140に通常復旧させる。
換言すると、手段判定部160は、障害が発生したドライバ130d「ドライバ4」の処理の結果を利用して、動作必須アプリケーションの処理に利用される処理が行われるプログラムを抽出する。
ここで、復旧処理管理部140は、ドライバ130d「ドライバ4」、ドライバ130b「ドライバ2」、ドライバ130c「ドライバ3」の順番で復旧を行う。
すなわち、復旧処理管理部140は、最初に障害の発生したドライバ130d「ドライバ4」を復旧する。そして、次に、復旧処理管理部140は、障害の発生したドライバ130の上位のプログラムのうち、動作必須アプリケーションに使用されるドライバ130b「ドライバ2」を復旧する。最後に、復旧処理管理部140は、障害の発生したドライバ130の上位のプログラムのうち、動作必須アプリケーションとは無関係のドライバ130c「ドライバ3」を復旧する。
つまり、復旧処理管理部140は、手段判定部160で抽出されたプログラムを障害の発生したドライバ130d「ドライバ4」以外のプログラムに優先して復旧する。
そして、復旧処理管理部140は、障害が発生したドライバ130d「ドライバ4」の処理の結果を利用するが、動作必須アプリケーションの処理に利用される処理が行われないプログラム「ドライバ3」に優先して「ドライバ2」を復旧する。
ここで、優先して復旧(再起動)されるプログラムを優先再起動プログラムと称する。
前述では、「ドライバ4→ドライバ2→アプリケーション2」のように、障害の発生したドライバ130d「ドライバ4」の処理の結果を利用して、動作必須アプリケーション「アプリケーション2」の処理に利用される処理が行うプログラムが1つだけ(「ドライバ2」だけ)の例を説明した。すなわち、手段判定部160が優先再起動プログラムとして1つのプログラム(ドライバ130)を抽出する例を説明した。
ここでは、手段判定部160が2つ以上の優先再起動プログラムを抽出する場合を説明する。
図8は、プログラム起動管理リストの第2の例を示す図である。
プログラム起動管理リスト500は、図8の例を用い、アプリケーション−プログラム関連性リスト503は図6の例を用いて、「ドライバ5」に障害が発生した場合を想定して説明を進める。
図7のS202において、手段判定部160は、プログラム起動管理リスト500を参照し、「ドライバ5→ドライバ4→ドライバ3」もしくは「ドライバ5→ドライバ4→ドライバ2」の順序でドライバ130が実行されることを特定する。そして、手段判定部160は、「ドライバ5」の上位プログラムとして「ドライバ4」、「ドライバ3」、「ドライバ2」を特定する。
なお、図7のS200、S201、S203の処理は前述と同様である。
そして、手段判定部160は、障害の発生した「ドライバ5」及び図7のS202の処理で特定したプログラムが動作必須アプリケーションに影響を与えるか否かを判定する(図7のS204)。
ここでは、手段判定部160は、動作必須アプリケーション「アプリケーション2」の使用プログラムが「ドライバ2」であり、手段判定部160は、「ドライバ5」と「ドライバ4」と「ドライバ2」とが動作必須アプリケーションに影響を与えると判定する(S204で「YES」)。
すなわち、手段判定部160は、優先再起動プログラムとして、「ドライバ4」と「ドライバ2」とを抽出する。
そして、復旧処理管理部140は、障害が発生した「ドライバ5」の後に、プログラム起動管理リスト500に示される順序に基づき、「ドライバ4」を復旧する。そして、復旧処理管理部140は、「ドライバ4」の後に、「ドライバ2」を復旧する。
(実施の形態1の効果)
通常復旧においては、ドライバ130d「ドライバ4」に障害が発生した場合に、予め設定されている復旧順序、例えば「ドライバ4、ドライバ3、ドライバ2」の順で復旧が行われる。この場合、動作必須アプリケーションに使用される「ドライバ2」の復旧が遅れ、動作必須アプリケーションの復旧も遅れる。
また、通常復旧において、ドライバ130d「ドライバ4」に障害が発生した場合に、例えば「ドライバ4」が復旧された後、「ドライバ3」と「ドライバ2」とが同時に復旧される場合もある。この場合、「ドライバ3」と「ドライバ2」とが同時に復旧されることでCPU911の資源が分散し、結果的に「ドライバ2」の復旧が遅れる。
一方、実施の形態1の情報処理装置100は、動作必須アプリケーションに使用されるプログラム(ドライバ130)の復旧を優先する為、動作必須アプリケーションの早期復旧が可能となる。
また、実施の形態1の情報処理装置100は、プログラム(ドライバ130)の復旧順序を予め設定する必要がなくなる。
なお、情報処理装置100が優先再起動プログラムとして抽出するプログラムは、ドライバ130に限定されず、例えば優先再起動プログラムとして抽出されるプログラムがアプリケーション180であっても、同様の効果が得られる。また、ドライバ130に障害が発生した場合に限定されず、例えば、アプリケーション180に障害が発生した場合でも同様の効果が得られる。
実施の形態2.
(情報処理装置の構成)
実施の形態2では、ドライバ130の復旧時間に比べて、OS(カーネル921)切り替え時間の方が短い場合に、OS(カーネル921)切り替えて動作必須アプリケーションの動作を継続させる例を示す。
なお、実施の形態2の説明で特に述べない部分については、実施の形態1と同様であり、説明を省略する。
図9は、情報処理装置の構成の第4の例を示す図である。
図10は、情報処理装置の構成の第5の例を示す図である。
図11は、情報処理装置の構成の第6の例を示す図である。
実施の形態1に比べて、VMM320、起動中システム321、コールドスタンバイイメージ部322が追加されている。なお、情報処理装置100の他の構成要素については実施の形態1と同様である。
まず、図9を用いて、情報処理装置100の構成を説明する。
起動中システム321は、CPU911が実行中のプログラム、および、CPU911が「〜部」として機能中の各部(復旧処理管理部140、アプリケーション関連性管理部150、手段判定部160、プログラム起動管理部170、プログラム関連性通知部190)である。
VMM320は、CPU911に複数のシステム(複数のカーネル921)を並列に実行させるプログラムである。
VMM320がCPU911により実行され、CPU911を起動中システム321と同等の処理を行うコールドスタンバイイメージ部322として機能させる。
図示は省略するが、コールドスタンバイイメージ部322には、起動中システム321に含まれるドライバ130やアプリケーション180が含まれる。また、コールドスタンバイイメージ部322には、起動中システム321に含まれるプログラム実行部200などの各部が含まれる。コールドスタンバイイメージ部322に含まれるプログラム実行部200は、起動中システム321に含まれるプログラム実行部200の代わりにドライバ130やアプリケーション180を実行する。すなわち、コールドスタンバイイメージ部322に含まれるプログラム実行部200は、プログラム代替実行部に対応する。そして、プログラム代替実行部に対応するプログラム実行部200を含むコールドスタンバイイメージ部322もプログラム代替実行部に対応する。
コールドスタンバイイメージ部322は、所定のプログラムに対し、指示があるまでコールドスタンバイ状態で待機する。
図10は、図9に示される情報処理装置100の構成の例から磁気ディスク装置920とプログラム関連性通知部190との図示を省略し、CPU911の図示を追加したものである。
図10は、復旧処理管理部140、アプリケーション関連性管理部150、手段判定部160、プログラム起動管理部170、プログラム実行部200がアプリケーション層で動作していることを示している。すなわち、復旧処理管理部140、アプリケーション関連性管理部150、手段判定部160、プログラム起動管理部170、プログラム実行部200はアプリケーション層で動作してもよい。
一方、図11は、復旧処理管理部140、アプリケーション関連性管理部150、手段判定部160、プログラム起動管理部170、プログラム実行部200がカーネル921内にあることを示している。すなわち、復旧処理管理部140、アプリケーション関連性管理部150、手段判定部160、プログラム起動管理部170、プログラム実行部200はカーネル921内で動作してもよい。
なお、本実施の形態の説明では、図9に示す情報処理装置100の構成の例を用いて、説明を進める。
(プログラム起動管理リストの説明)
図12は、プログラム起動管理リストの第3の例を示す図である。
実施の形態2のプログラム起動管理リスト500は、実施の形態1に比べ、起動時間カラム508が追加されている。
起動時間カラム508には、プログラムが復旧に要する時間が示されている。
そして、プログラムカラム501には、「OS切替」の内容が追加されている。
「OS切替」は、起動中システム321からコールドスタンバイイメージ部322へシステムが切り替わることを示す。そして、「OS切替」の起動時間カラム508には、システムが切り替わり、必要なドライバ130が起動するのに要する時間が示されている。
(情報処理装置の起動時の処理の説明)
CPU911は、情報処理装置100の起動時にVMM320を実行する。そして、CPU911は、VMM320により指定されたカーネル921を実行する。更に、プログラム実行部200はカーネル921により指定されたドライバ130とアプリケーション180とを実行する。
そして、実施の形態1と同様に、プログラム起動管理部170は、起動されたドライバ130に対してプログラム起動管理リスト(図12)を生成する。この時、プログラム起動管理部170は、起動時間カラム508に各プログラムの起動に要する時間を入力する。
また、コールドスタンバイイメージ部322は、プログラム起動管理部170は、「OS切替」の起動時間カラム508に所定の時間を入力する。
ここで、「OS切替」の起動時間カラム508に示される時間は、コールドスタンバイイメージ部322が、起動中システム321によって実行されている複数のプログラム(例えばドライバ130)と同じ複数のプログラムを所定の実行開始手順にて実行を開始するのに必要な時間である。この時間は、例えば、プログラム起動管理リスト500に予め設定されていてもよい。
(ドライバ130に障害発生時の情報処理装置の処理の説明)
図13は、情報処理装置の処理の例を示すフローチャートである。
実施の形態2においても、ドライバ130d「ドライバ4」(図9)に障害が発生したものとして説明を進める。また、プログラム起動管理リスト500は図12に示す例を用い、アプリケーション−プログラム関連性リスト503は図6に示す例を用いる。
実施の形態2も、実施の形態1と同様にドライバ130に障害が発生し、情報処理装置100がドライバ130の復旧を行う例を説明するが、情報処理装置100が復旧を行うプログラムおよび障害が発生するプログラムはドライバ130に限定されず、例えばアプリケーション180であっても良い。
図13のS500〜S504及びS506の処理は、実施の形態1の図7のS200〜S204及びS206の処理と同様であり、説明を省略する。
ここでは、実施の形態1と同様に、手段判定部160は、優先再起動プログラムとして「ドライバ2」を抽出する。
手段判定部160は、抽出した優先再起動プログラム「ドライバ2」と障害が発生した「ドライバ4」との復旧に必要な時間である再起動時間を算出する。図12の例では、手段判定部160は、「5ms+5ms=10ms」を算出する。
そして、手段判定部160は、再起動時間とプログラム起動管理リスト500に示される「OS切替」の起動時間カラム508に示される時間(OS切替時間)とを比較する(図13のS507)。
再起動時間がOS切替時間よりも短い場合(S507で「YES」)、復旧処理管理部140は、実施の形態1と同様に優先再起動プログラムを復旧する(図13のS505)。
図12の例の場合、再起動時間(10ms)がOS切替時間(20ms)よりも短いので、復旧処理管理部140は、「ドライバ4」、「ドライバ2」、「ドライバ3」の順に復旧する。
一方、再起動時間がOS切替時間よりも長い場合(S507で「NO」)、復旧処理管理部140は、優先再起動プログラムを復旧しない。その代わりに、コールドスタンバイイメージ部322は、コールドスタンバイ状態を解除(ホット化)し、起動中システム321で実行されていた複数のプログラム(ドライバ130)の実行を開始する(図13のS508)。そして、コールドスタンバイイメージ部322は、起動中システム321で実行されていたアプリケーション180も同様に実行する。
(実施の形態2の効果)
実施の形態2の情報処理装置100は、動作必須アプリケーションがより早期に復旧可能な方法(優先再起動プログラムの復旧もしくはOS切替)を選択する。その為、実施の形態2の情報処理装置100は、実施の形態1の効果に加え、より早期に動作必須アプリケーションの復旧が可能となる。
そして、実施の形態2の情報処理装置100が優先再起動プログラムとして抽出するプログラムも、ドライバ130に限定されず、例えば優先再起動プログラムとして抽出されるプログラムがアプリケーション180であっても、同様の効果が得られる。また、ドライバ130に障害が発生した場合に限定されず、例えば、アプリケーション180に障害が発生した場合でも同様の効果が得られる。
100 情報処理装置、130 ドライバ、140 復旧処理管理部、150 アプリケーション関連性管理部、160 手段判定部、170 プログラム起動管理部、180 アプリケーション、190 プログラム関連性通知部、191 プログラム関連性通知機能、200 プログラム実行部、320 VMM、321 起動中システム、322 コールドスタンバイイメージ部、500 プログラム起動管理リスト、501 プログラムカラム、502 リンクカラム、503 アプリケーション−プログラム関連性リスト、504 アプリケーションカラム、505 必須カラム、506 使用プログラムカラム、508 起動時間カラム、900 ネットワーク、901 表示装置、902 キーボード、903 マウス、904 FDD、905 コンパクトディスク装置、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 カーネル、923 プログラム群、924 ファイル群。

Claims (7)

  1. 複数のプログラムを実行するプログラム実行部と、
    前記プログラム実行部による前記複数のプログラムの実行中に前記複数のプログラムのうちのいずれかのプログラムに異常が発生した場合に、前記複数のプログラム以外の特定のプログラムが動作中であるか否かを判定し、前記特定のプログラムが動作中である場合に、前記複数のプログラムのうち、異常が発生した異常発生プログラム処理の結果を利用して前記特定のプログラムの処理に利用される処理が行われるプログラムを優先再起動プログラムとして抽出し、抽出した優先再起動プログラムを前記異常発生プログラム以外のプログラムに優先して再起動するプログラム再起動部と
    を備えることを特徴とする情報処理装置。
  2. 前記プログラム再起動部は、
    前記優先再起動プログラムを、前記複数のプログラムのうち、異常が発生した異常発生プログラムの処理の結果を利用するが前記特定のプログラムの処理に利用される処理が行われないプログラムに優先して再起動することを特徴とする請求項1記載の情報処理装置。
  3. 前記情報処理装置は、更に、
    継続して動作することが要求される動作必須プログラムが前記特定のプログラムとして定義されている動作必須プログラム情報を記憶する動作必須プログラム情報記憶部を備え、
    前記プログラム再起動部は、
    前記動作必須プログラムが動作中であるか否かを判定し、前記動作必須プログラムが動作中である場合に、前記複数のプログラムのうち、異常が発生した異常発生プログラムの処理の結果を利用して前記動作必須プログラムの処理に利用される処理が行われるプログラムを、前記優先再起動プログラムとして抽出することを特徴とする請求項1又は2記載の情報処理装置。
  4. 前記情報処理装置は、更に、
    前記特定のプログラムの処理に利用される処理が行われるプログラムがそれぞれ被利用プログラムとして示され、更に、被利用プログラム間の実行順序が示される被利用プログラム情報を記憶する被利用プログラム情報記憶部を備え、
    前記プログラム再起動部は、
    2つ以上の被利用プログラムを優先再起動プログラムとして抽出した場合に、優先再起動プログラムとして抽出した被利用プログラムのそれぞれを、前記被利用プログラム情報に示される順序で再起動することを特徴とする請求項1〜3いずれか記載の情報処理装置。
  5. 前記情報処理装置は、更に、
    前記プログラム実行部に代わって前記複数のプログラムを実行することができるプログラム代替実行部を備え、
    前記プログラム再起動部は、
    前記異常発生プログラムと前記優先再起動プログラムとの再起動に必要な再起動時間と、前記プログラム代替実行部が所定の実行開始手順にて前記複数のプログラムの実行を開始するのに必要なプログラム代替実行開始時間とを比較し、前記再起動時間が前記プログラム代替実行開始時間未満であれば、前記優先再起動プログラムの再起動を行い、前記再起動時間が前記プログラム代替実行開始時間以上であれば、前記プログラム代替実行部に前記複数のプログラムの実行を開始させることを特徴とする請求項1〜4いずれか記載の情報処理装置。
  6. コンピュータが、複数のプログラムを実行するプログラム実行ステップと、
    前記プログラム実行ステップによる前記複数のプログラムの実行中に前記複数のプログラムのうちのいずれかのプログラムに異常が発生した場合に、前記コンピュータが、前記複数のプログラム以外の特定のプログラムが動作中であるか否かを判定し、前記特定のプログラムが動作中である場合に、前記複数のプログラムのうち、異常が発生した異常発生プログラム処理の結果を利用して前記特定のプログラムの処理に利用される処理が行われるプログラムを優先再起動プログラムとして抽出し、抽出した優先再起動プログラムを前記異常発生プログラム以外のプログラムに優先して再起動するプログラム再起動ステップと
    を備えることを特徴とする情報処理方法。
  7. 複数のプログラムを実行するプログラム実行ステップと、
    前記プログラム実行ステップによる前記複数のプログラムの実行中に前記複数のプログラムのうちのいずれかのプログラムに異常が発生した場合に、前記複数のプログラム以外の特定のプログラムが動作中であるか否かを判定し、前記特定のプログラムが動作中である場合に、前記複数のプログラムのうち、異常が発生した異常発生プログラム処理の結果を利用して前記特定のプログラムの処理に利用される処理が行われるプログラムを優先再起動プログラムとして抽出し、抽出した優先再起動プログラムを前記異常発生プログラム以外のプログラムに優先して再起動するプログラム再起動ステップと
    をコンピュータに実行させることを特徴とするプログラム。
JP2012094836A 2012-04-18 2012-04-18 情報処理装置および情報処理方法およびプログラム Expired - Fee Related JP5921306B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012094836A JP5921306B2 (ja) 2012-04-18 2012-04-18 情報処理装置および情報処理方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012094836A JP5921306B2 (ja) 2012-04-18 2012-04-18 情報処理装置および情報処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2013222396A JP2013222396A (ja) 2013-10-28
JP5921306B2 true JP5921306B2 (ja) 2016-05-24

Family

ID=49593291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012094836A Expired - Fee Related JP5921306B2 (ja) 2012-04-18 2012-04-18 情報処理装置および情報処理方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5921306B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7057178B2 (ja) * 2018-03-19 2022-04-19 Necプラットフォームズ株式会社 管理ノード、ノード、クラスタシステムおよびノード制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0926940A (ja) * 1995-07-11 1997-01-28 Mitsubishi Electric Corp 分散システム構築方式
JP2001125687A (ja) * 1999-10-28 2001-05-11 Mitsubishi Electric Corp 計算機システム
JP4119162B2 (ja) * 2002-05-15 2008-07-16 株式会社日立製作所 多重化計算機システム、論理計算機の割当方法および論理計算機の割当プログラム
WO2007108133A1 (ja) * 2006-03-23 2007-09-27 Fujitsu Limited マルチプロセッシング方法及びマルチプロセッサシステム
JP5304360B2 (ja) * 2009-03-17 2013-10-02 株式会社リコー 情報処理装置、情報処理方法および情報処理プログラム

Also Published As

Publication number Publication date
JP2013222396A (ja) 2013-10-28

Similar Documents

Publication Publication Date Title
US9582373B2 (en) Methods and systems to hot-swap a virtual machine
US9910664B2 (en) System and method of online firmware update for baseboard management controller (BMC) devices
US20150074058A1 (en) Container-based processing method, apparatus, and system
US20170132095A1 (en) Data restoration
US9164846B2 (en) Restarting a software system
US10379931B2 (en) Computer system
US20130061090A1 (en) Partial rebooting recovery apparatus and method
JP2010086364A (ja) 情報処理装置、動作状態監視装置および方法
US20210124655A1 (en) Dynamic Configurable Microcontroller Recovery
US8468388B2 (en) Restoring programs after operating system failure
JP5578897B2 (ja) バックアッププログラム、方法及びコンピュータ
JP5921306B2 (ja) 情報処理装置および情報処理方法およびプログラム
JP6175958B2 (ja) メモリダンプ方法及びプログラム、並びに、情報処理装置
JP6160688B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
KR102052816B1 (ko) 비휘발성 주기억장치 환경에서 에러 복구 방법 및 그 시스템
JP2014127193A (ja) 情報処理装置、及び記憶情報解析方法
US10592329B2 (en) Method and electronic device for continuing executing procedure being aborted from physical address where error occurs
JP2008077378A (ja) 起動診断方式、起動診断方法およびプログラム
JP6023898B1 (ja) 情報処理装置及び情報処理方法及び情報処理プログラム
KR101395007B1 (ko) 복수의 프로세서를 이용한 스냅샷 이미지 처리 장치 및 방법
KR101564144B1 (ko) 펌웨어 관리 장치 및 방법
US20170109220A1 (en) Image forming apparatus that ensures operation while hdd is inoperative, and recording medium therefor
CN109564533B (zh) 一种支持即时恢复进程中执行引导进程的设备和方法
KR101116053B1 (ko) 파일 백업 방법과 상기 방법을 수행할 수 있는 장치들
JP2017151511A (ja) 情報処理装置、動作ログ取得方法および動作ログ取得プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151005

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: 20160315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160412

R150 Certificate of patent or registration of utility model

Ref document number: 5921306

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

LAPS Cancellation because of no payment of annual fees