説明

更新起動装置及び更新起動制御方法

【課題】本発明は、複数のOSのうちの更新に関係するOSのみを再起動するとともに、電源投入がなされたときは更新に関係しないOSを迅速に起動させることを目的とする。
【解決手段】 ディスパッチャー167は、電源投入時又はOSの再起動時にOSに対応するOS更新情報が記憶されている場合にはOS更新情報を用いてOSプログラムを更新した後にOSを起動する。ディスパッチャー167は、電源投入時にOSに対応するOS更新情報が記憶されていない場合にはOSを起動する。ディスパッチャー167は、OSの再起動時にそのOSとは異なるOSに対応するOS更新情報が記憶されていない場合には異なるOSの再起動を中止する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、オペレーティングシステム(以下、OS)を構成するプログラムを更新し、その後に当該OSを起動する更新起動装置及び更新起動制御方法に関する。
【背景技術】
【0002】
従来、携帯電話機又はPDA(Personal Digital Assistant)等の計算装置は、利用者の入力操作に応じて、OSなどを構成するプログラムの不具合が改善された更新プログラムを含む更新情報をネットワーク経由で取得する。計算装置は、その更新情報を用いて不具合のあるプログラムを更新している(例えば、特許文献1参照;プログラム更新処理)。
【0003】
また、複数のOSを同時に実行する計算装置も提供されている。この計算装置で実行される複数のOSの組合せには、リアルタイム制御を実行するリアルタイムOSとLinux(登録商標)又はWindows(登録商標)などの広く用いられている汎用OSとの組合せ(例えば、特許文献2参照)、又はある信頼度のプロセスを実行するTrusted OSとその信頼度よりも低い信頼度のプロセスを実行するUntrusted OSとの組合せ(例えば、特許文献3参照)などが含まれている。
【0004】
上記計算装置は、全てのOSを起動する処理(全OS起動処理)のみならずに、一のOSのみを起動する処理(一部OS起動処理)も実行することができる。例えば、計算装置は、第1OS及び第2OSのうちの第2OSのみに障害が発生した場合には、第2OSのみを再起動することができる。
【特許文献1】US特許第6832373号
【特許文献2】US公開特許第2004/205755号
【特許文献3】US公開特許第2005/0033908号
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、上記プログラム更新処理と上記全OS起動処理との組合せ(組合せ処理1)、又は上記プログラム更新処理と上記一部OS起動処理との組合せ(組合せ処理2)が考えられる。以下では、組合せ処理1及び組合せ処理2が実行されたときの問題点について詳細に述べる。
【0006】
図9は、上記組合せ処理1及び組合せ処理2が用いられたときの計算装置のソフトウェア構成図である。図10は、上記組合せ処理1及び組合せ処理2が用いられたときの計算装置の処理動作を示す図である。
【0007】
図9に示すように、計算装置は、ブートプログラム11と、ブートプログラム11からの指示命令により、第1OS14又は第2OS15を構成するプログラムを更新する更新エージェント12と、ブートプログラム11からの指示命令により第1OS14又は第2OS15を起動するディスパッチャー13と、ダウンロードされた更新情報を記憶する更新情報記憶部20とを備えている。
【0008】
なお、ブートプログラム11及び更新エージェント12は、上記プログラム更新処理を実行するものである。ディスパッチャー13は、上記全OS起動処理又は上記一部OS起動処理を実行するものである。
【0009】
図10に示すように、S1において、計算装置の起動時(電源投入時又は再起動時)には、ブートプログラム11が起動される。S3において、ブートプログラム11は、更新情報が存在することを示す「有情報」が更新情報記憶部20に記憶されている場合には、更新エージェント12を起動する。S5において、更新エージェント12は、更新情報を用いてディスパッチャー13又はOSの更新を実行し、「有情報」を削除する。S9において、ブートプログラム11は、「有情報」が更新情報記憶部20に記憶されていない場合には、ディスパッチャー13を起動する。
【0010】
S11及びS13において、ディスパッチャー13は、第1OS14及び第2OS15のメモリ領域を確保し、第1OS14及び第2OS15を起動する。ここまでの処理は、上記組合せ処理1に該当する。
【0011】
又は、ディスパッチャー13は、全てのOSを起動するのではなく、一のOSのみを起動することもできる。ここまでの処理は、上記組合せ処理2に該当する。
【0012】
しかしながら、上記組合せ処理1が実行される場合には、更新に関係するOSのみならずに、更新に関係しないOSも再起動される(S9〜S13)。このため、計算装置は、更新に関係しないOSを動作させながら、更新に関係するOSのみを再起動させることができず、更新に関係しないOSの稼働率を向上させることができない。
【0013】
一方、上記組合せ処理2が実行される場合には、更新に関係するOSのみを再起動させることができるため、上記組合せ処理1の問題点が解決されるものの、下記の問題点が生じる。
【0014】
具体的には、電源投入がなされたときに、第1OS14を構成するプログラムを更新するための更新情報が存在しないものの、第2OS15を構成するプログラムを更新するための更新情報が存在する場合には、必ず上記プログラム更新処理(図10に示すS1〜S7)が実行される。そして、その後に上記一部OS起動処理が実行される。
【0015】
このため、電源投入がなされた場合には上記プログラム更新処理が終了しなければ、更新に関係しない第1OS14も起動されないことになる。これにより、計算装置は、電源投入がなされた場合には更新に関係しないOSを迅速に起動させることができず、当該OSの稼働率を向上させることができない。
【0016】
そこで、本発明は以上の点に鑑みて成されたものであり、複数のOSのうちの更新に関係するOSのみを再起動するとともに、電源投入がなされたときは更新に関係しないOSを迅速に起動させることができる更新起動装置及び更新起動制御方法を提供することを目的とする。
【課題を解決するための手段】
【0017】
上記課題を解決するために、本発明の第1の特徴は、複数のOSを起動するOS起動処理部(例えば、ディスパッチャー167,第2更新エージェント166)と、OS起動処理部を起動する初期起動処理部(例えば、ブートローダー168)と、複数のOSのうちのいずれかのOSを構成するOSプログラムを更新するためのOS更新情報を記憶する更新情報記憶部(例えば、更新情報記憶部150)とを備え、OS起動処理部は、電源投入時又はOSの再起動時にOSに対応するOS更新情報が記憶されている場合にはOS更新情報を用いてOSプログラムを更新した後にOSを起動し、電源投入時にOSに対応するOS更新情報が記憶されていない場合にはOSを起動し、OSの再起動時にそのOSとは異なるOSに対応するOS更新情報が記憶されていない場合には異なるOSの再起動を中止することを要旨とする。
【0018】
かかる特徴によれば、OSの再起動時にそのOSとは異なるOSに対応するOS更新情報が記憶されていない場合には、当該異なるOSの再起動が中止される。すなわち、当該異なるOSの動作が継続される。このため、更新に関係しないOSを動作させながら、更新に関係するOSのみを再起動させることができ、更新に関係しないOSの稼働率を向上することができる。
【0019】
また、電源投入時又はOSの再起動時には、初期起動処理部によりOSプログラムが更新(図10に示すS1〜S7参照)されるのではなく、OS起動処理部によりOSプログラムが更新される。また、電源投入時には、OS起動処理部により更新に関係しないOSが起動される。
【0020】
このため、初期起動処理部がOSプログラムを更新する処理を実行しない分、OS起動処理部は、電源投入時においては更新に関係しないOSを迅速に再起動することができ、当該OSの稼働率を向上させることができる。
【0021】
本発明の第2の特徴は、更新情報記憶部は、OS起動処理部を構成する起動プログラムの更新が未完了であることを条件に複数のOSのうちのいずれかのOSを構成するOSプログラムの更新を中止するための更新中止情報を記憶し、OS起動処理部は、電源投入時又はOSの再起動時に、更新中止情報が記憶されていない場合にはOS更新情報を用いてOSプログラムを更新し、更新中止情報が記憶されている場合にはOSプログラムの更新を中止することを要旨とする。
【0022】
本発明の第3の特徴は、複数のOSは、第1OSと第2OSとを備えており、更新情報記憶部は、第1OSを構成する第1OSプログラムの更新が未完了であることを条件に第2OSを構成する第2OSプログラムの更新を中止するための更新中止情報を記憶し、OS起動処理部は、電源投入時又は第2OSの再起動時に、更新中止情報が記憶されていない場合にはOS更新情報を用いて第2OSプログラムを更新し、更新中止情報が記憶されている場合には第2OSプログラムの更新を中止することを要旨とする。
【0023】
本発明の第4の特徴は、OS起動処理部は、起動プログラムを更新した場合には、更新中止情報を削除することを要旨とする。
【0024】
本発明の第5の特徴は、OS起動処理部は、第1OSプログラムを更新した場合には、更新中止情報を削除することを要旨とする。
【0025】
本発明の第6の特徴は、更新情報記憶部は、OS起動処理部を構成する起動プログラムを更新するための起動更新情報を記憶し、初期起動処理部は、電源投入時又はOSの再起動時に、起動更新情報が記憶されている場合には起動更新情報を用いて起動プログラムを更新し、起動更新情報が記憶されていない場合にはOS起動処理部を起動することを要旨とする。
【0026】
本発明の第7の特徴は、複数のOSは第1OSと第2OSとを備えており、更新情報記憶部は、第1OSを構成する第1OSプログラムの更新が未完了であることを条件に第2OSの起動を中止するための起動中止情報を記憶し、OS起動処理部は、電源投入時又はOSの再起動前に起動中止情報が記憶されていない場合には第2OSを起動し、電源投入時又はOSの再起動前に起動中止情報が記憶されている場合には第2OSの起動を中止することを要旨とする。
【0027】
本発明の第8の特徴は、OS起動処理部は、第1OSプログラムを更新した場合には、起動中止情報を削除することを要旨とする。
【発明の効果】
【0028】
本発明の特徴によれば、複数のOSのうちの更新に関係するOSのみを再起動するとともに、電源投入がなされたときは更新に関係しないOSを迅速に起動させることができる。
【発明を実施するための最良の形態】
【0029】
[第1実施形態]
(計算装置の構成)
図1は、本実施形態における計算装置100の概略構成図である。図1に示すように、計算装置100は、CPU110と、通信部120と、カード読取部130と、入出力部140と、更新情報記憶部150と、制御プログラム記憶部160とを備えている。
【0030】
CPU110は、制御プログラム記憶部160に記憶されているプログラムに従って該当する処理を実行する。通信部120は、外部装置(図示せず)から所定情報(更新情報など)をダウンロードし、ダウンロードした所定情報を更新情報記憶部150に記憶する(図3参照)。カード読取部130は、SIMカードに記憶された加入者識別情報を読み込んだり、その他のカードに記憶された情報を読み込む。入出力部140は、文字、記号、数字又は画像など情報を入出力する。
【0031】
更新情報記憶部150は、ディスパッチャー更新用記憶領域151と、第1OS更新用記憶領域152と、第2OS更新用記憶領域153とを備えている(図3参照)。なお、第1OS更新用記憶領域152、第2OS更新用記憶領域153の2つに限定されるわけではなく、OSの数が増加されることに伴い、当該更新用記憶領域の数が増加されてもよいのは勿論のことである。
【0032】
ディスパッチャー更新用記憶領域151は、第1更新有無情報と、第1更新参照情報と、第1更新情報(起動更新情報)とを記憶する領域である。第1更新有無情報には、第1更新情報が存在することを示す「有情報」が含まれている。第1更新参照情報には、第1更新情報が記憶されているアドレス情報が含まれている。第1更新情報には、ディスパッチャー167を構成するプログラム(起動プログラム)の一部又は全部を更新するための更新プログラムが含まれている。
【0033】
第1OS更新用記憶領域152は、第2−1更新有無情報と、第2−1更新参照情報と、第2−1更新情報(OS更新情報)とを記憶する領域である。第2−1更新有無情報には、第2−1更新情報が存在することを示す「有情報」が含まれている。第2−1更新参照情報には、第2−1更新情報が記憶されているアドレス情報が含まれている。第2−1更新情報には、第1OS163を構成する第1OSプログラムの一部又は全部を更新するための更新プログラムが含まれている。
【0034】
第2OS更新用記憶領域153は、第2−2更新有無情報と、第2−2更新参照情報と、第2−2更新情報(OS更新情報)とを記憶する領域である。第2−2更新有無情報には、第2−2更新情報が存在することを示す「有情報」が含まれている。第2−2更新参照情報には、第2−2更新情報が記憶されているアドレス情報が含まれている。第2−2更新情報には、第2OS164を構成する第2OSプログラムの一部又は全部を更新するための更新プログラムが含まれている。
【0035】
なお、更新プログラムは、更新前のOSプログラムの全体を書き換えるためのプログラムに限定される分けではなく、更新前のOSプログラムに対する差分のプログラムであってもよい。これにより、更新情報のデータ量がより低減される。
【0036】
制御プログラム記憶部160は、制御プログラム(ソフトウェア)を記憶する。図2は、本実施形態における制御プログラムの内容を示す図である。図3は、CPU110を用いて構成される制御プログラム構成(ソフトウェア構成)、及びその制御プログラム構成によりアクセスされるハードウェア構成を示す図である。
【0037】
図2に示すように、制御プログラムは、ダウンロードアプリケーション161と、他アプリケーション162と、第1OS163と、第2OS164と、第1更新エージェント165と、第2更新エージェント166と、ディスパッチャー167と、ブートローダー168とを備えている。
【0038】
ダウンロードアプリケーション161は、第1OS163及び第2OS164上で動作するプログラムである。ダウンロードアプリケーション161は、更新用ドライバー163a又は更新用ドライバー164bを介して外部装置(図示せず)から更新情報(ここでは、第1更新情報,第2−1更新情報,第2−2更新情報など)をダウンロードする。
【0039】
更新用ドライバー163a及び更新用ドライバー164bは、ダウンロードした更新情報に対応する更新有無情報(ここでは、第1更新有無情報,第2−1更新有無情報,第2−2更新有無情報)及び更新参照情報(ここでは、第1更新参照情報,第2−1更新参照情報,第2−2更新参照情報)を生成する。
【0040】
他アプリケーション162は、ダウンロードアプリケーション161以外のアプリケーションである。第1更新エージェント165は、記憶されている第1更新情報を用いて、ディスパッチャー167を構成する起動プログラムの一部又は全部を更新する。
【0041】
第2更新エージェント166は、第1OS163に対応する第2−1更新情報を用いて第1OS163を構成する第1OSプログラムの一部又は全部を更新する。又、第2更新エージェント166は、第2OS164に対応する第2−2更新情報を用いて第2OS164を構成する第2OSプログラムを更新する。
【0042】
ディスパッチャー167は、(1)第1OS163又は第2OS164のロード及び起動、(2)第1OS163又は第2OS164のメモリの割当及びその他のシステムリソースの割当、(3)CPU110における第1OS163又は第2OS164の時間割当(スケジューリング機能)、(4)OS間の通信を実行する。
【0043】
又、ディスパッチャー167は、第1OS用起動プログラム167aと、第2OS用起動プログラム167bとを備えている。
【0044】
第1OS用起動プログラム167aは、電源投入時又はOS(第1OS163又は第2OS164)の再起動時に、第1OS163に対応する第2−1更新情報が記憶されている場合には第2更新エージェント166を起動する。一方、第1OS用起動プログラム167aは、電源投入時に、第1OS163に対応する第2−1更新情報が記憶されていない場合には第1OS163を起動する。また、第1OS用起動プログラム167aは、第2OS164の再起動時に、第1OS163に対応する第2−1更新情報が記憶されていない場合には第1OS163の再起動を中止(第1OS163の処理を継続)する。
【0045】
具体的には、第1OS用起動プログラム167aは、電源投入時又はOS(第1OS163又は第2OS164)の再起動時に、第2−1更新有無情報に「有情報」が含まれている場合には、第1OS163を構成する第1OSプログラムを更新させるために第2更新エージェント166を起動する。一方、第1OS用起動プログラム167aは、電源投入時に、第2−1更新有無情報に「有情報」が含まれていない場合には、第1OS163を起動する。また、第1OS用起動プログラム167aは、第2OS164の再起動時に、第2−1更新有無情報に「有情報」が含まれていない場合には、第1OS163の再起動を中止する。
【0046】
第2OS用起動プログラム167bは、電源投入時又はOS(第1OS163又は第2OS164)の再起動時に、第2OS164に対応する第2−2更新情報が記憶されている場合には第2更新エージェント166を起動する。一方、第2OS用起動プログラム167bは、電源投入時に、第2OS164に対応する第2−2更新情報が記憶されていない場合には第2OS163を起動する。また、第2OS用起動プログラム167bは、第1OS163の再起動時に、第2OS164に対応する第2−2更新情報が記憶されていない場合には第2OS163の再起動を中止(第2OS163の処理を継続)する。
【0047】
具体的には、第2OS用起動プログラム167bは、電源投入時又はOS(第1OS163又は第2OS164)の再起動時に、第2−2更新有無情報に「有情報」が含まれている場合には、第2OS164を構成する第2OSプログラムを更新させるために第2更新エージェント166を起動する。一方、第2OS用起動プログラム167bは、電源投入時に、第2−2更新有無情報に「有情報」が含まれていない場合には、第2OS164を起動する。また、第2OS用起動プログラム167bは、第1OS163の再起動時に、第2−2更新有無情報に「有情報」が含まれていない場合には、第2OS164の再起動を中止する。
【0048】
なお、第2更新エージェント166及びディスパッチャー167は、OS起動処理部を構成する。
【0049】
ブートローダー168は、第1更新エージェント165又はディスパッチャー167を起動する。具体的には、ブートローダー168は、電源投入時又は再起動時に、第1更新有無情報に「有情報」が含まれている場合には第1更新エージェント165を起動する。ブートローダー168は、電源投入時又は再起動時に、第1更新有無情報に「有情報」が含まれていない場合にはディスパッチャー167を起動する。なお、ブートローダー168は、初期起動処理部を構成する。
【0050】
(計算装置の動作)
次に、本実施形態における計算装置100の動作について図4を参照しながら説明する。
【0051】
図4に示すように、S101において、ブートローダー168は、電源投入時又は再起動時に起動する。
【0052】
S103において、ブートローダー168は、第1更新有無情報に「有情報」が含まれているか否か判定する。また、ブートローダー168は、この判定がYESである場合には第1更新エージェント165を起動してS105の処理に移り、NOである場合にはS109の処理に移る。
【0053】
S105において、第1更新エージェント165は、第1更新参照情報に含まれるアドレス情報を用いて第1更新情報を取得する。第1更新エージェント165は、ディスパッチャー167を構成する起動プログラムの一部又は全部を、当該第1更新情報に含まれている更新プログラムに更新する。
【0054】
S107において、第1更新エージェント165は、第1更新有無情報を削除するとともに、第1更新参照情報及び第1更新情報を削除する。そして、S107の処理が終了すると、S101からの処理が再び開始され、S103では、第1更新有無情報が既に削除されているため、「NO」が判定される。
【0055】
S109において、ブートローダー168は、ディスパッチャー167を起動する。
【0056】
S111において、ディスパッチャー167は、第1OS用起動プログラム167aを起動する。
【0057】
S113において、第1OS用起動プログラム167aは、第2−1更新有無情報に「有情報」が含まれているか否か判定する。また、第1OS用起動プログラム167aは、この判定がYESである場合には第2更新エージェント166を起動してS115の処理に移り、NOである場合にはS119の処理に移る。
【0058】
S115において、第2更新エージェント166は、第2−1更新参照情報に含まれるアドレス情報を用いて第2−1更新情報を取得する。第2更新エージェント166は、第1OS163を構成する第1OSプログラムの一部又は全部を、取得した第2−1更新情報に含まれている更新プログラムに更新する。
【0059】
S117において、第2更新エージェント166は、第2−1更新有無情報を削除するとともに、第2−1更新参照情報及び第2−1更新情報も削除する。そして、S117の処理が終了すると、S111からの処理が再び開始され、S113では、第2−1更新有無情報が既に削除されているため、「NO」が判定される。
【0060】
S119において、第1OS用起動プログラム167aは、電源投入時には第1OS163を実行するためのメモリリソースを確保し、第1OS163を起動する。また、第1OS用起動プログラム167bは、第2OS164の再起動時には第1OS163の再起動を中止する(すなわち、第1OS163の処理を継続する)。
【0061】
S121において、ディスパッチャー167は、第2OS用起動プログラム167bを起動する。
【0062】
S123において、第2OS用起動プログラム167bは、第2−2更新有無情報に「有情報」が含まれているか否か判定する。また、第2OS用起動プログラム167bは、この判定がYESである場合には第2更新エージェント166を起動してS125の処理に移り、NOである場合にはS129の処理に移る。
【0063】
S125において、第2更新エージェント166は、第2−2更新参照情報に含まれるアドレス情報を用いて第2−2更新情報を取得する。第2更新エージェント166は、第2OS164を構成する第2OSプログラムの一部又は全部を、当該第2−2更新情報に含まれている更新プログラムに更新する。
【0064】
S127において、第2更新エージェント166は、第2−2更新有無情報を削除するとともに、第2−2更新参照情報及び第2−2更新情報を削除する。そして、S127の処理が終了すると、S121からの処理が再び開始され、S123では、第2−2更新有無情報が既に削除されているため、「NO」が判定される。
【0065】
S129において、第2OS用起動プログラム167bは、電源投入時には第2OS164のメモリリソースを確保し、第2OS164を起動する。また、第2OS用起動プログラム167bは、第1OS163の再起動時には第2OS164の再起動を中止する(すなわち、第2OS164の処理を継続する)。
【0066】
なお、ディスパッチャー167は、一のOS上の全てのタスクがアイドル状態である場合に、他のOSを構成するOSプログラムの更新処理及び当該他のOSの起動処理(S311〜S323、又はS325〜S337)を実行してもよい。
【0067】
かかる特徴によれば、OS(例えば第2OS164)の再起動時にそのOSとは異なるOS(例えば第1OS163)に対応するOS更新情報が記憶されていない場合(S119又はS129参照)には、当該異なるOSの再起動が中止される(すなわち、異なるOSの動作が継続される)。このため、計算装置100は、更新に関係しないOSを動作させながら、更新に関係するOSのみを再起動させることができ、更新に関係しないOSの稼働率を向上することができる。
【0068】
これにより、計算装置100は、電話機能などの重要なプロセスを実行するOSを実行させながら、そのプロセスよりも重要性の低いプロセスを実行する他のOSを構成するOSプログラムを更新して当該他のOSを再起動することができ、当該更新及び再起動を実行する状況下でも通信サービスを低下させないようにすることができる。
【0069】
また、電源投入時又はOSの再起動時には、ブートローダー168(初期起動処理部)によりOSプログラムが更新(図10に示すS1〜S7参照)されるのではなく、ディスパッチャー167(OS起動処理部)によりOSプログラムが更新される。また、電源投入時には、ディスパッチャー167により更新に関係しないOSが起動される。
【0070】
このため、ブートローダー168がOSプログラムを更新する処理を実行しない分、ディスパッチャー167は、電源投入時においては更新に関係しないOSを迅速に再起動することができ、当該OSの稼働率を向上させることができる。
【0071】
[第2実施形態]
(計算装置の構成)
第1実施形態では、複数のOSプログラムのうちの一方のOSプログラムは、他方のOSプログラム、又はディスパッチャーを構成する起動プログラムの更新の有無に関係なく更新される。これに対し、本実施形態では、一方のOSプログラムは、他方のOSプログラム、又はディスパッチャーを構成する起動プログラムが更新されていることを条件に更新される。以下、具体的に説明する。
【0072】
図5は、本実施形態における計算装置200の内部構成図である。図5に示す斜線部分は、図3の構成とは異なる部分を示す。
【0073】
図5に示すように、第1OS更新用記憶領域252は、第2−1更新中止情報を更に記憶している。第2OS更新用記憶領域253は、第2−2更新中止情報を更に記憶している。また、図5に示す第2更新エージェント266以外の機能は図3に示す機能と略同様である。このため、以下では、第2−1更新中止情報、第2−2更新中止情報及び第2更新エージェント266についてのみ説明する。
【0074】
第2−1更新中止情報は、第2OS264を構成する第2OSプログラム、又はディスパッチャー267を構成する起動プログラムの更新が未完了であることを条件に第1OS263を構成する第1OSプログラムの更新を中止するための更新中止情報である。
【0075】
本実施形態では、ディスパッチャー267を構成する起動プログラムの更新が未完了であることを条件に第1OSプログラムの更新が中止される場合(図5に示す従属関係a参照)には、第2−1更新中止情報には「第1更新情報」が含まれる。また、第2OSプログラムの更新が未完了であることを条件に第1OSプログラムの更新が中止される場合(図5に示す従属関係c参照)には、第2−1更新中止情報には「第2−2更新情報」が含まれる。
【0076】
第2−2更新中止情報は、第1OS263を構成する第1OSプログラム、又はディスパッチャー267を構成する起動プログラムの更新が未完了であることを条件に第2OS264を構成する第2OSプログラムの更新を中止するための更新中止情報である。
【0077】
本実施形態では、ディスパッチャー267を構成する起動プログラムの更新が未完了であることを条件に第2OSプログラムの更新が中止される場合(図5に示す従属関係b参照)には、第2−2更新中止情報には「第1更新情報」が含まれる。また、第1OSプログラムの更新が未完了であることを条件に第2OSプログラムの更新が中止される場合(図5に示す従属関係c参照)には、第2−2更新中止情報には「第2−1更新情報」が含まれる。
【0078】
第2更新エージェント266は、第1OS更新用記憶領域252又は第2OS更新用記憶領域253に更新中止情報が記憶されていない場合には、第2−1更新情報又は第2−2更新情報を用いて第1OSプログラム又は第2OSプログラムを更新する。一方、第2更新エージェント266は、更新中止情報が記憶されている場合には第1OSプログラム又は第2OSプログラムの更新を中止する。
【0079】
(計算装置の動作)
次に、本実施形態における計算装置200の動作について図6を参照しながら説明する。なお、図6に示す斜線部分は、上述した第1実施形態における計算装置100とは異なる処理を示す。
【0080】
図6に示すように、S201において、ブートローダー268は、電源投入時又は再起動時に起動する。
【0081】
S203において、ブートローダー268は、第1更新有無情報に「有情報」が含まれているか否か判定する。また、ブートローダー268は、この判定がYESである場合には第1更新エージェント265を起動してS205の処理に移り、NOである場合にはS211の処理に移る。
【0082】
S205において、第1更新エージェント265は、第1更新参照情報に含まれるアドレス情報を用いて第1更新情報を取得する。第1更新エージェント265は、ディスパッチャー267を構成する起動プログラムの一部又は全部を、当該第1更新情報に含まれている更新プログラムに更新する。
【0083】
S207において、第1更新エージェント265は、第1更新有無情報を削除するとともに、第1更新参照情報及び第1更新情報を削除する。
【0084】
S209において、第1更新エージェント265は、第2−1更新中止情報又は第2−2更新中止情報に記憶されている第1更新情報を削除する(図5斜線部分参照)。第1更新エージェント265は、第1更新情報を削除した後に、第2−1更新中止情報又は第2−2更新中止情報に何も含まれていない場合には、当該第2−1更新中止情報又は第2−2更新中止情報を削除する。
【0085】
S209の処理が終了すると、S201からの処理が再び開始され、S203では、第1更新有無情報が既に削除されているため、「NO」が判定される。
【0086】
S211において、ブートローダー268は、ディスパッチャー267を起動する。
【0087】
S213において、ディスパッチャー267は、第1OS用起動プログラム267aを起動する。
【0088】
S215において、第1OS用起動プログラム267aは、第2−1更新有無情報に「有情報」が含まれているか否か判定する。また、第1OS用起動プログラム267aは、この判定がYESである場合にはS217の処理に移り、NOである場合にはS225の処理に移る。
【0089】
S217において、第1OS用起動プログラム267aは、第2−1更新中止情報が記憶されているか否か判定する。また、第1OS用起動プログラム267aは、この判定がYESである場合には、S219の更新処理に移らずにS213の処理に戻る。一方、第1OS用起動プログラム267aは、この判定がNOである場合には、第2更新エージェント266を起動してS219の処理に移る。
【0090】
ここで、S217において「NO」が判定され、第1OSプログラムの更新が実行されるためには、上述したS209又は後述するS237において第2−1更新中止情報が削除されることが条件となる。
【0091】
本実施形態では、第1OSプログラムが、ディスパッチャー267を構成する起動プログラムを用いた処理、又は第2OSを構成する第2OSプログラムを用いた処理を実行する場合には、第2−1更新中止情報に第1更新情報又は第2−2更新情報が記憶される。 この場合に、S205で当該起動プログラムが更新されてS209で第2−1更新中止情報が削除されたことを条件に、又はS233で当該第2OSプログラムが更新されてS237で第2−1更新中止情報が削除されたことを条件に、第1OSプログラムが更新される。
【0092】
S219において、第2更新エージェント266は、第2−1更新参照情報に含まれるアドレス情報を用いて第2−1更新情報を取得する。第2更新エージェント266は、第1OS263を構成する第1OSプログラムの一部又は全部を、取得した第2−1更新情報に含まれている更新プログラムに更新する。
【0093】
S221において、第2更新エージェント266は、第2−1更新有無情報を削除するとともに、第2−1更新参照情報及び第2−1更新情報も削除する。
【0094】
S223において、第2更新エージェント266は、第2−2更新中止情報に記憶されている第2−1更新情報を削除する(図5斜線部分参照)。第2更新エージェント266は、第2−1更新情報を削除した後に、第2−2更新中止情報に何も含まれていない場合には、当該第2−2更新中止情報を削除する。
【0095】
そして、S223の処理が終了すると、S213からの処理が再び開始され、S215では、第2−1更新有無情報が既に削除されているため、「NO」が判定される。
【0096】
S225において、第1OS用起動プログラム267aは、上述したS119の処理と同様の処理を実行する。
【0097】
S227において、ディスパッチャー267は、第2OS用起動プログラム267bを起動する。
【0098】
S229において、第2OS用起動プログラム267bは、第2−2更新有無情報に「有情報」が含まれているか否か判定する。また、第2OS用起動プログラム267bは、この判定がYESである場合にはS231の処理に移り、NOである場合にはS239の処理に移る。
【0099】
S231において、第2OS用起動プログラム267bは、第2−2更新中止情報が記憶されているか否か判定する。また、第2OS用起動プログラム267bは、この判定がYESである場合には、S233の更新処理に移らずにS227の処理に戻る。一方、第2OS用起動プログラム267bは、この判定がNOである場合には、第2更新エージェント266を起動してS233の処理に移る。
【0100】
ここで、S231において「NO」が判定され、第2OSプログラムの更新が実行されるためには、上述したS209又はS223において第2−2更新中止情報が削除されることが条件となる。
【0101】
本実施形態では、第2OSプログラムが、ディスパッチャー267を構成する起動プログラムを用いた処理、又は第1OSを構成する第1OSプログラムを用いた処理を実行する場合には、第2−2更新中止情報に第1更新情報又は第2−1更新情報が記憶される。 この場合には、S205で当該起動プログラムが更新されて、S209で第1更新情報を含む第2−2更新中止情報が削除されたことを条件に、第2OSプログラムが更新される。又はS219で当該第1OSプログラムが更新されて、S223で第2−1更新情報を含む第2−2更新中止情報が削除されたことを条件に、第2OSプログラムが更新される。
【0102】
S233において、第2更新エージェント266は、第2−2更新参照情報に含まれるアドレス情報を用いて第2−2更新情報を取得する。第2更新エージェント266は、第2OS264を構成する第2OSプログラムの一部又は全部を、取得した第2−2更新情報に含まれている更新プログラムに更新する。
【0103】
S235において、第2更新エージェント266は、第2−2更新有無情報を削除するとともに、第2−2更新参照情報及び第2−2更新情報も削除する。
【0104】
S237において、第2更新エージェント266は、第2−1更新中止情報に記憶されている第2−2更新情報を削除する(図5斜線部分参照)。第2更新エージェント266は、第2−2更新情報を削除した後に、第2−1更新中止情報に何も含まれていない場合には、当該第2−1更新中止情報を削除する。
【0105】
そして、S237の処理が終了すると、S227からの処理が再び開始され、S229では、第2−2更新有無情報が既に削除されているため、「NO」が判定される。
【0106】
S239において、第2OS用起動プログラム267bは、上述したS129の処理と同様の処理を実行する。
【0107】
ここで、例えば、第1OS263と第2OS264とが共有するデバイスドライバー(OSプログラム)が設定され、第2OS264が第1OS263経由でデバイスドライバーにアクセスする場合を考える。この場合に、第2OS264に新規デバイスドライバーが追加される場合には、その前に第1OS263に新規デバイスドライバーが追加されなければならない。
【0108】
本実施形態では、第2−2更新中止情報が記憶されることにより、先ず第1OS263に新規デバイスドライバーが追加され、当該第2−2更新中止情報が削除されることを条件に、その次に第2OS264に新規デバイスドライバーが追加される。このため、計算装置200は、第2OS264で新規デバイスドライバーを実行している際に、第1OS263のデバイスドライバーが未更新であることに伴う誤動作を回避することができる。
【0109】
すなわち、一のOSプログラム又は起動プログラムの更新が完了していない場合には、一のOSプログラム又は起動プログラムを用いた処理を実行する他のOSプログラムの更新が中止される。このため、計算装置200は、更新後の当該他のOSプログラムを実行している際に当該一のOSプログラム又は起動プログラムの未更新による誤動作を回避することができる。
【0110】
[第3実施形態]
(計算装置の構成)
第1実施形態では、複数のOSのうちの一方のOSは、他方のOSを構成するOSプログラム、又はディスパッチャーを構成する起動プログラムの更新の有無に関係なく起動される。これに対し、本実施形態では、一方のOSは、他方のOSを構成するOSプログラム、又はディスパッチャーを構成する起動プログラムが更新されていることを条件に起動される。以下、具体的に説明する。
【0111】
図7は、本実施形態における計算装置300の内部構成図である。図7に示す斜線部分は、図3の構成とは異なる部分を示す。
【0112】
図7に示すように、更新情報記憶部350は、起動禁止情報を更に記憶している。また、図7に示すディスパッチャー367以外の機能は図3に示す機能と略同様である。このため、以下では、起動禁止情報、及びディスパッチャー367についてのみ説明する。
【0113】
起動禁止情報は、複数のOSのうちの第1OS(第1OS363又は第2OS364)を構成するOSプログラムの更新が未完了であることを条件に第2OS(第2OS364又は第1OS363)の起動を中止するための情報である。
【0114】
本実施形態では、第1OS363を構成する第1OSプログラムの更新が未完了であることを条件に第2OS364の起動が中止される場合には、起動禁止情報には「第2−2更新情報」が含まれる。また、第2OS364を構成する第2OSプログラムの更新が未完了であることを条件に第1OS363の起動が中止される場合には、起動禁止情報には「第2−1更新情報」が含まれる。
【0115】
ディスパッチャー367は、起動禁止情報に第2−1更新情報が含まれている場合には第1OS363の起動を中止し、起動禁止情報に第2−1更新情報が含まれていない場合には第1OS363を起動する。
【0116】
又、ディスパッチャー367は、起動禁止情報に第2−2更新情報が含まれている場合には第2OS364の起動を中止し、起動禁止情報に第2−2更新情報が含まれていない場合には第2OS364を起動する。
【0117】
なお、起動禁止情報は、更新情報、更新有無情報又は更新参照情報などに含められてもよい。
【0118】
(計算装置の動作)
次に、本実施形態における計算装置300の動作について図8を参照しながら説明する。なお、図8に示す斜線部分は、上述した第1実施形態における計算装置100とは異なる処理を示す。また、S301からS309までの処理の流れは図4に示すS101からS109までの処理の流れと同様であるため、ここでの詳細な説明は省略する。
【0119】
S311において、ディスパッチャー367は、第1OS用起動プログラム367aを起動する。
【0120】
S313において、第1OS用起動プログラム367aは、第2−1更新有無情報に「有情報」が含まれているか否か判定する。また、第1OS用起動プログラム367aは、この判定がYESである場合には第2更新エージェント366を起動してS315の処理に移り、NOである場合にはS321の処理に移る。
【0121】
S315において、第2更新エージェント366は、第2−1更新参照情報に含まれるアドレス情報を用いて第2−1更新情報を取得する。第2更新エージェント366は、第1OS363を構成する第1OSプログラムの一部又は全部を、取得した第2−1更新情報に含まれている更新プログラムに更新する。
【0122】
S317において、第2更新エージェント366は、第2−1更新有無情報を削除するとともに、第2−1更新参照情報及び第2−1更新情報も削除する。
【0123】
S319において、第2更新エージェント366は、起動中止情報に含まれている第2−2更新情報を削除する。そして、S319の処理が終了すると、S311からの処理が再び開始され、S313では、第2−1更新有無情報が既に削除されているため、「NO」が判定される。
【0124】
S321において、第1OS用起動プログラム367aは、起動中止情報に第2−1更新情報が含まれているか否か判定する。また、第1OS用起動プログラム367aは、この判定がYESである場合には本処理を繰り返し、NOである場合にはS323の処理に移る。
【0125】
S323において、第1OS用起動プログラム367aは、上述したS119の処理と同様の処理を実行する。
【0126】
ここで、起動中止情報に第2−1更新情報のみが含まれている場合を考える。この場合には、S333で起動中止情報に含まれている第2−1更新情報が削除されることを条件に、S321において「NO」が判定され、S323において第1OS363が起動される。
【0127】
S325において、ディスパッチャー367は、第2OS用起動プログラム367bを起動する。
【0128】
S327において、第2OS用起動プログラム367bは、第2−2更新有無情報に「有情報」が含まれているか否か判定する。また、第2OS用起動プログラム367bは、この判定がYESである場合には第2更新エージェント366を起動してS329の処理に移り、NOである場合にはS335の処理に移る。
【0129】
S329において、第2更新エージェント366は、第2−2更新参照情報に含まれるアドレス情報を用いて第2−2更新情報を取得する。第2更新エージェント366は、第2OS364を構成する第2OSプログラムの一部又は全部を、取得した第2−2更新情報に含まれている更新プログラムに更新する。
【0130】
S331において、第2更新エージェント366は、第2−2更新有無情報を削除するとともに、第2−2更新参照情報及び第2−2更新情報を削除する。
【0131】
S333において、第2更新エージェント366は、起動中止情報に含まれている第2−1更新情報を削除する。そして、S333の処理が終了すると、S325からの処理が再び開始され、S327では、第2−2更新有無情報が既に削除されているため、「NO」が判定される。
【0132】
S335において、第2OS用起動プログラム367bは、起動中止情報に第2−2更新情報が含まれているか否か判定する。また、第2OS用起動プログラム367bは、この判定がYESである場合には本処理を繰り返し、NOである場合にはS337の処理に移る。
【0133】
S337において、第2OS用起動プログラム367bは、上述したS129の処理と同様の処理を実行する。
【0134】
ここで、起動中止情報に第2−2更新情報のみが含まれている場合を考える。この場合には、S319で起動中止情報に含まれている第2−2更新情報が削除されることを条件に、S335において「NO」が判定され、S337において第2OS364が起動される。
【0135】
かかる特徴によれば、起動中止情報が記憶されていない場合には第1OS363又は第2OS364が起動される。一方、起動中止情報が記憶されている場合には第1OS363又は第2OS364の起動が中止される。
【0136】
これにより、一のOSプログラム(例えば第1OSプログラム)の更新が完了していない場合には、他のOSプログラム(例えば第2OSプログラム)に対応するOS(例えば第2OS364)の起動が中止される。このため、計算装置300は、当該他のOSプログラムに対応するOSを起動させた後に、当該一のOSプログラムの未更新による誤動作を回避することができる。
【0137】
また、他のOSで実行される処理よりも重要度の高い処理を実行する一のOSを構成するOSプログラムの更新が必要である場合には、起動中止情報が記憶されることにより当該他のOSの起動が禁止される。
【0138】
このため、計算装置300は、上記一のOSを構成するOSプログラムから優先して更新を実行することができるとともに、当該一のOSから優先して起動することができる。これにより、計算装置300は、あるOSを起動させた後に、そのOSよりも重要性の高い処理を実行するOSプログラムの未更新による誤動作を回避することができる。
【0139】
なお、各実施形態における計算装置は、携帯電話機、PDA、パーソナルコンピュータ等の電子機器に適用することができる。
【0140】
以上、本発明の一例を説明したが、具体例を例示したに過ぎず、特に本発明を限定するものではなく、各実施形態及び各変更例における具体的構成等は、適宜設計変更可能である。また、各実施形態及び各変更例の具体的構成のそれぞれは、組み合わせることが可能である。さらに、各実施形態及び各変更例の作用及び効果は、本発明から生じる最も好適な作用及び効果を列挙したに過ぎず、本発明による作用及び効果は、各実施形態及び各変更例に記載されたものに限定されるものではない。
【図面の簡単な説明】
【0141】
【図1】第1実施形態における計算装置の内部構成を示す図である。
【図2】第1実施形態における制御プログラムの内容を示す図である。
【図3】第1実施形態における制御プログラム構成及びハードウェア構成を示す図である。
【図4】第1実施形態における計算装置の動作を示す図である。
【図5】第2実施形態における制御プログラム構成及びハードウェア構成を示す図である。
【図6】第2実施形態における計算装置の動作を示す図である。
【図7】第3実施形態における制御プログラム構成及びハードウェア構成を示す図である。
【図8】第3実施形態における計算装置の動作を示す図である。
【図9】組合せ処理1及び組合せ処理2が用いられたときの計算装置のソフトウェア構成及びハードウェア構成を示す図である。
【図10】組合せ処理1及び組合せ処理2が用いられたときの計算装置の処理動作を示す図である。
【符号の説明】
【0142】
100…計算装置、110…CPU、120…通信部、130…カード読取部、140…入出力部、150…更新情報記憶部、151…ディスパッチャー更新用記憶領域、152…第1OS更新用記憶領域、153…第2OS更新用記憶領域、160…制御プログラム記憶部、161…ダウンロードアプリケーション、162…他アプリケーション、163a…更新用ドライバー、164b…更新用ドライバー、165…第1更新エージェント、166…第2更新エージェント、167…ディスパッチャー、167a…第1OS用起動プログラム、167b…第2OS用起動プログラム、168…ブートローダー

