(57)【特許請求の範囲】
【請求項１】
優先度が設けられる複数の被監視対象タスクが並行して処理されるマルチタスク処理において、前記複数の被監視対象タスクに対して、キープアライブ動作によってキープアライブイベントを送信する第１のイベント送信手段と、
前記第１のイベント送信手段によって前記被監視対象タスクに対して前記キープアライブイベントが送信されてから所定の時間が経過した場合、すべての前記被監視対象タスクから前記キープアライブイベントに対する応答があるか否かを判定する判定手段と、
前記判定手段により少なくともいずれか１つ以上の前記被監視対象タスクから前記キープアライブイベントに対する応答がないと判定された場合、それぞれの前記被監視対象タスクに対して、前記キープアライブ動作によって前記キープアライブイベントを再送信する第２のイベント送信手段と、
前記第２のイベント送信手段による前記被監視対象タスクに対する前記キープアライブイベントの再送信中に、輻輳状態の前記被監視対象タスクを検出する検出手段と、
前記検出手段により輻輳状態の前記被監視対象タスクが検出された場合、情報処理装置のシステムをリセットして再起動する起動手段とを備え、
前記検出手段により検出される輻輳状態の前記被監視対象タスクは、前記被監視対象タスクのイベントキューの先頭に格納されるイベントが前記キープアライブイベントであり、かつ、前記被監視対象タスクの駆動中のイベントが前記キープアライブイベント以外のイベントである被監視対象タスクであることを特徴とする情報処理装置。
【請求項２】
前記第１のイベント送信手段は、それぞれの前記被監視対象タスクに対して、前記被監視対象タスクの優先度に従い、前記キープアライブ動作によって前記キープアライブイベントを送信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２のイベント送信手段は、それぞれの前記被監視対象タスクに対して、前記被監視対象タスクの優先度に従い、前記キープアライブ動作によって前記キープアライブイベントを再送信することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第１のイベント送信手段は、ＣＰＵが最低優先度のタスクに対して所定の時間割り当てられない場合、それぞれの前記被監視対象タスクに対して、前記キープアライブ動作によって前記キープアライブイベントを送信することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記起動手段は、前記検出手段により輻輳状態の前記被監視対象タスクが少なくとも１つ以上検出された場合、前記情報処理装置のシステムをリセットして再起動することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記検出手段により輻輳状態の前記被監視対象タスクに関する情報を記憶する記憶手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置に係り、特に、複数のタスクを並行して処理するマルチタスク処理を実行する場合に、システムの異常状態を回避することができるようにした情報処理装置に関する。
【背景技術】
【０００２】
近年、情報処理装置としての携帯電話機には、単なる通話による通信機能だけでなく、アドレス帳機能、基地局やインターネットを介したメール機能や、Ｗｅｂページなどを閲覧することが可能なブラウザ機能などが搭載されるようになってきている。
【０００３】
これに伴い、例えばパーソナルコンピュータだけでなく携帯電話機においても、ＯＳ（Operating System）にＴＳＳ（Time Sharing System）制御機能を搭載し、制御メモリ空間やＩ／Ｏ空間の資源などを共有しつつ、同一のプロセス内において複数のスレッド（タスク）の処理を並行して行うマルチスレッド（マルチタスク）方式が提案されている（例えば特許文献１参照）。特許文献１に提案されている技術によれば、ＯＳのＴＳＳスケジューラの実装に依存せずに、ＣＰＵを最大限に使用し、呼処理イベントの処理を実行することができる。
【０００４】
ラウンドロビン機能やＴＳＳ制御機能が搭載されていないＯＳ環境下では、発生したイベントをＣＰＵが処理する場合、一般に、イベントドリブンに生成されたそれぞれのスレッドの優先度に従って処理するが、いくつかのスレッドによりＣＰＵの資源が占有されてしまうと、その他のスレッドの処理が実行されない状況が発生してしまう。すなわち、優先度の高いスレッド間における処理が連続して行われると、優先度の高い複数のスレッドによりＣＰＵの資源が占有されてしまい、優先度の低いスレッドにＣＰＵの資源が回らず、その結果、優先度の低いスレッドの処理が実行されない状況が発生してしまう。このため、優先度の低いスレッドの処理がたまってしまい、システムが破綻してしまう。
【０００５】
そこで、このような場合にシステムの破綻を回避するために、次のような技術が提案されている（例えば特許文献２参照）。特許文献２に提案される技術によれば、ＣＰＵは監視スレッド１乃至３を実行し、優先度が設けられた複数のスレッドからなるグループを、グループ内のスレッドの動作を監視するための複数の監視スレッドに対するキープアライブ動作によって監視し、複数の前記監視スレッドからの応答に基づいて、キープアライブ動作に対する応答がない前記監視スレッドが存在するか否かを判定し、キープアライブ動作に対する応答がない前記監視スレッドが存在すると判定された場合、キープアライブ動作に対する応答がない前記監視スレッドが監視するグループよりも優先度が高いグループへのイベントの配信を停止する。これにより、優先度の高いスレッドに対するイベントの配信を停止するとともに、下位のグループに処理を回すことができ、ラウンドロビン機能やＴＳＳ制御機能が搭載されていないＯＳ上に構築されたアプリケーションプログラム群を効率よく制御することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１８５３０３号公報
【特許文献２】国際公開ＷＯ２００８／１１４５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、携帯電話機用のリアルタイムＯＳのようにタスクを優先度順に制御するＯＳにおいては、たとえ特許文献２に提案される技術を用いたとしても、高優先度のタスクが動作し続けると低優先度のタスクが動作できなくなってしまい、結局、システムが破綻してしまう。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、複数のタスクを並行して処理するマルチタスク処理を実行する場合に、システム上で輻輳状態となるタスクを好適に特定しつつ、システムの異常状態を好適に回避することができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、上述した課題を解決するために、優先度が設けられる複数のタスクが並行して処理されるマルチタスク処理において、複数のタスクに含まれるそれぞれの被監視対象タスクに対して、キープアライブ動作によってキープアライブイベントを送信する第１のイベント送信手段と、第１のイベント送信手段によって被監視対象タスクに対してキープアライブイベントが送信されてから所定の時間が経過した場合、すべての被監視対象タスクからキープアライブイベントに対する応答があるか否かを判定する判定手段と、判定手段により少なくともいずれか１つ以上の被監視対象タスクからキープアライブイベントに対する応答がないと判定された場合、それぞれの被監視対象タスクに対して、キープアライブ動作によってキープアライブイベントを再送信する第２のイベント送信手段と、第２のイベント送信手段による被監視対象タスクに対するキープアライブイベントの再送信中に、輻輳状態の被監視対象タスクを検出する検出手段と、検出手段により輻輳状態の被監視対象タスクが検出された場合、情報処理装置のシステムをリセットして再起動する起動手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、複数のタスクを並行して処理するマルチタスク処理を実行する場合に、システム上で輻輳状態となるタスクを好適に特定しつつ、システムの異常状態を好適に回避することができる。
【図面の簡単な説明】
【００１１】
【図１】（Ａ）と（Ｂ）は、本発明に係る携帯端末に適用可能な携帯電話機の外観の構成を示す図。
【図２】（Ａ）は、携帯電話機を閉じたときの正面から見た外観の構成を示しており、図２（Ｂ）は、携帯電話機を閉じたときの側面から見た外観の構成を示す図。
【図３】本発明に係る情報処理装置に適用可能な携帯電話機の内部の構成を示すブロック図。
【図４】従来のマルチタスク処理において並列して処理される複数のタスクの配列を説明する説明図。
【図５】本実施形態に係るタスク動作状態監視用タスクＨと最低優先度にタスク動作状態監視用タスクＬを説明する説明図。
【図６】図３の携帯電話機におけるタスク動作状態監視処理を説明するフローチャート。
【図７】携帯電話機が図６のタスク動作状態監視処理を実行する場合におけるタイミングチャート。
【図８】キープアライブイベントの再送信方法の詳細を説明する説明図。
【図９】図３の携帯電話機における他のタスク動作状態監視処理を説明するフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について、図面を参照しながら説明する。図１は、本発明に係る情報処理装置として適用可能な携帯電話機１の外観の構成を表している。なお、図１（Ａ）は、携帯電話機１を約１８０度に見開いたときの正面から見た外観の構成を表しており、図１（Ｂ）は、携帯電話機１を見開いたときの側面から見た外観の構成を表している。
【００１３】
図１（Ａ）および（Ｂ）に示されるように、携帯電話機１は、中央のヒンジ部１１を境に第１の筐体１２と第２の筐体１３とがヒンジ結合されており、ヒンジ部１１を介して矢印Ｘ方向に折り畳み可能に形成される。携帯電話機１の内部の所定の位置には、送受信用のアンテナ（後述する図３のアンテナ３１）が設けられており、内蔵されたアンテナを介して基地局（図示せず）との間で電波を送受信する。
【００１４】
第１の筐体１２には、その表面に「０」乃至「９」の数字キー、発呼キー、リダイヤルキー、終話・電源キー、クリアキー、および電子メールキーなどの操作キー１４が設けられており、操作キー１４を用いて各種指示を入力することができる。
【００１５】
第１の筐体１２には、操作キー１４として上部に十字キーと確定キーが設けられており、ユーザが十字キーを上下左右方向に操作することにより当てられたカーソルを上下左右方向に移動させることができる。具体的には、第２の筐体１３に設けられたメインディスプレイ１７に表示されている電話帳リストや電子メールのスクロール動作、簡易ホームページのページ捲り動作および画像の送り動作などの種々の動作を実行する。
【００１６】
また、確定キーを押下することにより、種々の機能を確定することができる。例えば第１の筐体１２は、ユーザによる十字キーの操作に応じてメインディスプレイ１７に表示された電話帳リストの複数の電話番号の中から所望の電話番号が選択され、確定キーが第１の筐体１２の内部方向に押圧されると、選択された電話番号を確定して電話番号に対して発呼処理を行う。
【００１７】
さらに、第１の筐体１２には、十字キーと確定キーの左隣に電子メールキーが設けられており、電子メールキーが第１の筐体１２の内部方向に押圧されると、メールの送受信機能を呼び出すことができる。十字キーと確定キーの右隣には、ブラウザキーが設けられており、ブラウザキーが第１の筐体１２の内部方向に押圧されると、Ｗｅｂページのデータを閲覧することが可能となる。
【００１８】
また、第１の筐体１２には、操作キー１４の下部にマイクロフォン１５が設けられており、マイクロフォン１５によって通話時のユーザの音声を集音する。さらに、第１の筐体１２には、携帯電話機１の操作を行うサイドキー１６が設けられている。
【００１９】
なお、第１の筐体１２は、背面側に図示しないバッテリパックが挿着されており、終話・電源キーがオン状態になると、バッテリパックから各回路部に対して電力が供給されて動作可能な状態に起動する。
【００２０】
一方、第２の筐体１３には、その正面にメインディスプレイ１７が設けられており、電波の受信状態、電池残量、電話帳として登録されている相手先名や電話番号及び送信履歴等の他、電子メールの内容、簡易ホームページ、ＣＣＤ（Charge Coupled Device）カメラ（後述する図２のＣＣＤカメラ２０）で撮像した画像、外部のコンテンツサーバ（図示せず）より受信したコンテンツ、メモリカード（後述する図３のメモリカード４６）に記憶されているコンテンツを表示することができる。また、メインディスプレイ１７の上部の所定の位置にはレシーバ（受話器）１８が設けられており、これにより、ユーザは音声通話することが可能である。なお、携帯電話機１の所定の位置には、レシーバ１８以外の音声出力部としてのスピーカ（図３のスピーカ５０）も設けられている。
【００２１】
また、第１の筐体１２と第２の筐体１３の内部の所定の位置には、携帯電話機１の状態を検知するための磁気センサ１９a、１９b、１９c、および１９dが設けられる。なお、メインディスプレイ１７は、例えば有機ＥＬにより構成されるディスプレイでもよいし、液晶ディスプレイ（Liquid Crystal Display）でもよい。
【００２２】
図２は、本発明に係る情報処理装置に適用可能な携帯電話機１の他の外観の構成を表している。図２の携帯電話機１の状態は、図１の携帯電話機１の状態から矢印Ｘ方向に回動させた状態である。なお、図２（Ａ）は、携帯電話機１を閉じたときの正面から見た外観の構成を表しており、図２（Ｂ）は、携帯電話機１を閉じたときの側面から見た外観の構成を表している。
【００２３】
第２の筐体１３の上部には、ＣＣＤカメラ２０が設けられており、これにより、所望の撮影対象を撮像することができる。ＣＣＤカメラ２０の下部には、サブディスプレイ２１が設けられており、現在のアンテナの感度のレベルを示すアンテナピクト、携帯電話機１の現在の電池残量を示す電池ピクト、現在の時刻などが表示される。
【００２４】
図３は、本発明に係る情報処理装置に適用可能な携帯電話機１の内部の構成を表している。図示せぬ基地局から送信されてきた無線信号は、アンテナ３１で受信された後、アンテナ共用器（ＤＵＰ）３２を介して受信回路（ＲＸ）３３に入力される。受信回路３３は、受信された無線信号を周波数シンセサイザ（ＳＹＮ）３４から出力された局部発振信号とミキシングして中間周波数信号に周波数変換（ダウンコンバート）する。そして、受信回路３３は、このダウンコンバートされた中間周波数信号を直交復調して受信ベースバンド信号を出力する。なお、周波数シンセサイザ３４から発生される局部発振信号の周波数は、制御部４１から出力される制御信号ＳＹＣによって指示される。
【００２５】
受信回路３３からの受信ベースバンド信号は、ＣＤＭＡ信号処理部３６に入力される。ＣＤＭＡ信号処理部３６は、図示せぬＲＡＫＥ受信機を備える。このＲＡＫＥ受信機では、受信ベースバンド信号に含まれる複数のパスがそれぞれの拡散符号（すなわち、拡散された受信信号の拡散符号と同一の拡散符号）で逆拡散処理される。そして、この逆拡散処理された各パスの信号は、位相が調停された後、コヒーレントＲａｋｅ合成される。Ｒａｋｅ合成後のデータ系列は、デインタリーブおよびチャネル復号（誤り訂正復号）が行われた後、２値のデータ判定が行われる。これにより、所定の伝送フォーマットの受信パケットデータが得られる。この受信パケットデータは、圧縮伸張処理部３７に入力される。
【００２６】
圧縮伸張処理部３７は、ＤＳＰ（Digital Signal Processor）などにより構成され、ＣＤＭＡ信号処理部３６から出力された受信パケットデータを図示せぬ多重分離部によりメディアごとに分離し、分離されたメディアごとのデータに対してそれぞれ復号処理を行う。例えば通話モードにおいては、受信パケットデータに含まれる通話音声などに対応するオーディオデータをスピーチコーデックにより復号する。また、例えばテレビ電話モードなどのように、受信パケットデータに動画像データが含まれていれば、この動画像データをビデオコーデックにより復号する。さらに、受信パケットデータがダウンロードコンテンツであれば、このダウンロードコンテンツを伸張した後、伸張されたダウンロードコンテンツを制御部４１に出力する。
【００２７】
復号処理により得られたディジタルオーディオ信号はＰＣＭコーデック３８に供給される。ＰＣＭコーデック３８は、圧縮伸張処理部３７から出力されたディジタルオーディオ信号をＰＣＭ復号し、ＰＣＭ復号後のアナログオーディオデータ信号を受話増幅器３９に出力する。このアナログオーディオ信号は、受話増幅器３９にて増幅された後、レシーバ１８により出力される。
【００２８】
圧縮伸張処理部３７によりビデオコーデックにて復号されたディジタル動画像信号は、制御部４１に入力される。制御部４１は、圧縮伸張処理部３７から出力されたディジタル動画像信号に基づく動画像を、図示せぬビデオＲＡＭ（例えばＶＲＡＭなど）を介してメインディスプレイ１７に表示させる。なお、制御部４１は、受信された動画像データだけでなく、ＣＣＤカメラ２０により撮像された動画像データに関しても、図示せぬビデオＲＡＭを介してメインディスプレイ１７に表示させることも可能である。
【００２９】
また、圧縮伸張処理部３７は、受信パケットデータが電子メールである場合、この電子メールを制御部４１に供給する。制御部４１は、圧縮伸張処理部３７から供給された電子メールを記憶部４２に記憶させる。そして、制御部４１は、ユーザによる入力部としての操作キー１４の操作に応じて、記憶部４２に記憶されているこの電子メールを読み出し、読み出された電子メールをメインディスプレイ１７に表示させる。
【００３０】
一方、通話モードにおいて、マイクロフォン１５に入力された話者（ユーザ）の音声信号（アナログオーディオ信号）は、送話増幅器４０により適正レベルまで増幅された後、ＰＣＭコーデック３８によりＰＣＭ符号化される。このＰＣＭ符号化後のディジタルオーディオ信号は、圧縮伸張処理部３７に入力される。また、ＣＣＤカメラ２０から出力される動画像信号は、制御部４１によりディジタル化されて圧縮伸張処理部３７に入力される。さらに、制御部４１にて作成されたテキストデータである電子メールも、圧縮伸張処理部３７に入力される。
【００３１】
圧縮伸張処理部３７は、ＰＣＭコーデック３８から出力されたディジタルオーディオ信号を所定の送信データレートに応じたフォーマットで圧縮符号化する。これにより、オーディオデータが生成される。また、圧縮伸張処理部３７は、制御部４１から出力されたディジタル動画像信号を圧縮符号化して動画像データを生成する。そして、圧縮伸張処理部３７は、これらのオーディオデータや動画像データを図示せぬ多重分離部で所定の伝送フォーマットに従って多重化した後にパケット化し、パケット化後の送信パケットデータをＣＤＭＡ信号処理部３６に出力する。なお、圧縮伸張処理部３７は、制御部４１から電子メールが出力された場合にも、この電子メールを送信パケットデータに多重化する。
【００３２】
ＣＤＭＡ信号処理部３６は、圧縮伸張処理部３７から出力された送信パケットデータに対し、送信チャネルに割り当てられた拡散符号を用いてスペクトラム拡散処理を施し、スペクトラム拡散処理後の出力信号を送信回路（ＴＸ）３５に出力する。送信回路３５は、スペクトラム拡散処理後の信号をＱＰＳＫ（Quadrature Phase Shift Keying）方式などのディジタル変調方式を使用して変調する。送信回路３５は、ディジタル変調後の送信信号を、周波数シンセサイザ３４から発生される局部発振信号と合成して無線信号に周波数変換（アップコンバート）する。そして、送信回路３５は、制御部４１により指示される送信電力レベルとなるように、このアップコンバートにより生成された無線信号を高周波増幅する。この高周波増幅された無線信号は、アンテナ共用器３２を介してアンテナ３１に供給され、このアンテナ３１から図示せぬ基地局に向けて送信される。
【００３３】
また、携帯電話機１は、外部メモリインタフェース４５を備えている。この外部メモリインタフェース４５は、メモリカード４６を着脱することが可能なスロットを備えている。メモリカード４６は、ＮＡＮＤ型フラッシュメモリカードやＮＯＲ型フラッシュメモリカードなどに代表されるフラッシュメモリカードの一種であり、１０ピン端子を介して画像や音声、音楽等の各種データの書き込み及び読み出しが可能となっている。さらに、携帯電話機１には、現在の正確な現在の時刻を測定する時計回路（タイマ）４７が設けられている。
【００３４】
制御部４１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、およびＲＡＭ（Random Access Memory）などからなり、ＣＰＵは、ＲＯＭに記憶されているプログラムまたは記憶部４２からＲＡＭにロードされた、オペレーティングシステム（ＯＳ）を含む各種のアプリケーションプログラムに従って各種の処理を実行するとともに、種々の制御信号を生成し、各部に供給することにより携帯電話機１を統括的に制御する。ＲＡＭは、ＣＰＵが各種の処理を実行する上において必要なデータなどを適宜記憶する。
【００３５】
記憶部４２は、例えば、電気的に書換えや消去が可能な不揮発性メモリであるフラッシュメモリ素子やＨＤＤ（Hard Disc Drive）などからなり、制御部４１のＵＩ処理ＣＰＵにより実行される種々のアプリケーションプログラムや種々のデータ群を格納している。電源回路４４は、バッテリ４３の出力を基に所定の動作電源電圧Ｖｃｃを生成して各回路部に供給する。
【００３６】
携帯電話機１の制御部４１のＣＰＵが複数のタスクを並行して処理するマルチタスク処理を実行する場合、例えば図４が示すように、並列して処理される複数のタスクが優先度の高い順に配列される。制御部４１のＣＰＵは、基本的に複数のタスクを優先度の高い順に処理する。最高優先度のタスクは、並列して処理される他の複数のタスクの動作状態を管理するためのタスク動作状態監視用タスクである。図４の場合、最高優先度のタスクであるタスク動作状態監視用タスク以外のタスクとして、優先度が高い順に、被監視対象タスクＡ、被監視対象タスクＢ、被監視対象タスクＣ、被監視対象タスクＤ、被監視対象タスクＥ、被監視対象タスクＦ、および被監視対象タスクＧがある。例えばタスクの中には、キーの入力を受け付けるタスクや、表示画面の更新のタスクなどが含まれる。また、タスクの中には、例えば通話処理に関するタスクと、通話中に通話時間を加算するタスクも含まれる。通話処理に関するタスクは、通話時間を加算するタスクよりも優先度が高い。
【００３７】
しかしながら、携帯電話機用のリアルタイムＯＳのようにタスクを優先度順に制御するＯＳにおいては、たとえ国際公開ＷＯ２００８／１１４５２５号公報に提案される技術を用いたとしても、高優先度のタスクが動作し続けると低優先度のタスクが動作できなくなってしまい、結局、システムが破綻してしまう。
【００３８】
そこで、本実施形態は、システムの輻輳状態が一定時間以上継続した場合に、携帯電話機１は、並列して処理される他の複数のタスクの動作状態を監視するタスクが他の複数のタスクの動作状態を確認するイベント（キープアライブイベント）を他のすべてのタスクに送信することにより、並列して処理される複数のタスクの中で低優先度のタスクの動作を阻害する高優先度のタスクを明確に特定し、携帯電話機１のシステムをリセットする。これにより、本実施形態に係る情報処理装置としての携帯電話機１は、複数のタスクを並行して処理するマルチタスク処理を実行する場合に、システム上で輻輳状態となるタスクを好適に特定しつつ、システムの異常状態を好適に回避することができる。以下、この方法を用いた携帯電話機１におけるタスク動作状態監視処理について説明する。
【００３９】
なお、携帯電話機１におけるタスク動作状態管理処理を説明する前提条件について説明する。本実施形態に係る情報処理装置としての携帯電話機１は、図５が示すように、優先度で管理されるタスク群の最高優先度にタスク動作状態監視用タスクＨ（Ｈｉｇｈ）を設け、最低優先度にタスク動作状態監視用タスクＬ（Ｌｏｗ）を設ける。タスク動作状態監視用タスクＨは、タスク動作状態監視用タスクＬとともに他の被監視対象タスクＡ乃至被監視対象タスクＧの動作状態を監視する。また、タスク動作状態監視用タスクＨは、他の被監視対象タスクＡ乃至被監視対象タスクＧに対するイベントの配信を制御する。他の被監視対象タスクＡ乃至被監視対象タスクＧはすべて、タスク動作状態監視用タスクＨによってイベントの配信が制御されるタスクである。なお、図５の場合においては、被監視対象タスクとして被監視対象タスクＡ乃至被監視対象タスクＧの７つのタスクを明示的に記載したが、７未満のタスクを被監視対象とするようにしてもよいし、８つ以上のタスクを被監視対象とするようにしてもよい。
【００４０】
図６のフローチャートを参照して、図３の携帯電話機１におけるタスク動作状態監視処理について説明する。図６のタスク動作状態監視処理は、携帯電話機１の電源が投入された後に開始される。なお、図７は、携帯電話機１が図６のタスク動作状態監視処理を実行する場合におけるタイミングチャートを示している。
【００４１】
ステップＳ１において、制御部４１のＣＰＵは、最高優先度のタスク動作状態監視用タスクＨを実行し、最低優先度のタスク動作状態監視用タスクＬに対して、ＣＰＵが割り当てられるか否かを検出するための検出イベントを送信する。図７の場合、制御部４１のＣＰＵは、時刻ｔ０に、最低優先度のタスク動作状態監視用タスクＬに対して、ＣＰＵが割り当てられるか否かを検出するための検出イベントを送信する。具体的には、タスク動作状態監視用タスクＨは、タスク動作状態監視用タスクＬのイベントキューに検出イベントを格納（挿入）する。なお、タスク動作状態監視用タスクＬがイベントキューに格納された検出イベントを駆動する場合、タスク動作状態監視用タスクＬは、検出イベントに付随するイベント駆動関数を実行し、制御部４１のＲＡＭ上に、検出イベントを駆動したことによりＣＰＵが割り当てられたことを示すフラグをＯＮに設定する。検出イベントを駆動したことによりＣＰＵが割り当てられたことを示すフラグは、制御部４１のＲＡＭ上に格納される、タスク動作状態監視用タスクＬに関する制御情報の１つである。従って、タスク動作状態監視用タスクＨは、タスク動作状態監視用タスクＬに関する制御情報を監視し、ＣＰＵが割り当てられたことを示すフラグがＯＮに設定されているかを確認することで、タスク動作状態監視用タスクＬにＣＰＵが割り当てられたか否かを確認することが可能となる。
【００４２】
ステップＳ２において、制御部４１のＣＰＵは、タスク動作状態監視用タスクＨを実行し、タスク動作状態監視用タスクＬにＣＰＵが割り当てられたか否かを確認するまでの待機時間Ｔ１の第１のタイマを時計回路４７に設定する。図７の場合、制御部４１のＣＰＵは、時刻ｔ１にタスク動作状態監視用タスクＬにＣＰＵが割り当てられたか否かを確認するまでの待機時間Ｔ１の第１のタイマを時計回路４７に設定する。待機時間Ｔ１は例えば４５（ｓ）程度である。時計回路４７は、待機時間Ｔ１の第１のタイマのカウント動作を開始する。ステップＳ３において、時計回路４７は、待機時間Ｔ１の第１のタイマが満了するまでカウント動作を行う。ステップＳ３において時計回路４７が待機時間Ｔ１の第１のタイマが満了するまでカウントした場合、処理はステップＳ４に進む。図７の場合、時刻ｔ２に、待機時間Ｔ１の第１のタイマが満了する。
【００４３】
ステップＳ４において、制御部４１のＣＰＵは、タスク動作状態監視用タスクＨを実行し、タスク動作状態監視用タスクＬに関する制御情報を監視し、ＣＰＵが割り当てられたことを示すフラグがＯＮに設定されているかを確認することで、タスク動作状態監視用タスクＬにＣＰＵが割り当てられたか否かを判定する。ステップＳ４において制御部４１のＣＰＵがタスク動作状態監視用タスクＬにＣＰＵが割り当てられたと判定した場合、処理はステップＳ１に戻り、その後、ステップＳ１以降の処理が繰り返し実行される。
【００４４】
ステップＳ４において制御部４１のＣＰＵがタスク動作状態監視用タスクＬにＣＰＵが割り当てられていないと判定した場合、制御部４１のＣＰＵは、携帯電話機１内のシステムが輻輳状態になりつつあると認識する。ステップＳ５において、制御部４１のＣＰＵは、タスク動作状態監視用タスクＨを実行し、並列して処理される他のすべての被監視対象タスクの動作を確認するための動作確認用イベント（キープアライブイベント）を、すべての被監視対象タスクに対して優先度に従い送信する。図７の場合、制御部４１のＣＰＵは、時刻ｔ３に、キープアライブイベントを、すべての被監視対象タスクに対して優先度に従い送信する。具体的には、タスク動作状態監視用タスクＨは、すべての被監視対象タスクのイベントキューの先頭にキープアライブイベントを優先度順に格納（挿入）する。図５の場合、タスク動作状態監視用タスクＨは、優先度に従い、被監視対象タスクＡ→被監視対象タスクＢ→被監視対象タスクＣ→被監視対象タスクＤ→被監視対象タスクＥ→被監視対象タスクＦ→被監視対象タスクＧの順にキープアライブイベントを各タスクのイベントキューの先頭に格納する。このような処理を「キープアライブ格納処理（キープアライブ動作）」と定義する。
【００４５】
なお、被監視対象タスクがイベントキューの先頭に格納されたキープアライブイベントを駆動する場合、被監視対象タスクは、キープアライブイベントに付随するイベント駆動関数を実行し、制御部４１のＲＡＭ上に、キープアライブイベントを駆動したことを示すフラグをＯＮに設定する。キープアライブイベントを駆動したことを示すフラグは、制御部４１のＲＡＭ上に格納される、被監視対象タスクに関する制御情報の１つである。従って、タスク動作状態監視用タスクＨは、各被監視対象タスクに関する制御情報を監視し、キープアライブイベントを駆動したことを示すフラグがＯＮに設定されているかを確認することで、各被監視対象タスクの動作状態を確認することが可能となる。
【００４６】
また、タスク動作状態監視用タスクＨは、各被監視対象タスクに対して同時あるいはほぼ同時にイベントを格納するようにしてもよい。
【００４７】
ステップＳ６において、制御部４１のＣＰＵは、タスク動作状態監視用タスクＨを実行し、各被監視対象タスクの動作状態を確認するまでの待機時間Ｔ２の第２のタイマを時計回路４７に設定する。図７の場合、制御部４１のＣＰＵは、時刻ｔ４に、各被監視対象タスクの動作状態を確認するまでの待機時間Ｔ２の第２のタイマを時計回路４７に設定する。時計回路４７は、待機時間Ｔ２の第２のタイマのカウント動作を開始する。ステップＳ７において、時計回路４７は、待機時間Ｔ２の第２のタイマが満了するまでカウント動作を行う。ステップＳ７において時計回路４７が待機時間Ｔ２の第２のタイマが満了するまでカウントした場合、処理はステップＳ８に進む。図７の場合、時刻ｔ５に、待機時間Ｔ２の第２のタイマが満了する。
【００４８】
ステップＳ８において、制御部４１のＣＰＵは、タスク動作状態監視用タスクＨを実行し、タスク動作状態監視用タスクＨがキープアライブイベントを送信するすべての被監視対象タスクから、キープアライブイベントに対する応答を受信したか否かを判定する。ここで、被監視対象タスクからのキープアライブイベントに対する応答とは、被監視対象タスクはイベント駆動関数を実行してキープアライブイベントを駆動したことを示すフラグをＯＮに設定することを意味する。ステップＳ８において制御部４１のＣＰＵは、タスク動作状態監視用タスクＨがキープアライブイベントを送信するすべての被監視対象タスクから、キープアライブイベントに対する応答を受信したと判定した場合、制御部４１のＣＰＵは、すべての被監視対象タスクが正常に動作していると認識する。その後、処理はステップＳ１に戻り、ステップＳ１以降の処理が繰り返し実行される。
【００４９】
一方、ステップＳ８において制御部４１のＣＰＵは、タスク動作状態監視用タスクＨがキープアライブイベントを送信するすべての被監視対象タスクから、キープアライブイベントに対する応答を受信していないと判定した場合（すなわち、タスク動作状態監視用タスクＨがキープアライブイベントを送信する被監視対象タスクのうち、キープアライイベントに対する応答を受信していない被監視対象タスクがあると判定した場合）、制御部４１のＣＰＵはステップＳ９で、すべての被監視対象タスクに対するキープアライブイベントの再送信処理を優先度に従い開始する。図７の場合、制御部４１のＣＰＵは、時刻ｔ６に、キープアライブイベントを、すべての被監視対象タスクに対する再送信処理を優先度に従って開始する。
【００５０】
ここで、すべての被監視対象タスクに対するキープアライブイベントの再送信処理について詳述する。図８は、キープアライブイベントの再送信方法の詳細を表している。図８（Ａ）は、被監視対象タスクのイベントキューの先頭に格納されるイベントがキープアライブイベント以外のイベントであり、かつ、被監視対象タスクが駆動する最中のイベントがない被監視対象タスクに対してキープアライブイベントを再送信する例を示す。図８（Ａ）が示すように、被監視対象タスクのイベントキューにはキープアライブイベント以外のイベントが格納されており、被監視対象タスクは、イベントキューに格納されるイベントの駆動待ち状態である。すなわち、図８（Ａ）が示す被監視対象タスクは、正常動作中である。そこで、図８（Ａ）が示す被監視対象タスクの場合、タスク動作状態監視用タスクＨは、次回のタスクスイッチ時にキープアライブイベントを被監視対象タスクに駆動させるために、キープアライブイベントを被監視対象タスクに再送信し、被監視対象タスクのイベントキューの先頭にキープアライブイベントを格納する。
【００５１】
図８（Ｂ）は、被監視対象タスクのイベントキューの先頭に格納されるイベントがキープアライブイベントであり、かつ、被監視対象タスクが駆動する最中のイベントがない被監視対象タスクに対してキープアライブイベントを再送信する例を示す。図８（Ｂ）が示すように、被監視対象タスクのイベントキューの先頭にはキープアライブイベントが格納されており、被監視対象タスクは、イベントキューに格納されるキープアライブイベントの駆動待ち状態である。すなわち、図８（Ｂ）が示す被監視対象タスクは、正常動作中である。このとき、被監視対象タスクは、次回のタスクスイッチ時にキープアライブイベントを駆動することから、タスク動作状態監視用タスクＨは、さらに追加して被監視対象タスクにキープアライブイベントを再送信する必要はない。そこで、図８（Ｂ）が示す被監視対象タスクの場合、タスク動作状態監視用タスクＨは、キープアライブイベントを被監視対象タスクに再送信しない。
【００５２】
図８（Ｃ）は、被監視対象タスクのイベントキューの先頭に格納されるイベントがキープアライブイベント以外のイベントであり、かつ、被監視対象タスクが駆動する最中のイベントがあり、駆動中のイベントがキープアライブイベント以外のイベントである被監視対象タスクに対してキープアライブイベントを再送信する例を示す。図８（Ｃ）が示すように、被監視対象タスクのイベントキューの先頭にはキープアライブイベント以外のイベントが格納されており、被監視対象タスクは、キープアライブイベント以外のイベントが駆動中の状態である。すなわち、図８（Ｃ）が示す被監視対象タスクは、正常動作中である。そこで、図８（Ｃ）が示す被監視対象タスクの場合、タスク動作状態監視用タスクＨは、次回のタスクスイッチ時にキープアライブイベントを被監視対象タスクに駆動させるために、キープアライブイベントを被監視対象タスクに再送信し、被監視対象タスクのイベントキューの先頭にキープアライブイベントを格納する。
【００５３】
図８（Ｄ）は、被監視対象タスクのイベントキューの先頭に格納されるイベントがキープアライブイベント以外のイベントであり、かつ、被監視対象タスクが駆動する最中のイベントがあり、駆動中のイベントがキープアライブイベントである被監視対象タスクに対してキープアライブイベントを再送信する例を示す。図８（Ｄ）が示すように、被監視対象タスクのイベントキューの先頭にはキープアライブイベント以外のイベントが格納されており、被監視対象タスクは、キープアライブイベントが駆動中の状態である。すなわち、図８（Ｄ）が示す被監視対象タスクは、正常動作中である。このとき、被監視対象タスクは、キープアライブイベントの駆動中であることから、タスク動作状態監視用タスクＨは、さらに追加して被監視対象タスクにキープアライブイベントを再送信する必要はない。そこで、図８（Ｄ）が示す被監視対象タスクの場合、タスク動作状態監視用タスクＨは、キープアライブイベントを被監視対象タスクに再送信しない。
【００５４】
なお、ステップＳ８の処理において、タスク動作状態監視用タスクＨがキープアライブイベントを送信するすべての被監視対象タスクから、キープアライブイベントに対する応答を受信していない場合に、タスク動作状態監視用タスクＨは、すべての被監視対象タスクに対するキープアライブイベントの再送信処理を開始するようにしたが、このような場合に限られず、タスク動作状態監視用タスクＬにＣＰＵが割り当てられていない場合に、すべての被監視対象タスクに対するキープアライブイベントの再送信処理を開始するようにしてもよい。
【００５５】
ステップＳ１０において、制御部４１のＣＰＵは、タスク動作状態監視用タスクＨを実行し、キープアライブイベントの再送信中に輻輳状態の被監視対象タスクを検出したか否かを判定する。図８（Ｅ）は、被監視対象タスクのイベントキューの先頭に格納されるイベントがキープアライブイベントであり、かつ、被監視対象タスクが駆動する最中のイベントがあり、駆動中のイベントがキープアライブイベント以外のイベントである被監視対象タスクに対してキープアライブイベントを再送信する例を示す。図８（Ｅ）が示すように、被監視対象タスクのイベントキューの先頭にはキープアライブイベントが格納されており、被監視対象タスクは、キープアライブイベント以外のイベントが駆動中の状態である。すなわち、図８（Ｅ）が示す被監視対象タスクは、ステップＳ５において被監視対象タスクが受信するキープアライブイベントを駆動することができず、キープアライブイベント以外のイベントの駆動によって輻輳状態に陥っており、異常動作の状態ある。タスク動作状態監視用タスクＨは、図８（Ｅ）が示す被監視対象タスクにキープアライブイベントを再送信する場合に、輻輳状態の被監視対象タスクを検出したと判定する。これにより、本実施形態に係る情報処理装置としての携帯電話機１は、携帯電話機１内のシステムで輻輳状態のタスクを特定することができる。
【００５６】
ステップＳ１０において制御部４１のＣＰＵが、キープアライブイベントの再送信中に輻輳状態の被監視対象タスクを検出したと判定した場合、制御部４１のＣＰＵはステップＳ１１で、タスク動作状態監視用タスクＨを実行し、携帯電話機１のシステムをリセットする。すなわち、制御部４１のＣＰＵは、携帯電話機１の電源を一旦落とし、携帯電話機１のシステムを再起動する。これにより、携帯電話機１のシステムの異常動作を回避することができる。
【００５７】
ステップＳ１０において制御部４１のＣＰＵが、キープアライブイベントの再送信中に輻輳状態の被監視対象タスクを検出していないと判定した場合、制御部４１のＣＰＵはステップＳ１２で、タスク動作状態監視用タスクＨを実行し、すべての被監視対象タスク（図５の場合、被監視対象タスクＡ乃至Ｇ）に対するキープアライブイベントの再送信処理が終了したか否かを判定する。ステップＳ１２において制御部４１のＣＰＵがすべての被監視対象タスクに対するキープアライブイベントの再送信処理が終了していないと判定した場合、処理はステップＳ１０に戻り、ステップＳ１０以降の処理が繰り返し実行される。これにより、携帯電話機１は、輻輳状態の被監視対象タスクが特定されるまでキープアライブイベントの再送信処理を行うことができる。
【００５８】
一方、ステップＳ１２において制御部４１のＣＰＵがすべての被監視対象タスクに対するキープアライブイベントの再送信処理が終了したと判定した場合、制御部４１のＣＰＵはステップＳ１３で、タスク動作状態監視用タスクＨがキープアライブイベントを送信するすべての被監視対象タスクから、キープアライブイベントに対する応答を受信したか否かを判定する。ステップＳ１３において制御部４１のＣＰＵは、タスク動作状態監視用タスクＨがキープアライブイベントを送信するすべての被監視対象タスクから、キープアライブイベントに対する応答を受信したと判定した場合、制御部４１のＣＰＵはステップＳ１４で、輻輳状態になりつつあった被監視対象タスクが正常な状態に復帰し、すべての被監視対象タスクが正常に動作していると認識し、携帯電話機１のシステムの輻輳状態が解消したと認識する。その後、処理はステップＳ１に戻り、ステップＳ１以降の処理が繰り返し実行される。一方、ステップＳ１３において御部４１のＣＰＵは、タスク動作状態監視用タスクＨがキープアライブイベントを送信するすべての被監視対象タスクから、キープアライブイベントに対する応答を受信していないと判定した場合、制御部４１のＣＰＵは、輻輳状態になりつつあった被監視対象タスクがまだ正常な状態に復帰していないと認識し、タスク動作状態監視用タスクＨがキープアライブイベントを送信するすべての被監視対象タスクから、キープアライブイベントに対する応答を受信するまで待機する。
【００５９】
本実施形態に係る情報処理装置としての携帯電話機１は、優先度が設けられる複数のタスクが並行して処理されるマルチタスク処理において、複数のタスクに含まれるそれぞれの被監視対象タスクに対して、キープアライブ動作によってキープアライブイベントを送信し、被監視対象タスクに対してキープアライブイベントが送信されてから所定の時間が経過した場合、すべての被監視対象タスクからキープアライブイベントに対する応答があるか否かを判定し、少なくともいずれか１つ以上の被監視対象タスクから前記キープアライブイベントに対する応答がないと判定された場合、それぞれの被監視対象タスクに対して、キープアライブ動作によってキープアライブイベントを再送信し、被監視対象タスクに対するキープアライブイベントの再送信中に輻輳状態の被監視対象タスクを検出し、輻輳状態の被監視対象タスクが検出された場合、情報処理装置としての携帯電話機１のシステムをリセットして再起動することができる。これにより、並列して処理される複数のタスクの中で低優先度のタスクの動作を阻害する高優先度のタスクを明確に特定し、携帯電話機１のシステムをリセットすることができる。これにより、本実施形態に係る情報処理装置としての携帯電話機１は、システムの異常動作を回避することができ、並列処理される被監視対象タスクが無限ループに陥ったとしても、被監視対象タスクの外部から被監視対象タスクの異常を検出することができる。また、携帯電話機１のシステムおよび輻輳状態となったタスクのデバック効率を向上させることができる。
【００６０】
なお、図６のタスク動作状態監視処理の場合、タスク動作状態監視用タスクＨは、キープアライブイベントの再送信中に輻輳状態の被監視対象タスクを１つでも検出すると、直ちに携帯電話機１のシステムをリセットするようにしたが、このような場合に限られず、キープアライブイベントの再送信中に輻輳状態の被監視対象タスクをすべて検出してから携帯電話機１のシステタスク動作状態監視用タスクＨは、キープアライブイベントの再送信中に輻輳状態の被監視対象タスクを検出すると、携帯電話機１のシステムをリセットする前に、輻輳状態の被監視対象タスクに関する情報を記憶部４０に記憶させるようにしてもよい。この場合におけるタスク動作状態監視処理は、図９のフローチャートに示される。
【００６１】
図９のフローチャートを参照して、図３の携帯電話機１における他のタスク動作状態監視処理について説明する。なお、図９の処理は基本的に図６の処理と同様であり、重複する部分については省略する。
【００６２】
ステップＳ１１１において、制御部４１のＣＰＵは、タスク動作状態監視用タスクＨを実行し、検出された輻輳状態の被監視対象タスクに関する情報を記憶部４２に記憶させる。これにより、輻輳状態の被監視対象タスクに関するログを残すことができ、携帯電話機１内のシステムやタスクのデバックを効率的に行うことができる。
【００６３】
なお、本発明の実施形態において説明した一連の処理は、ソフトウェアにより実行させることもできるが、ハードウェアにより実行させることもできる。
【００６４】
また、本発明の実施形態では、フローチャートのステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
【符号の説明】
【００６５】
１…携帯電話機、１１…ヒンジ部、１２…第１の筐体、１３…第２の筐体、１４…操作キー、１５…マイクロフォン、１６…サイドキー、１７…メインディスプレイ、１８…レシーバ、１９a乃至１９d…磁気センサ、２０…ＣＣＤカメラ、２１…サブディスプレイ、３１…アンテナ、３２…デュプレクサ、３３…受信回路（ＲＸ）、３４…周波数シンセサイザ（ＳＹＮ）、３５…送信回路（ＴＸ）、３６…ＣＤＭＡ信号処理部、３７…圧縮伸張処理部、３８…ＰＣＭコーデック、３９…受話増幅器、４０…送話増幅器、４１…制御部、４２…記憶部、４３…バッテリ、４４…電源回路、４５…外部メモリインタフェース、４６…メモリカード、４７…時計回路、５０…スピーカ。
【図１】
0005418066.tif 000002
【図２】
0005418066.tif 000003
【図３】
0005418066.tif 000004
【図４】
0005418066.tif 000005
【図５】
0005418066.tif 000006
【図６】
0005418066.tif 000007
【図７】
0005418066.tif 000008
【図８】
0005418066.tif 000009
【図９】
0005418066.tif 000010