説明

情報処理装置および方法、プログラム、並びに記録媒体

【課題】OSのメモリ保護機能を有効に活用するとともに、ユーザによる操作性を向上させることができるようにする。
【解決手段】カーネル空間131で実行され、OS101のカーネルにフックされるソフトウェアとしてエクセプションハンドラ133を設ける。OS101のカーネルが、ユーザランド空間132で実行される通常アプリケーションによる不正な処理の発生を検知した場合、カーネルからエクセプションハンドラ133に、不正な処理の発生を通知して、その後、通常アプリケーションのプロセス151を強制終了する。エクセプションハンドラ133は、プロセス151が終了された後、ユーザに、システムエラーを通知し、再起動を促すための例外アプリケーションの実行を制御し、ユーザランド空間132で例外アプリケーションのプロセス152が実行される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置および方法、プログラム、並びに記録媒体に関し、特に、OSのメモリ保護機能を有効に活用するとともに、ユーザによる操作性を向上させることができるようにする情報処理装置および方法、プログラム、並びに記録媒体に関する。
【背景技術】
【0002】
コンピュータのOS(operating system)においては、メモリやディスクなどといったハードウェアデバイスはもとより、アプリケーションプログラムが利用しているレジスタセットやメインメモリイメージ、ファイルなどの各種資源を管理し、アプリケーションプログラムが各種資源を利用できるようにする機能が提供されている。
【0003】
また、近年のOSにおいては、特に、メインメモリへのデータの書き込み処理などが正常に行われたか否かを監視し、メインメモリの誤った領域にデータが書き込まれることなどによるコンピュータの動作不良を抑制するようなメモリ保護機能が発達してきている。
【0004】
例えば、あるアプリケーションプログラムにより、メインメモリの誤った領域にデータが書き込まれるなどした場合、OSの機能により、そのアプリケーションプログラムのプロセスがキル(強制終了)されることになる。
【0005】
また、OSが有するメモリ保護機能を利用して、マルチジョブを処理するシングルプロセッサシステムにおいて、専用命令なしで効率良く安全にユーザプロセスレベルで排他制御を行うことも提案されている(例えば、特許文献1参照)。
【0006】
【特許文献1】特開2002−157132号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、携帯電話機やデジタルカメラなどのCE(Consumer Electronics)機器においては、ユーザによる機器本体の起動、終了などの指令が、アプリケーションプログラムを介して受け付けられるものが多い。
【0008】
従って、CE機器において、OSの機能により、そのアプリケーションプログラムのプロセスがキルされた場合、ユーザは、機器の異常に対処するためにその機器の電源を切るなどの操作を強いられることがあった。
【0009】
本発明はこのような状況に鑑みてなされたものであり、OSのメモリ保護機能を有効に活用するとともに、ユーザによる操作性を向上させることができるようにするものである。
【課題を解決するための手段】
【0010】
本発明の一側面の情報処理装置は、ユーザによる操作を受け付け、前記操作に対応する処理の実行を制御する第1のアプリケーションプログラムによる、前記情報処理装置のメモリに記憶されている情報が不正に更新される不正更新処理が実行されたか否かを判定する判定手段と、前記判定手段により不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムを強制終了させる強制終了手段と、前記判定手段により前記不正更新処理が実行されたと判定された場合、前記強制終了手段により前記第1のアプリケーションプログラムが終了された後、前記ユーザに、前記不正更新処理の発生を通知するとともに、自分の再起動に関する指令の操作を受け付ける第2のアプリケーションプログラムの実行を制御する再起動制御手段とを備える情報処理装置である。
【0011】
前記判定手段は、前記第2のアプリケーションプログラムにより、前記不正更新処理が実行されたか否かをさらに判定し、前記第2のアプリケーションプログラムにより、前記不正更新処理が実行されたと判定された場合、前記再起動制御手段は、前記ユーザの操作の有無に係らず自分を再起動させる処理の実行を制御するようにすることができる。
【0012】
画像を表示する表示画面をさらに備え、前記第2のアプリケーションプログラムにより、前記不正更新処理の発生を通知するメッセージ、および前記再起動に関する指令の操作を受け付けるGUI(Graphical User Interface)が前記表示画面に表示されるようにすることができる。
【0013】
メモリ保護機能を有するオペレーティングシステムが実装され、前記判定手段、および前記強制終了手段の処理は、それぞれ前記オペレーティングシステムのメモリ保護機能として実行されるようにすることができる。
【0014】
前記再起動制御手段の処理は、前記オペレーティングシステムにフックされたプログラムにより実行されるようにすることができる。
【0015】
本発明の一側面の情報処理方法は、ユーザによる操作を受け付け、前記操作に対応する処理の実行を制御する第1のアプリケーションプログラムによる、前記情報処理装置のメモリに記憶されている情報が不正に更新される不正更新処理が実行されたか否かを判定し、前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムを強制終了させ、前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムが終了された後、前記ユーザに、前記不正更新処理の発生を通知するとともに、自分の再起動に関する指令の操作を受け付ける第2のアプリケーションプログラムの実行を制御するステップを含む情報処理方法である。
【0016】
本発明の一側面のプログラムは、ユーザによる操作を受け付け、前記操作に対応する処理の実行を制御する第1のアプリケーションプログラムによる、前記情報処理装置のメモリに記憶されている情報が不正に更新される不正更新処理が実行されたか否かの判定を制御し、前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムを強制終了させるよう制御し、前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムが終了された後、前記ユーザに、前記不正更新処理の発生を通知するとともに、自分の再起動に関する指令の操作を受け付ける第2のアプリケーションプログラムの実行を制御するステップを含むコンピュータが読み取り可能なプログラムである。
【0017】
本発明の一側面においては、ユーザによる操作を受け付け、前記操作に対応する処理の実行を制御する第1のアプリケーションプログラムによる、前記情報処理装置のメモリに記憶されている情報が不正に更新される不正更新処理が実行されたか否かが判定され、前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムが強制終了させられ、前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムが終了された後、前記ユーザに、前記不正更新処理の発生を通知するとともに、自分の再起動に関する指令の操作を受け付ける第2のアプリケーションプログラムの実行が制御される。
【発明の効果】
【0018】
本発明によれば、OSのメモリ保護機能を有効に活用するとともに、ユーザによる操作性を向上させることができる。
【発明を実施するための最良の形態】
【0019】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0020】
本発明の一側面の情報処理装置は、ユーザによる操作を受け付け、前記操作に対応する処理の実行を制御する第1のアプリケーションプログラムによる、前記情報処理装置のメモリに記憶されている情報が不正に更新される不正更新処理が実行されたか否かを判定する判定手段(例えば、図4のステップS101の処理を実行する図2のOS101のカーネル)と、前記判定手段により不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムを強制終了させる強制終了手段(例えば、図4のステップS103の処理を実行する図2のOS101のカーネル)と、前記判定手段により前記不正更新処理が実行されたと判定された場合、前記強制終了手段により前記第1のアプリケーションプログラムが終了された後、前記ユーザに、前記不正更新処理の発生を通知するとともに、自分の再起動に関する指令の操作を受け付ける第2のアプリケーションプログラムの実行を制御する再起動制御手段(例えば、図3のエクセプションハンドラ133)とを備える。
【0021】
本発明の一側面の情報処理方法は、ユーザによる操作を受け付け、前記操作に対応する処理の実行を制御する第1のアプリケーションプログラムによる、前記情報処理装置のメモリに記憶されている情報が不正に更新される不正更新処理が実行されたか否かを判定し(例えば、図4のステップS101の処理)、前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムを強制終了させ(例えば、例えば、図4のステップS103の処理)、前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムが終了された後、前記ユーザに、前記不正更新処理の発生を通知するとともに、自分の再起動に関する指令の操作を受け付ける第2のアプリケーションプログラムの実行を制御する(例えば、図5のステップS121乃至S125の処理)ステップを含む。
【0022】
以下、図面を参照して、本発明の実施の形態について説明する。
【0023】
図1は、本発明を適用したCE(Consumer Electronics)機器の一実施の形態に係る構成例を示すブロック図である。同図に示されるCE機器10は、例えば、デジタルカメラとして構成される。
【0024】
この実施の形態のCE機器10は、大きく分けると、カメラ部41と、カメラDSP(Digital Signal Processor)42と、媒体インタフェース(以下、媒体I/Fという。)44と、制御部45と、操作部46と、LCD(Liquid Crystal Display)コントローラ47と、LCD20と、外部インタフェース(以下、外部I/Fという。)48と、通信インタフェース(以下、通信I/Fという。)49とを備えるとともに、記録媒体60が着脱可能な構成とされている。
【0025】
記録媒体60は、半導体メモリを用いたいわゆるメモリーカード、記録可能なDVD(Digital Versatile Disc)や記録可能なCD(Compact Disc)等の光記録媒体、磁気ディスクなどとして構成される。
【0026】
カメラ部41には、例えば、レンズ、フォーカス機構、シャッター機構、絞り(アイリス)機構などを備えた光学ブロック71、CCD(Charge Coupled Device)72、光学ブロック71の駆動を制御するドライバ73が設けられている。なお、CCD72に代えて、CMOS(Complementary Metal-Oxide Semiconductor)センサなどの光電変換デバイスを用いるようにしてもよい。
【0027】
例えば、操作部46を、ユーザが操作することにより、カメラ部41により画像が撮影され、その画像データが制御部45、および媒体I/F44を介して記録媒体60に記録される。操作部46は、例えば、タッチパネルやコントロールキーなどからなり、各種の操作ボタンなどを含む構成とされる。
【0028】
また、記録媒体60に記録された画像データは、操作部46を通じて受け付けたユーザからの操作入力に応じて、媒体I/F44を通じて記録媒体60から読み出され、これがカメラDSP42に供給される。
【0029】
カメラDSP42は、記録媒体60から読み出され、媒体I/F44を通じて供給された符号化されている画像データを復号し、復号後の画像データを、システムバス84を通じて、LCDコントローラ47に供給する。LCDコントローラ47は、これに供給された画像データからLCD20に供給する画像信号を形成し、これをLCD20に供給する。これにより、記録媒体60に記録されている画像データに応じた画像が、LCD20の表示画面に表示される。
【0030】
なお、LCD20には、制御部45により生成されたGUI(Graphical User Interface)の画像なども適宜表示される。
【0031】
また、制御部45は、CPU(Central Processing Unit)81、RAM(Random Access Memory)82、ROM(Read Only Memory)83が、システムバス84を通じて接続されて構成されている。制御部45は、例えば、汎用の組み込み型のマイクロコンピュータまたは専用のシステムLSI(Large Scale Integrated circuit)などとして構成され、CE機器10の各部を制御することができるものである。
【0032】
RAM82は、処理の途中結果を一時記憶するなど主に作業領域として用いられるものである。また、ROM83は、CPU81において実行する種々のプログラムや、処理に必要になるデータなどを記憶したものである。
【0033】
すなわち、制御部45において、ROM83からRAM82にロードされたプログラムがCPU81により実行されることで、カメラ部41およびDSP42に制御信号を出力してCE機器10による画像の撮影処理、撮影した画像の表示処理などの各種の処理が、操作部46を介して入力されるユーザの指令に基づいて実行されるようになされている。
【0034】
また、CE機器10は、外部I/F48を通じて、例えば外部のパーソナルコンピュータと接続して、パーソナルコンピュータから画像データの供給を受けて、これを記録媒体60に記録したり、また、記録媒体60に記録されている画像データを外部のパーソナルコンピュータ等に供給したりすることもできるものである。
【0035】
さらに、CE機器10の通信I/F49は、例えば、ネットワークインターフェースカード(NIC)などからなり、ネットワークに接続して、ネットワークを介して各種のデータを、送受信することが可能となるように構成されている。
【0036】
図2は、CPU81により実行されるソフトウェアの機能的構成例を示すブロック図である。同図に示されるように、CPU81により実行されるソフトウェアは、OS(operating system)101、アプリケーションプログラム102、ドライバ103により構成されている。
【0037】
同図において、OS101は、RAM82、記録媒体60などのハードウェアデバイス、アプリケーションプログラム102が利用しているレジスタセットや、RAM82に記憶されているデータにより構成されるメインメモリイメージ、ファイルなどの各種資源を管理し、アプリケーションプログラム102が各種資源を利用できるようにする機能を有している。また、OS101は、CE機器10に実装されているソフトウェアが正常に動作できない状態となるシステムエラーを検知するようになされている。
【0038】
OS101は、例えば、RAM82へのデータの書き込み処理などが正常に行われたか否かを監視し、RAM82へのデータの書き込み処理などが不正に行われた場合、システムエラーとして検知し、また、例えば、RAM82の誤った領域にデータが書き込まれる不正な書き込み処理などによるCE機器10の動作不良を抑制するようなメモリ保護機能を有する構成とされる。OS101は、例えば、Linux(登録商標)などの基本ソフトウェアにより構成される。
【0039】
アプリケーションプログラム102は、OS101上で実行されるプログラムなどのソフトウェアであって、例えば、カメラ部41による画像の撮影、LCD20への画像の表示などの処理の実行を制御するプログラムなどとされる。
【0040】
ドライバ103は、例えば、ドライバ73、媒体I/F44などのCE機器10の各部位のハードウェアの動作を制御するデバイスドライバなどに対応するソフトウェアとされる。ドライバ103は、OS101の一部として構成されるようにすることも可能である。
【0041】
図3は、図2のソフトウェアが実行されるとき、OS101により管理されるRAM82の記憶領域(または、仮想記憶領域)の構成を説明する図である。
【0042】
同図に示されるように、OS101は、RAM82の記憶領域(または、仮想記憶領域)を、カーネル空間131と、ユーザランド空間132に分けて管理する。
【0043】
カーネル空間131では、主にOS101の基幹部分であるカーネルと呼ばれるソフトウェアに対応するプロセスの実行に必要となるデータが保持されるようになされている。ユーザランド空間132では、主にアプリケーションプログラム102を構成するソフトウェアの実行に必要となるデータが保持されるようになされている。
【0044】
例えば、アプリケーションプログラム102を構成するプログラムが実行されている場合、ユーザランド空間132において、そのプログラムに対応するプロセス151の記憶領域が、カーネル空間131で実行されているOS101のカーネルにより割り当てられる。
【0045】
すなわち、OS101を構成するソフトウェア(プログラムなど)は、カーネル空間131で実行され、アプリケーションプログラム102を構成するソフトウェア(プログラムなど)は、ユーザランド空間132で実行される。
【0046】
CE機器10は、例えば、ユーザによる操作部46の操作、または制御部45に内蔵される図示せぬタイマなどにより計時された時間などに基づいて、カメラ部41、カメラDSP42、LCD20などに対する電力の供給が遮断されるようになされている。例えば、操作部46に含まれるパワーON/OFFボタンが押下された場合、操作部46に対する操作が所定の時間以上おこなわれなかった場合など、CE機器10は、消費電力を抑制するべく、カメラ部41、カメラDSP42、LCD20などに対する電力の供給を遮断する。
【0047】
しかし、上述のように、カメラ部41、カメラDSP42、LCD20などに対する電力の供給が遮断された状態であっても、RAM82には、電力が供給されており、RAM82に保持されたデータが、再度利用可能となるようになされている。これにより、例えば、ユーザが、操作部46に含まれるパワーON/OFFボタンを再度押下した場合、ROM83からRAM82へのプログラムのロードが既に完了した状態、すなわち、OS101を構成するソフトウェアが、カーネル空間131で実行され、アプリケーションプログラム102を構成するソフトウェアが、ユーザランド空間132で実行された状態で、カメラ部41、カメラDSP42、LCD20などに対する電力の供給が再開されるようになされている。従って、CE機器10は、パワーON/OFFボタンが押下された後、直ぐに画像の撮影等が可能であり、ユーザにとって操作性が高くなるように構成されている。
【0048】
このようなCE機器10の構成は、例えば、従来よりノート型のパーソナルコンピュータなどにおいて多く実装されている機能であって、コンピュータを終了させる直前の状態を一時的に保存しておき、再度立ち上げたときに、即座に作業を再開できる機能である、いわゆるサスペンド/レジュームと同様の機能を実現する構成とされる。
【0049】
ただし、サスペンド/レジュームを繰り返すと、RAMなどのメモリに保持されているデータが誤って更新されたり、破壊されたりすることで、機器の動作不良を招くことがある。このような場合、従来のパーソナルコンピュータでは、例えば、自身をシャットダウンまたはリブートするなど、再起動させて、RAMなどのメモリに、再度プログラムをロードすることで、処理を継続することができるようになされている。
【0050】
しかしながら、デジタルカメラなどのCE機器においては、例えば、内蔵されるバッテリーの取り外しが行われた場合、ファームウェアの更新などが行われた場合などの場合を除いて、通常、シャットダウンまたはリブートが行われることはない。
【0051】
デジタルカメラなどのCE機器では、アプリケーションプログラム102を構成するプログラムの処理が、例えば、画像の撮影、画像の表示などの処理に限られているため、OS101上で、通常、複数のアプリケーションプログラム102のプログラムが同時に実行されることはなく、例えば、複数のプログラムが同時にRAMなどのメモリに保持されるデータを利用することにより、データが誤って更新されるなどの可能性は少ないものと考えられるからである。また、RAMのデータを保持するためにRAMに対して供給される電力は微弱なものであり、デジタルカメラなどのCE機器では、起動や終了時に、都度、シャットダウンまたはリブートを行うよりも、サスペンド/レジュームを繰り返す方が、よりユーザの操作性を向上させることができるからである。
【0052】
しかしながら、CE機器においても、サスペンド/レジュームを繰り返すと、RAMなどのメモリに保持されているデータが誤って更新されたり、破壊されたりすることで、機器の動作不良を招く場合がある。
【0053】
例えば、プロセス151に対応するプログラムにおいて、メモリサイズの確保や開放などの処理の記述に誤りがあり(バグなどがあり)、確保されたメモリサイズを越えるデータが入力されるなどした場合、RAM82の誤った領域にデータが書き込まれて、CE機器10が正常に動作しなくなることがある。このため、カーネル空間131で実行されているOS101のカーネルが、RAM82へのデータの書き込み処理が正常に行われたか否かを監視し、RAM82へのデータの書き込み処理などが正常に行われなかった(不正に行われた)場合、プロセス151への記憶領域の割り当てを解除するなどして、プロセス151に対応するプログラムを強制終了させるようになされている。
【0054】
上述のような、プログラムのバグなどを原因とするものに限らず、このようなアプリケーションプログラム102のプログラムによる不正なメモリの更新処理は、CE機器10のベンダーが、当然想定しておくべきシステムエラーと考えられ、CE機器10のベンダーは、このようなシステムエラーが発生したとしても、CE機器10の使用ができなくなるような事態には至らないようにCE機器10を設計する必要がある。このため、近年のCE機器においては、OS101のように、メモリ保護機能を有するオペレーティングシステムが実装されることが一般的になっている。
【0055】
一方で、CE機器においては、画像の撮影や、画像の表示などの指令だけでなく、機器本体の起動、終了などの指令も、アプリケーションプログラムを介して受け付けられるようになされている場合がある。例えば、LCDに表示されるGUIの画像に基づいて、ユーザが操作部を操作することにより、CE機器の起動や終了を指令することも可能である。デジタルカメラなどの小型のCE機器においては、ソフトウェアを記憶するROMなどの記憶容量は限られたものであり、また、操作部の構成も単純なものとされることが望ましいので、ユーザの操作を受け付けるGUIの制御などの機能は、1つのアプリケーションプログラムに含められて実装されることが多い。
【0056】
従って、従来のCE機器において、OS101のメモリ保護機能により、アプリケーションプログラム102が強制終了された場合、ユーザにとっては、CE機器が操作不能になったものと感じられる。このような場合、ユーザは、CE機器のOS101を再起動させる必要があり、例えば、CE機器の、図示せぬバッテリーを取り外して、さらに取り付けなおすなどの操作を強いられる。
【0057】
あるいはまた、従来のCE機器において、OS101の機能により、アプリケーションプログラム102が強制終了された場合、自動的に、CE機器のOS101を再実行させるように、OS101のカーネルの一部を変更するなどして対処することも可能であるが、OS101をあらためてRAMにロードして再実行することでCE機器を再起動する場合、再起動に伴う各種の処理に時間がかかり、所定の時間は、操作部を介した操作の入力が受け付けられない。このような場合、ユーザにとっては、やはりCE機器が突如、操作不能になったように感じられ、CE機器の操作性が極めて低いものと感じられる。
【0058】
そこで、本発明においては、OS101の機能により、通常実行されているアプリケーションプログラムが強制終了された場合、ユーザに、CE機器10のシステムエラーを通知し、再起動を促すための新たなアプリケーションプログラムが実行されるようにする。
【0059】
具体的には、カーネル空間131で実行され、OS101のカーネルにフックされるソフトウェアとしてエクセプションハンドラ133を設ける。そして、OS101のカーネルが、RAM82へのデータの書き込み処理が不正に行われたことを検知した場合、OS101のカーネルからエクセプションハンドラ133に、RAM82へのデータの書き込み処理が不正に行われたことを通知する処理が発生するようにして、その後、OS101のカーネルがプロセス151に対応するプログラムを強制終了するようにする。
【0060】
ここで、エクセプションハンドラ133は、例えば、OS101に付加されるプログラムとしてROM83などに予め記憶されている。すなわち、エクセプションハンドラ133は、実際には、RAM82にロードされてカーネル空間131で実行されるプログラムの一部である。
【0061】
エクセプションハンドラ133は、OS101のカーネルからRAM82へのデータの書き込み処理が不正に行われたことを通知された場合、プロセス151のプログラムが終了された後、終了されたプログラムとは別のプログラムであって、ユーザに、CE機器10のシステムエラーを通知し、再起動を促すためのアプリケーションプログラムの実行を制御する。
【0062】
なお、CE機器10において、通常実行されているアプリケーションプログラムを、以下適宜、通常アプリケーションと称し、ユーザに、CE機器10のシステムエラーを通知し、再起動を促すためのアプリケーションプログラムを、以下適宜、例外アプリケーションと称することとする。通常アプリケーションおよび例外アプリケーションは、ともに、アプリケーションプログラム102を構成するプログラムとして、ROM83などに予め記憶されているものとする。なお、例外アプリケーションは、エクセプションハンドラ133の制御によってのみ実行されるものとし、CE機器10に電力が供給されて起動される場合などは、自動的に通常アプリケーションが実行されるものとする。
【0063】
エクセプションハンドラ133により、例外アプリケーションの実行が制御された場合、OS101のカーネルは、ユーザランド空間132において、例外アプリケーションに対応するプロセス152の記憶領域を割り当てる。そして、CE機器10のCPU81により例外アプリケーションが実行され、例えば、LCD20に、所定のメッセージやGUIが表示されることで、ユーザに、CE機器10のシステムエラーが通知され、再起動が促されることになる。
【0064】
次に、図4のフローチャートを参照して、OS101のカーネルによる異常終了対応処理の例について説明する。この処理は、CE機器10が起動され、OS101、アプリケーションプログラム102などのソフトウェアがRAM82にロードされているとき、OS101のカーネルにより実行される。ここでは、CE機器10には、アプリケーションプログラム102を構成するプログラムとして、通常アプリケーションと、例外アプリケーションとが実装されているものとする。
【0065】
ステップS101において、OS101のカーネルは、ユーザランド空間132で実行されている通常アプリケーションによる不正な処理(すなわち、システムエラー)があったか否かを判定し、不正な処理があったと判定されるまで待機する。
【0066】
例えば、通常アプリケーションに、メモリサイズの確保や開放などの処理の記述に誤りがあり、確保されたメモリサイズを越えるデータが入力されるなどした場合、RAM82の誤った領域にデータが書き込まれて、ステップS101の処理で不正な処理があったと判定され、処理は、ステップS102に進む。
【0067】
ステップS102において、OS101のカーネルは、通常アプリケーションによる不正な処理があったことを、エクセプションハンドラ133に通知する。このとき、例えば、OS101のカーネルの処理において、割り込みが発生して、エクセプションハンドラ133に対応するプログラム(コード)が呼び出されてエクセプションハンドラ133の処理が実行されるとともに、OS101のカーネルで検知された不正な処理を特定する情報などを含んだパラメータなどが、エクセプションハンドラ133に引き渡されることにより、通常アプリケーションによる不正な処理があったことが、エクセプションハンドラ133に通知される。
【0068】
ステップS103において、OS101のカーネルは、ユーザランド空間132で実行されている通常アプリケーションに対応するプロセスを強制的に終了させる(プロセスをキルする)。
【0069】
ステップS104において、OS101のカーネルは、例外アプリケーション、またはエクセプションハンドラ133からの、リブートまたはシャットダウンの要求があったか否かを判定し、まだ、リブートまたはシャットダウンの要求がないと判定された場合、処理は、ステップS101に戻り、それ以降の処理が繰り返し実行される。
【0070】
ステップS104において、例外アプリケーション、またはエクセプションハンドラ133からの、リブートまたはシャットダウンの要求があったと判定された場合、処理は、ステップS105に進む。
【0071】
ステップS105において、OS101のカーネルは、リブートまたはシャットダウンを行う。これにより、CE機器10が次回起動されたときには、RAM82に、OS101、アプリケーションプログラム102などのソフトウェアがあらためてロードされることになる。
【0072】
なお、ステップS105の処理で、リブートが行われる場合、CE機器10が、自動的に再起動されてRAM82に、OS101、アプリケーションプログラム102などのソフトウェアがあらためてロードされることになるが、ステップS105の処理で、シャットダウンが行われる場合、ステップS105では、RAM82を含めてCE機器10全体への電力の供給が遮断されることになり、その後、例えば、操作部46に含まれるパワーON/OFFボタンが押下されたとき、CE機器10が、再起動されてRAM82に、OS101、アプリケーションプログラム102などのソフトウェアがあらためてロードされることになる。
【0073】
次に、図5のフローチャートを参照して、エクセプションハンドラの処理の例について説明する。
【0074】
ステップS121において、エクセプションハンドラ133は、OS101のカーネルから通常アプリケーションによる不正な処理があったことの通知があったか否かを判定し、通常アプリケーションによる不正な処理があったことの通知があったと判定されるまで待機する。ここでは、図4のステップS102の処理による通知があったか否かが判定されることになる。
【0075】
ステップS121において、OS101のカーネルから通常アプリケーションによる不正な処理があったことの通知があったと判定された場合、処理は、ステップS122に進み、エクセプションハンドラ133は、ログを出力する。このとき、例えば、不正な処理に係るプログラム、時刻などを特定する情報などがログとして出力される。
【0076】
ステップS123において、エクセプションハンドラ133は、図4のステップS103の処理でキルされた通常アプリケーションに対応するプロセス(例えば、図3のプロセス151)が完全に終了するまで待機する。
【0077】
ステップS123において、通常アプリケーションに対応するプロセスが完全に終了したと判定された場合、処理は、ステップS124に進み、エクセプションハンドラ133は、フラグが「OFF」であるか否かを判定する。ここで、フラグは、エクセプションハンドラ133に、例外アプリケーションを起動(実行)させるか否かを判定するためのフラグであり、「ON」または「OFF」の状態があり得るものであって、初期値としては「OFF」とされる。
【0078】
いまの場合、フラグは初期値の「OFF」であるため、ステップS124では、フラグは「OFF」と判定されて、処理はステップS125に進む。
【0079】
ステップS125において、エクセプションハンドラ133は、例外アプリケーションの実行を制御する。これにより、ユーザランド空間132で、例外アプリケーションに対応するプロセス(例えば、図3のプロセス152)が実行されることになる。
【0080】
例外アプリケーションが実行された場合、例えば、図6に示されるような画面がLCD20に表示される。
【0081】
図6は、例外アプリケーションにより表示される画面の例を示しており、この例では、画面201に、「システムエラーが発生しました。終了して下さい。」とのメッセージが表示されている。これにより、ユーザに、CE機器10において、システムエラーが発生したことを認識させることができる。
【0082】
また、画面201は、GUIとしての機能も有しており、ボタン202が表示されている。例えば、ユーザが、操作部46を操作して、画面201のボタン202にカーソルを合わせるなどして押下することにより、CE機器10のシャットダウンまたはリブートが指令されるようになされている。
【0083】
すなわち、例外アプリケーションは、ユーザに、CE機器10のシステムエラーを通知するメッセージを表示し、ボタン202を押下させることで再起動を促すための画面201を表示させる処理を実行するアプリケーションプログラムである。
【0084】
図5に戻って、ステップS125の処理の後、エクセプションハンドラ133は、ステップS126において、フラグを更新する。いまの場合、フラグが初期値の「OFF」から「ON」に更新される。
【0085】
次に、図7のフローチャートを参照して、例外アプリケーションの処理の例について説明する。
【0086】
ステップS141において、例外アプリケーションは、例えば、図6のボタン202のように、再起動に関する処理の実行を指令するボタンが押下されたか否かを判定し、ボタンが押下されたと判定されるまで待機する。ステップS141において、再起動に関する処理の実行を指令するボタンが押下されたと判定された場合、処理は、ステップS142に進む。
【0087】
ステップS142において、例外アプリケーションは、OS101のカーネルにリブートまたはシャットダウンの実行を要求する。これにより、図4のステップS105の処理でリブートまたはシャットダウンが行われることになる。なお、このリブートまたはシャットダウンの後、CE機器10が再起動されるときには、通常アプリケーションが自動的に実行されるようになされている。
【0088】
このようにすることで、アプリケーションプログラム102を構成するプログラムによる不正な処理が実行され、OS101の機能によりそのプログラムが強制終了された場合であっても、ユーザに、CE機器10においてシステムエラーが発生したことを認識させることができる。したがって、OS101のメモリ保護機能を有効に活用するとともに、ユーザによる操作性を向上させることができるようにするものである。
【0089】
ところで、例外アプリケーションは、上述したように、画面201を表示し、OS101のカーネルにリブートの実行を要求するだけの単純なプログラムであるが、例外アプリケーションにもやはりバグがあり、確保されたメモリサイズを越えるデータが入力されるなどの処理が実行される可能性もある。このような場合、例外アプリケーションによる不正な処理がOS101のカーネルにより検知されて、例外アプリケーションが強制終了されることになる。
【0090】
しかし、このような場合、通常アプリケーションが強制終了された場合と同様に、例外アプリケーションを新たに実行しても、やはりまた、例外アプリケーションによる不正な処理が繰り返される恐れがある。そこで、本発明においては、例外アプリケーションによる不正な処理がOS101のカーネルにより検知されて、例外アプリケーションが強制終了された場合、CE機器10がリブートまたはシャットダウンされて再起動されるようになされている。
【0091】
すなわち、例外アプリケーションが起動中に不正な処理が実行された場合、図4のステップS101の処理で、不正な処理があったと判定され、処理は、ステップS102、S103に進むことになる。なお、いまの場合、ステップS103では、ユーザランド空間132で実行されている例外アプリケーションに対応するプロセス152がキルされることになる。
【0092】
また、ステップS102の処理で、エクセプションハンドラ133に、OS101のカーネルから、例外アプリケーションによる不正な処理があったことの通知が行われ、これに伴い、図5のステップS122乃至S124の処理が実行されることになるが、いまの場合、フラグは、「ON」なので、ステップS124の処理の後、処理は、ステップS127に進むことになる。
【0093】
ステップS127では、エクセプションハンドラ133からOS101のカーネルにリブートまたはシャットダウンの実行が要求される。そして、図4のステップS104とS105の処理が実行されることになる。
【0094】
いまの場合、図4のステップS104では、リブートまたはシャットダウンが要求されたと判定され、ステップS105において、OS101のカーネルが、CE機器10のリブートまたはシャットダウンを行う。これにより、CE機器10がリブートまたはシャットダウン後に再起動されて、RAM82に、OS101、アプリケーションプログラム102などのソフトウェアがあらためてロードされることになる。なお、この再起動に伴って、やはり通常アプリケーションが自動的に実行される。
【0095】
以上においては、OS101により検知されるシステムエラーの例として、プログラムにより確保されたメモリサイズを越えるデータが入力されるなどして、RAM82の誤った領域にデータが書き込まれる不正な処理の発生を説明したが、例えば、アプリケーションプログラム102のプログラムによりRAM82において使用可能な記憶領域を使用し尽してしまう、いわゆるアウトオブメモリの発生、その他の不正な処理であってソフトウェアが正常に動作できない状態になる不正な処理の発生が、OS101によりシステムエラーとして検知されるようにしてもよい。
【0096】
また、以上においては、CE機器10に本発明を適用する例について説明したが、例えば、図8に示されるようなパーソナルコンピュータに本発明を適用することも可能である。図8は、パーソナルコンピュータ700の構成例を示すブロック図である。
【0097】
図8において、CPU(Central Processing Unit)701は、ROM(Read Only Memory)702に記憶されているプログラム、または記憶部708からRAM(Random Access Memory)703にロードされたプログラムに従って各種の処理を実行する。RAM703にはまた、CPU701が各種の処理を実行する上において必要なデータなども適宜記憶される。
【0098】
CPU701、ROM702、およびRAM703は、バス704を介して相互に接続されている。このバス704にはまた、入出力インタフェース705も接続されている。
【0099】
入出力インタフェース705には、キーボード、マウスなどよりなる入力部706、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部707、ハードディスクなどより構成される記憶部708、モデム、LANカードなどのネットワークインタフェースカードなどより構成される通信部709が接続されている。通信部709は、インターネットを含むネットワークを介しての通信処理を行う。
【0100】
入出力インタフェース705にはまた、必要に応じてドライブ710が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア711が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部708にインストールされる。
【0101】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、図1のCE機器10、図8のパーソナルコンピュータ700などに、インターネットなどのネットワークや、記録媒体60、リムーバブルメディア711などからなる記録媒体からインストールされる。
【0102】
なお、この記録媒体は、図8に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フロッピディスク(登録商標)を含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア711により構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM83、ROM702、記憶部708に含まれるハードディスクなどで構成されるものも含む。
【0103】
本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【0104】
【図1】本発明を適用したCE機器の一実施形態に係る構成例を示すブロック図である。
【図2】図1のCPUにより実行されるソフトウェアの機能的構成例を示すブロック図である。
【図3】図2のソフトウェアが実行されるとき、OSにより管理される記憶領域の構成を説明する図である。
【図4】異常終了対応処理の例を説明するフローチャートである。
【図5】エクセプションハンドラの処理の例を説明するフローチャートである。
【図6】例外アプリケーションにより表示される画面の例を示す図である。
【図7】例外アプリケーションの処理の例を説明するフローチャートである。
【図8】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【0105】
10 CE機器, 20 LCD, 41 カメラ部, 45 制御部, 46 操作部, 60 記録媒体, 81 CPU, 82 RAM, 83 ROM, 101 OS, 102 アプリケーションプログラム, 133 エクセプションハンドラ, 701 CPU, 702 ROM, 703 RAM, 711 リムーバブルメディア