【特許請求の範囲】
【請求項1】
複数のOSを起動するOS起動処理部と、
前記OS起動処理部を起動する初期起動処理部と、
前記複数のOSのうちのいずれかのOSを構成するOSプログラムを更新するためのOS更新情報を記憶する更新情報記憶部とを備え、
前記OS起動処理部は、電源投入時又は前記OSの再起動時に前記OSに対応する前記OS更新情報が記憶されている場合には前記OS更新情報を用いて前記OSプログラムを更新した後に前記OSを起動し、電源投入時に前記OSに対応する前記OS更新情報が記憶されていない場合には前記OSを起動し、前記OSの再起動時に前記OSとは異なるOSに対応する前記OS更新情報が記憶されていない場合には前記異なるOSの再起動を中止することを特徴とする更新起動装置。
【請求項2】
前記更新情報記憶部は、前記OS起動処理部を構成する起動プログラムの更新が未完了であることを条件に前記複数のOSのうちのいずれかのOSを構成する前記OSプログラムの更新を中止するための更新中止情報を記憶し、
前記OS起動処理部は、前記電源投入時又は前記OSの再起動時に、前記更新中止情報が記憶されていない場合には前記OS更新情報を用いて前記OSプログラムを更新し、前記更新中止情報が記憶されている場合には前記OSプログラムの更新を中止することを特徴とする請求項1に記載の更新起動装置。
【請求項3】
前記複数のOSは、第1OSと第2OSとを備えており、
前記更新情報記憶部は、前記第1OSを構成する第1OSプログラムの更新が未完了であることを条件に前記第2OSを構成する第2OSプログラムの更新を中止するための更新中止情報を記憶し、
前記OS起動処理部は、前記電源投入時又は前記第2OSの再起動時に、前記更新中止情報が記憶されていない場合には前記OS更新情報を用いて前記第2OSプログラムを更新し、前記更新中止情報が記憶されている場合には前記第2OSプログラムの更新を中止することを特徴とする請求項1又は請求項2のいずれかに記載の更新起動装置。
【請求項4】
前記OS起動処理部は、前記起動プログラムを更新した場合には、前記更新中止情報を削除することを特徴とする請求項2に記載の更新起動装置。
【請求項5】
前記OS起動処理部は、前記第1OSプログラムを更新した場合には、前記更新中止情報を削除することを特徴とする請求項3に記載の更新起動装置。
【請求項6】
前記更新情報記憶部は、前記OS起動処理部を構成する起動プログラムを更新するための起動更新情報を記憶し、
前記初期起動処理部は、前記電源投入時又は前記OSの再起動時に、前記起動更新情報が記憶されている場合には前記起動更新情報を用いて前記起動プログラムを更新し、前記起動更新情報が記憶されていない場合には前記OS起動処理部を起動することを特徴とする請求項1に記載の更新起動装置。
【請求項7】
前記複数のOSは、第1OSと第2OSとを備えており、
前記更新情報記憶部は、前記第1OSを構成する第1OSプログラムの更新が未完了であることを条件に前記第2OSの起動を中止するための起動中止情報を記憶し、
前記OS起動処理部は、前記電源投入時又は前記第2OSの再起動前に前記起動中止情報が記憶されていない場合には前記第2OSを起動し、前記電源投入時又は前記第2OSの再起動前に前記起動中止情報が記憶されている場合には前記第2OSの起動を中止することを特徴とする請求項1に記載の更新起動装置。
【請求項8】
前記OS起動処理部は、前記第1OSプログラムを更新した場合には、前記起動中止情報を削除することを特徴とする請求項7に記載の更新起動装置。
【請求項9】
複数のOSを起動する工程Aと、
前記工程Aを起動する工程Bと、
前記複数のOSのうちのいずれかのOSを構成するOSプログラムを更新するためのOS更新情報を記憶する工程Cとを備え、
前記工程Aは、電源投入時又は前記OSの再起動時に前記OSに対応する前記OS更新情報が記憶されている場合には前記OS更新情報を用いて前記OSプログラムを更新した後に前記OSを起動し、電源投入時に前記OSに対応する前記OS更新情報が記憶されていない場合には前記OSを起動し、前記OSの再起動時に前記OSとは異なるOSに対応する前記OS更新情報が記憶されていない場合には前記異なるOSの再起動を中止することを特徴とする更新起動制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate