(57)【要約】【課題】コールバック関数の呼び出しが不可能であっても、やり直すことなしに処理を行う。【解決手段】動的ローディング制御モジュールは、コールバック関数の呼び出しに際し、コールバック関数を含み、そのコールバック関数を指定してシステムソフトモジュールを呼び出した動的ローディングモジュールが主記憶部にロードされているか否かを判断する（ステップＳ４０２）。ロードされていない場合、その動的ローディングモジュールの動作はコールバック関数の動作に依存するか否かを調べる（ステップＳ４０５）。依存しない場合、コールバック関数の呼び出し動作を終了し（ステップＳ４０４）、依存する場合、エラー処理（ステップＳ４０６）の後、動作を終了する（ステップＳ４０４）。【選択図】図７
2010009527.tif 000002
【特許請求の範囲】
【請求項１】
主記憶手段に記憶されたプログラムを実行する情報処理装置であって、
第１のプログラムモジュールと、
第２のプログラムモジュールとを備え、
前記第１のプログラムモジュールは、コールバック関数を識別する情報をパラメータとして与えて前記第２のプログラムモジュールを呼び出し、
前記第２のプログラムモジュールは、前記パラメータとして与えられた識別する情報で識別されるコールバック関数が前記主記憶手段に記憶されている場合、そのコールバック関数を呼び出し、そのコールバック関数が前記主記憶手段に記憶されていない場合、そのコールバック関数を呼び出す動作を無視する
ことを特徴とする情報処理装置。
【請求項２】
前記第１のプログラムモジュールは、前記コールバック関数を識別する情報に加えて、そのコールバック関数の呼び出しの重要度の高又は低をパラメータとして与えて前記第２のプログラムモジュールを呼び出し、
前記第２のプログラムモジュールは、前記パラメータとして与えられた識別する情報で識別されるコールバック関数が前記主記憶手段に記憶されていない、かつ、前記第１のプログラムモジュールによって与えられたパラメータが前記コールバック関数の呼び出しの重要度が低である場合、そのコールバック関数を呼び出す動作を無視する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
表示手段を更に備え、
前記第１のプログラムモジュールは、前記コールバック関数の呼び出しの重要度が高である旨のパラメータを与えて前記第２のプログラムモジュールを呼び出し、
前記第２のプログラムモジュールは、符号化された画像ファイルを復号した後、前記パラメータとして与えられた識別する情報で識別されるコールバック関数が前記主記憶手段に記憶されている場合、そのコールバック関数を呼び出し、
前記第１のプログラムモジュールは、前記コールバック関数が呼び出されると、前記第２のプログラムモジュールによって復号された画像ファイルを前記表示手段に表示させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
表示手段を更に備え、
前記第１のプログラムモジュールは、前記コールバック関数の呼び出しの重要度が低である旨のパラメータを与えて前記第２のプログラムモジュールを呼び出し、
前記第２のプログラムモジュールは、符号化された画像ファイルを復号し、その復号された画像を前記表示手段に表示させた後、前記パラメータとして与えられた識別する情報で識別されるコールバック関数が前記主記憶手段に記憶されている場合、そのコールバック関数を呼び出す
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記コールバック関数は、前記第１のプログラムモジュールが前記主記憶手段にロードされる際にその主記憶手段にロードされ、前記第１のプログラムモジュールが前記主記憶手段からアンロードされる際にその主記憶手段からアンロードされる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記第１のプログラムモジュールは、前記コールバック関数を識別する情報と、前記コールバック関数の呼び出しの重要度の高又は低とをパラメータとして与えて前記第２のプログラムモジュールを呼び出し、
前記第２のプログラムモジュールは、前記パラメータとして与えられた識別する情報で識別されるコールバック関数の呼び出しに際し、前記第１のプログラムモジュールが前記主記憶手段に記憶されていない、かつ、前記第１のプログラムモジュールによって与えられたパラメータが前記コールバック関数の呼び出しの重要度が低である場合、そのコールバック関数を呼び出す動作を無視する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
表示手段を更に備え、
前記第１のプログラムモジュールは、前記コールバック関数を識別する情報に加えて、そのコールバック関数の呼び出しの重要度の高又は低をパラメータとして与えて前記第２のプログラムモジュールを呼び出し、
前記第２のプログラムモジュールは、前記パラメータとして与えられた識別する情報で識別されるコールバック関数が前記主記憶手段に記憶されていない、かつ、前記第１のプログラムモジュールによって与えられたパラメータが前記コールバック関数の呼び出しの重要度が高である場合、前記表示手段に所定の表示をさせる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
履歴を記憶する履歴記憶手段を更に備え、
前記第１のプログラムモジュールは、前記コールバック関数を識別する情報に加えて、そのコールバック関数の呼び出しの重要度の高又は低をパラメータとして与えて前記第２のプログラムモジュールを呼び出し、
前記第２のプログラムモジュールは、前記パラメータとして与えられた識別する情報で識別されるコールバック関数が前記主記憶手段に記憶されていない、かつ、前記第１のプログラムモジュールによって与えられたパラメータが前記コールバック関数の呼び出しの重要度が高である場合、前記コールバック関数が前記主記憶手段に記憶されていない旨の履歴を前記履歴記憶手段に記憶させる
ことを特徴とする請求項１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に係り、特に、コールバック関数の処理に関する。
【背景技術】
【０００２】
情報処理装置で、コールバック関数を用いた処理が知られている。即ち、呼び出し元のプログラム１が呼び出し先のプログラム２を呼び出す際、コールバック関数と呼ばれるプログラム３を識別する情報を引数として与え、呼び出されたプログラム２は、その引数を参照してコールバック関数と呼ばれるプログラム３を呼び出す処理である。ここで、プログラム３を識別する情報は、例えば、プログラム３が位置する主記憶部のアドレスである。
【０００３】
コールバック関数を用いた処理は、例えば、呼び出されたプログラム２で何らかのイベントが発生した際の処理を、呼び出し元のプログラム１が指定するために用いられる。ここで、プログラム３をコールバック関数と呼ぶが、必ずしも関数であることを意味しない。即ち、プログラム３は、呼び出しが可能なプログラムの単位であれば良く、プログラミング言語に依存して、関数の他、サブルーチン、サブプログラム、手続き、メソッドなどと呼ばれることもある。
【０００４】
また、プログラムがアセンブリ言語によって記述される場合、プログラム３を識別する情報として、アセンブリ言語によるプログラム中の位置（アドレス）を用いることによれば、コールバック関数と呼ばれるプログラム３は、プログラムの単位である必要はない。プログラム中の任意の位置（アドレス）から開始される処理であるとして良い。
【０００５】
呼び出し元のプログラム１と呼び出し先のプログラム２とは独立したプログラムであって、それらのプログラムは独立して動作する異なるタスクに割り当てられる処理が考えられる。この処理で、コールバック関数であるプログラム３は、呼び出し元のプログラム１と同じプログラムモジュール、即ち、所定の範囲の機能を果たすプログラム群に含まれ、かつ、呼び出し先のプログラム２が割り当てられたタスクとして動作することが考えられる。ここで、プログラムモジュールに含まれるプログラムの数は、複数と限るものではない。
【０００６】
この処理によれば、呼び出し元のプログラム１と、呼び出し先のプログラム２との独立性を高め、保守性を高めることができる。更に、コールバック関数であるプログラム３の動作の結果に依存して、呼び出し元のプログラム１の動作を変化させることが容易に可能となる。
【０００７】
しかしながら、呼び出し元のプログラム１と、呼び出し先のプログラム２とが独立したプログラムであって、それぞれのプログラムが異なるタスクに割り当てられて動作している場合、これらのプログラムのアンロードは、これらの２つのタスクによる処理に悪い影響を及ぼす。そこで、プログラムの一方の主記憶部からのアンロードの際、上記複数のタスクによって行なわれている処理を取り消す処理が知られている（例えば、特許文献１参照。）。
【０００８】
ここで、上記プログラム又はそのプログラムが含まれるプログラムモジュールのアンロードは、そのプログラムのバージョンアップの際に行われるのみならず、そのプログラムが割り当てられたタスクがサスペンド状態に置かれること、そのタスクが消滅されたこと、そのタスクに割り当てられた主記憶部が解放されることによってそのプログラムがアンロードされることなどによって発生する。なお、サスペンド状態とは、そのタスクがＯＳのカーネルによって動作しないと設定された状態を意味し、そのタスクがＣＰＵリソースを要求して、そのリソースの割り当てを待つ状態ではない。
【特許文献１】特開２００４−１９２６４８号公報（第３２頁）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した特許文献１に開示されている方法では、プログラムのアンロード後、そのプログラムのロードを待って、アンロードの際に行なわれていた処理を再度行う、即ち、処理のやり直しが必要である問題点があった。
【００１０】
本発明は上記問題点を解決するためになされたもので、コールバック関数の呼び出しが不可能であっても、やり直すことなしに処理を行う情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の情報処理装置は、主記憶手段に記憶されたプログラムを実行する情報処理装置であって、第１のプログラムモジュールと、第２のプログラムモジュールとを備え、前記第１のプログラムモジュールは、コールバック関数を識別する情報をパラメータとして与えて前記第２のプログラムモジュールを呼び出し、前記第２のプログラムモジュールは、前記パラメータとして与えられた識別する情報で識別されるコールバック関数が前記主記憶手段に記憶されている場合、そのコールバック関数を呼び出し、そのコールバック関数が前記主記憶手段に記憶されていない場合、そのコールバック関数を呼び出す動作を無視することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、コールバック関数の呼び出しが不可能であっても、やり直すことなしに処理を行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明による情報処理装置の実施の形態を、図面を参照して説明する。図１は、本発明の実施形態に係る情報処理装置が適用された移動通信装置の構成を示すブロック図である。
【００１４】
この移動通信装置は、移動通信網（図示せず）を介した通信等を行う装置であり、装置全体の制御を行う制御部１００と、基地局（図示せず）との間で電波の送受信を行うアンテナ１１１ａと、通信部１１１ｂと、送受信部１１２と、スピーカ１１３ａと、マイクロフォン１１３ｂと、通話部１１３ｃと、表示部１１４と、入力装置１１５と、カメラ１１６と、スピーカ１１７と、ファイル記憶部１２１とを備える。
【００１５】
制御部１００には、システムソフトモジュール１０１と、動的ローディング制御モジュール１０２と、動的ローディング管理テーブル１０３と、動的ローディングモジュール１０４とが含まれる。これらのプログラムによるモジュールがタスクに割り当てられて、主記憶部（図示せず）にロード、即ち、記憶され、そのタスクがＣＰＵ（図示せず）によって実行されることにより、又は、ノンタスクとして主記憶部にロードされ、ＣＰＵによって動作されることにより、それぞれのプログラムの機能が実行される。
【００１６】
これらの主記憶部へのロードと、ＣＰＵリソースの割り当ては、制御部１００に含まれるディスパッチャ（図示せず）によって行なわれる。ファイル記憶部１２１には、ファイル１２１ａが記憶される。
【００１７】
上記のように構成された、本発明の実施形態に係る移動通信装置の各部の動作を、図１を参照して説明する。
【００１８】
システムソフトモジュール１０１は、複数の種類のモジュールからなり、それぞれのモジュールは、タスクに割り当てられ、そのタスクが実行されて機能を実現するものである。システムソフトモジュール１０１が割り当てられたタスクは、装置の各部、又は、動的ローディングモジュール１０４が実現する各機能によって要求されることを契機に実行される。また、各システムソフトモジュール１０１は、常に主記憶部にロードされており、それぞれが割り当てられたタスクは、装置の電源投入の際に生成され、消滅することはない。
【００１９】
上記タスクは、装置の各部又は各機能に要求されない場合、サスペンド状態に置かれ、実行状態に置かれることはない。装置の各部又は各機能に要求された場合、実行状態に置かれ、実行される。ここで、ＣＰＵの数に限りがある場合、実行状態に置かれるとは、ＣＰＵリソース待ち状態に置かれることを含む。
【００２０】
なお、システムソフトモジュール１０１は、常に主記憶部にロードされており、また、そのモジュールを割り当てられたタスクが装置の電源投入の際に生成され、消滅することはないのは、装置の各部又は各機能に実行を要求された後、動作を開始するまでの時間を短縮するためである。しかし、そのタスクは、装置の各部又は各機能に実行を要求されるまでは消滅されており、その要求によって生成されるとし、タスクが生成された後、システムソフトモジュール１０１は、主記憶部にロードされるとしても良い。また、ローディングされたシステムソフトモジュール１０１は、適宜二次記憶部（図示せず）にスワップアウトされても良い。主記憶部リソースを活用するためである。
【００２１】
この実施形態では、制御部１００は、２つのシステムソフトモジュール１０１を含む。第１は、２つの機能、即ち、符号化された静止画、例えば、ＪＰＥＧファイルを復号し、復号された静止画を表示部１１４に表示させる機能と、静止画を符号化して、得られたＪＰＥＧファイルをパラメータとして返す機能とを実現するものであり、以後、システムソフトモジュール１０１（ＪＰＥＧ）と称する。
【００２２】
システムソフトモジュール１０１（ＪＰＥＧ）は、呼び出しに際し、コールバック関数を識別する情報を必要とする。このコールバック関数は、復号された静止画を表示部１１４に表示させる機能にあっては、表示の完了を通知するものである。一方、符号化の機能にあっては、パラメータとしてＪＰＥＧファイルを返すためのものである。
【００２３】
第２は、２つの機能、即ち、符号化された動画像と音声と、例えば、ＭＰＥＧファイルを復号して、画像を表示部１１４に表示させ、音声をスピーカ１１７から発生させる機能と、動画像と音声とを符号化して、得られたＭＰＥＧファイルをファイル１２１ａとしてファイル記憶部１２１に記憶させる機能とを実現するものであり、以後、システムソフトモジュール１０１（ＭＰＥＧ）と称する。
【００２４】
システムソフトモジュール１０１（ＭＰＥＧ）は、呼び出しに際し、コールバック関数を識別する情報を必要とする。このコールバック関数は、復号された静止画を表示部１１４に表示させ、音声をスピーカ１１７から発生させる機能にあっては、表示の完了を通知し、また、表示が行なわれていることを所定の時間間隔で通知するものである。一方、符号化の機能にあっては、パラメータとしてＭＰＥＧファイルを返すためのものである。
【００２５】
動的ローディング制御モジュール１０２は、制御部１００に含まれるディスパッチャの一部として、ノンタスクとして動作して機能を実現するものである。即ち、動的ローディング制御モジュール１０２は、システムソフトモジュール１０１によって呼び出され、その呼び出しに伴うパラメータに従って、動的ローディングモジュール１０４に含まれるコールバック関数を呼び出す。
【００２６】
呼び出されたコールバック関数は、上記システムソフトモジュール１０１が割り当てられたタスクとして実行される。なお、動的ローディング制御モジュール１０２は、ノンタスクとして動作するが、これに限るものではない。タスクに割り当てられ、そのタスクが実行されることによって動作しても良い。
【００２７】
動的ローディング制御モジュール１０２が割り当てられたタスクは、装置の電源投入の際に生成され、消滅することはないとしても良く、また、システムソフトモジュール１０１によって呼び出された際に生成されても良い。更に、動的ローディング制御モジュール１０２は、主記憶部に常にロードされていても、いなくても良い。ただし、タスクとして動作する場合、動的ローディング制御モジュール１０２が割り当てられたタスクは、動的ローディングモジュール１０４が割り当てられたタスクよりも高い優先度を持ち、優先してＣＰＵリソースが割り当てられることが適切である。
【００２８】
動的ローディング管理テーブル１０３は、動的ローディングモジュール１０４が主記憶部にローディングされているか否かを記憶する。図２は、動的ローディング管理テーブル１０３の構成の一例を示す。この動的ローディング管理テーブル１０３は、モジュールＩＤ１０３ａと、動的ロード状態１０３ｂとが関連付けられた情報からなる。
【００２９】
モジュールＩＤ１０３ａは、動的ローディングモジュール１０４を識別する情報である。また、動的ロード状態１０３ｂは、関連付けられたモジュールＩＤ１０３ａによって識別される動的ローディングモジュール１０４が主記憶部にロードされているか否かを示し、「ロード」又は「アンロード」なる情報である。
【００３０】
図２に示すように、この実施形態では、３つの動的ローディングモジュール１０４があり、それぞれを識別する情報は、「モジュール００１（電子メール）」、「モジュール００２（メディアプレイヤ）」、「モジュール００３（写真撮影）」である。また、それぞれが割り当てられたタスクが実行する機能は、電子メールの送受信、コンテンツの再生、写真の撮影である。
【００３１】
この３つの動的ローディングモジュール１０４のそれぞれを、以後、動的ローディングモジュール１０４（電子メール）、動的ローディングモジュール１０４（コンテンツ）、動的ローディングモジュール１０４（写真）と称する。
【００３２】
なお、動的ローディング管理テーブル１０３は、表形式で記憶されるように説明し、そして、図示したが、これは理解を容易にするためであって、これに限るものではない。例えば、離散して記憶され、離散した部分の間をポインターで結ぶ構成としても良い。
【００３３】
動的ローディングモジュール１０４のそれぞれは、入力装置１１５の所定の操作に基づいて、タスクに割り当てられることによって実行され、所定の機能を実現する。上記タスクは、入力装置１１５の所定の操作に基づいて、生成される。また、入力装置１１５の所定の操作に基づいて、又は、動的ローディングモジュール１０４の実現する所定の機能の終了によって、消滅される。また、動的ローディングモジュール１０４は、上記タスクが生成された際に主記憶部にロードされ、消滅された際に主記憶部からアンロードされる。
【００３４】
また、動的ローディングモジュール１０４のそれぞれは、コールバック関数を含み、システムソフトモジュール１０１を呼び出す際は、そのコールバック関数を識別する情報、即ち、そのコールバック関数が位置する主記憶部のアドレスを与える。なお、コールバック関数は、それぞれの動的ローディングモジュール１０４に含まれると限るものではない。しかし、含まれない場合、動的ローディングモジュール１０４のそれぞれのロードとアンロードに従って、動的ローディングモジュール１０４のそれぞれに対応するコールバック関数もロードとアンロードがされる。
【００３５】
動的ローディングモジュール１０４が割り当てられたタスクは、常には生成されておらず、かつ、動的ローディングモジュール１０４は、常には主記憶部にはロードされていないとしたが、これは、装置のリソースの有効活用を目的としたものであり、これに限るものではない。
【００３６】
上記タスクは、常に生成されており、入力装置１１５の所定の操作に基づいて、サスペンド状態と実行状態との間を推移する、及び／又は、動的ローディングモジュール１０４は、常に主記憶部にロードされているとしても良い。動的ローディングモジュール１０４が常に主記憶部にロードされているとき、本発明は、その動的ローディングモジュール１０４に対応するコールバック関数がロードされているか否かが変化する場合に適用される。
【００３７】
既に説明したように、この実施形態で、動的ローディングモジュール１０４は、動的ローディングモジュール１０４（電子メール）、動的ローディングモジュール１０４（コンテンツ）、動的ローディングモジュール１０４（写真）の３つであり、タスクに割り当てられることによって、それらが実行する機能は、それぞれ電子メール送受信機能、コンテンツ再生機能、写真撮影機能である。
【００３８】
以上説明したように、システムソフトモジュール１０１と、動的ローディング制御モジュール１０２と、動的ローディングモジュール１０４とは、それぞれノンタスクであるディスパッチャの一部として動作し、又は、タスクに割り当てられて実行されることによって機能を実現する。そこで、以後、システムソフトモジュール１０１と、動的ローディング制御モジュール１０２と、動的ローディングモジュール１０４とが動作して機能を実現する旨の記述によって、即ち、ディスパッチャ又はタスクの記載を省くことによって簡明な説明をする。
【００３９】
ここで、システムソフトモジュール１０１と、動的ローディング制御モジュール１０２と、動的ローディング管理テーブル１０３と、動的ローディングモジュール１０４とのコールバック関数の呼び出しの際のソフトウェア構成を説明する。図３は、この呼び出しの際のソフトウェア構成の一例を示す。即ち、これらのソフトウェアは、以下の順で動作要求、呼び出しを行う。
【００４０】
（１）コールバック関数を含む動的ローディングモジュール１０４は、システムソフトモジュール１０１に動作を要求する。この際、上記コールバック関数を識別する情報を与える。（２）システムソフトモジュール１０１は、動的ローディングモジュール１０４に含まれるコールバック関数を呼び出す際、動的ローディング制御モジュール１０２を呼び出す。（３）動的ローディング制御モジュール１０２は、動的ローディングモジュール１０４を参照する。（４）参照によって得られた情報に基づいて、動的ローディングモジュール１０４に含まれるコールバック関数を呼び出す。
【００４１】
通信部１１１ｂは、アンテナ１１１ａが受信した高周波信号を送受信部１１２へ出力し、また、送受信部１１２から出力される高周波信号をアンテナ１１１ａより送信する。
【００４２】
送受信部１１２は、通信部１１１ｂからの高周波信号を増幅、周波数変換及び復調し、それによって得られたディジタル音声信号を通話部１１３ｃへ、得られた制御信号を制御部１００へ、得られた電子メールを制御部１００の電子メール送受信機能へ送る。更には、送受信部１１２は、通話部１１３ｃから出力されるディジタル音声信号と、制御部１００から出力される制御信号と、電子メール送受信機能から出力される電子メールとを変調、周波数変換及び増幅し、高周波信号を得て、それを通信部１１１ｂに送る。
【００４３】
通話部１１３ｃは、送受信部１１２から出力されるディジタル音声信号をアナログ音声信号に変換し、それを増幅してスピーカ１１３ａに送る。また、マイクロフォン１１３ｂから出力されるアナログ音声信号を増幅し、それをディジタル音声信号に変換して送受信部１１２に送信する。
【００４４】
表示部１１４は、制御部１００に制御されることで、カーソルを含む文字・数字を含む画像データの表示動作を行い、表示されているデータは、入力装置１１５からの入力操作や着信信号の受信に応答して制御部１００からの指示を受けることで切換わる。また、所定の時間に渡って入力装置１１５からの入力操作や着信信号の受信がない場合、表示部１１４は、制御部１００に制御されて表示を終了する。
【００４５】
入力装置１１５は、通信相手の電話番号などを指定し、また、トグル式の入力方式によってひらがな文字、アルファベット文字及び記号文字を入力するための数字キーと、カーソル移動の指示を入力するカーソル移動キーやスクロールキーを含む機能の指示を入力する複数の機能キーとを含むキーからなる。カーソル移動キーは、４つのキーからなり、それぞれ上下左右方向へカーソル位置を移動させるために用いられる。
【００４６】
そして、入力装置１１５のキーが操作、例えば押下されると、そのキーの識別子が制御部１００に通知され、制御部１００の制御に基づいて、その識別子が通知された装置内の各部の処理により、表示部１１４に文字として表示されたり、キーの操作及び解放に基づく制御が行われたりする。
【００４７】
動的ローディングモジュール１０４（電子メール）による電子メール送受信機能は、入力装置１１５の所定のキー操作に基づいて動作を開始し、電子メールを送信する。即ち、入力装置１１５の所定のキー操作に従って、送信される電子メールの宛先電子メールアドレスと、件名と、本文とを入力して、件名と、本文とを、入力された宛先電子メールアドレスに宛てて、送受信部１１２に要求してメールサーバ装置（図示せず）へ送信させる。また、電子メール送受信機能は、入力装置１１５の所定のキー操作に従って、ファイル記憶部１２１に記憶されたファイル１２１ａを添付ファイルとして併せて送信させる。
【００４８】
更に、電子メール送受信機能は、電子メール着信信号を受信したことを契機として動作を開始し、メールサーバ装置から送信された電子メールの送信元電子メールアドレス及び件名を含むその電子メールのヘッダと、その本文とを送受信部１１２を経由して受信して、ファイル１２１ａとしてファイル記憶部１２１に記憶させる。更に、その電子メールに添付ファイルが添付されていれば、その添付ファイルをファイル１２１ａとしてファイル記憶部１２１に記憶させる。
【００４９】
また、電子メール送受信機能は、入力装置１１５の所定のキー操作に基づいて動作を開始し、ファイル１２１ａとして記憶された受信された電子メールの送信元電子メールアドレス、件名、及び本文を表示部１１４に表示させる。更に、その電子メールに添付ファイルが添付されている場合、その添付ファイルを出力させる。
【００５０】
即ち、ファイル１２１ａとして記憶されたその添付ファイルがＪＰＥＧファイルであれば、そのファイルをシステムソフトモジュール１０１（ＪＰＥＧ）に要求して復号させ、更に、得られた復号された画像を表示部１１４に表示させる。また、その添付ファイルがＭＰＥＧファイルであれば、そのファイルをシステムソフトモジュール１０１（ＭＰＥＧ）に要求して復号させ、更に、表示部１１４に表示させ、スピーカ１１７から音声発生させる。
【００５１】
動的ローディングモジュール１０４（コンテンツ）によるコンテンツ再生機能は、入力装置１１５の所定のキー操作によって指定されたファイル記憶部１２１に記憶されたファイル１２１ａであるコンテンツを復号再生する。即ち、指定されたファイル１２１ａがＪＰＥＧファイルであれば、そのファイルをシステムソフトモジュール１０１（ＪＰＥＧ）に要求して復号させ、得られた復号された画像を表示部１１４に表示させる。また、そのファイル１２１ａがＭＰＥＧファイルであれば、そのファイルをシステムソフトモジュール１０１（ＭＰＥＧ）に要求して復号の上、表示部１１４に表示させ、スピーカ１１７から音声発生させる。
【００５２】
動的ローディングモジュール１０４（写真）による写真撮影機能は、入力装置１１５の所定のキー操作に基づいて、カメラ１１６によって入力された静止画をシステムソフトモジュール１０１（ＪＰＥＧ）に要求して符号化させ、得られたＪＰＥＧファイルをファイル１２１ａとしてファイル記憶部１２１に記憶させる。
【００５３】
又は、動的ローディングモジュール１０４（写真）は、カメラ１１６によって入力された動画像と、マイクロフォン１１３ｂによって入力された音声とをシステムソフトモジュール１０１（ＭＰＥＧ）に要求して符号化させ、得られたＭＰＥＧファイルをファイル１２１ａとしてファイル記憶部１２１に記憶させる。
【００５４】
以下、本実施形態に係る移動通信装置における、コールバック関数が呼び出される動作を説明する。ここで、システムソフトモジュール１０１がコールバック関数を呼び出すに際し、そのコールバック関数を含む動的ローディングモジュール１０４の動作が終了し、そのプログラムが主記憶部からアンロードされている場合の動作を中心に説明する。
【００５５】
（コールバックに係る情報）
図４は、コールバック関数を含む動的ローディングモジュール１０４が動作中に、動的ローディングモジュール１０４からシステムソフトモジュール１０１へ、システムソフトモジュール１０１から動的ローディング制御モジュール１０２へ、動的ローディング制御モジュール１０２から動的ローディングモジュール１０４に含まれるコールバック関数へ、それぞれ伝えられるコールバックに係る情報を示す。
【００５６】
即ち、動的ローディングモジュール１０４からシステムソフトモジュール１０１へ伝えられるコールバックに係る情報は、その動的ローディングモジュール１０４のモジュールＩＤ１０３ａと、その動的ローディングモジュール１０４の状態遷移依存情報と、その動的ローディングモジュール１０４に含まれるコールバック関数のアドレスを示すポインターとである。なお、コールバックに係る情報以外に、動的ローディングモジュール１０４からシステムソフトモジュール１０１へは、システムソフトモジュール１０１に依存するパラメータが当然に伝えられる。
【００５７】
ここで、動的ローディングモジュール１０４の状態遷移依存情報は、その動的ローディングモジュール１０４にとって、コールバック関数が呼び出されるか否かは重要度が高いか否かを示す。重要度が高いか否かとは、コールバック関数が呼び出された後に行なわれるその動的ローディングモジュール１０４の動作は必須であるか否かであり、その動作が必須である場合、重要度が高く、状態遷移依存情報は依存するとなる。言い換えると、重要度が高いか否かとは、動的ローディングモジュール１０４の動作は、コールバック関数が呼び出されることに大きく依存するか否かである。また、大きく依存するか否かとは、大きな動作の相違があるか否かである。
【００５８】
ここで、上記動作が必須である一例は、動的ローディングモジュール１０４が終了する前にコールバック関数が呼び出されないことによって、装置の使用者に違和感を与える場合である。装置の使用者に違和感を与えない例として、単なる動作完了を通知するコールバック関数が呼び出された場合がある。また、装置の使用者に違和感を与える例として、コールバック関数の呼び出し後、動的ローディングモジュール１０４がコールバック関数を介して伝えられた画像を表示部１１４へ表示させ、また、音声をスピーカ１１７から発生させる場合がある。
【００５９】
また、上記動作が必須である別の例は、動的ローディングモジュール１０４が終了する前にコールバック関数が呼び出されないことによって、装置のリソースの活用に悪影響を与える場合である。装置のリソースの活用に悪影響を与える例として、コールバック関数の呼び出し後、動的ローディングモジュール１０４が、装置のリソースの解放を行なう場合がある。
【００６０】
システムソフトモジュール１０１から動的ローディング制御モジュール１０２へ伝えられるコールバックに係る情報は、上記の動的ローディングモジュール１０４からシステムソフトモジュール１０１へ伝えられるコールバックに係る情報に加えて、システムソフトモジュール１０１によって与えられるコールバック関数へのパラメータである。
【００６１】
動的ローディング制御モジュール１０２から動的ローディングモジュール１０４に含まれるコールバック関数へ伝えられるコールバックに係る情報は、上記システムソフトモジュール１０１によって与えられるコールバック関数へのパラメータである。
【００６２】
（動的ローディングモジュール１０４のロード）
図５は、動的ローディング制御モジュール１０２が動的ローディングモジュール１０４をロードする動作のフローチャートを示す。動的ローディング制御モジュール１０２は、入力装置１１５の所定の操作によって動的ローディングモジュール１０４をロードする動作を開始し（ステップＳ２０１）、動的ローディングモジュール１０４のいずれか、即ち、動的ローディングモジュール１０４（電子メール）、動的ローディングモジュール１０４（コンテンツ）、動的ローディングモジュール１０４（写真）の３つの中の１つを上記操作に従って選択して、その選択された動的ローディングモジュール１０４が割り当てられたタスクを生成して、リソース割り当てを待つ状態に置く（ステップＳ２０２）。
【００６３】
動的ローディング制御モジュール１０２は、その動的ローディングモジュール１０４を主記憶部にロードし（ステップＳ２０３）、ステップＳ２０２でロードした動的ローディングモジュール１０４に対応する、動的ローディング管理テーブル１０３の動的ロード状態１０３ｂを「ロード」として更新記憶させて（ステップＳ２０４）、動的ローディングモジュール１０４をロードする動作を終了する（ステップＳ２０５）。
【００６４】
ここで、ステップＳ２０４で動的ロード状態１０３ｂを「ロード」として更新記憶させる動的ローディング管理テーブル１０３について説明をする。ステップＳ２０２で動的ローディングモジュール１０４（電子メール）をロードした場合、動的ローディング管理テーブル１０３中の「モジュール００１（電子メール）」であるモジュールＩＤ１０３ａと関連付けられた動的ロード状態１０３ｂを「ロード」として、更新記憶させる。
【００６５】
一方、動的ローディングモジュール１０４（コンテンツ）、をロードした場合、動的ローディング管理テーブル１０３中の「モジュール００２（メディアプレイヤ）」であるモジュールＩＤ１０３ａと関連付けられた動的ロード状態１０３ｂを「ロード」として、更新記憶させる。
【００６６】
更に、動的ローディングモジュール１０４（写真）をロードした場合、動的ローディング管理テーブル１０３中の「モジュール００３（写真撮影）」であるモジュールＩＤ１０３ａと関連付けられた動的ロード状態１０３ｂを「ロード」として、更新記憶させる。
【００６７】
（動的ローディングモジュール１０４のアンロード）
図６は、動的ローディング制御モジュール１０２が動的ローディングモジュール１０４をアンロードする動作のフローチャートを示す。動的ローディング制御モジュール１０２は、ロードされた動的ローディングモジュール１０４が割り当てられたタスクが入力装置１１５の所定の操作によって動作を終了する際、その動的ローディングモジュール１０４が割り当てられたタスクの要求によって、動的ローディングモジュール１０４をアンロードする動作を開始する（ステップＳ３０１）。
【００６８】
そして、動的ローディング制御モジュール１０２は、上記要求をしたタスクを消滅させ（ステップＳ３０２）、そのタスクに割り当てられた動的ローディングモジュール１０４を主記憶部からアンロードし、即ち、そのタスクに割り当てられていた主記憶部リソースを含む全てのリソースを解放する（ステップＳ３０３）。
【００６９】
そして、動的ローディング制御モジュール１０２は、ステップＳ３０３でアンロードした動的ローディングモジュール１０４に対応する、動的ローディング管理テーブル１０３の動的ロード状態１０３ｂを「アンロード」として更新記憶させて（ステップＳ３０４）、動的ローディングモジュール１０４をアンロードする動作を終了する（ステップＳ３０５）。
【００７０】
ここで、ステップＳ３０４で動的ロード状態１０３ｂを「アンロード」として動的ローディング管理テーブル１０３を更新記憶させる動作は、図５を参照して説明した動的ローディング制御モジュール１０２が動的ローディングモジュール１０４をロードする際の動作に準ずる。
【００７１】
即ち、ロードする動作では、ロードした動的ローディングモジュール１０４に関連付けられた動的ロード状態１０３ｂを「ロード」として、更新記憶させるのに対し、アンロードする動作では、アンロードした動的ローディングモジュール１０４に関連付けられた動的ロード状態１０３ｂを「アンロード」として、更新記憶させる。
【００７２】
（動的ローディングモジュール１０４中のコールバック関数の呼び出し）
既に図４を参照して説明した通り、コールバック関数を含む動的ローディングモジュール１０４が、システムソフトモジュール１０１を呼び出し、呼び出されたシステムソフトモジュール１０１が上記コールバック関数を呼び出す目的で、動的ローディング制御モジュール１０２を呼び出す。この呼び出された動的ローディング制御モジュール１０２が上記コールバック関数を呼び出す動作を説明する。
【００７３】
図７は、動的ローディング制御モジュール１０２がコールバック関数を呼び出す動作のフローチャートを示す。動的ローディング制御モジュール１０２は、システムソフトモジュール１０１に呼び出されてコールバック関数を呼び出す動作を開始する（ステップＳ４０１）。
【００７４】
この呼び出される際、パラメータとして、システムソフトモジュール１０１が呼び出すコールバック関数を含む動的ローディングモジュール１０４のモジュールＩＤ１０３ａと、そのコールバック関数に対するその動的ローディングモジュール１０４の状態遷移依存情報と、その動的ローディングモジュール１０４に含まれるコールバック関数のアドレスを示すポインターと、システムソフトモジュール１０１によってそのコールバック関数へ与えられるパラメータとが与えられる。
【００７５】
動的ローディング制御モジュール１０２は、上記コールバック関数を含む動的ローディングモジュール１０４が主記憶部にロードされているか否かを判断する（ステップＳ４０２）。即ち、パラメータとして与えられたモジュールＩＤ１０３ａと関連付けられて記憶された動的ロード状態１０３ｂを動的ローディング管理テーブル１０３から検索する。検索された動的ロード状態１０３ｂが「ロード」である場合ロードされていると判断し、検索された動的ロード状態１０３ｂが「アンロード」である場合、ロードされていないと判断する。
【００７６】
ロードされていると判断された場合、動的ローディング制御モジュール１０２は、パラメータとして与えられたポインターを参照して上記コールバック関数を呼び出して（ステップＳ４０３）、コールバック関数を呼び出す動作を終了する（ステップＳ４０４）。
【００７７】
ここで、コールバック関数が呼び出された結果、システムソフトモジュール１０１によって与えられたそのコールバック関数へのパラメータに従ってコールバック関数は動作し、その動作の結果に従って動的ローディングモジュール１０４は動作する。また、動的ローディング制御モジュール１０２がコールバック関数を呼び出す動作を終了することによって、システムソフトモジュール１０１は、コールバック関数を呼び出す動作に続く動作を行う。
【００７８】
一方、ロードされていないと判断された場合、動的ローディング制御モジュール１０２は、パラメータとして与えられた状態遷移依存情報を調べる（ステップＳ４０５）。調べた結果、依存しない場合、コールバック関数を呼び出す動作を無視し、即ち、コールバック関数を呼び出さず、かつ、その呼び出しに代わる処理を行なわずに動作を終了する（ステップＳ４０４）。一方、依存する場合、エラー処理を行って（ステップＳ４０６）、コールバック関数を呼び出す動作を終了する（ステップＳ４０４）。
【００７９】
ここで、ステップＳ４０６のエラー処理は、例えば、依存することを示す状態遷移依存情報が与えられたが、上記動的ローディングモジュール１０４及び／又は上記コールバック関数が主記憶部にロードされていない旨と、上記システムソフトモジュール１０１を識別する情報と、上記コールバック関数を識別する情報と、そのコールバック関数を含む動的ローディングモジュール１０４を識別する情報とを表示部１１４に表示させる。
【００８０】
また、例えば、依存することを示す状態遷移依存情報が与えられたが、上記動的ローディングモジュール１０４及び／又は上記コールバック関数が主記憶部にロードされていない旨と、上記システムソフトモジュール１０１を識別する情報と、上記コールバック関数を識別する情報と、そのコールバック関数を含む動的ローディングモジュール１０４を識別する情報とをエラー履歴（エラーログ）に追加記憶させる。
【００８１】
ここで、エラー履歴は、ファイル１２１ａとしてファイル記憶部１２１に記憶されるが、これに限るものではない。履歴記憶部（図示せず）に記憶されるとしても良く、また、例えば、送受信部１１２を介してエラー収集装置（図示せず）に送信されても良い。エラー収集装置は、エラー履歴を記憶する。
【００８２】
このように記憶されたエラー履歴を参照することによって、装置のプログラムの開発工程の短縮に効果がある。また、このように、エラー処理を行うことによって、装置のユーザに違和感を与えることを防止する効果が得られる。即ち、装置で動作中のタスクが異常終了し、エラーを示すポップアップウィンドウが表示部１１４に表示されるなど、ユーザに違和感を与える状態へ遷移することを防止する効果が得られる。
【００８３】
ここで、状態遷移依存情報について、具体例を挙げて説明する。システムソフトモジュール１０１（ＪＰＥＧ）がＪＰＥＧファイルを復号し、ヒープメモリに記憶された復号された静止画をコールバック関数を介してパラメータとして返すとした場合、動的ローディングモジュール１０４（電子メール）がＪＰＥＧファイルを表示部１１４に表示させ、その表示の後、上記ヒープメモリを別の目的に使用するには、コールバック関数を介して返された静止画を表示させた後、上記ヒープメモリを解放する動作が必要である。即ち、状態遷移依存情報は、「依存する」となる。
【００８４】
一方、システムソフトモジュール１０１（ＪＰＥＧ）がＪＰＥＧファイルを復号し、ヒープメモリに記憶された復号された静止画を表示部１１４に表示させる、そして、コールバック関数を介して復号及び表示処理の完了を通知し、所定の時間に渡る表示の後、上記ヒープメモリを解放するとした場合、動的ローディングモジュール１０４（電子メール）がＪＰＥＧファイルを表示部１１４に表示させるには、システムソフトモジュール１０１（ＪＰＥＧ）を単に呼び出せば良い。
【００８５】
即ち、動的ローディングモジュール１０４（電子メール）は、コールバック関数を介して返される完了通知を得ることなく動作を終了しても、装置のユーザへ違和感を与えない。また、装置のリソースの活用に悪影響を与えない。そこで、状態遷移依存情報は、「依存しない」となる。
【００８６】
なお、動的ローディングモジュール１０４（電子メール）が入力装置１１５の所定の操作に基づいて動作を終了する、即ち、装置のユーザの意思に従って動作を終了する場合、その終了以前に入力装置１１５の所定の操作によって与えられたＪＰＥＧファイルの表示指示は取り消されたとみなすことが適切な場合、動的ローディングモジュール１０４（電子メール）は、システムソフトモジュール１０１（ＪＰＥＧ）に処理の取り消しを要求するが、これに限るものではない。
【００８７】
例えば、システムソフトモジュール１０１（ＪＰＥＧ）は、コールバック関数を介して復号された静止画を動的ローディングモジュール１０４（電子メール）に伝えるとし、動的ローディングモジュール１０４（電子メール）は、「依存しない」である状態遷移依存情報をシステムソフトモジュール１０１（ＪＰＥＧ）へ伝えれば良い。ここで、システムソフトモジュール１０１（ＪＰＥＧ）は、復号された静止画が記憶された記憶領域の解放を含む管理をする。これによって、装置は、ＪＰＥＧファイルの表示指示の取り消しなしに、この取り消しが行なわれた場合と同じ動作をする。
【００８８】
以上の説明は、システムソフトモジュール１０１（ＪＰＥＧ）に限らず、システムソフトモジュール１０１（ＭＰＥＧ）にあっても同様である。また、動的ローディングモジュール１０４（電子メール）に限らず、動的ローディングモジュール１０４（コンテンツ）、動的ローディングモジュール１０４（写真）にあっても同様である。
【００８９】
以上の説明は、動的ローディング管理テーブル１０３は、動的ローディングモジュール１０４が主記憶部にロードされているか否かを記憶する専用のテーブルであるとしたが、これに限るものではない。例えば、タスクに係る情報を記憶するタスクコントロールブロック（図示せず）に含まれるとしても良い。また、上記専用のテーブルである場合、動的ローディング制御モジュール１０２に含まれるとしても良い。
【００９０】
以上の説明で、コールバック関数を識別する情報は、その関数がロードされた主記憶部の絶対アドレスであるとしたが、これに限るものではない。例えば、その関数が含まれる動的ローディングモジュール１０４の先頭からのアドレス、即ち、主記憶部の相対アドレスであるとしても良い。相対アドレスから絶対アドレスへの変換は、例えば、タスクコントロールブロックに記憶された、その動的ローディングモジュール１０４の先頭がロードされた主記憶部の絶対アドレスを参照することによって容易である。
【００９１】
更には、コールバック関数を識別する情報は、その関数の名称であるとしても良い。名称を識別する情報とする場合、動的ローディングモジュール１０４は、自モジュールに含まれる関数と、その関数の相対アドレス、即ち、動的ローディングモジュール１０４の先頭からのアドレス、とを関連付けて自モジュール内に記憶する。
【００９２】
そして、関数の名称から絶対アドレスへの変換は、その関連付けられた情報を参照することによって容易である。名称を識別する情報とする処理によれば、動的ローディングモジュール１０４に含まれる関数の中でロードされたプログラムが動的に変化する、即ち、ダイナミックリンク方式においても本発明を適用することができる。
【００９３】
以上の説明は、本発明を移動通信装置に適用した形態を例にとって行ったが、これに限るものではない。本発明は、コールバック関数を用いる全ての情報処理装置、例えば、パソコンや、ＰＤＡ（Personal Digital Assistant）に適用することが当然に可能である。本発明は以上の構成に限定されるものではなく、種々の変形が可能である。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施形態に係る移動通信装置の構成を示すブロック図。
【図２】本発明の実施形態に係る動的ローディング管理テーブルの構成の一例を示す図。
【図３】本発明の実施形態に係るシステムソフトモジュールと、動的ローディング制御モジュールと、動的ローディング管理テーブルと、動的ローディングモジュールとのソフトウェア構成の一例を示す図。
【図４】本発明の実施形態に係る動的ローディングモジュールに開始され、コールバック関数へ至る呼び出しの各段階で伝えられるコールバックに係る情報の一例を示す図。
【図５】本発明の実施形態に係る動的ローディング制御モジュールの動作のフローチャート（動的ローディングモジュールをロードする動作）。
【図６】本発明の実施形態に係る動的ローディング制御モジュールの動作のフローチャート（動的ローディングモジュールをアンロードする動作）。
【図７】本発明の実施形態に係る動的ローディング制御モジュールの動作のフローチャート（コールバック関数を呼び出す動作）。
【符号の説明】
【００９５】
１００  制御部
１０１  システムソフトモジュール
１０２  動的ローディング制御モジュール
１０３  動的ローディング管理テーブル
１０３ａ  モジュールＩＤ
１０３ｂ  動的ロード状態
１０４  動的ローディングモジュール
１１４  表示部
１１５  入力装置
【図１】
2010009527.tif 000003
【図２】
2010009527.tif 000004
【図３】
2010009527.tif 000005
【図４】
2010009527.tif 000006
【図５】
2010009527.tif 000007
【図６】
2010009527.tif 000008
【図７】
2010009527.tif 000009