JP5668518B2 - 情報処理装置、情報処理方法及びプログラム - Google Patents

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

Info

Publication number
JP5668518B2
JP5668518B2 JP2011031784A JP2011031784A JP5668518B2 JP 5668518 B2 JP5668518 B2 JP 5668518B2 JP 2011031784 A JP2011031784 A JP 2011031784A JP 2011031784 A JP2011031784 A JP 2011031784A JP 5668518 B2 JP5668518 B2 JP 5668518B2
Authority
JP
Japan
Prior art keywords
change
operating system
change information
information
post
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
JP2011031784A
Other languages
English (en)
Other versions
JP2012173754A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2011031784A priority Critical patent/JP5668518B2/ja
Publication of JP2012173754A publication Critical patent/JP2012173754A/ja
Application granted granted Critical
Publication of JP5668518B2 publication Critical patent/JP5668518B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は情報処理装置に関し、特にオペレーティングシステムの高速再起動を行う情報処理装置に関する。
オペレーティングシステムを主記憶装置(メモリ)にロードし、オペレーティングシステムを実行することにより動作する情報処理装置が広く知られている。このオペレーティングシステムに内在する不具合を修正したり、またオペレーティングシステムに機能を追加したりするために、オペレーティングシステムの動作中であっても、オペレーティングシステムのコードやデータを変更、追加したい場合がある。特許文献1には、計算機システムの動作中に動的パッチプログラムを実行することにより、該プログラムによってオペレーティングシステムのコードやデータを変更、追加する方法が記載されている。
特開平09−062500号公報
しかしながら、メモリに既にロードされているオペレーティングシステムのイメージを再利用することによる再起動(高速再起動)を行う情報処理装置においては、動的パッチプログラムにより変更、追加されたコードやデータを、高速再起動の際、オペレーティングシステムが参照できないという問題が生じることがあった。例えば、機器組込用オペレーティングシステム等においては該高速再起動を行うことが多く、問題となりうる。かかる問題が発生する理由を図10及び図11を用いて説明する。
図10に示すように、動的パッチプログラムは、オペレーティングシステムのコードやデータを新たなコードやデータに修正する場合、オペレーティングシステムの該当箇所を単に上書きする場合と、該当箇所だけでなく他の領域にも記録する場合がある。以下、他の領域に記録されたコードやデータを、追加コードという。例えば、該当箇所のサイズより新たなコードやデータのサイズのほうが大きい場合、動的パッチプログラムは他の領域に追加コードを記録する。他の領域に追加コードを記録した場合、オペレーティングシステムの該当箇所には、その追加コードが記録されたアドレスを参照先として指定するコードやデータが記載されることとなる。
図11に示すように、一般に、情報処理装置のメモリには、オペレーティングシステムが起動する際に有効とされオペレーティングシステムにより使用される記憶領域401と、オペレーティングシステム以外のプログラム、例えば動的パッチプログラムがメモリにロードされる際にはじめて有効とされ動的パッチプログラムにより使用される記憶領域402とが定義される。そのため、動的パッチプログラムが追加コードを記録する場合は、動的パッチプログラムが使用できる記憶領域402に追加コードを記録し、修正前のコードやデータの位置には、追加コードへの参照(追加コードのアドレス情報)を含むコードやデータを記載することになる。
この場合に高速再起動を行うと、上述の問題が発生する。すなわち、オペレーティングシステムは再起動する前に一旦シャットダウンする必要があるが、この際、動的パッチプログラムがメモリからアンロードされ、第2の記憶領域32が無効となる。このとき、メモリ上のイメージは消去されることがないため、追加コードはメモリ上に存在し続ける。しかしながら、オペレーティングシステムは無効な記憶領域402を参照できず、追加コードも読み出すことができない状態となる。この状態は、オペレーティングシステムが高速再起動した後も、動的パッチプログラムがメモリに再びロードされるまでの間継続する。すなわち、この間にオペレーティングシステムが記憶領域402への参照を含むコードやデータを実行しようとしても、記憶領域402から追加コードを読み出すことができないため、例外エラーが発生することとなる。
本発明は、かかる問題を解決するためになされたものであり、動的パッチを適用した状態でもオペレーティングシステムの高速再起動を実行することが可能な情報処理装置、情報処理方法及びプログラムを提供することにある。
本発明にかかる情報処理装置は、オペレーティングシステムと、前記オペレーティングシステムの一部を修正する修正機能と、前記修正履歴を変更領域管理テーブルに保存するテーブル生成機能とを有する動的パッチ制御手段と、前記変更領域管理テーブル及び前記オペレーティングシステムが記憶される第1の記憶領域と、前記オペレーティングシステムにより有効とされる第2の記憶領域とを有する記憶手段と、前記第1の記憶領域に記憶された前記オペレーティングシステムを再実行することで高速再起動させる高速再起動制御手段とを有し、前記オペレーティングシステムは起動時に前記第1の記憶領域を有効とし、前記動的パッチ制御手段は、前記第2の記憶領域が有効とされると、前記修正機能により前記オペレーティングシステムの一部である変更前情報を第1の変更後情報に修正し、前記第1の変更後情報によりアドレスが指定される第2の変更後情報を前記第2の記憶領域に記録すると共に、前記テーブル生成機能により前記変更領域管理テーブルに少なくとも前記変更前情報を記録し、前記高速再起動制御手段が前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルが参照され、前記オペレーティングシステムの前記第1の変更後情報が前記変更前情報に変更されるものである。
本発明にかかる情報処理方法は、第1の記憶領域に記録されたオペレーティングシステムの一部を修正する動的パッチ制御手段により、前記オペレーティングシステムの一部である変更前情報を第1の変更後情報に修正すると共に、前記第1の変更後情報によりアドレスが指定される第2の変更後情報を第2の記憶領域に記録する修正ステップと、前記第1の記憶領域に記録された変更領域管理テーブルに、少なくとも前記変更前情報を登録するテーブル生成ステップと、前記オペレーティングシステムを再実行することで高速再起動させる高速再起動ステップと、前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルを参照し、前記オペレーティングシステムの前記第1の変更後情報を前記変更前情報に変更する変更ステップとを有するものである。
本発明にかかるプログラムは、コンピュータに、第1の記憶領域に記録されたオペレーティングシステムの一部を修正する動的パッチ制御手段により、前記オペレーティングシステムの一部である変更前情報を第1の変更後情報に修正すると共に、前記第1の変更後情報によりアドレスが指定される第2の変更後情報を第2の記憶領域に記録する修正ステップと、前記第1の記憶領域に記録された変更領域管理テーブルに、少なくとも前記変更前情報を登録するテーブル生成ステップと、前記オペレーティングシステムを再実行することで高速再起動させる高速再起動ステップと、前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルを参照し、前記オペレーティングシステムの前記第1の変更後情報を前記変更前情報に変更する変更ステップとを実行させるものである。
本発明により、動的パッチを適用した状態でもオペレーティングシステムの高速再起動を実行することが可能な情報処理装置、情報処理方法及びプログラムを提供することができる。
本発明の実施の形態1にかかる構成図である。 本発明の実施の形態1における変更領域管理テーブルの構成図である。 本発明の実施の形態1における動的パッチ制御手段の処理を示すシーケンス図である。 本発明の実施の形態1における高速再起動制御手段の処理を示すシーケンス図である。 本発明の実施の形態1における記憶部の状態を示す図である。 本発明の実施の形態1における記憶部の状態を示す図である。 本発明の実施の形態2における変更領域管理テーブルの構成図である。 本発明の実施の形態2における高速再起動制御手段の処理を示すシーケンス図である。 本発明の実施の形態2における記憶部の状態を示す図である。 従来の問題点を説明するための図である。 従来の問題点を説明するための図である。
実施の形態1
図1は本発明の実施の形態1にかかる情報処理装置の構成図である。情報処理装置100は、動的パッチ制御部1、高速再起動制御部2及び記憶部3を有する。
記憶部3は、典型的にはCPU(Central Processing Unit)等によりアクセスされるメモリであり、例えばDRAM(Dynamic Random Access Memory)を用いて構成される。本実施の形態においては、記憶部3は、第1の記憶領域31と第2の記憶領域32とを含んでいる。第1の記憶領域31はオペレーティングシステム311の起動の際に有効とされる記憶領域である。典型的には仮想記憶領域であり、オペレーティングシステムが、起動の際、オペレーティングシステムが使用するための領域を定義する。第1の記憶領域31には、オペレーティングシステム311と変更領域記憶テーブル312とが保持されている。第2の記憶領域32はアプリケーションプログラム、本実施の形態においては後述の動的パッチプログラムの起動の際に有効とされる記憶領域である。典型的には仮想記憶領域であり、オペレーティングシステムがアプリケーションプログラムをメモリにロードする際、アプリケーションプログラムに使用させるために領域を定義する。
動的パッチ制御部1は、オペレーティングシステム311の一部を修正する処理、具体的には、オペレーティングシステム311の動作中にオペレーティングシステム311のコードやデータの変更、追加を行う処理を実行する。以下、この処理を動的パッチ処理という。動的パッチ処理は、一般的にはオペレーティングシステムに内在する不具合の修正や、オペレーティングシステムへの機能の追加を目的として行われる。動的パッチ処理は、典型的には動的パッチプログラムを用いて実行される。この動的パッチプログラムはアプリケーションプログラム、すなわちオペレーティングシステム上で動作するプログラムである。以下、本実施の形態においては、動的パッチ制御部1を動的パッチプログラムとして説明する。
動的パッチプログラムは、オペレーティングシステムの一部を修正する修正機能、すなわち動的パッチ処理を行う機能と、この修正履歴を変更領域管理テーブルに保存するテーブル生成機能とを備えるプログラムである。動的パッチプログラムは、実行に先立ちメモリにロードされる。このとき、典型的には、オペレーティングシステム311により動的パッチプログラムが使用するための仮想記憶領域すなわち第2の記憶領域32が定義される。すなわち、第2の記憶領域32は、オペレーティングシステム311により有効とされる。その後、動的パッチプログラムが実行を開始する。本実施例では、動的パッチプログラムは、はじめにテーブル生成処理を実行した後、動的パッチ処理を実行する。これらの処理の内容を以下に説明する。
まず、動的パッチプログラムの修正機能による動的パッチ処理の内容をさらに詳しく例示する。動的パッチプログラムは、第1の記憶領域31内に展開されているオペレーティングシステム311のコードやデータのうち、どの部分を変更すべきかに関する情報すなわち変更前情報と、どのようなコードやデータに変更すべきかに関する情報すなわち変更後情報との組み合わせを予め一又は複数保有している。動的パッチプログラムは、かかる組み合わせのすべてについて以下の処理を行う。
変更後情報のサイズが変更前情報のサイズ以下であれば、動的パッチプログラムは、オペレーティングシステム311のコードやデータうち、変更前情報に該当する部分を変更後情報で上書きすることにより、オペレーティングシステム311を修正することができる。
一方、変更後情報のサイズが変更前情報のサイズを超える場合には、動的パッチプログラムは上述のような上書きによる修正を行うことができない。この場合、動的パッチプログラムは、第1の変更後情報と第2の変更後情報とからなる変更後情報を使用する。第1の変更後情報とは変更前情報以下のサイズを有するコードやデータであり、第2の変更後情報を読み出すためのコードやデータを含んでいる。すなわち、第1の変更後情報のコードやデータには、第2の変更後情報が記憶される記憶領域を示すアドレス(以下、参照アドレス)が含まれているので、オペレーティングシステム311は、参照アドレスに記録されている情報を読み出すことによって、第2の変更後情報を読み出すことができる。
動的パッチプログラムは、第1の変更後情報で変更前情報を上書きするとともに、第2の変更後情報を第2の記憶領域32に記録する。第2の記憶領域32とは、オペレーティングシステム311が展開している第1の記憶領域31の外部に定義される、動的パッチプログラムが使用するための記憶領域である。このとき、第1の変更後情報には、参照アドレスとして、第2の変更後情報が記憶されている第2の記憶領域31内のアドレスが含まれている。そのため、修正されたオペレーションシステム311は、第1の変更後情報を実行すると、参照アドレスを介して第2の変更後情報を読み出して修正後のプログラムを実行することができる。
つぎに、動的パッチプログラムのテーブル生成機能によるテーブル生成処理の内容を示す。動的パッチプログラムは、はじめに、自身が保有するすべての変更後情報の内容を順に検査する。もし変更後情報に参照アドレスが含まれている場合、すなわち参照アドレスを含む第1の変更後情報によって変更前情報を上書きする場合、動的パッチプログラムは、図2に示す変更領域管理テーブル312にレコード、すなわち1件分のデータを格納するための領域を作成し、そのレコードに少なくとも変更前情報を記録する。望ましくは、変更前情報が記録されていた領域を示すアドレス情報、具体的にはアドレス及びサイズをさらに記録する。すべての変更後情報の検査が終了し、変更領域管理テーブル312への登録が終了すると、テーブル生成処理は終了する。
本実施例の動的パッチプログラムは、テーブル生成処理が終了すると、上述の動的パッチ処理を実行する。すなわち、変更前情報を単に変更後情報で上書きするか、参照アドレスを含む第1の変更後情報で上書きするとともに第2の記憶領域32に第2の変更後情報を記録する。このようにして、動的パッチプログラムは、動作中のオペレーティングシステム311のコードやデータの修正を終了する。
なお、本実施の形態においては、テーブル生成処理を実施してから動的パッチ処理を実施するものとして説明するが、動的パッチ処理を実施した後、テーブル生成処理を実施してもよいことは勿論である。また、動的パッチ処理を実行しながら、テーブルを生成してもよい。
高速再起動制御部2は、メモリに既にロードされているオペレーティングシステム311のコードやデータすなわちイメージを再利用して行われる再起動処理(高速再起動処理)を実行する。高速再起動処理は、例えばダウンタイムを最小化したい情報処理装置において、通常の再起動処理に代わって用いられる再起動処理である。通常のオペレーティングシステムの再起動処理は、動作中のオペレーティングシステムがシャットダウンした後、ブートローダが2次記憶部からオペレーティングシステムのコードやデータを読み出し、これらをメモリに展開し、実行することにより実現される。一方、高速再起動処理においては、ブートローダは第2次記憶からオペレーティングシステムを読み出すことなく、前回の起動によって既にメモリ上に展開されているオペレーティングシステム311のイメージを実行する。このため、高速再起動処理では、通常の再起動処理に比べ短時間で再起動を行うことが可能である。なお、いずれの場合でも、オペレーティングシステム311は、再起動の際に、オペレーティングシステム311が使用するための第1の記憶領域31を有効化する。
加えて、高速再起動制御部2は、オペレーティングシステム311の起動が完了する前に、変更領域管理テーブル312を参照し、全てのレコードについて以下の処理を行う。高速再起動制御部2は、変更領域管理テーブル312に記録されているすべての変更前情報を、動的パッチ制御部1が動的パッチ処理を実行する前に変更前情報が記録されていた領域に書き戻す。具体的には、変更領域管理テーブル312に変更前情報のアドレス及びサイズが記録されているならば、高速再起動制御部2は、第1の記憶領域31内であって、このアドレス及びサイズにより特定される領域に変更前情報を書き込む。これにより、参照アドレスを含む変更後情報が、参照アドレスを含まない変更前情報に一旦書き戻される。
この時点では、オペレーティングシステム311は第1の記憶領域31以外を有効化していないため、第1の記憶領域31以外の参照アドレスを含む第1の変更後情報を実行すると、この参照アドレスの情報を読み出すことができず、例外エラーが発生する。これに対し、本実施の形態においては、変更領域管理テーブル312を参照し、参照アドレスを含む第1の変更後情報を参照アドレスを含まない変更前情報に書き戻すことにより、例外エラーの発生を未然に防ぐことが可能となる。
その後、高速再起動制御部2は、動的パッチプログラムに動的パッチ処理を再度実行させる。動的パッチプログラムがメモリにロードされると、動的パッチプログラムが使用するための記憶領域すなわち第2の記憶領域32が有効化される。これにより、オペレーティングシステム311が第2の記憶領域32に記録されている第2の変更後情報を読み出すことが可能となる。つづいて、動的パッチプログラムは動的パッチ処理を実行する。すなわち、変更前情報を単に変更後情報で上書きするか、参照アドレスを含む第1の変更後情報で上書きするとともに第2の記憶領域32に第2の変更後情報を記録する。なお、高速再起動後の処理においては、動的パッチプログラムはテーブル生成処理を省略するものとしてよい。
かかる処理により、高速再起動制御部2は、オペレーティングシステム311を高速再起動処理前の状態に復元することができる。
次に、図3に示すフローチャート、図5及び図2を用いて、動的パッチ制御部1(動的パッチプログラム)が行うテーブル生成処理及び動的パッチ処理のフローを説明する。
まず、動的パッチプログラムがメモリにロードされると、動的パッチプログラムが使用するための仮想記憶領域すなわち第2の記憶領域32が定義される。このときの記憶部3の状態を図5に示す(F1)。その後、動的パッチプログラムが実行を開始する(ステップS1)。
はじめに、動的パッチプログラムはテーブル生成処理を行う。動的パッチプログラムは、変更前情報と変更後情報との組み合わせを予め一又は複数保有している。かかる組み合わせのすべてについて、動的パッチプログラムは以下のステップS3及びステップS4に示す処理を行う(ステップS2)。動的パッチプログラムは、変更後情報が参照アドレスを含んでいるか、すなわち第1の変更後情報と第2の変更後情報とからなる変更後情報であるか否かを検査する(ステップS3)。参照アドレスを含んでいる場合、動的パッチプログラムは、変更領域管理テーブル312に変更前情報を記録する。また、変更前情報が記録されていた領域のアドレス及びサイズをさらに記録する(ステップS4)。このときの変更領域管理テーブル312の状態を図2に示す。すべての組み合わせについて上記の処理を行ったなら、ステップS6に移行する(ステップS5)。
つづいて、動的パッチプログラムは動的パッチ処理を行う。動的パッチプログラムは、動作中のオペレーティングシステム311のコードやデータを修正する。具体的には、変更後情報が参照アドレスを含まない場合、動的パッチプログラムは、変更後情報で変更前情報を単に上書きする。このときの記憶部3の状態を図5に示す(F2)。一方、変更後情報が参照アドレスを含む場合、すなわち第1の変更後情報及び第2の変更号情報から構成されている場合は、第1の変更後情報で変更前情報を上書きし、第2の記憶領域32にも第2の変更後情報を記録する(ステップS6)。このときの記憶部3の状態を図5に示す(F3)。
次に、図4に示すフローチャート及び図6を用いて高速再起動制御部2による処理フローを説明する。
まず、高速再起動制御部2は、メモリに既にロードされているオペレーティングシステム311のイメージを再利用して、高速再起動処理を実行する。具体的には、高速再起動制御部2は、2次記憶からオペレーティングシステムを読み出すことなく、前回の起動時に既にメモリ上に展開されたオペレーティングシステム311のイメージを、ブートローダに再実行させる。かかる高速再起動においては、再起動前のメモリイメージは失われず、そのまま保持される。しかしながら、オペレーティングシステム311は再起動の際、第1の記憶領域31のみを有効化するので、再起動直後の時点では、オペレーティングシステム311は第1の記憶領域31以外の記憶領域、例えば第2の記憶領域32の内容を参照することはできない(ステップS7)。このときの記憶部3の状態を図6に示す(F4)。
つづいて、高速再起動制御部2は、変更領域管理テーブル312を参照し、すべてのレコードについて、以下のステップS9に示す処理を行う(ステップS8)。高速再起動制御部2は、変更領域管理テーブル312に含まれる変更前情報を、そのアドレス及びサイズ情報に基づきオペレーティングシステム311に書き戻す。具体的には、高速再起動制御部2は、第1の記憶領域31のそのアドレス及びサイズにより特定される領域に変更前情報を書き込む(ステップS9)。このときの記憶部3の状態を図6に示す(F5)。すべてのレコードについて上記の処理を行ったなら、ステップS11に移行する(ステップS10)。
さらに、高速再起動制御部2は、オペレーティングシステム311の起動にかかる所定の初期化処理を実施した後(ステップS11)、動的パッチ制御部1に動的パッチ処理を再度実行させる(ステップS12)。動的パッチ制御部1が動的パッチプログラムを再度メモリにロードすると、この時点より、オペレーティングシステム311は第2の記憶領域32のコードやデータを参照することが可能となる。この後、高速再起動制御部2は動的パッチプログラムに動的パッチ処理を実行させる。動的パッチプログラムは、変更前情報を単に変更後情報で上書きするか、参照アドレスを含む第1の変更後情報で上書きするとともに第2の記憶領域32に第2の変更後情報を記録する。これにより、ステップS9において一旦書き戻された変更前情報が再度変更後情報に変更される。すなわち、オペレーティングシステム311は、高速再起動を行う前の状態に復帰する。このときの記憶部3の状態を図6に示す(F6)。
このような一連の処理により、オペレーティングシステム311に適用した動的パッチがオペレーティングシステム311が展開する記憶領域31以外を参照するものであったとしても、例外エラーを発生させることなく、オペレーティングシステム311の高速再起動を実行することができる。
実施の形態2
次に、本発明の実施の形態2にかかる構成について説明する。実施の形態2は、実施の形態1と同様、図1に示す要素により構成される。ただし、本実施の形態は、変更領域管理テーブル312に第1の変更後情報がさらに記録される点が上述の実施の形態1と異なる。かかる変更領域管理テーブル312を図7に示す。
まず、かかる変更領域管理テーブル312を用いる場合の、動的パッチ制御部1による処理フローを説明する。
本実施の形態についても、図3に示したフローチャート、図5及び図7を用いて説明する。ステップS1からステップS3にかかる処理は、実施の形態1と同様であるので説明を省略する。ステップS4において、動的パッチプログラムは、変更後情報が参照アドレスを含む場合、すなわち第1の変更後情報と第2の変更後情報とからなる変更後情報である場合、変更領域管理テーブル312に、変更前情報と第1の変更後情報とを少なくとも記録する。また、変更前情報が記録されている第1の記憶領域31内の領域のアドレス及びサイズをさらに記録する(ステップS103)。このときの変更領域管理テーブル312の状態を図7に示す。以下、ステップS5からステップS6にかかる処理については、実施の形態1と同様である。
次に、図8に示すフローチャート及び図9を用いて、かかる変更領域管理テーブル312を用いる場合の、高速再起動制御部2による処理フローを説明する。
ステップS7からステップS11にかかる処理は、実施の形態1と同様であるので説明を省略する。その後、高速再起動制御部2は、動的パッチプログラムの初期化処理を実施する。すなわち、高速再起動制御部2は、オペレーティングシステム311によって動的パッチプログラムをメモリにロードする。この際、オペレーティングシステム311が第2の記憶領域32を有効化する。この時点より、第1の記憶領域31に展開するオペレーティングシステム311は第2の記憶領域32のコードやデータを参照することが可能となる(ステップS13)。このときの記憶部3の状態を図9に示す(F7)。
つづいて、高速再起動制御部2は、変更領域管理テーブル312を参照し、全てのレコードについて、以下のステップS15に示す処理を行う(ステップS14)。高速再起動制御部2は、レコードに含まれる変更後情報を、オペレーティングシステム311のコードやデータ中の、以前変更後情報が記録されていた領域に書き戻す。具体的には、レコードにアドレス及びサイズにかかる情報が記録されているならば、高速再起動制御部2は、第1の記憶領域31内のそのアドレス及びサイズにより特定される領域に変更後情報を書き込む(ステップS15)。すべてのレコードについて上記の処理を行ったなら、処理を終了する(ステップS16)。これにより、ステップS9において一旦書き戻された変更前情報は再度変更後情報に変更される。すなわち、オペレーティングシステム311は高速再起動を行う前の状態に復帰する。このときの記憶部3の状態を図9に示す(F8)。
実施の形態2にかかる高速再起動制御部2によれば、実施の形態1のように動的パッチプログラムを実行せずに高速再起動前の状態を復元できるため、より短時間で高速再起動処理を完了することができる。
その他の実施の形態
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、実施の形態1及び2において、高速再起動制御部2は、オペレーティングシステム311の高速再起動後に変更前情報の書き戻し(ステップS9)を行っているが(図4及び図8参照)、オペレーティングシステム311のシャットダウン前に変更前情報の書き戻しを行っておき、かかる後に高速再起動を行うこととしてもよい。
また、実施の形態1及び2において、動的パッチ制御部1は、変更後情報が参照アドレスを含んでいる場合に、変更領域管理テーブル312に少なくとも変更後情報に対応する変更前情報を記録し、高速再起動制御部2は、高速再起動の際、変更領域管理テーブル312を参照して、オペレーティングシステム311の一部である変更後情報を変更前情報に変更することとしているが、動的パッチ制御部1は、すべての場合に、変更領域管理テーブル312に変更前情報及び変更後情報を記録し、高速再起動制御部2は、高速再起動の際、変更領域管理テーブル312を参照して、変更後情報が第2の記憶領域32への参照を含んでいる場合に、オペレーティングシステムの一部である変更後情報を、変更後情報に対応する変更前情報に変更することとしてもよい。
なお、オペレーティングシステム311の一部である変更後情報を、変更後情報に対応する変更前情報に変更するのは、高速再起動制御部2であってもよく、オペレーティングシステム311の一部の機能により読み出された専用のプログラムが行ってもよい。また、オペレーティングシステム311は、変更前情報に書き戻される前であっても一部の機能を起動させることができ、これを使用して、オペレーティングシステム311自身が行ってもよい。
さらに、本発明の構成要素は、各々必ずしも単一の機器に実装されている必要はなく、例えばネットワークにより接続された複数の機器に分散されて実装されているものであってよい。例えば、サーバに複数台のクライアントが接続されており、各クライアントが同じオペレーティングシステムを使用している場合において、サーバに共通の変更領域管理テーブル312を保存しておき、クライアントがその変更領域管理テーブル312を各々参照するよう構成してもよい。また、サーバに設けられた動的パッチ制御部1が、ネットワークを介して各クライアントのオペレーティングシステムを修正することとしてもよい。
上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
オペレーティングシステムと、
前記オペレーティングシステムの一部を修正する修正機能と、前記修正履歴を変更領域管理テーブルに保存するテーブル生成機能とを有する動的パッチ制御手段と、
前記変更領域管理テーブル及び前記オペレーティングシステムが記憶される第1の記憶領域と、前記オペレーティングシステムにより有効とされる第2の記憶領域とを有する記憶手段と、
前記第1の記憶領域に記憶された前記オペレーティングシステムを再実行することで高速再起動させる高速再起動制御手段とを有し、
前記オペレーティングシステムは起動時に前記第1の記憶領域を有効とし、
前記動的パッチ制御手段は、前記第2の記憶領域が有効とされると、前記修正機能により前記オペレーティングシステムの一部である変更前情報を第1の変更後情報に修正し、前記第1の変更後情報によりアドレスが指定される第2の変更後情報を前記第2の記憶領域に記録すると共に、前記テーブル生成機能により前記変更領域管理テーブルに少なくとも前記変更前情報を記録し、
前記高速再起動制御手段が前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルが参照され、前記オペレーティングシステムの前記第1の変更後情報が前記変更前情報に変更される
情報処理装置。
(付記2)
前記高速再起動制御手段は、前記高速再起動の際、前記動的パッチ制御手段を起動し、
前記動的パッチ制御手段は、前記第2の記憶領域が有効とされると、前記修正機能により前記オペレーティングシステムの前記変更前情報を前記第1の変更後情報に修正する
付記1記載の情報処理装置。
(付記3)
前記動的パッチ制御手段は、前記テーブル生成機能により、前記変更領域管理テーブルに前記第1の変更後情報をさらに記録し、
前記高速再起動制御手段は、前記高速再起動の際、前記第2の記憶領域が有効とされると、前記変更領域管理テーブルを参照して、前記オペレーティングシステムの前記変更前情報を前記第1の変更後情報に修正する
付記1記載の情報処理装置。
(付記4)
前記動的パッチ制御手段は、前記テーブル生成機能により、前記変更領域管理テーブルに、前記変更前情報が記録されていたアドレスを特定するアドレス情報をさらに記録し、
前記高速再起動制御手段が前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルが参照され、前記アドレス情報により特定されるアドレスに記録されている前記第1の変更後情報が前記変更前情報に変更される
付記1乃至3のいずれか1項記載の情報処理装置。
(付記5)
第1の記憶領域に記録されたオペレーティングシステムの一部を修正する動的パッチ制御手段により、前記オペレーティングシステムの一部である変更前情報を第1の変更後情報に修正すると共に、前記第1の変更後情報によりアドレスが指定される第2の変更後情報を第2の記憶領域に記録する修正ステップと、
前記第1の記憶領域に記録された変更領域管理テーブルに、少なくとも前記変更前情報を登録するテーブル生成ステップと、
前記オペレーティングシステムを再実行することで高速再起動させる高速再起動ステップと、
前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルを参照し、前記オペレーティングシステムの前記第1の変更後情報を前記変更前情報に変更する変更ステップとを有する、
情報処理方法。
(付記6)
前記第1の記憶領域は、前記オペレーティングシステムの起動時に有効とされる領域であって、
前記第2の記憶領域は、前記動的パッチ制御手段の起動時に有効とされる領域である、
付記5記載の情報処理方法。
(付記7)
前記高速再起動ステップでは、前記高速再起動の際、前記修正ステップを実行し、
前記修正ステップでは、前記オペレーティングシステムの前記変更前情報を前記第1の変更後情報に変更する
付記6記載の情報処理方法。
(付記8)
前記テーブル生成ステップでは、前記変更領域管理テーブルに前記第1の変更後情報をさらに記録し、
前記高速再起動ステップでは、前記高速再起動の際、前記第2の記憶領域を有効とし、前記変更領域管理テーブルを参照して、前記オペレーティングシステムの前記変更前情報を前記第1の変更後情報に修正する
付記6記載の情報処理方法。
(付記9)
前記テーブル生成ステップでは、前記変更領域管理テーブルに前記変更前情報が記録されていたアドレスを特定するアドレス情報をさらに記録し、
前記変更ステップでは、前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルを参照し、前記アドレス情報により特定されるアドレスに記録されている前記第1の変更後情報を前記変更前情報に変更する
付記6乃至8のいずれか1項記載の情報処理方法。
(付記10)
コンピュータに、
第1の記憶領域に記録されたオペレーティングシステムの一部を修正する動的パッチ制御手段により、前記オペレーティングシステムの一部である変更前情報を第1の変更後情報に修正すると共に、前記第1の変更後情報によりアドレスが指定される第2の変更後情報を第2の記憶領域に記録する修正ステップと、
前記第1の記憶領域に記録された変更領域管理テーブルに、少なくとも前記変更前情報を登録するテーブル生成ステップと、
前記オペレーティングシステムを再実行することで高速再起動させる高速再起動ステップと、
前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルを参照し、前記オペレーティングシステムの前記第1の変更後情報を前記変更前情報に変更する変更ステップとを実行させる、
プログラム。
(付記11)
前記第1の記憶領域は、前記オペレーティングシステムの起動時に有効とされる領域であって、
前記第2の記憶領域は、前記動的パッチ制御手段の起動時に有効とされる領域である、
付記10記載のプログラム。
(付記12)
前記高速再起動ステップでは、前記高速再起動の際、前記修正ステップを実行し、
前記修正ステップでは、前記オペレーティングシステムの前記変更前情報を前記第1の変更後情報に変更する
付記11記載のプログラム。
(付記13)
前記テーブル生成ステップでは、前記変更領域管理テーブルに前記第1の変更後情報をさらに記録し、
前記高速再起動ステップでは、前記高速再起動の際、前記第2の記憶領域を有効とし、前記変更領域管理テーブルを参照して、前記オペレーティングシステムの前記変更前情報を前記第1の変更後情報に修正する
付記11記載のプログラム。
(付記14)
前記テーブル生成ステップでは、前記変更領域管理テーブルに前記変更前情報が記録されていたアドレスを特定するアドレス情報をさらに記録し、
前記変更ステップでは、前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルを参照し、前記アドレス情報により特定されるアドレスに記録されている前記第1の変更後情報を前記変更前情報に変更する
付記11乃至13のいずれか1項記載のプログラム。
1 動的パッチ制御部
2 高速再起動制御部
3 記憶部
31 第1の記憶領域
32 第2の記憶領域
311 オペレーティングシステム
312 変更領域記憶テーブル

