JP2008299665A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2008299665A
JP2008299665A JP2007146008A JP2007146008A JP2008299665A JP 2008299665 A JP2008299665 A JP 2008299665A JP 2007146008 A JP2007146008 A JP 2007146008A JP 2007146008 A JP2007146008 A JP 2007146008A JP 2008299665 A JP2008299665 A JP 2008299665A
Authority
JP
Japan
Prior art keywords
stack
timer
state
information processing
stack inspection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007146008A
Other languages
English (en)
Other versions
JP4598022B2 (ja
Inventor
Yasuhiko Abe
保彦 阿部
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007146008A priority Critical patent/JP4598022B2/ja
Priority to US12/128,732 priority patent/US20080301680A1/en
Publication of JP2008299665A publication Critical patent/JP2008299665A/ja
Application granted granted Critical
Publication of JP4598022B2 publication Critical patent/JP4598022B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】変数格納エリアとして用いられるスタックの検査回数を削減しつつ、CPUの利用効率を向上させ、変数格納エリアとして用いられるスタックを好適に検査することができるようにする。
【解決手段】本発明に係る情報処理装置に適用可能な携帯電話機においては、主制御部は、携帯電話機において間欠動作の実行を制御し、その制御に従い、携帯電話機において間欠動作から復帰した際に、スタック検査用のタイマを第1の状態に設定し、設定されたスタック検査用のタイマがタイムアウトする度に、スタックの検査を実行する。
【選択図】 図4

Description

本発明は情報処理装置に係り、特に、変数格納エリアとして用いられるスタックを検査することができるようにした情報処理装置に関する。
近年、携帯電話機にはCPUが搭載されており、このCPU(Central Processing Unit)は、ROM(Read Only Memory)や記憶部に予め記憶されている種々のアプリケーションプログラムをRAM(Random Access Memory)に読み出して実行することにより、種々の処理を行う。
一般に、CPUが実行するスレッド(プログラムの実行単位)は、スタックと呼ばれるメモリを一時的に変数格納エリアとして使用する。また、この変数格納エリアは、サブルーチンを呼び出すごとに、プログラムの戻り番地を格納するものとしても使用される。この変数格納エリアに何らかのデータが入るなどにより変数格納エリアが破壊されると、スレッドは暴走してしまう可能性がある。
運用状態にある携帯電話機などの情報処理装置においては、この変数格納エリアが破壊されたことをすばやく検出する必要がある。例えば変数格納エリアが破壊されたことを検出する方法として、変数格納エリアとして用いられるスタックの上限値に含まれる属種データが壊れているか否かを比較することで、変数格納エリアが破壊されたことを検出するスタック検査方法が知られている。変数格納エリアの破壊が検出されると、スタックにリセットをかけることになる(例えば特許文献1参照)。
特開平8−77004号公報
しかしながら、このスタック検査方法を用いると、検出時にCPUリソースを多く消費してしまい、変数格納エリアの破壊を検出することができようにスタックの検査を頻繁に行うようにすると、情報処理効率が悪くなってしまうという課題があった。
本発明は、このような状況に鑑みてなされたものであり、変数格納エリアとして用いられるスタックの検査回数を削減しつつ、CPUの利用効率を向上させ、変数格納エリアとして用いられるスタックを好適に検査し、コンテンツ破壊などの致命的な状態になることを回避することができる情報処理装置を提供することを目的とする。
本発明の情報処理装置は、上述した課題を解決するために、情報処理装置において間欠動作の実行を制御する間欠動作実行制御手段と、間欠動作実行制御手段による制御に従い、情報処理装置において間欠動作から復帰した際に、スタック検査用のタイマを第1の状態に設定するタイマ設定手段と、タイマ設定手段により設定されたスタック検査用のタイマがタイムアウトする度に、スタックの検査を実行するスタック検査実行手段とを備えることを特徴とする。
本発明の情報処理装置においては、情報処理装置において間欠動作の実行が制御され、その制御に従い、情報処理装置において間欠動作から復帰した際に、スタック検査用のタイマが第1の状態に設定され、設定されたスタック検査用のタイマがタイムアウトする度に、スタックの検査が実行される。
本発明によれば、変数格納エリアとして用いられるスタックの検査回数を削減しつつ、変数格納エリアとして用いられるスタックを好適に検査し、コンテンツ破壊などの致命的な状態になることを回避することができる。
以下、本発明の実施の形態について、図面を参照しながら説明する。図1は、本発明に係る情報処理装置として適用可能な携帯電話機1の外観の構成を表している。なお、図1(A)は、携帯電話機1を約180度に見開いたときの正面から見た外観の構成を表しており、図1(B)は、携帯電話機1を見開いたときの側面から見た外観の構成を表している。
図1(A)および(B)に示されるように、携帯電話機1は、中央のヒンジ部11を境に第1の筐体12と第2の筐体13とがヒンジ結合されており、ヒンジ部11を介して矢印X方向に折り畳み可能に形成される。携帯電話機1の内部の所定の位置には、送受信用のアンテナ(後述する図3のアンテナ44)が設けられており、内蔵されたアンテナを介して基地局(図示せず)との間で電波を送受信する。
第1の筐体12には、その表面に「0」乃至「9」の数字キー、発呼キー、リダイヤルキー、終話・電源キー、クリアキー、および電子メールキーなどの操作キー14が設けられており、操作キー14を用いて各種指示を入力することができる。
第1の筐体12には、操作キー14として上部に十字キーと確定キーが設けられており、ユーザが十字キーを上下左右方向に操作することにより当てられたカーソルを上下左右方向に移動させることができる。具体的には、第2の筐体13に設けられた液晶ディスプレイ17に表示されている電話帳リストや電子メールのスクロール動作、簡易ホームページのページ捲り動作および画像の送り動作などの種々の動作を実行する。
また、確定キーを押下することにより、種々の機能を確定することができる。例えば第1の筐体12は、ユーザによる十字キーの操作に応じて液晶ディスプレイ17に表示された電話帳リストの複数の電話番号の中から所望の電話番号が選択され、確定キーが第1の筐体12の内部方向に押圧されると、選択された電話番号を確定して電話番号に対して発呼処理を行う。
さらに、第1の筐体12には、十字キーと確定キーの左隣に電子メールキーが設けられており、電子メールキーが第1の筐体12の内部方向に押圧されると、メールの送受信機能を呼び出すことができる。十字キーと確定キーの右隣には、ブラウザキーが設けられており、ブラウザキーが第1の筐体12の内部方向に押圧されると、Webページのデータを閲覧することが可能となる。また、第1の筐体12には、操作キー14の下部にマイクロフォン15が設けられており、マイクロフォン15によって通話時のユーザの音声を集音する。また、第1の筐体12には、携帯電話機1の操作を行うサイドキー16が設けられている。
一方、第2の筐体13には、その正面に液晶ディスプレイ17(メインディスプレイ)が設けられており、電波の受信状態、電池残量、電話帳として登録されている相手先名や電話番号及び送信履歴等の他、電子メールの内容、簡易ホームページ、CCD(Charge Coupled Device)カメラ(後述する図2のCCDカメラ20)で撮像した画像、外部のコンテンツサーバ(図示せず)より受信したコンテンツ、メモリカード(後述する図3のメモリカード46)に記憶されているコンテンツを表示することができる。また、液晶ディスプレイ17の上部の所定の位置にはスピーカ18が設けられており、これにより、ユーザは音声通話することが可能である。
図2は、本発明に係る情報処理装置として適用可能な携帯電話機1の他の外観の構成を表している。図2の携帯電話機1の状態は、図1の携帯電話機1の状態から矢印X方向に回動させた状態である。なお、図2(A)は、携帯電話機1を閉じたときの正面から見た外観の構成を表しており、図2(B)は、携帯電話機1を閉じたときの側面から見た外観の構成を表している。
第2の筐体13の上部には、CCDカメラ20が設けられており、これにより、所望の撮影対象を撮像することができる。CCDカメラ20の下部には、サブディスプレイ21が設けられており、現在のアンテナの感度のレベルを示すアンテナピクト、携帯電話機1の現在の電池残量を示す電池ピクト、現在の時刻などが表示される。
図3は、本発明に係る情報処理装置として適用可能な携帯電話機1の内部の構成を表している。図3に示されるように、携帯電話機1は、第1の筐体12及び第2の筐体13の各部を統括的に制御する主制御部31に対して、電源回路部32、操作入力制御部33、画像エンコーダ34、カメラインタフェース部35、LCD(Liquid Crystal Display)制御部36、多重分離部38、変復調回路部39、音声コーデック40、および記憶部47がメインバス41を介して互いに接続されるとともに、画像エンコーダ34、画像デコーダ37、多重分離部38、変復調回路部39、音声コーデック40、および記録再生部45が同期バス42を介して互いに接続されて構成される。
主制御部31は、CPU(Central Processing Unit)、ROM(Read Only Memory)、およびRAM(Random Access Memory)などからなり、CPUは、ROMに記憶されているプログラムまたは記憶部47からRAMにロードされた各種のアプリケーションプログラムに従って各種の処理を実行するとともに、種々の制御信号を生成し、各部に供給することにより携帯電話機1を統括的に制御する。RAMは、CPUが各種の処理を実行する上において必要なデータなどを適宜記憶する。なお、主制御部31には、現在の日付と時刻を正確に計測するタイマが内蔵されている。
携帯電話機1は、主制御部31の制御に基づいて、音声通話モード時にマイクロフォン15で集音した音声信号を音声コーデック40によってディジタル音声信号に変換、圧縮し、これを変復調回路部39でスペクトラム拡散処理し、送受信回路部43でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナ44を介して送信する。
また、携帯電話機1は、音声通話モード時にアンテナ44で受信した受信信号を増幅して周波数変換処理及びアナログディジタル変換処理を施し、変復調回路部39でスペクトラム逆拡散処理し、音声コーデック40によって伸張し、アナログ音声信号に変換した後、変換されたアナログ音声信号をスピーカ18を介して出力する。
さらに、携帯電話機1は、データ通信モード時に電子メールを送信する場合、操作キー14の操作によって入力された電子メールのテキストデータを操作入力制御部33を介して主制御部31に送出する。主制御部31は、テキストデータを変復調回路部39でスペクトラム拡散処理し、送受信回路部43でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナ44を介して基地局(図示せず)へ送信する。
これに対して携帯電話機1は、データ通信モード時に電子メールを受信する場合、アンテナ44を介して基地局(図示せず)から受信した受信信号を変復調回路部39でスペクトラム逆拡散処理して元のテキストデータを復元した後、LCD制御部36を介して液晶ディスプレイ17に電子メールとして表示する。
携帯電話機1は、データ通信モード時に画像信号を送信する場合、CCDカメラ20で撮像された画像信号をカメラインタフェース部35を介して画像エンコーダ34に供給する。
画像エンコーダ34は、CCDカメラ20から供給された画像信号を、例えばMPEG(Moving Picture Experts Group)4などの所定の符号化方式によって圧縮符号化することにより符号化画像信号に変換し、変換された符号化画像信号を多重分離部38に送出する。このとき同時に携帯電話機1は、CCDカメラ20で撮像中にマイクロフォン15で集音した音声を音声コーデック40を介してディジタルの音声信号として多重分離部38に送出する。
多重分離部38は、画像エンコーダ34から供給された符号化画像信号と音声コーデック40から供給された音声信号とを所定の方式で多重化し、その結果得られる多重化信号を変復調回路部39でスペクトラム拡散処理し、送受信回路部43でディジタルアナログ変換処理及び周波数変換処理を施した後にアンテナ44を介して送信する。これに対して、携帯電話機1では、データ通信モード時に、Webページのデータを受信することができる。
また、携帯電話機1は、データ通信モード時に例えばWebページなどにリンクされた動画像ファイルのデータを受信する場合、アンテナ44を介して基地局(図示せず)から受信した受信信号を変復調回路部39でスペクトラム逆拡散処理し、その結果得られる多重化信号を多重分離部38に送出する。
多重分離部38は、多重化信号を分離することにより符号化画像信号と音声信号とに分け、同期バス42を介して符号化画像信号を画像デコーダ37に供給すると共に音声信号を音声コーデック40に供給する。画像デコーダ37は、符号化画像信号をMPEG4などの所定の符号化方式に対応した復号化方式でデコードすることにより再生動画像信号を生成し、生成された再生動画像信号をLCD制御部36を介して液晶ディスプレイ17に供給する。これにより、例えば、Webページなどにリンクされた動画像ファイルに含まれる動画像データが表示される。このとき同時に音声コーデック40は、音声信号をアナログ音声信号に変換した後、これをスピーカ18に供給し、これにより、例えば、Webページなどにリンクされた動画像ファイルに含まる音声信号が再生される。
記憶部47は、例えば、電気的に書換えや消去が可能な不揮発性メモリであるフラッシュメモリ素子やHDD(Hard Disc Drive)などからなり、主制御部31のCPUにより実行される種々のアプリケーションプログラムや種々のデータ群を格納している。
ところで、運用状態にある携帯電話機などの情報処理装置においてCPUによって種々のアプリケーションを実行する際において、CPUが実行するスレッド(プログラムの実行単位)は、スタックと呼ばれるメモリを一時的に変数格納エリアとして使用する(図示しない)。また、この変数格納エリアは、サブルーチンを呼び出すごとに、プログラムの戻り番地を格納するものとしても使用される。そして、CPUがアプリケーションを実行している際には、この変数格納エリアが破壊されたことをすばやく検出する必要がある。例えば変数格納エリアが破壊されたことを検出する方法として、変数格納エリアとして用いられるスタックの上限値に含まれる属種データが壊れているか否かを比較することで、変数格納エリアが破壊されたことを検出するスタック検査方法が知られている。変数格納エリアの破壊が検出されると、スタックにリセットをかけることになる。
しかしながら、このスタック検査方法を用いると、検出時にCPUリソースを多く消費してしまい、変数格納エリアの破壊を検出することができようにスタックの検査を頻繁に行うようにすると、情報処理効率が悪くなってしまう。
複雑な処理においては処理時間が一般に長くなることから、例えばプログラムミスによるメモリ破壊やスタック消費が設計値を超えてしまうスタックオーバーフローなどのような状況に代表される変数格納エリアの破壊は、特に、複雑な処理を行うプログラムで発生しやすい。ここで、携帯電話機1においては、間欠動作時には網同期に必要な最低限の処理だけを行っており、複雑なGUI(Graphical User Interface)系の処理は動作していない。
そこで、複雑な処理は動作しない間欠動作時にはスタック検査を行わずに、複雑な処理が動作する可能性の高い間欠動作からの復帰時に、網同期処理以外の処理が動作しているか否かを判断した上で、網同期処理以外の処理が動作していると判断された場合、スタック検査用タイマをONにしてこのスタック検査用タイマのタイムアウトしたとき、変数格納エリアとして用いられるスタックを検査するようにする。これにより、変数格納エリアとして用いられるスタックの検査回数を削減しつつ、CPUの利用効率を向上させ、変数格納エリアとして用いられるスタックを好適に検査することが可能となる。以下、この方法を用いたスタック検査処理について説明する。
図4のフローチャートを参照して、図3の携帯電話機1におけるスタック検査処理について説明する。このスタック検査処理は、ユーザにより操作キー14のうち例えば終話・電源キーが操作(例えば1秒以上の長押し)されることにより、携帯電話機1の電源がONにされ、その場合に開始される。
ステップS1において、主制御部31のCPUは、複数のスレッドにイベントを配信制御している場合に、複数存在するスレッドのうち、その動作を監視することが可能な監視対象スレッドがイベントを受信し、監視対象スレッドの動作が開始したか否かを判定し、監視対象スレッドの動作が開始したと判定するまで待機する。
ステップS1において監視対象スレッドの動作が開始したと判定された場合、ユーザにより操作キー14のうち例えば終話・電源キーが操作されることにより、携帯電話機1の電源がONにされると、主制御部31のCPUはステップS2で、内蔵されたタイマを用いて、スタック検査用タイマをONに設定する。ステップS3において、主制御部31のCPUは、特定のプログラム(例えばスリープに関するプログラム)を実行する(又は実行している間に)ことで携帯電話機1において間欠動作すべき状態(又は間欠動作に移行するタイミング)であるか否かを判定する。例えば携帯電話機1において液晶ディスプレイ17のバックライト(又は表示)が消えたときなどに、特定のプログラム(例えばスリープに関するプログラム)を起動させることで携帯電話機1において間欠動作すべき状態であると判定される。
ステップS3において特定のプログラム(例えばスリープに関するプログラム)を実行することで携帯電話機1において間欠動作すべき状態であると判定された場合、主制御部31のCPUはステップS4で、現在ONに設定されて計時されているスタック検査用タイマを一時的にOFFに設定する。ステップS5において、主制御部31のCPUは携帯電話機1において間欠動作を開始し、主制御部31のCPUはスリープの状態となる。ステップS6において、携帯電話機1は所定の場合に間欠動作から復帰する。なお、「間欠動作」とは、主制御部31のCPUは原則動作しない状態であり(ステップS4)、携帯電話機1に音声着信があるか否かの判断することや、網側との同期を行うことや、メール受信があるか否かの判断をすることなど、最低限必要な処理をするために決められた時間にCPUを動作させる(ステップS6)ことを指す。
ステップS7において、携帯電話機1が間欠動作から復帰すると、主制御部31のCPUはスリープの状態から通常の状態(CPU動作状態)に移行し、複数のスレッドにイベントを配信制御している場合に、複数存在するスレッドのうち、その動作を監視することが可能な監視対象スレッドがイベントを受信して動作しているか否かを判定する。換言すれば、スタック検査が可能なスレッドが動作しているか否かが判定される。勿論、複数のスレッドにイベントを配信制御していない場合であっても、スタック検査が可能なスレッドが動作しているか否かが判定される。
ステップS7において複数存在するスレッドのうち、その動作を監視することが可能な監視対象スレッドがイベントを受信せず、動作していないと判定された場合、主制御部31のCPUはステップS8で、スタック検査用のタイマの一時的なOFFの設定を継続する。ステップS9において、主制御部31のCPUは、さらに、特定のプログラム(例えばスリープに関するプログラム)を実行する(又は実行している間に)ことで携帯電話機1において間欠動作すべき状態(又は間欠動作に移行するタイミング)であるか否かを判定する。この間欠動作すべき状態であるか否かに関する判定処理については、ステップS3の処理と同様であり、その説明は繰り返しになるので省略する。
ステップS9において間欠動作すべき状態(又は間欠動作に移行するタイミング)ではないと判定された場合、処理はステップS7に戻り、ステップS7以降の処理が繰り返して実行される。すなわち、間欠動作すべき状態でなく、かつ、監視対象スレッドが動作していない場合においても、スタック検査用タイマの一時的なOFFの設定が継続される。
一方、ステップS9において間欠動作すべき状態(又は間欠動作に移行するタイミング)であると判定された場合、処理はステップS5に戻り、ステップS5以降の処理が繰り返し実行される。すなわち、間欠動作すべき状態であり、かつ、監視対象スレッドが動作していない場合、スタック検査用タイマの一時的なOFFの設定が継続されるとともに、間欠動作が繰り返し行われる。
これにより、複数存在するスレッドのうち、その動作を監視することが可能な監視対象スレッドがイベントを受信せず、動作していないと判定された場合(すなわち、スタック検査が可能なスレッドが動作していないと判定された場合)、そもそも、スタック検査を行う意味がないことから、スタック検査を実行しないようにすることができる。従って、無駄なスタック検査を省くことができる。
一方、ステップS7において複数存在するスレッドのうち、その動作を監視することが可能な監視対象スレッドがイベントを受信して動作していると判定された場合、主制御部31のCPUはステップS10で、スタック検査用のタイマ(例えば2、3秒間や5秒間など)をOFFからONに切り替えて設定する。その後、スタック検査用のタイマの計時処理が開始される。ステップS11において、主制御部31のCPUは、スタック検査用のタイマの計時処理が進むことにより、スタック検査用のタイマ(例えば2、3秒間や5秒間など)がタイムアウトしたか否かを判定する。
ステップS11においてスタック検査用のタイマ(例えば2、3秒間や5秒間など)がまだタイムアウトしていないと判定された場合、主制御部31のCPUはステップS10で、スタック検査用のタイマのONの設定(タイマカウント)を継続する。その後、処理はステップS17に進む。すなわち、ステップS2において再度間欠動作すべき状態であるか否かが判定され、携帯電話機1において間欠動作すべき状態ではないと判定された場合、処理はステップS9に進み、ステップS9以降の処理が繰り返し実行される。これにより、スタック検査用タイマがタイムアウトするまで計時処理が行われる。
ステップS11においてスタック検査用のタイマ(例えば2、3秒間や5秒間など)がタイムアウトしたと判定された場合、主制御部31のCPUはステップS13で、スタック検査を実行する。上述したように、例えば変数格納エリアとして用いられるスタックの上限値に含まれる属種データが壊れているか否かを比較することで、変数格納エリアが破壊されたことが検出される。勿論、これ以外に方法を用いてスタック検査を行うようにしてもよい。
ステップS14において、主制御部31のCPUは、スタック検査の実行の結果、変数格納エリアに用いられるスタックに異常が発生したことで変数格納エリアが破壊されているか否かを判定する。ステップS14において変数格納エリアに用いられるスタックに異常が発生したことで変数格納エリアが破壊されていると判定された場合、主制御部31のCPUはステップS16で、CPUが動作させているシステム全体をリスタートさせる(再起動状態となる)。その後、処理はステップS1に進み、ステップS1以降の処理が繰り返し実行される。
一方、ステップS14において変数格納エリアに用いられるスタックに異常が発生せず、変数格納エリアが破壊されていないと判定された場合、主制御部31のCPUはステップS15で、スタック検査用タイマをリセットする(すなわち、スタック検査用タイマをONに継続する)。その後、再度、スタック検査タイマの計時処理が開始される。
次に、ステップS17において、主制御部31のCPUは、複数のスレッドにイベントを配信制御している場合に、複数存在するスレッドのうち、動作を開始している監視対象スレッドの動作が終了したか否かを判定する。換言すれば、スタック検査が可能なスレッドの動作が終了したか否かが判定される。ステップS17において動作を開始している監視対象スレッドの動作が終了したと判定された場合、主制御部31はステップS18で、現在ONに設定されて計時されているスタック検査用タイマを一時的にOFFに設定する。
一方、ステップS17において動作を開始している監視対象スレッドの動作が終了していないと判定された場合、ステップS18の処理はスキップされる。これにより、現在ONに設定されて計時されているスタック検査用タイマを一時的にOFFに設定されずに、スタック検査用タイマのONの設定は継続される。ステップS19において、主制御部31のCPUは、複数のスレッドにイベントを配信制御している場合に、複数存在するスレッドのうち、その動作を監視することが可能な監視対象スレッドがイベントを受信し、監視対象スレッドの動作が新たに開始したか否かを判定する。
ステップS19において監視対象スレッドの動作が新たに開始したと判定された場合、主制御部31のCPUはステップS20で、内蔵されたタイマを用いて、スタック検査用タイマをOFFからONに切り替えて設定する。これにより、その後、スタック検査用のタイマの計時処理が開始される。一方、ステップS19において監視対象スレッドの動作が新たに開始していないと判定された場合、ステップS20の処理はスキップされる。その後、処理はステップS3に戻り、ステップS3以降の処理が繰り返し実行される。
これにより、携帯電話機1において間欠動作すべき状態であると判定されるまで、新たに監視対象スレッドの動作が開始される度にスタック検査用タイマがONに設定され、スタック検査用タイマによる所定の時間(例えば2、3秒間や5秒間など)ごとに(スタック検査用タイマがタイムアウトするごとに)、スタック検査処理が繰り返し実行される。
一方、ステップS14において変数格納エリアに用いられるスタックに異常が発生したことで変数格納エリアが破壊されていると判定された場合、主制御部31のCPUはステップS16で、CPUが動作させているシステム全体をリスタートさせる(再起動状態となる)。その後、処理はステップS1に進み、ステップS1以降の処理が繰り返し実行される。
本発明の実施形態においては、携帯電話機1において間欠動作の実行を制御し、この制御に従い、携帯電話機1において間欠動作から復帰した際に、スタック検査用のタイマをON(以降本明細書ではタイマON状態を「第1の状態」と定義し、タイマOFF状態を「第2の状態」と定義する)に設定し、設定されたスタック検査用のタイマがタイムアウトする度に、スタックの検査を実行することができる。
そして、スタック検査の実行の結果、変数格納エリアに用いられるスタックに異常が発生したことで変数格納エリアが破壊されているか否かを判定し、変数格納エリアに用いられるスタックに異常が発生したことで変数格納エリアが破壊されていると判定された場合、CPUが動作させているシステム全体をリスタートさせる。一方、変数格納エリアに用いられるスタックに異常が発生せず、変数格納エリアが破壊されていないと判定された場合、スタック検査用タイマをリセットする。
これにより、変数格納エリアとして用いられるスタックの検査回数を削減しつつ、CPUの利用効率を向上させ、変数格納エリアとして用いられるスタックを必要最低限に検査することができるとともに、もし問題があったとしても、早期に問題を検出し、コンテンツ破壊などの致命的な状態に遷移することを防ぐことができる。
ところで、一旦、スタック検査用タイマがONに設定された後、スタック検査用タイマの計時処理が進んでタイムアウトしないうちに、新たな監視対象スレッドが動作したと判定された場合、スタック検査用タイマがタイムアウトしないという状況も考えられる。例えば監視対象スレッドAが動作している場合に、次に監視対象スレッドB、C、Dと順次動作し始めたとき、その都度、スタック検査用タイマがONに設定されてしまうと、なかなかタイムアウトせずにスタックの検査が行われないことになってしまう。そこで、スタック検査用タイマをONに設定したとき、スタック検査用タイマONのフラグをONに設定し、その後、仮に新たな監視対象スレッド順次動作し始めたとしても、スタック検査用タイマONのフラグに基づいて、すでにいずれかのスタック検査用タイマONのフラグがONに設定されていると判定されたときには、スタック検査用タイマを改めてONに設定せず、当初スタック検査用タイマのONに設定したタイマを継続して動作するようにする。これにより、例えば監視対象スレッドAが動作している場合に、次に監視対象スレッドB、C、Dと順次動作し始めたときであっても、最初に設定されたスタック検査用タイマがタイムアウトするときにスタック検査を行うことが可能となる。以下、この方法を用いたスタック検査処理について説明する。
図5のフローチャートを参照して、図3の携帯電話機1における他のスタック検査処理について説明する。なお、図5のステップS31、ステップS33乃至S35、ステップS37乃至S42、ステップS44乃至S50、ステップS53乃至S54、およびステップS56の処理は、図4のステップS1乃至S20の処理と同様であり、その説明は繰り返しになるので省略する。
ステップS32において、主制御部31のCPUは、いずれかの監視対象スレッドの動作が開始された後、RAMにて、動作が開始された監視対象スレッド(例えば監視対象スレッドAなど)に対応するスタック検査用タイマONフラグをONに設定する(フラグを立てる)。すなわち、例えばRAMの図示せぬレジスタなどにスタック検査用タイマONに設定された状態が記憶される。なお、RAM内には、監視対象スレッドに対応するスタック検査用タイマONフラグがそれぞれ存在し、監視対象スレッドの動作が開始される度にその監視対象スレッドに対応するスタック検査用タイマONフラグがONに設定される。その後、処理はステップS33に進み、ステップS33においてスタック検査用タイマがONに設定され、計時処理が開始される。
ステップS36において、主制御部31のCPUは、間欠動作すべき状態になり、スタック検査用タイマが一時的にOFFに設定されると、RAMにて、それぞれの監視対象スレッド(例えば監視対象スレッドAやB、Cなど)に対応するスタック検査用タイマONフラグをすべてOFFに設定する(フラグを立てる)。
ステップS43において、主制御部31のCPUは、スタック検査タイマがONに設定された後、RAMにて、動作している監視対象スレッド(例えば監視対象スレッドAなど)に対応するスタック検査用タイマONフラグをOFFから切り替えてONに設定する(フラグを立てる)。すなわち、例えばRAMの図示せぬレジスタなどにスタック検査用タイマONに設定された状態が記憶される。その後、処理はステップS44に進む。
ステップS50において動作を開始している監視対象スレッドの動作が1つでも終了したと判定された場合、主制御部31はステップS51で、RAMにて、動作が終了した監視対象スレッド(例えば監視対象スレッドAなど)に対応するスタック検査用タイマONフラグをOFFに設定する(フラグを立てる)。なお、動作している監視対象スレッドが複数同時または順次に終了した場合、動作している複数の監視対象スレッド(例えば監視対象スレッドAなど)に対応するスタック検査用タイマONフラグがそれぞれOFFから切り替えてONに設定される(フラグが立てられる)。一方、ステップS50において動作を開始している監視対象スレッドの動作が1つも終了していないと判定された場合、ステップS51乃至S53の処理はスキップされる。
ステップS52において、主制御部31のCPUは、RAMにて存在するスタック検査用タイマONフラグのうち、監視対象スレッドに対応するスタック検査用タイマONフラグがすべてOFFに設定されているか否かを判定する。ステップS52においてRAMにて存在するスタック検査用タイマONフラグのうち、監視対象スレッドに対応するスタック検査用タイマONフラグがすべてOFFに設定されていると判定された場合、処理はステップS53に進み、ステップS53においてスタック検査用タイマが一時的にOFFに設定される。
一方、ステップS52においてRAMにて存在するスタック検査用タイマONフラグのうち、監視対象スレッドに対応するスタック検査用タイマONフラグはすべてOFFに設定されておらず、いずれかの監視対象スレッドに対応するスタック検査用タイマONフラグがONに設定されていると判定された場合、ステップS53の処理はスキップされる。すなわち、いずれかの監視対象スレッドに対応するスタック検査用タイマONフラグがONに設定されている場合、スタック検査用タイマが一時的にOFFに設定されず、スタック検査用タイマのONの設定が継続される。
ステップS54において監視対象スレッドの動作が新たに開始したと判定された場合、主制御部31のCPUはステップS55で、動作が開始した監視対象スレッドに対応するスタック検査用タイマONフラグをONに設定する。その後、ステップS56の処理において、内蔵されたタイマを用いてスタック検査用タイマがOFFからONに切り替えて設定される。これにより、スタック検査用タイマの計時処理が開始される。一方、ステップS54において監視対象スレッドの動作が新たに開始していないと判定された場合、ステップS55乃至S56の処理はスキップされる。これにより、例えば監視対象スレッドAが動作している場合に、次に監視対象スレッドB、C、Dと順次動作し始めたときであっても、最初に設定されたスタック検査用タイマがタイムアウトするときにスタック検査を行うことができる。従って、変数格納エリアとして用いられるスタックの検査回数を削減しつつ、CPUの利用効率を向上させ、変数格納エリアとして用いられるスタックを必要最低限に検査することができるとともに、変数格納エリアとして用いられるスタックを一定時間ごとに確実に検査することができ、もし問題があったとしても、早期に問題を検出してコンテンツ破壊などの致命的な状態に遷移することを防ぐことができる。
なお、本発明は、携帯電話機1以外にも、PDA(Personal Digital Assistant)、パーソナルコンピュータ、携帯型ゲーム機、携帯型音楽再生機、携帯型動画再生機、その他の情報処理装置にも適用することができる。
また、本発明の実施形態において説明した一連の処理は、ソフトウェアにより実行させることもできるが、ハードウェアにより実行させることもできる。
さらに、本発明の実施形態では、フローチャートのステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
本発明に係る情報処理装置に適用可能な携帯電話機の外観の構成を示す外観図。 本発明に係る情報処理装置に適用可能な携帯電話機の他の外観の構成を示す外観図。 本発明に係る情報処理装置に適用可能な携帯電話機の内部の構成を示すブロック図。 図3の携帯電話機におけるスタック検査処理を説明するためのフローチャート。 図3の携帯電話機における他のスタック検査処理を説明するためのフローチャート。
符号の説明
1…携帯電話機、11…ヒンジ、12…第1の筐体、13…第2の筐体、14…操作キー、15…マイクロフォン、16…サイドキー、17…液晶ディスプレイ、18…スピーカ、19a乃至19d…磁気センサ、20…CCDカメラ、21…サブディスプレイ、31…主制御部、32…電源回路部、33…操作入力制御部、34…画像エンコーダ、35…カメラI/F部、36…LCD制御部、37…画像デコーダ、38…多重分離部、39…変復調回路部、40…音声コーデック、41…メインバス、42…同期バス、43…送受信回路部、44…アンテナ、45…記録再生部、46…メモリカード、47…記憶部。

Claims (8)

  1. 情報処理装置において間欠動作の実行を制御する間欠動作実行制御手段と、
    前記間欠動作実行制御手段による制御に従い、前記情報処理装置において間欠動作から復帰した際に、スタック検査用のタイマを第1の状態に設定するタイマ設定手段と、
    前記タイマ設定手段により設定された前記スタック検査用のタイマがタイムアウトする度に、スタックの検査を実行するスタック検査実行手段とを備えることを特徴とする情報処理装置。
  2. 前記スタック検査実行手段により実行されたスタックの検査の結果、スタックにおける変数格納エリアが破壊されていると判定された場合、システムを元の状態に戻すシステム制御手段をさらに備えることを特徴とする請求項1に記載の情報処理装置。
  3. 前記間欠動作実行制御手段により情報処理装置において間欠動作を実行する場合、前記タイマ設定手段は、スタック検査用のタイマを第2の状態に設定することを特徴とする請求項1に記載の情報処理装置。
  4. 前記間欠動作実行制御手段による制御に従い、前記情報処理装置において間欠動作から復帰した際に、スタック検査が可能なスレッドが動作しているか否かを判定する第1の判定手段をさらに備え、
    前記第1の判定手段によりスタック検査が可能なスレッドが動作していると判定された場合、前記タイマ設定手段は、スタック検査用のタイマを前記第2の状態から前記第1の状態に切り替えて設定することを特徴とする請求項3に記載の情報処理装置。
  5. 前記第1の判定手段によりスタック検査が可能なスレッドが動作していないと判定された場合、前記タイマ設定手段は、スタック検査用のタイマの前記第2の状態の設定を継続することを特徴とする請求項4に記載の情報処理装置。
  6. 前記第1の判定手段によりスタック検査が可能なスレッドが動作していると判定された場合、前記タイマ設定手段によりスタック検査用のタイマが前記第2の状態から前記第1の状態に切り替えて設定された後、スタック検査が可能なスレッドが終了したか否かを判定する第2の判定手段をさらに備え、
    前記第2の判定手段により、前記タイマ設定手段によりスタック検査用のタイマが前記第2の状態から前記第1の状態に切り替えて設定された後、スタック検査が可能なスレッドが終了したと判定された場合、前記タイマ設定手段は、スタック検査用のタイマを前記第1の状態から前記第2の状態に切り替えて設定することを特徴とする請求項4に記載の情報処理装置。
  7. 前記第1の判定手段によりスタック検査が可能なスレッドが新たに動作していると判定された場合、前記タイマ設定手段は、スタック検査用のタイマを再び前記第2の状態から前記第1の状態に切り替えて設定することを特徴とする請求項4に記載の情報処理装置。
  8. 前記タイマ設定手段によりスタック検査用のタイマを前記第1の状態または前記第2の状態に設定する際に、スタック検査用のタイマが前記第1の状態または前記第2の状態に設定されたことを示すフラグを設定するフラグ設定手段をさらに備え、
    前記タイマ設定手段によりスタック検査用のタイマが前記第1の状態に設定されている場合に、前記フラグ設定手段により設定されている前記フラグがすべて、スタック検査用のタイマが前記第2の状態に設定されたことを示すフラグに設定されたとき、前記タイマ設定手段は、スタック検査用のタイマを前記体2の状態に設定することを特徴とする請求項1に記載の情報処理装置。
JP2007146008A 2007-05-31 2007-05-31 情報処理装置 Expired - Fee Related JP4598022B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007146008A JP4598022B2 (ja) 2007-05-31 2007-05-31 情報処理装置
US12/128,732 US20080301680A1 (en) 2007-05-31 2008-05-29 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007146008A JP4598022B2 (ja) 2007-05-31 2007-05-31 情報処理装置

Publications (2)

Publication Number Publication Date
JP2008299665A true JP2008299665A (ja) 2008-12-11
JP4598022B2 JP4598022B2 (ja) 2010-12-15

Family

ID=40089770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007146008A Expired - Fee Related JP4598022B2 (ja) 2007-05-31 2007-05-31 情報処理装置

Country Status (2)

Country Link
US (1) US20080301680A1 (ja)
JP (1) JP4598022B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04266141A (ja) * 1991-02-21 1992-09-22 Fujitsu Ltd スタックオーバーフロー検出方式
JP2001142737A (ja) * 1999-11-10 2001-05-25 Matsushita Electric Ind Co Ltd メモリ管理装置
JP2001331348A (ja) * 2000-05-24 2001-11-30 Nec Software Kobe Ltd プロセスメモリ消費量増加傾向検出方式

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69024753T2 (de) * 1989-10-31 1996-05-30 Hewlett Packard Co Tragbarer, Ressourcen teilender Datei-Server, der gemeinsame Routines benutzt
US7131015B2 (en) * 2002-11-12 2006-10-31 Arm Limited Performance level selection in a data processing system using a plurality of performance request calculating algorithms
US7412694B2 (en) * 2003-09-18 2008-08-12 International Business Machines Corporation Detecting program phases with periodic call-stack sampling during garbage collection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04266141A (ja) * 1991-02-21 1992-09-22 Fujitsu Ltd スタックオーバーフロー検出方式
JP2001142737A (ja) * 1999-11-10 2001-05-25 Matsushita Electric Ind Co Ltd メモリ管理装置
JP2001331348A (ja) * 2000-05-24 2001-11-30 Nec Software Kobe Ltd プロセスメモリ消費量増加傾向検出方式

Also Published As

Publication number Publication date
JP4598022B2 (ja) 2010-12-15
US20080301680A1 (en) 2008-12-04

Similar Documents

Publication Publication Date Title
JP5365060B2 (ja) 情報処理装置
US20200348826A1 (en) Apparatus and method for performing multi-tasking in portable terminal
JP4764329B2 (ja) 情報処理装置
WO2015176448A1 (zh) 一种终端智能分屏方法及装置
US20140327638A1 (en) Method for controlling operation of touch panel and portable terminal supporting the same
JP4444310B2 (ja) 携帯電話機
JP2007115045A (ja) 情報処理装置および方法、プログラム、並びに記録媒体
US8881169B2 (en) Information processing apparatus for monitoring event delivery from plurality of monitoring threads
KR100820275B1 (ko) 분할 촬영 방법 및 이를 이용하는 이동통신 단말기
JP2008172453A (ja) 情報処理装置
US20130093799A1 (en) Apparatus and method for controlling screen brightness in portable terminal
JP2007141064A (ja) 携帯端末装置及びメニュー表示切り替え方法
JP4598022B2 (ja) 情報処理装置
JP4888183B2 (ja) 情報処理装置
CN113688043B (zh) 应用程序测试方法、装置、服务器、iOS设备及介质
JP2008147950A (ja) 情報処理装置
JP5217552B2 (ja) 携帯端末装置
CN110366028B (zh) 屏幕视频获取方法及装置
JP2011022962A (ja) 情報処理端末
JP4592713B2 (ja) 情報処理装置
JP5132998B2 (ja) 通信端末の検査装置
TW201419038A (zh) 智慧型裝置之快速選擇功能之方法、記錄媒體及電腦程式產品
US8078734B2 (en) Information processing apparatus
JP2007019611A (ja) 携帯情報端末、画面生成方法
JP2008282319A (ja) ライセンス管理装置、ライセンス管理装置の制御方法及び制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100202

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100405

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100426

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100922

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

LAPS Cancellation because of no payment of annual fees