(57)【特許請求の範囲】
【請求項１】
処理の優先度が予め付与される複数のタスクと、前記複数のタスクのうちのいずれかのタスクに処理を行わせるための信号を受信した際に、前記優先度に従って、受信した信号に応じた処理を当該信号の対象となるタスクに開始させるタスク管理部とを備えたオペレーティングシステムにおけるタスク処理管理方法であって、
最も低い前記優先度が付与され、処理を開始すると処理を要求した要求元のタスクへの応答信号を送信して終了するウエイトタスクを、前記タスク管理部が起動させるステップと、
前記複数のタスクの中で所定のタスクが前記タスク管理部により処理を開始あるいは再開されてから予め定められる第１の所定時間を超えると、前記所定のタスクが、前記ウエイトタスクへの処理要求信号を送信して処理を停止するステップと、
前記タスク管理部が、前記優先度に従って信号に応じた処理を前記所定のタスクに開始させてから、当該所定のタスクから前記ウエイトタスクへの処理要求信号を受信するステップと、
前記タスク管理部が、前記優先度に従って受信した信号に応じた処理を前記所定のタスク及び前記ウエイトタスクに開始させてから、前記ウエイトタスクから前記所定のタスクへの前記応答信号を受信するステップと、
前記タスク管理部が、前記応答信号に応じた処理として前記所定のタスクに処理を再開させるステップと、
を含むことを特徴とするタスク処理管理方法。
【請求項２】
前記タスク管理部が、前記所定のタスクが停止してから予め定められる第２の所定時間を超えた場合、前記所定のタスクの処理を再開させるステップと、
を更に含むことを特徴とする請求項１に記載のタスク処理管理方法。
【請求項３】
前記タスク管理部及び前記複数のタスク及び前記ウエイトタスクは、携帯電話端末に具備される中央処理装置にて実行されることを特徴とする請求項１または２に記載のタスク処理管理方法。
【請求項４】
前記複数のタスクには、前記所定のタスクよりも前記優先度の高いタスクが存在し、当該優先度の高いタスクは、基地局装置との無線通信の確立を行うタスクであることを特徴とする請求項３に記載のタスク処理管理方法。
【請求項５】
前記所定のタスクとは、前記優先度の高いタスクより前記優先度が低く前記ウエイトタスクより前記優先度の高い他のタスクが少なくとも１つ以上存在するタスクであり、前記所定のタスクの処理が開始されると平均的なタスクの処理時間よりも長時間処理を行う
ことを特徴とする請求項１から４のいずれか１つに記載のタスク処理管理方法。
【請求項６】
前記所定のタスクとは、前記優先度の高いタスクより前記優先度が低く前記ウエイトタスクより前記優先度の高い他のタスクが少なくとも１つ以上存在するタスクであり、前記所定のタスクへの処理の開始を要求する処理要求信号が連続して前記タスク管理部により受信される
ことを特徴とする請求項１から４のいずれか１つに記載のタスク処理管理方法。
【請求項７】
処理の優先度が予め付与される複数のタスクと、前記複数のタスクのうちのいずれかのタスクへの信号を受信した際に、前記優先度に従って、受信した信号に応じた処理を当該信号の対象となるタスクに開始させるタスク管理部と
を備えたオペレーティングシステムであって、
最も低い前記優先度が付与され、処理を開始すると処理を要求した要求元のタスクへの応答信号を送信して終了するウエイトタスクを備え、
前記複数のタスクの中で所定のタスクは、
前記タスク管理部により処理が開始あるいは再開される際に計時を開始する処理時間計時手段と、
前記処理時間計時手段が計時する時間が第１の所定時間を超えるか否かを判定する判定手段と、
前記判定手段が、前記処理時間計時手段が計時する時間が前記第１の所定時間を超えると判定した場合、前記ウエイトタスクに対する処理要求信号を送信して処理を停止し、前記ウエイトタスクからの前記応答信号により処理を再開する処理手段と、
を備えたことを特徴とするオペレーティングシステム。
【請求項８】
起動要求情報を受信して計時を開始し、計時した時間が予め定められる第２の所定時間を超えた場合に、タイムアウト信号を送信する計時手段を備え、
前記所定のタスクの処理手段は、
停止する際に、前記計時手段に前記起動要求情報を送信し、前記計時手段から送信される前記タイムアウト信号により処理を再開する
ことを特徴とする請求項７に記載のオペレーティングシステム。
【請求項９】
前記タスク管理部及び前記複数のタスク及び前記ウエイトタスクは、携帯電話端末に具備される中央処理装置にて実行されることを特徴とする請求項７または８に記載のオペレーティングシステム。
【請求項１０】
前記複数のタスクには、前記所定のタスクよりも前記優先度の高いタスクが存在し、当該優先度の高いタスクは、基地局装置との無線通信の確立を行うタスクであることを特徴とする請求項９に記載のオペレーティングシステム。
【請求項１１】
処理の優先度が予め付与される複数のタスクを切り換えて実行するコンピュータに、
前記複数のタスクのうちのいずれかのタスクに処理を行わせるための信号を受信した際に、前記優先度に従って、受信した信号に応じた処理を当該信号の対象となるタスクに開始させるタスク管理工程と、
最も低い前記優先度が付与され、処理を開始すると処理を要求した要求元のタスクへの応答信号を送信して終了するウエイトタスクを、前記タスク管理工程により起動するウエイトタスク起動工程と、
前記複数のタスクの中で所定のタスクが前記タスク管理工程により処理を開始あるいは再開されてから予め定められる第１の所定時間を超えると、前記所定のタスクが、前記ウエイトタスクへの処理要求信号を送信して処理を停止する処理停止工程と、
前記タスク管理工程により、前記優先度に従って信号に応じた処理を前記所定のタスクに開始させてから、当該所定のタスクから前記ウエイトタスクへの処理要求信号を受信する処理要求信号受信工程と、
前記タスク管理工程により、前記優先度に従って受信した信号に応じた処理を前記所定のタスクに行わせた後、前記ウエイトタスクに処理を開始させてから、前記ウエイトタスクから前記所定のタスクへの前記応答信号を受信する応答信号受信工程と、
前記タスク管理工程により、前記応答信号に応じた処理として前記所定のタスクに処理を再開させる処理再開工程と、
を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯電話端末等の組み込み型システム内で処理を行うタスクの処理を管理するタスク処理管理方法、及びオペレーティングシステム並びにコンピュータプログラムに関する。
【背景技術】
【０００２】
携帯電話端末等の組み込み型システムに適用されるリアルタイムオペレーティングシステム（以下、リアルタイムＯＳと記載）では、マルチタスク方式等により複数のタスクの処理を管理する。個々のタスクは、コンピュータプログラムにより各種の機能が構成されており、携帯電話端末では、例えば、電話帳や電子メールを送受信するメーラ等のアプリケーションプログラムを制御するアプリケーションタスクや、基地局装置との通信を確立する通信制御タスク等が存在する。これらのタスクは、ユーザの操作や、他のタスクの処理に応じて発生する処理の要求信号等を受信して処理を開始する。
【０００３】
リアルタイムＯＳでは、複数のタスクに対して優先度を予め定めておき、当該優先度に応じてタスクの処理を開始させるようにしているが、優先度の高いタスクが処理を長時間占有してしまったり、処理速度の遅いデバイスドライバの処理が行われたりすることで、優先度の低いタスクの処理が行われずシステム全体の動作に支障をきたす場合がある。
【０００４】
そのような場合に対処するために、特許文献１では、処理速度の遅いデバイスがあってもシステム全体としての動作を安定させるために、タスクの処理時間の比率からデバイスを制御するタスク（デバイスドライバ）に処理を行わせる時間を算出して、デバイスを制御するタスクの負荷を分散させる技術が開示されている。
【特許文献１】特開２００３−２４１９７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に示す技術では、デバイスを制御するタスクの処理時間を算出するためにアイドルカウンタ及びアイドルタスクを設けて、デバイスを制御するタスクの処理時間を算出する構成を備える等、システム全体の構成を大幅に改良しなければならないという問題がある。
【０００６】
本発明は、上記問題を解決するためになされたもので、その目的は、リアルタイムＯＳ等のオペレーティングシステム全体への改良を伴わずに、低い優先度のタスクにも安定して処理時間を割当てることを可能とするタスク処理管理方法、及びオペレーティングシステム並びにコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記した課題を解決するために、本発明は、以下の手段を採用した。
本発明に係るタスク処理管理方法は、処理の優先度が予め付与される複数のタスクと、前記複数のタスクのうちのいずれかのタスクに処理を行わせるための信号を受信した際に、前記優先度に従って、受信した信号に応じた処理を当該信号の対象となるタスクに開始させるタスク管理部とを備えたオペレーティングシステムにおけるタスク処理管理方法であって、最も低い前記優先度が付与され、処理を開始すると処理を要求した要求元のタスクへの応答信号を送信して終了するウエイトタスクを、前記タスク管理部が起動させるステップと、前記複数のタスクの中で所定のタスクが前記タスク管理部により処理を開始あるいは再開されてから予め定められる第１の所定時間を超えると、前記所定のタスクが、前記ウエイトタスクへの処理要求信号を送信して処理を停止するステップと、前記タスク管理部が、前記優先度に従って信号に応じた処理を前記所定のタスクに開始させてから、当該所定のタスクから前記ウエイトタスクへの処理要求信号を受信するステップと、前記タスク管理部が、前記優先度に従って受信した信号に応じた処理を前記所定のタスク及び前記ウエイトタスクに開始させてから、前記ウエイトタスクから前記所定のタスクへの前記応答信号を受信するステップと、前記タスク管理部が、前記応答信号に応じた処理として前記所定のタスクに処理を再開させるステップと、を含むことを特徴とする。
【０００８】
本発明は、上記に記載の発明において、前記タスク管理部が、前記所定のタスクが停止してから予め定められる第２の所定時間を超えた場合、前記所定のタスクの処理を再開させるステップと、を更に含むことを特徴とする。
【０００９】
本発明は、上記に記載の発明において、前記タスク管理部及び前記複数のタスク及び前記ウエイトタスクは、携帯電話端末に具備される中央処理装置にて実行されることを特徴とする。
【００１０】
本発明は、上記に記載の発明において、前記複数のタスクには、前記所定のタスクよりも前記優先度の高いタスクが存在し、当該優先度の高いタスクは、基地局装置との無線通信の確立を行うタスクであることを特徴とする。
【００１１】
本発明は、上記に記載の発明において、前記所定のタスクとは、前記優先度の高いタスクより前記優先度が低く前記ウエイトタスクより前記優先度の高い他のタスクが少なくとも１つ以上存在するタスクであり、前記所定のタスクの処理が開始されると平均的なタスクの処理時間よりも長時間処理を行うことを特徴とする。
【００１２】
本発明は、上記に記載の発明において、前記所定のタスクとは、前記優先度の高いタスクより前記優先度が低く前記ウエイトタスクより前記優先度の高い他のタスクが少なくとも１つ以上存在するタスクであり、前記所定のタスクへの処理の開始を要求する処理要求信号が連続して前記タスク管理部により受信されることを特徴とする。
【００１３】
本発明に係るオペレーティングシステムは、処理の優先度が予め付与される複数のタスクと、前記複数のタスクのうちのいずれかのタスクへの信号を受信した際に、前記優先度に従って、受信した信号に応じた処理を当該信号の対象となるタスクに開始させるタスク管理部とを備えたオペレーティングシステムであって、最も低い前記優先度が付与され、処理を開始すると処理を要求した要求元のタスクへの応答信号を送信して終了するウエイトタスクを備え、前記複数のタスクの中で所定のタスクは、前記タスク管理部により処理が開始あるいは再開される際に計時を開始する処理時間計時手段と、前記処理時間計時手段が計時する時間が第１の所定時間を超えるか否かを判定する判定手段と、前記判定手段が、前記処理時間計時手段が計時する時間が前記第１の所定時間を超えると判定した場合、前記ウエイトタスクに対する処理要求信号を送信して処理を停止し、前記ウエイトタスクからの前記応答信号により処理を再開する処理手段と、を備えたことを特徴とする。
【００１４】
本発明は、上記に記載の発明において、起動要求情報を受信して計時を開始し、計時した時間が予め定められる第２の所定時間を超えた場合に、タイムアウト信号を送信する計時手段を備え、前記所定のタスクの処理手段は、停止する際に、前記計時手段に前記起動要求情報を送信し、前記計時手段から送信される前記タイムアウト信号により処理を再開することを特徴とする。
【００１５】
本発明は、上記に記載の発明において、前記タスク管理部及び前記複数のタスク及び前記ウエイトタスクは、携帯電話端末に具備される中央処理装置にて実行されることを特徴とする。
【００１６】
本発明は、上記に記載の発明において、前記複数のタスクには、前記所定のタスクよりも前記優先度の高いタスクが存在し、当該優先度の高いタスクは、基地局装置との無線通信の確立を行うタスクであることを特徴とする。
【００１７】
本発明に係るコンピュータプログラムは、処理の優先度が予め付与される複数のタスクを切り換えて実行するコンピュータに、前記複数のタスクのうちのいずれかのタスクに処理を行わせるための信号を受信した際に、前記優先度に従って、受信した信号に応じた処理を当該信号の対象となるタスクに開始させるタスク管理工程と、最も低い前記優先度が付与され、処理を開始すると処理を要求した要求元のタスクへの応答信号を送信して終了するウエイトタスクを、前記タスク管理工程により起動するウエイトタスク起動工程と、前記複数のタスクの中で所定のタスクが前記タスク管理工程により処理を開始あるいは再開されてから予め定められる第１の所定時間を超えると、前記所定のタスクが、前記ウエイトタスクへの処理要求信号を送信して処理を停止する処理停止工程と、前記タスク管理工程により、前記優先度に従って信号に応じた処理を前記所定のタスクに開始させてから、当該所定のタスクから前記ウエイトタスクへの処理要求信号を受信する処理要求信号受信工程と、前記タスク管理工程により、前記優先度に従って受信した信号に応じた処理を前記所定のタスクに行わせた後、前記ウエイトタスクに処理を開始させてから、前記ウエイトタスクから前記所定のタスクへの前記応答信号を受信する応答信号受信工程と、前記タスク管理工程により、前記応答信号に応じた処理として前記所定のタスクに処理を再開させる処理再開工程と、を実行させる。
【発明の効果】
【００１８】
この発明によれば、タスク処理管理方法は、最も低い前記優先度が付与され、処理を開始すると処理を要求した要求元の前記タスクへの応答信号を送信して終了するウエイトタスクを起動させ、複数のタスクの中で所定のタスクを、処理を開始あるいは再開させる際に計時すると共に計時する時間が予め定められる第１の所定時間を超えるとウエイトタスクへの処理要求信号を送信して処理を停止するタスクとして起動させ、タスク管理部が、優先度に従って信号に応じた処理を所定のタスクに開始させ、当該タスクからウエイトタスクへの処理要求信号を受信し、優先度に従って受信した信号に応じた処理をタスク及びウエイトタスクに開始させ、ウエイトタスクから所定のタスクへの応答信号を受信し、タスク管理部が、応答信号に応じた処理として所定のタスクに処理を再開させる構成とした。これにより、オペレーティングシステム全体への改良を伴わずに、低い優先度のタスクにも安定して処理時間を割当てることが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の一実施形態を図面を参照して説明する。
図１は、本実施形態によるリアルタイムオペレーティングシステム（以下、リアルタイムＯＳと記載）を組み込んだ携帯電話端末１００の内部構成を示す概略ブロック図である。
【００２０】
携帯電話端末１００において、無線通信部１０１は、アンテナ１０６を介して携帯電話通信事業者が管理する基地局装置との間で無線信号による電話通信やデータ通信等を行う。表示部１０２は、例えば、液晶画面等が適用され、携帯電話端末１００に具備されるアプリケーションプログラムにより出力される待ち受け画面や、電話帳等の画面を表示する。操作部１０３は、例えば、携帯電話端末１００に具備されるキーボードであり、ユーザによるキーボードの押下を検出する。音源部１０４は、スピーカやマイクなどの入出力装置と共に、音信号を生成するＩＣ(Integrated Circuit)チップなどを備え、電話の通話時のユーザの音声の入出力の他、ＩＣチップにて生成した音楽等の音を出力する。制御部１０５は、例えば、ＣＰＵ（Central Processing Unit）やＲＡＭ(Random Access Memory)等を備えており、ＣＰＵやＲＡＭ等により後述するリアルタイムＯＳを実行する。
【００２１】
制御部１０５において、リアルタイムＯＳ１０は、携帯電話端末等の組み込み型システムに多く用いられるオペレーティングシステムである。
【００２２】
ここで、リアルタイムＯＳとは、オペレーティングシステムが行うリソースの管理の中で、特に時間リソースの保護に重点をおいて管理することで、実行時間の予測可能性を高めており、これにより、例えば、通信等のプロトコルに規定されているタイマ値内に応答信号を送信するような処理を安定して行えるようなシステムを構築することができる。
【００２３】
リアルタイムＯＳ１０において、タスク（タスクＡからＥ）は、無線通信部１０１や、表示部１０２や、操作部１０３や、音源部１０４などのハードウェア資源を用いて携帯電話端末１００における各種の処理を実行する。また、それぞれのタスク、及び後述するウエイトタスク１２には、予め優先度が付与されており、タスク管理部１１は、当該優先度に応じてタスクの処理の開始を管理する。また、タスクは、ユーザの操作や、他のタスクの処理により送信されるシグナルをタスク管理部１１を介して受信することにより、当該シグナルの種別に応じた処理を開始する。
【００２４】
ここで、シグナルとは、タスク及び、ウエイトタスクにより送受信される信号であり、要求元のタスクを示す情報と、要求先のタスクを示す情報と、シグナルの種別を示す情報とを含んでいる。シグナルの種別としては、処理の開始を指示するための処理要求シグナルや、ウエイトタスク１２から送信される応答シグナルや、後述するタイマ１８から送信されるタイムアウトシグナル等がある。
【００２５】
タスクＢからタスクＥは、携帯電話端末１００におけるタスクの例を示したものである。タスクＢは、ＡＰＬ（アプリケーション）タスクであり、待ち受け画面を表示するアプリケーションプログラムや、電話帳等のアプリケーションプログラムや、ゲームアプリケーションプログラム等の実行を管理する。タスクＣは、音源制御タスクであり、音源部１０４にて、音を入出力させる等の処理を行う。タスクＤは、表示制御タスクであり、例えば、タスクＢに備えられる待ち受け画面のアプリケーションプログラムからの表示要求により、待ち受け画面を表示部１０２に表示する等の処理を行う。タスクＥは、キー監視タスクであり、ユーザのキーボード操作を検出する操作部１０３からの検出信号を受けてどのキーが押下されたか等を検出し、検出したキーに対応するシグナルをタスク管理部１１を介して他のタスクへ送信する等の処理を行う。
【００２６】
なお、携帯電話端末１００におけるタスクは、タスクＢからタスクＥ等の例に限られず、例えば、無線通信部１００により基地局装置との間で無線信号による通信を確立する通信制御タスクや、内蔵されるカメラ等のデバイスを制御するタスク等も存在してもよい。
【００２７】
タスクＡは、以下の説明において、処理負荷が安定しないタスクとして予め定められる所定のタスクの動作を説明するためのタスクである。タスクＡとしては、例えば、表示部１０２に高精細な画面を表示するために平均的なタスクの処理時間よりも長時間、制御部１０５のＣＰＵを占有してしまう場合のタスクＤや、カメラ等のデバイスを制御するタスク等が該当し、当該タスクＡが起動することにより、タスクＡより優先度の低いタスクは処理を開始できない状態となる。
【００２８】
また、タスクＡの他の例としては、多量のキー押下がユーザによって行われ、処理要求シグナルを連続して複数受信している場合のタスクＥ等が該当する。タスクＥに該当する場合のタスクＡは、キーの押下に対応する１つずつの処理の時間は短い。しかし、例えば、音源制御のタスクＣにて音楽を出力している場合に、タスクＡへの処理要求シグナルが多数存在すると、タスクＡの方が優先度が高いため、タスクＣに処理時間が割当てられず、音楽の音信号のファイルの音源のＩＣチップへの読み込みに遅延が生じて音切れが生じるなどの不具合が発生する場合がある。この場合、優先度の高いタスクＡへの処理要求シグナルがタスク管理部１１により全て処理された後でなければ、タスクＡより優先度の低いタスクは処理を開始できない状態となる。
【００２９】
ウエイトタスク１２は、処理負荷が安定しないタスクＡの処理を制御に用いられるタスクであり、最も低い優先度が付与されており、タスクＡから処理要求シグナルを受信すると、処理要求シグナルの要求元のタスクＡに対して応答シグナルを送信して処理を終了する。
【００３０】
ここで、本実施形態におけるタスクの優先度は、例えば、図２に示すように、タスクＡ、Ｂ、Ｃ、…の順に優先度が付与されているものとし、ウエイトタスク１２は、上記したように最も低い優先度が付与されているものとする。なお、タスクＡは、必ずしも最も優先度が高いわけではなく、例えば、上述した通信制御タスク等には、タスクＡより上位の優先度が付与されることになる。
【００３１】
リアルタイムＯＳ１０において、タスク管理部１１は、リアルタイムＯＳ１０が備える複数のタスクへの処理要求シグナル等のシグナルが存在すると、当該シグナルに対応するタスクの処理を開始させ、複数のタスクに対する複数のシグナルが存在する場合には、優先度に応じて当該シグナルに対応するタスクの処理を開始させる。
【００３２】
リアルタイムＯＳ１０において、タイマ１８は、予め一定のタイムアウト時間が設定されており、起動要求情報を受信すると、当該一定のタイムアウト時間が経過するまで計時を行い、計時する時間が当該一定のタイムアウト時間を超えた場合に、起動要求情報の要求元のタスクへのタイムアウトシグナルを送信する。
【００３３】
図３は、タスク管理部１１の内部構成を示す概略ブロック図である。タスク管理部１１において、キュー１１１−１〜１１１−ｎは、それぞれのタスクに予め付与される優先度ごとに設けられ、各タスクへの処理要求シグナルや、応答シグナルや、タイマ１８からのタイムアウトシグナル等を記憶する。開始指示部１１２は、キュー１１１−１〜１１１−ｎに記憶されている各タスクへのシグナルを優先度の高いキューから順に読み出し、優先度の高いキューにシグナルが存在しなくなると、次に優先度が高いキューからシグナルを読み出す。また、開始指示部１１２は、読み出したシグナルに対応するタスクに処理の開始指示情報とともにシグナルの種別を示す情報を送信する。
【００３４】
図４は、処理負荷が安定しないタスクであるタスクＡの内部構成を示した概略ブロック図である。タスクＡにおいて、タスク処理部１２０は、タスク管理部１１の開始指示部１１２から開始指示情報とともにシグナルの種別を示す情報を受信し、シグナルの種別に応じて、無線通信部１０１や、表示部１０２や、操作部１０３や、音源部１０４等のデバイスや、他のタスクＢからＥを動作させるための処理を行う。また、タスク処理部１２０は、判定部１２０から処理停止の指示情報が入力されると、タスク管理部１１を介してタイマ１８にタイマの起動要求情報を送信し、ウエイトタスク１２に処理要求シグナルを送信して処理を停止する。また、タスク処理部１２０は、タスク管理部１１の開始指示部１１２から開始指示情報とともにウエイトタスク１２からの応答シグナルのシグナル種別を示す情報を受信した場合、処理の停止により中断していた処理の再開を行う。
【００３５】
処理時間計時部１２１は、タスクＡにおける処理が開始されると、開始してからの処理時間を計時し、一度計時が開始されるとタスクＡが処理を行っている間、計時を行い、判定部１２２からリセット指示情報が入力されると処理時間を零にして、次に、開始指示情報が入力されるまで計時処理を停止する。
【００３６】
判定部１２２は、処理時間計時部１２１が計時する処理時間を参照し、処理時間計時部１２１が計時する処理時間が予め定められる所定の経過時間を超えるか否かを判定する。また、判定部１２２は、処理時間計時部１２１が計時する処理時間が予め定められる所定の経過時間を超えると判定した場合、タスク処理部１２０に処理停止の指示情報を入力し、処理時間計時部１２１にリセット指示情報を入力する。
【００３７】
なお、タスクＡ以外のタスクＢからタスクＥについては、タスク管理部１１の開始指示部１１２から開始指示情報とともにシグナルの種別を示す情報を受信して、シグナルの種別に応じて、無線通信部１０１や、表示部１０２や、操作部１０３や、音源部１０４や他のタスクを動作させるタスクメイン処理を行う構成を少なくとも有している。
【００３８】
次に、図５を参照してタスクＡの動作について説明する。
まず、携帯電話端末１００の電源が投入されると制御部１０５が起動され、リアルタイムＯＳ１０が起動される。リアルタイムＯＳ１０が起動されるとタスクＡ、及びそれ以外のタスクＢからタスクＥが起動され、ウエイトタスク１２も起動される。タスクＡは、起動されるとタスクの初期化処理を行う（ステップＳａ１）。そして、処理時間計時部１２１が処理時間の計測、すなわち処理が行われた処理時間の計時を開始する（ステップＳａ２）。その後、タスク処理部１２０により、タスクメイン処理、すなわちタスク管理部１１の開始指示部１１２から開始指示情報とともにシグナルの種別を示す情報を受信し、シグナルの種別に応じて、無線通信部１０１や、表示部１０２や、操作部１０３や、音源部１０４や他のタスクを動作させる処理を行う。ここで、タスクＡは、複数の処理から構成されており、それぞれの処理の単位ごとに、一度処理を終了して、タスク管理部１１に処理時間を割当て、他のタスクへの処理の開始を行わせる。そのため、他のタスクが処理を行っている間、タスクＡは停止し、処理時間計時部１２１も計時を停止するため、上述したように処理時間計時部１２１が計時する時間は、タスクＡの処理が行われている時間を示すこととなる（ステップＳａ３）。
【００３９】
タスク処理部１２０によるタスクメイン処理の間に、判定部１２２は、処理時間計時部１２１が計時する処理時間を参照し（ステップＳａ４）、処理時間計時部１２１が計時する処理時間が予め定められる所定の経過時間を超えているか否かを判定する（ステップＳａ５）。処理時間計時部１２１が計時する処理時間が所定の経過時間を超えていない間、タスク処理部１２０及び、判定部１２２は、それぞれステップＳａ３からステップＳａ５の処理を並列に繰り返し行い、処理時間計時部１２１は、タスクＡが処理を行っている間は、経過時間の計時を継続する。
【００４０】
判定部１２２が処理時間計時部１２１が計時する処理時間が所定の経過時間を超えていると判定した場合、判定部１２２は、タスク処理部１２０に処理停止の指示情報を入力するとともに、処理時間計時部１２１に、リセット指示情報を入力する。当該リセット指示情報が入力される処理時間計時部１２１は、処理時間を零とする。次に、処理停止の指示情報が入力されるタスク処理部１２０は、ウエイトタスク１２から応答シグナルを受信した際あるいはタイムアウトシグナルを受信した際に処理を再開するための情報を内部の記憶領域に記憶し、ウエイトタスク１２への処理要求シグナルを送信して処理を停止する（ステップＳａ６）。また、処理停止の指示情報が入力されるタスク処理部１２０は、タスク管理部１１を介してタイマ１８に起動要求情報を送信する（ステップＳａ７）。そして、タスク処理部１２０は、シグナル受信待ち状態となり、処理を停止する（ステップＳａ８）。
【００４１】
タスク処理部１２０は、ウエイトタスク１２からの応答シグナルの受信、あるいは、タイマ１８からのタイムアウトシグナルの受信を監視し（ステップＳａ９、Ｓａ１０）、ウエイトタスク１２から応答シグナルを受信した際、あるいはタイムアウトシグナルを受信した際に、内部の記憶領域から処理を再開するための情報を読み出して処理を再開するとともに、処理時間計時部１２１に開始指示情報を入力する（ステップＳａ１１）。そして、処理時間計時部１２１が計時する処理時間が所定の経過時間を超えていない間、上記のステップＳａ３からステップＳａ５の処理を繰り返す。
【００４２】
上記の処理により、タスクＡは、タスクメイン処理を開始してからの処理時間を計時することにより、処理時間が所定の経過時間を超えた場合、ウエイトタスク１２に処理要求シグナルを送信することが可能となる。これにより、処理負荷が安定しないタスクＡが処理を開始しても、所定の経過時間を超えた場合には、タスクＡが停止するため、タスクＡ以外のタスクが処理を開始することが可能となる。また、他の全てのタスクの処理が終了すると、優先度の最も低いウエイトタスク１２が処理を開始して、タスクＡに応答シグナルを送信する構成としたため、他の全てのタスクの処理が終了した後に、タスクＡに処理を再開させることが可能となる。
【００４３】
また、タスクＡは、処理を停止する際に、タイマ１８を起動し、タイマ１８からタイムアウトシグナルを受信すると、処理を再開する構成とした。これにより、他のタスクの処理が継続してウエイトタスク１２が起動されない場合であってもタイムアウト時間が経過した後は、タスクＡに処理を再開させることが可能となる。
【００４４】
次に、図６を参照しつつウエイトタスク１２の処理について説明する。
まず、携帯電話端末１００の電源が投入されると制御部１０５が起動され、リアルタイムＯＳ１０が起動される。リアルタイムＯＳ１０が起動されるとウエイトタスク１２は、他のタスクＡからタスクＥとともに起動され、タスクの初期化処理を行う（ステップＳｂ１）。そして、ウエイトタスク１２は、処理要求シグナル受信待ち状態となり（ステップＳｂ２）、ウエイトタスク１２は、タスク管理部１１の開始指示部１１２からの処理要求シグナルの受信を監視する（ステップＳｂ３）。そして、ウエイトタスク１２が、タスク管理部１１の開始指示部１１２から処理要求シグナルを受信した場合、処理要求シグナルの要求元のタスクＡへの応答シグナルを送信し（ステップＳｂ４）、ステップＳｂ２の処理要求シグナル受信待ち状態となる。
【００４５】
上記の処理により、ウエイトタスク１２は、処理要求シグナルに対して単に応答シグナルを送信する処理を行う構成であるため、ウエイトタスク１２を追加してもその処理負荷はリアルタイムＯＳ１０に大きく影響を与えるものではなく、また、ウエイトタスク１２は、リアルタイムＯＳ１０の１つのタスクとして構成されるため、処理時間の制御の対象となるタスクＡ以外のタスクＢからＥについては変更を伴わずに追加を行うことができる。
【００４６】
次に、図７から図９を参照しつつ、タスクＡとタスクＡより優先度の低いタスクＢとが存在する場合のリアルタイムＯＳ１０の動作について説明する。
【００４７】
図７は、ウエイトタスク１２からの応答シグナルを受信してタスクＡが処理を再開する処理を示したシーケンス図である。
【００４８】
まず、前提として、携帯電話端末１００の電源が投入され、制御部１０５が起動されることにより、リアルタイムＯＳ１０及びタスクＡ、並びにそれ以外のタスクＢからタスクＥが起動され、ウエイトタスク１２も起動されている状態であるとする。
【００４９】
この状態にて、例えば、ユーザの操作部１０３の操作を受けてキー監視タスクのタスクＥより、タスクＡへの処理要求シグナルがタスク管理部１１に送信される。タスクＡへの処理要求シグナルは、タスクＡに予め付与される優先度に従って、タスク管理部１１のキュー１１１−１に記憶される（ステップＳｃ１）。その後、ユーザの操作部１０３の操作を受けてキー監視タスクのタスクＥより、タスクＢへの処理要求シグナルがタスク管理部１１に送信される。タスクＢへの処理要求シグナルは、タスクＢに予め付与される優先度に従って、タスク管理部１１のキュー１１１−２に記憶される（ステップＳｃ２）。
【００５０】
タスク管理部１１の開始指示部１１２は、優先度の高いキュー、すなわちキュー１１１−１から処理要求シグナルを読み出し、読み出した処理要求シグナルに対応するタスクＡに処理の開始指示情報とともにシグナルの種別、すなわち処理要求を示す情報を送信する。タスクＡのタスク処理部１２０は、タスクメイン処理（図５：ステップＳａ３）にて、開始指示部１１２から開始指示情報とシグナルの種別を示す情報を受信して、シグナルの処理種別に対応するタスクメイン処理を開始する。このとき、処理時間計時部１２１も処理時間の計時を開始する（ステップＳｃ３）。
【００５１】
次に、タスクＡの判定部１２２は、タスク処理部１２０のタスクメイン処理と並行して、処理時間計時部１２１が計時する処理時間を参照し、当該処理時間が予め定められる所定の経過時間を超えているか否かを判定し、当該処理時間が予め定められる所定の経過時間を超えている場合、判定部１２２は、タスク処理部１２０に処理停止の指示情報を入力するとともに、処理時間計時部１２１に、リセット指示情報を入力する。当該リセット指示情報が入力される処理時間計時部１２１は、処理時間を零とする。処理停止の指示情報が入力されるタスク処理部１２０は、ウエイトタスク１２から応答シグナルを受信した際あるいはタイムアウトシグナルを受信した際に処理を再開するための情報を内部の記憶領域に記憶し、タスク管理部１１を介してタイマ１８に起動要求情報を送信する（ステップＳｃ４）。そして、タスク処理部１２０は、ウエイトタスク１２への処理要求シグナルを送信して処理を停止する（ステップＳｃ５）。
【００５２】
タスクＡから送信されたウエイトタスク１２への処理要求シグナルは、ウエイトタスク１２の優先度に対応するタスク管理部１１のキュー１１１−ｎに記憶される。次に、タスク管理部１１の開始指示部１１２は、シグナルが記憶されているキュー１１１−１〜１１１−ｎの中で最も優先度の高いキューからシグナルを読み出す。ここでは、開始指示部１１２は、キュー１１１−２に記憶される処理要求シグナルを読み出し、読み出した処理要求シグナルに対応するタスクＢに処理の開始指示情報とともにシグナルの種別、すなわち処理要求を示す情報を送信する。
【００５３】
タスクＢは、開始指示部１１２から処理の開始指示情報とともにシグナルの種別を示す情報を受信すると、タスクＢのタスクメイン処理を開始し（ステップＳｃ６）、タスクＢのシグナルに対応する処理が終了すると停止する（ステップＳｃ７）。タスクＢが停止すると、タスク管理部１１の開始指示部１１２は、シグナルが記憶されているキュー１１１−１〜１１１−ｎの中で最も優先度の高いキューからシグナルを読み出す。ここでは、開始指示部１１２は、キュー１１１−ｎに記憶される処理要求シグナルを読み出し、読み出した処理要求シグナルに対応するウエイトタスク１２に処理の開始指示情報とともにシグナルの種別を示す情報を送信する。ウエイトタスク１２は、開始指示部１１２から開始指示情報とともにシグナルの種別を示す情報を受信すると、シグナルの種別を示す情報に含まれる要求元のタスクＡへの応答シグナルを送信する（ステップＳｃ８）。ウエイトタスク１２から送信される応答シグナルは、タスクＡに対応するキュー１１１−１に記憶される。
【００５４】
開始指示部は、シグナルが記憶されているキュー１１１−１〜１１１−ｎの中で最も優先度の高いキューからシグナルを読み出す。ここでは、開始指示部１１２は、応答シグナルをキュー１１１−１から読み出し、読み出した応答シグナルに対応するタスクＡに処理の開始指示情報とともにシグナルの種別、すなわち応答を示す情報を送信する。タスクＡのタスク処理部１２０は、開始指示部１１２から、開始指示情報とともに応答のシグナル種別を示す情報を受信すると、処理を再開するための情報を内部の記憶領域から読み出して、処理を再開するとともに、処理時間計時部１２１に開始指示を入力する。開始指示が入力される処理時間計時部１２１は、処理時間の計時を開始し、ステップＳｃ３からの処理を繰り返す（ステップＳｃ９）。
【００５５】
上記の処理により、タスクＡの処理時間が所定の経過時間を超えた場合に、ウエイトタスク１２に処理要求シグナルを送信することで、優先度がタスクＡより低いがウエイトタスク１２より高いタスクＢに処理を開始させることができる。これにより、処理負荷が安定しないタスクＡへの改良と、ウエイトタスク１２の追加のみでリアルタイムＯＳ１０全体への改良を伴わずに処理負荷の分散を図ることが可能となる。
【００５６】
なお、図７、及び後述する図８、図９において、網掛けの部分は、各タスクが処理を行うことができない時間を示したものである。
【００５７】
次に、図８は、ウエイトタスク１２からの応答シグナルを受信してタスクＡが処理を再開する処理であってタスクＢへの処理要求シグナルが存在しない場合の処理に関するシーケンス図である。
【００５８】
図８の処理において、タスクＡへの処理要求シグナルが送信され、タスクＡからウエイトタスク１２へ処理要求シグナルが送信されるまでのステップＳｄ１、Ｓｄ２、Ｓｄ３、Ｓｄ４までの処理は、それぞれ、ステップＳｃ１、Ｓｃ３、Ｓｃ４、Ｓｃ５の処理と同様の処理が行われる。
【００５９】
ステップＳｄ１からＳｄ４までの処理が行われた状態にて、タスク管理部１１の開始指示部１１２は、シグナルが記憶されているキュー１１１−１〜１１１−ｎの中で最も優先度の高いキューからシグナルを読み出す。ここでは、タスクＢへの処理要求シグナルが存在しないため、開始指示部１１２は、最も優先度の低いキュー１１１−ｎに記憶されるウエイトタスク１２への処理要求シグナルを読み出し、読み出した処理要求シグナルに対応するウエイトタスク１２に処理の開始指示情報とともにシグナルの種別を示す情報を送信する。ウエイトタスク１２は、開始指示部１１２から開始指示情報とともにシグナルの種別を示す情報を受信すると、シグナルの種別を示す情報に含まれる要求元のタスクＡへの応答シグナルを送信する（ステップＳｄ５）。ウエイトタスク１２から送信される応答シグナルは、タスクＡに対応するキュー１１１−１に記憶される。
【００６０】
次に、開始指示部は、シグナルが記憶されているキュー１１１−１〜１１１−ｎの中で最も優先度の高いキューからシグナルを読み出す。ここでは、開始指示部１１２は、応答シグナルをキュー１１１−１から読み出し、読み出した応答シグナルに対応するタスクＡに処理の開始指示情報とともにシグナルの種別、すなわち応答を示す情報を送信する。タスクＡのタスク処理部１２０は、開始指示部１１２から、開始指示情報とともに応答のシグナル種別を示す情報を受信すると、処理を再開するための情報を内部の記憶領域から読み出して、処理を再開するとともに、処理時間計時部１２１に開始指示情報を入力する。開始指示情報が入力される処理時間計時部１２１は、処理時間の計時を開始し、ステップＳｄ２からの処理を繰り返す（ステップＳｄ６）。
【００６１】
上記の処理により、ウエイトタスク１２は、処理が開始されると応答シグナルを送信して終了する処理しか行わないため、タスクＢへの処理要求シグナルが存在しない場合には、タスクＡは、ほとんど停止することなく処理を継続することができるため、タスクＡは、無駄な処理停止を行うことなく、効率的に処理負荷の分散を図ることが可能となる。
【００６２】
次に、図９は、タイマ１８からタイムアウトシグナルを受信してタスクＡが処理を再開する処理を示したシーケンス図である。
【００６３】
図９において、ウエイトタスク１２への処理要求シグナルが送信され、タスクＢのタスクメイン処理が開始されるまでのステップＳｅ１からステップＳｅ６までの処理は、図７のステップＳｃ１からＳｃ６と同様の処理が行われる。
【００６４】
タスクＢにおいてタスクメイン処理が行われている間に、タイマ１８に予め定められるタイムアウト時間が経過すると、タイマ１８は、タスクＡへのタイムアウトシグナルを送信する。当該タイムアウトシグナルは、タスクＡに対応するキュー１１１−１に記憶される（ステップＳｅ７）。当該タイムアウトシグナルの発生により、タスクＢのタスクメイン処理が終了すると（ステップＳｅ８）、開始指示部は、シグナルが記憶されているキュー１１１−１〜１１１−ｎの中で最も優先度の高いキューからシグナルを読み出す。ここでは、開始指示部１１２は、タイムアウトシグナルをキュー１１１−１から読み出し、読み出したタイムアウトシグナルに対応するタスクＡに処理の開始指示情報とともにシグナルの種別、すなわちタイムアウトを示す情報を送信する。
【００６５】
タスクＡのタスク処理部１２０は、開始指示部１１２から、開始指示情報とともにタイムアウトのシグナル種別を示す情報を受信すると、処理を再開するための情報を内部の記憶領域から読み出して、処理を再開するとともに、処理時間計時部１２１に開始指示情報を入力する。開始指示情報が入力される処理時間計時部１２１は、処理時間の計時を開始し、ステップＳｅ３からの処理を繰り返す（ステップＳｅ９）
【００６６】
上記の処理によりタスクＢがタスクＡと同じく処理負荷が安定せず、長時間処理を継続するようなタスクであったとしても、一定のタイムアウト時間が経過した場合には、再びタスクＡの処理が開始されるため、処理負荷の分散を図ることが可能となる。
【００６７】
なお、タスクＡ以外の複数のタスクについても、タスクＡと同じようにウエイトタスク１２による処理時間の制御を行うのであれば、タスクＡと同様のタスク処理部１２０、処理時間計時部１２１や判定部１２２を備えさせ、それぞれのタスクに対応するウエイトタスク１２を設けるようにしてもよい。
【００６８】
また、上記の実施形態では、リアルタイムＯＳについて記載したが、本発明はリアルタイムＯＳへの適用に限られず、マルチタスクオペレーティングシステム等を含む複数のタスクの処理を管理するオペレーティングシステムへ適用するようにしてもよい。
【００６９】
また、本発明の第１の所定時間は、所定の経過時間に対応し、第２の所定時間は、一定のタイムアウト時間に対応する。また、本発明の処理時間計時手段は、処理時間計時部１２１に該当し、判定手段は、判定部１２２、処理手段は、タスク処理部１２０に該当する。
【００７０】
上述の携帯電話端末は内部に、コンピュータシステムを有している。そして、上述したリアルタイムＯＳに係る各タスク及びウエイトタスクの処理は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【図面の簡単な説明】
【００７１】
【図１】本実施形態による携帯電話端末の内部構成を示す概略ブロック図である。
【図２】同実施形態におけるタスクの優先度を説明するための図である。
【図３】同実施形態におけるタスク管理部の内部構成を示す概略ブロック図である。
【図４】同実施形態におけるタスクＡの内部構成を示す概略ブロック図である。
【図５】同実施形態におけるタスクＡの処理を示したフローチャートである。
【図６】同実施形態におけるウエイトタスクの処理を示したフローチャートである。
【図７】同実施形態におけるタスク間の処理（その１）を示したシーケンス図である。
【図８】同実施形態におけるタスク間の処理（その２）を示したシーケンス図である。
【図９】同実施形態におけるタスク間の処理（その３）を示したシーケンス図である。
【符号の説明】
【００７２】
１０  リアルタイムＯＳ
１１  タスク管理部
１２  ウエイトタスク
１８  タイマ
１００  携帯電話端末
１０１  無線通信部
１０２  表示部
１０３  操作部
１０４  音源部
１０５  制御部
【図１】
0004472644.tif 000002
【図２】
0004472644.tif 000003
【図３】
0004472644.tif 000004
【図４】
0004472644.tif 000005
【図５】
0004472644.tif 000006
【図６】
0004472644.tif 000007
【図７】
0004472644.tif 000008
【図８】
0004472644.tif 000009
【図９】
0004472644.tif 000010