Claims (8)

  1. オペレーティングシステムと、
    前記オペレーティングシステムの一部を修正する修正機能と、前記修正履歴を変更領域管理テーブルに保存するテーブル生成機能とを有する動的パッチ制御手段と、
    前記変更領域管理テーブル及び前記オペレーティングシステムが記憶される第1の記憶領域と、前記オペレーティングシステムにより有効とされる第2の記憶領域とを有する記憶手段と、
    前記第1の記憶領域に記憶された前記オペレーティングシステムを再実行することで高速再起動させる高速再起動制御手段とを有し、
    前記オペレーティングシステムは、前記オペレーティングシステムの起動時に前記第1の記憶領域を有効とし、
    前記動的パッチ制御手段は、前記動的パッチ制御手段の起動時に前記第2の記憶領域有効と、前記修正機能により前記オペレーティングシステムの一部である変更前情報を第1の変更後情報に修正し、前記第1の変更後情報によりアドレスが指定される第2の変更後情報を前記第2の記憶領域に記録すると共に、前記テーブル生成機能により前記変更領域管理テーブルに少なくとも前記変更前情報を記録し、
    前記高速再起動制御手段が前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルが参照され、前記オペレーティングシステムの前記第1の変更後情報が前記変更前情報に変更される
    情報処理装置。
  2. 前記高速再起動制御手段は、前記高速再起動の際、前記動的パッチ制御手段を起動し、
    前記動的パッチ制御手段は、前記第2の記憶領域が有効とされると、前記修正機能により前記オペレーティングシステムの前記変更前情報を前記第1の変更後情報に修正する
    請求項1記載の情報処理装置。
  3. 前記動的パッチ制御手段は、前記テーブル生成機能により、前記変更領域管理テーブルに前記第1の変更後情報をさらに記録し、
    前記高速再起動制御手段は、前記高速再起動の際、前記第2の記憶領域が有効とされると、前記変更領域管理テーブルを参照して、前記オペレーティングシステムの前記変更前情報を前記第1の変更後情報に修正する
    請求項1記載の情報処理装置。
  4. 前記動的パッチ制御手段は、前記テーブル生成機能により、前記変更領域管理テーブルに、前記変更前情報が記録されていたアドレスを特定するアドレス情報をさらに記録し、
    前記高速再起動制御手段が前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルが参照され、前記アドレス情報により特定されるアドレスに記録されている前記第1の変更後情報が前記変更前情報に変更される
    請求項1乃至3のいずれか1項記載の情報処理装置。
  5. 第1の記憶領域に記録されたオペレーティングシステムの一部を修正する動的パッチ制御手段により、前記オペレーティングシステムの一部である変更前情報を第1の変更後情報に修正すると共に、前記第1の変更後情報によりアドレスが指定される第2の変更後情報を第2の記憶領域に記録する修正ステップと、
    前記第1の記憶領域に記録された変更領域管理テーブルに、少なくとも前記変更前情報を登録するテーブル生成ステップと、
    前記オペレーティングシステムを再実行することで高速再起動させる高速再起動ステップと、
    前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルを参照し、前記オペレーティングシステムの前記第1の変更後情報を前記変更前情報に変更する変更ステップとを有し、
    前記第1の記憶領域は、前記オペレーティングシステムの起動時に有効とされる領域であって、
    前記第2の記憶領域は、前記動的パッチ制御手段の起動時に有効とされる領域である
    情報処理方法。
  6. 前記高速再起動ステップでは、前記高速再起動の際、前記修正ステップを実行し、
    前記修正ステップでは、前記オペレーティングシステムの前記変更前情報を前記第1の変更後情報に修正する
    請求項記載の情報処理方法。
  7. 前記テーブル生成ステップでは、前記変更領域管理テーブルに前記第1の変更後情報をさらに記録し、
    前記高速再起動ステップでは、前記高速再起動の際、前記第2の記憶領域を有効とし、前記変更領域管理テーブルを参照して、前記オペレーティングシステムの前記変更前情報を前記第1の変更後情報に修正する
    請求項記載の情報処理方法。
  8. コンピュータに、
    第1の記憶領域に記録されたオペレーティングシステムの一部を修正する動的パッチ制御手段により、前記オペレーティングシステムの一部である変更前情報を第1の変更後情報に修正すると共に、前記第1の変更後情報によりアドレスが指定される第2の変更後情報を第2の記憶領域に記録する修正ステップと、
    前記第1の記憶領域に記録された変更領域管理テーブルに、少なくとも前記変更前情報を登録するテーブル生成ステップと、
    前記オペレーティングシステムを再実行することで高速再起動させる高速再起動ステップと、
    前記高速再起動を行う直前又は高速再起動時に、前記変更領域管理テーブルを参照し、前記オペレーティングシステムの前記第1の変更後情報を前記変更前情報に変更する変更ステップとを実行させるプログラムであって、
    前記第1の記憶領域は、前記オペレーティングシステムの起動時に有効とされる領域であって、
    前記第2の記憶領域は、前記動的パッチ制御手段の起動時に有効とされる領域である
    プログラム。