【特許請求の範囲】
【請求項1】
ユーザによる操作を受け付け、前記操作に対応する処理の実行を制御する第1のアプリケーションプログラムによる、前記情報処理装置のメモリに記憶されている情報が不正に更新される不正更新処理が実行されたか否かを判定する判定手段と、
前記判定手段により不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムを強制終了させる強制終了手段と、
前記判定手段により前記不正更新処理が実行されたと判定された場合、前記強制終了手段により前記第1のアプリケーションプログラムが終了された後、前記ユーザに、前記不正更新処理の発生を通知するとともに、自分の再起動に関する指令の操作を受け付ける第2のアプリケーションプログラムの実行を制御する再起動制御手段と
を備える情報処理装置。
【請求項2】
前記判定手段は、前記第2のアプリケーションプログラムにより、前記不正更新処理が実行されたか否かをさらに判定し、前記第2のアプリケーションプログラムにより、前記不正更新処理が実行されたと判定された場合、
前記再起動制御手段は、前記ユーザの操作の有無に係らず自分を再起動させる処理の実行を制御する
請求項1に記載の情報処理装置。
【請求項3】
画像を表示する表示画面をさらに備え、
前記第2のアプリケーションプログラムにより、前記不正更新処理の発生を通知するメッセージ、および前記再起動に関する指令の操作を受け付けるGUI(Graphical User Interface)が前記表示画面に表示される
請求項1に記載の情報処理装置。
【請求項4】
メモリ保護機能を有するオペレーティングシステムが実装され、
前記判定手段、および前記強制終了手段の処理は、それぞれ前記オペレーティングシステムのメモリ保護機能として実行される
請求項1に記載の情報処理装置。
【請求項5】
前記再起動制御手段の処理は、前記オペレーティングシステムにフックされたプログラムにより実行される
請求項4に記載の情報処理装置。
【請求項6】
ユーザによる操作を受け付け、前記操作に対応する処理の実行を制御する第1のアプリケーションプログラムによる、前記情報処理装置のメモリに記憶されている情報が不正に更新される不正更新処理が実行されたか否かを判定し、
前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムを強制終了させ、
前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムが終了された後、前記ユーザに、前記不正更新処理の発生を通知するとともに、自分の再起動に関する指令の操作を受け付ける第2のアプリケーションプログラムの実行を制御する
ステップを含む情報処理方法。
【請求項7】
ユーザによる操作を受け付け、前記操作に対応する処理の実行を制御する第1のアプリケーションプログラムによる、前記情報処理装置のメモリに記憶されている情報が不正に更新される不正更新処理が実行されたか否かの判定を制御し、
前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムを強制終了させるよう制御し、
前記不正更新処理が実行されたと判定された場合、前記第1のアプリケーションプログラムが終了された後、前記ユーザに、前記不正更新処理の発生を通知するとともに、自分の再起動に関する指令の操作を受け付ける第2のアプリケーションプログラムの実行を制御する
ステップを含むコンピュータが読み取り可能なプログラム。
【請求項8】
請求項7に記載のプログラムが記録されている記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2008−165551(P2008−165551A)
【公開日】平成20年7月17日(2008.7.17)
【国際特許分類】
【出願番号】特願2006−355322(P2006−355322)
【出願日】平成18年12月28日(2006.12.28)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】