JP2011031784A 2011-02-17 2011-02-17 情報処理装置、情報処理方法及びプログラム Expired - Fee Related JP5668518B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011031784A JP5668518B2 (ja) 2011-02-17 2011-02-17 情報処理装置、情報処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011031784A JP5668518B2 (ja) 2011-02-17 2011-02-17 情報処理装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2012173754A JP2012173754A (ja) 2012-09-10
JP5668518B2 true JP5668518B2 (ja) 2015-02-12

Family

ID=46976643

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011031784A Expired - Fee Related JP5668518B2 (ja) 2011-02-17 2011-02-17 情報処理装置、情報処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5668518B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6202145B1 (en) * 1998-12-14 2001-03-13 International Business Machines Corporation System and method for eliminating a ring transition while executing in protected mode
JP4683218B2 (ja) * 2004-01-27 2011-05-18 日本電気株式会社 高速再起動方法および情報処理装置ならびにプログラム
JP4931711B2 (ja) * 2007-07-02 2012-05-16 日本電信電話株式会社 カーネル更新方法、情報処理装置、プログラムおよび記憶媒体

Also Published As

Publication number Publication date
JP2012173754A (ja) 2012-09-10

Similar Documents

Publication Publication Date Title
CN109634645B (zh) 固件升级方法及终端
US8032740B2 (en) Update in-use flash memory without external interfaces
CN104572229B (zh) 嵌入式系统的固件升级方法以及固件升级装置
KR101636870B1 (ko) 최소 부트 이미지의 생성 방법 및 장치
WO2019019643A1 (zh) 应用程序热更新方法、装置、终端和存储介质
US20130232325A1 (en) Electronic device to restore mbr, method thereof, and computer-readable medium
US20090094450A1 (en) Firmware image update and management
JP5161696B2 (ja) 仮想計算機システムおよび仮想計算機システムにおけるエラー回復方法ならびに仮想計算機制御プログラム
US9547345B2 (en) System and method for safely updating thin client operating system over a network
CN106775610B (zh) 一种电子设备启动方法及一种电子设备
JP6157811B2 (ja) ブート前データ検証のための方法及びシステム
US9715398B2 (en) Program code loading method of application and computing system using the same
US8788800B2 (en) OS processing method, system and non-transitory computer readable storage medium thereof
JP2011095952A (ja) ファームウェア更新方法および電子機器
JP2001331327A (ja) 電子機器
CN109189480B (zh) 文件系统启动方法及装置
CN113157303A (zh) 升级方法、嵌入式系统、终端及计算机存储介质
CN113032183A (zh) 系统管理方法、装置、计算机设备和存储介质
JP5668518B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2011175352A (ja) ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム
GB2518671A (en) Multiple Processor System
US9971659B1 (en) Memory programming providing corruption protection
US20170357558A1 (en) Apparatus and method to enable a corrected program to take over data used before correction thereof
JP6149624B2 (ja) ファームウェア実行装置、ファームウェア実行方法、コンピュータ・プログラム、および、コンピュータ装置
WO2021153224A1 (ja) 情報処理装置および情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141029

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141201

R150 Certificate of patent or registration of utility model

Ref document number: 5668518

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees