(57)【要約】【課題】  シングルプロセスの実行環境で、１つのプログラムに複数の動作をさせる情報処理装置を提供する。【解決手段】  プログラム起動部は、プログラムが起動要求されると、そのプログラム名に何個目のヒストリであるかを示す番号を付してヒストリを生成し（ステップＳ１０４）、そのヒストリが１個目であるか否かを調べ（ステップＳ１０５）、１個目であれば、そのプログラムに対応するプロセスを生成して動作させ（ステップＳ１０７）、１個目でなければ、上記プロセスが使用中のデータを保存し（ステップＳ１０９）、上記プロセスを動作再開させる（ステップＳ１１０）。【選択図】  図５
2008009559.tif 000002
【特許請求の範囲】
【請求項１】
１つのプログラムを複数回起動して、その起動を通知するプログラム起動手段と、
前記プログラム起動手段によって起動されたプログラムの識別子からなるヒストリを、そのプログラムの何個目の起動であるかを識別可能に記憶するヒストリ記憶手段と、
前記プログラム起動手段によってプログラムの起動が通知されると、前記ヒストリ記憶手段に１つのヒストリを記憶する領域を割り当て、また、１つのプログラムに対応して１つのプロセスを生成して管理するプロセス管理手段とを有し、
前記プログラム起動手段は、前記プログラムの起動をする場合、その起動に対応してデータ記憶領域を割り当てて、前記プロセス管理手段にその起動を通知し、
前記プロセス管理手段は、前記プログラム起動手段によって通知された起動に対応して前記割り当てられたデータ記憶領域を指定して前記プログラムに対応するプロセスを動作させる
ことを特徴とする情報処理装置。
【請求項２】
前記プログラム起動手段は、前記プロセス管理手段によって割り当てられたヒストリを記憶する領域に前記プログラムの起動に関するヒストリを記憶させる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記プログラム起動手段は、前記プロセスに割り当てるデータ記憶領域をｎ組有し（ここで、ｎは、２以上の整数。）、前記プログラムの起動がｉ個目である場合、前記プロセスをｉ組目の前記データ記憶領域を指定して動作させる（ここで、ｉは、１以上かつｎ以下の整数。）
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記プログラム起動手段は、前記プロセスに割り当てるデータ記憶領域を１組有し、前記プログラムの起動がｉ個目である場合、前記データ記憶領域に記憶された情報をデータ保存領域に保存し、前記ｉ個目の起動に対応するプロセスに前記データ記憶領域を指定して動作させる（ここで、ｉは、２以上の整数。）
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記プログラム起動手段によって起動されるプログラムは、送信する電子メールの作成及び受信された電子メールの表示を行うプログラムである
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記プログラム起動手段は、前記起動されたプログラムの終了の際、その終了を前記プロセス管理手段に通知し、
前記プロセス管理手段は、前記プログラム起動手段によってプログラムの終了が通知されると、そのプログラムの最も多数個目の起動であると識別されるヒストリを記憶するために割り当てられた領域を解放する
ことを特徴とする請求項１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に係り、特に、シングルプロセスの実行環境で、１つのプログラムによる複数の動作をさせる制御に関する。
【背景技術】
【０００２】
シングルプロセスの実行環境、例えば、ブリュー（登録商標。ＢＲＥＷ）は、マルチプロセスの実行環境と比較して、負荷が少ない利点がある。また、シングルプロセスの実行環境で、複数のプログラムを擬似的に異なるプロセスで実行させるために、各プログラムを異なるスレッドに割り当てる処理が知られている（例えば、特許文献１参照。）。
【特許文献１】特開２００３−１８６６８３号公報（第２頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した特許文献１に開示されている方法では、１つのプログラムに複数の動作をさせる、言い換えると、１つのプログラムから擬似的に複数のプロセスを生成して動作させることが考えられていない問題点があった。
【０００４】
本発明は上記問題点を解決するためになされたもので、シングルプロセスの実行環境で、１つのプログラムに複数の動作をさせる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の情報処理装置は、１つのプログラムを複数回起動して、その起動を通知するプログラム起動手段と、前記プログラム起動手段によって起動されたプログラムの識別子からなるヒストリを、そのプログラムの何個目の起動であるかを識別可能に記憶するヒストリ記憶手段と、前記プログラム起動手段によってプログラムの起動が通知されると、前記ヒストリ記憶手段に１つのヒストリを記憶する領域を割り当て、また、１つのプログラムに対応して１つのプロセスを生成して管理するプロセス管理手段とを有し、前記プログラム起動手段は、前記プログラムの起動をする場合、その起動に対応してデータ記憶領域を割り当てて、前記プロセス管理手段にその起動を通知し、前記プロセス管理手段は、前記プログラム起動手段によって通知された起動に対応して前記割り当てられたデータ記憶領域を指定して前記プログラムに対応するプロセスを動作させることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、シングルプロセスの実行環境で、１つのプログラムに複数の動作をさせる情報処理装置を提供することができる。
【発明を実施するための最良の形態】
【０００７】
以下に、本発明による情報処理装置の実施の形態を、図面を参照して説明する。
【０００８】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る情報処理装置が適用された移動通信端末装置の構成を示すブロック図である。この移動通信端末装置は、装置全体の制御を行う制御部１１と、基地局（図示せず）との間で電波の送受信を行う通話用のアンテナ１２ａと、通信部１２ｂと、送受信部１３と、受話用のスピーカ１４ａと、送話用のマイクロフォン１４ｂと、通話部１４ｃと、表示部１５と、入力装置１６と、プログラム起動部１７と、電子メール送受信部１８と、プロセス管理部２１と、ヒストリエントリ記憶部２２とからなる。ヒストリエントリ記憶部２２には、ヒストリエントリ２２ａが記憶される。
【０００９】
上記のように構成された、本発明の実施形態に係る情報処理装置の各部の動作を説明する。
【００１０】
通信部１２ｂは、アンテナ１２ａが受信した高周波信号を送受信部１３へ送信し、また、送受信部１３から送信される高周波信号をアンテナ１２ａより送信する。
【００１１】
送受信部１３は、通信部１２ｂからの高周波信号を増幅、周波数変換及び復調し、それによって得られたディジタル音声信号を通話部１４ｃへ、また、制御信号を制御部１１に送る。更には、通話部１４ｃから送信されるディジタル音声信号、及び制御部１１から送信される制御信号を変調、周波数変換及び増幅し、高周波信号を得て、それを通信部１２ｂに送る。
【００１２】
通話部１４ｃは、送受信部１３から送信されるディジタル音声信号をアナログ音声信号に変換し、それを増幅して受話用スピーカ１４ａに送る。また、マイクロフォン１４ｂから送信されるアナログ音声信号を増幅し、それをディジタル音声信号に変換して送受信部１３に送信する。
【００１３】
表示部１５は、文字・数字や画像データを表示する。表示されているデータは、入力装置１６からの入力操作や着信信号に応答してプログラム起動部１７によって起動された各部の動作に従って切換わる。
【００１４】
入力装置１６は、通信相手の電話番号などを指定し、また、トグル式の入力方式によってひらがな文字、アルファベット文字及び記号文字を入力するための数字キーと、カーソル移動キーやスクロールキーを含む複数の機能キーとを含むキーからなる。そして、入力装置１６のキーが入力操作されると、そのキー入力を受け付けて、そのキーの識別子が制御部１１に通知され、プログラム起動部１７を経由してその識別子を受信した処理部によって、表示部１５に文字として表示され、または、プログラムの起動が行われる。
【００１５】
プログラム起動部１７は、プログラムを起動することによって、電子メール送受信部１８を動作させる。また、上記起動をプロセス管理部２１に通知する。上記プログラムを多重に起動することによって、電子メール送受信部１８のプロセスを擬似的に複数存在させ、独立した動作をさせる。ここで、２回起動して擬似的なプロセスを存在させ、その中の１つのプロセスを消滅させた後、起動すると、その起動は３回目であって、２個目の起動、即ち、２つの擬似的なプロセスを存在させるための起動と称する。
【００１６】
また、プログラム起動部１７は、入力装置１６のキーが操作されると、そのキーの識別子を擬似的に複数存在する電子メール送受信部１８のプロセスの中の適切なプロセスに通知する。なお、後述するように、擬似的なプロセスは、ヒストリエントリ２２ａに記憶されるヒストリに対応する。
【００１７】
電子メール送受信部１８は、電子メールを送受信する。即ち、入力装置１６の所定のキーが操作されるとプログラム起動部１７によって起動され、送信する電子メールは、入力装置１６のキー操作を受け付けることにより作成され、作成された電子メールを通信部１２ｂ及び送受信部１３を介して送信させる。
【００１８】
また、電子メール送受信部１８は、送受信部１３によって電子メール着信信号が受信されるとプログラム起動部１７によって起動され、電子メールを受信し、電子メール送受信部１８内に記憶する。そして、入力装置１６の所定のキーが操作された際にプログラム起動部１７によって起動され、入力装置１６のキー操作に従って記憶された電子メールの１つを選択して表示部１５に表示する。
【００１９】
プロセス管理部２１は、プログラム起動部１７によって送信されたプログラム起動通知を受信して、１組のヒストリ領域を割り当てる。ここで、プログラムが起動された順を保持するように、割り当てる。また、１つのプログラムに対して１つのプロセスを生成する。同じプログラムに対する起動通知が重ねて受信された場合、プロセス管理部２１は、ヒストリ領域を割り当てるが、プロセスを生成しない。
【００２０】
以下、本実施形態に係る情報処理装置における、１つのプログラムに複数の動作をさせる動作を説明する。
【００２１】
図２は、ヒストリエントリ記憶部２２に記憶されるヒストリエントリ２２ａの構成の一例を示す。ヒストリエントリ２２ａは、プログラムが起動された履歴であるヒストリが、起動された順に記憶され、下がより古い起動、上がより新しい起動を示す。図２に示す例では、最新のヒストリとして、「電子メール送受信部−１」なる第１のヒストリ２２ｂ１が記憶されており、最新に起動されたプログラムは電子メール送受信部１８に係るプログラムであることを示す。
【００２２】
なお、第１のヒストリ２２ｂ１には、「−１」なる数字が付加されており、電子メール送受信部１８に係るプログラムが起動されたことを示すヒストリは、第１のヒストリ２２ｂ１が唯一であることを示す。
【００２３】
図３は、図２に示すヒストリエントリ２２ａのヒストリの状況の後、通話に係るプログラムが起動されたことを示し、「電子メール送受信部−１」なる第１のヒストリ２２ｂ１に加えて、最新のヒストリとして「通話」なる第２のヒストリ２２ｂ２が記憶されている。なお、通話に係るプログラムは、複数個起動されることはない制御がされるので、第２のヒストリ２２ｂ２として「通話−１」とは記憶されていない。即ち、起動された順を示す情報は記憶されていない。
【００２４】
図４は、図３に示すヒストリエントリ２２ａのヒストリの状況の後、電子メール送受信部１８に係るプログラムが起動されたことを示し、「電子メール送受信部−１」なる第１のヒストリ２２ｂ１と、「通話」なる第２のヒストリ２２ｂ２とに加えて、最新のヒストリとして「電子メール送受信部−２」なる第３のヒストリ２２ｂ３が記憶されている。第３のヒストリ２２ｂ３には、２個目に電子メール送受信部１８に係るプログラムが起動されたヒストリであることを示す「−２」なる数字が付加されて記憶されている。
【００２５】
なお、あるプログラムが起動されたことを示すヒストリは、何個目の起動によるヒストリであるかを識別するため、「−１」、「−２」等の数字が付加されるとしたが、これに限るものではない。「−１」、「−２」等の数字に代えて、「−Ａ」、「−Ｂ」等のアルファベット文字を順次付加されても良い。
【００２６】
また、空のビット列（ビット数が０であるビット列。）を含む、任意のビット列が付加されているとしても良い。更には、付加されたビット列は、そのヒストリが記憶されてから削除される間に更新されても良い。既に述べたように、ヒストリエントリ２２ａには、プログラムが起動された履歴であるヒストリが、起動された順に記憶される。そこで、たとえ、任意のビット列が付加されていても、ヒストリエントリ２２ａには、あるプログラムが起動されたことを示すヒストリは、そのプログラムの何個目の起動によるヒストリであるかが識別可能に記憶される。
【００２７】
図５は、プログラム起動部１７のプログラムを起動する動作のフローチャートを示す。プログラム起動部１７は、入力装置１６の所定のキー操作がされた場合、及び制御部１１が所定の状態にある場合、起動するプログラムを指定して制御部１１によって起動されて動作を開始する（ステップＳ１０１）。
【００２８】
入力装置１６の所定のキー操作がされてプログラムを起動する例として、電子メール送受信部１８に係るプログラムの起動がある。その他に、メモ帳処理部（図示せず）に係るプログラムの起動、電卓処理部（図示せず）に係るプログラムの起動、スケジュール管理部（図示せず）に係るプログラムの起動、及びアドレス帳管理部（図示せず）に係るプログラムの起動などがある。
【００２９】
また、制御部１１の状態によってプログラムを起動する例として、着信があって、制御部１１の通話に係るプログラムの起動がある。その他に、アラーム設定時刻になるなどによる、制御部１１のアラーム機能に係るプログラムの起動などがある。アラーム機能に係るプログラムは、例えば、アラーム音によるアラーム報知を行う。
【００３０】
次に、プログラム起動部１７は、指定されたプログラムの起動は、そのプログラムの何個目の起動かをヒストリエントリ２２ａを参照して調べる（ステップＳ１０２）。例えば、図２に示すヒストリエントリ２２ａ、または図３に示すヒストリエントリ２２ａが記憶されている場合、電子メール送受信部１８に係るプログラムの新たな起動は、そのプログラムの２個目の起動である。
【００３１】
次に、プログラム起動部１７は、プログラムの起動をプロセス管理部２１に通知して（ステップＳ１０３）、ヒストリ領域の割り当てを要求し、割り当てられた領域に指定されたプログラム名にステップＳ１０２で調べられた何個目かを識別する情報、例えば、何個目かを示す数字を付加したヒストリ名を付して、ヒストリをヒストリエントリ２２ａに記憶させる（ステップＳ１０４）。例えば、電子メール送受信部１８に係るプログラムによって生成される２個目のヒストリは、図４に示すように、「電子メール送受信部−２」である。
【００３２】
ここで、既に説明したように、上記何個目かを識別する情報は、任意のビット列でよい。そのため、プログラム起動部１７は、ステップＳ１０２のプログラムの何個目の起動かを調べることなく、ステップＳ１０４のヒストリを記憶させる動作を行っても良い。
【００３３】
また、プログラム起動部１７は、上記何個目かを識別する情報として、ステップＳ１０４で行った要求に応じてプロセス管理部２１によって起動されたプログラムによって指示された情報を用いても良い。この場合、そのプログラムの動作を待って、ヒストリエントリ２２ａにその情報を更新記憶させる。また、後述するように、プログラム起動部１７がそのヒストリに対応して記憶するデータでも良い。
【００３４】
なお、１つのプログラムの起動に係る複数のヒストリがヒストリエントリ２２ａに記憶されている場合、いずれのヒストリを更新記憶させるかの決定が可能である。なぜなら、後述するように、プログラム起動部１７は、最新の起動に係るヒストリに対応させて上記プログラムを動作させるので、最新の起動に係るヒストリを更新記憶させればよい。
【００３５】
このプログラムによって指示された情報を用いる場合、プログラム起動部１７は、起動されたプログラムの要求に応じて、その情報をヒストリエントリ２２ａから読み出して、回答する（図示せず）。または、起動されたプログラムによって、上記情報をヒストリエントリ２２ａから読み出し、また、書き込むとしても良い。
【００３６】
このプログラムによって指示された情報をヒストリエントリ２２ａに記憶させる処理によれば、プログラムは、例えば、そのプログラムによるプロセスの動作を一時停止状態にする際に、動作再開に必要な情報、または、その情報が記憶された記憶領域のアドレスをヒストリエントリ２２ａに記憶させることができる。そして、プロセスの動作再開の際に、ヒストリエントリ２２ａに記憶された上記情報またはアドレスをプログラム起動部１７を介して読み出すことによって、少ない負荷で動作再開が可能である。
【００３７】
次に、プログラム起動部１７は、ステップＳ１０２で調べられた何個目であるかが、１個目であるか否かを調べる（ステップＳ１０５）。１個目である場合、上記プログラムによって用いられるデータ領域を確保して（ステップＳ１０６）、ステップＳ１０１で指定されたプログラムからなるプロセスをプロセス管理部２１に作成させて、そのプロセスを動作させて（ステップＳ１０７）、プログラムを起動する動作を終了する（ステップＳ１０８）。
【００３８】
ステップＳ１０６で確保されるデータ領域は、プログラムで定義された変数に対応する記憶領域などであるが、それに限るものではない。プログラム起動部１７によって用いられるデータ用の領域を含んでいても良い。プログラム起動部１７によって用いられるデータの一例は、起動されたプログラムが起動元のプログラムに通知する値である。
【００３９】
なお、上記データ領域のうち、プログラムで定義された変数に対応する記憶領域など、プログラムに直接依存し、プロセス管理に係らない領域は、プログラム起動部１７に依存せず、プログラムの動作によって直接確保及び解放がされるとしても良い。
【００４０】
一方、ステップＳ１０５で、１個目でない場合、プログラム起動部１７は、ステップＳ１０１で指定されたプログラムに対応するプロセスが使用しているデータをそのプロセスに割り当てられた記憶領域（図示せず）内に保存し（ステップＳ１０９）、新たなデータ領域を上記記憶領域に確保して、上記プログラムからなるプロセスをプロセス管理部２１に要求して動作再開させて（ステップＳ１１０）、プログラムを起動する動作を終了する（ステップＳ１０８）。
【００４１】
なお、ステップＳ１１０で、プロセスを動作再開させる際、新たなデータ領域を確保するため、プロセスの過去の状態は記憶されていない。即ち、プロセスは、１個目の起動によって新たに動作した場合と同じ動作をするが、これに限るものではない。２個目以降の起動の場合、１個目の起動の場合と異なる動作をしても良い。これは、上記新たなデータ領域に所定の情報を書き込むことによって可能である。
【００４２】
なお、ステップＳ１０９で説明したデータを保存する動作は、必ずしもデータを読み出して書き込む処理に限るものではない。図６及び図７は、プロセスに割り当てられた記憶領域の構成を示し、この記憶領域の構成は、ポインタ領域３１ａと、第１個目のヒストリが用いる第１のデータ領域３１ｂ１と、第２個目のヒストリが用いる第２のデータ領域３１ｂ２と、…からなる。
【００４３】
そして、プログラム起動部１７は、第１個目のヒストリに係るプロセスを動作させる場合、ポインタ領域３１ａの第１のポインタによってアドレスが指定される第１のデータ領域３１ｂ１を用いて動作させる。そして、第ｉ個目のヒストリに係るプロセスを動作させる場合、ポインタ領域３１ａの第ｉのポインタによってアドレスが指定される第ｉのデータ領域３１ｂｉを用いて動作させる（１≦ｉ）。
【００４４】
ここで、第ｉのデータ領域３１ｂｉ（１≦ｉ）の大きさは、固定としても良い。その場合、ポインタ領域３１ａのポインタは、全てを事前に記憶させることができる。また、上記大きさは、可変としても良い。その場合、第ｉ＋１個目のヒストリに係るプロセスを動作させる場合、プログラム起動部１７は、第１〜第ｉのデータ領域３１ｂ１〜３１ｂｉ（１≦ｉ）の大きさの総和を算出し、算出された大きさの総和の次のアドレスを第ｉ＋１のポインタとして設定させて、第ｉ＋１個目のヒストリに係るプロセスを動作させる。
【００４５】
なお、あるプログラムが多重に起動されることがない、即ち、そのプログラムに係るヒストリが１つに限られる制御が別途行われている場合、プログラム起動部１７は、そのプログラムに係るヒストリがそのプログラムに係る何個目のヒストリであるかを制御する必要はない。即ち、ステップＳ１０３でプログラムの起動を通知し、ステップＳ１０４でプログラム名からなるヒストリ名を付してヒストリを記憶し、ステップＳ１０６でデータ領域を確保し、ステップＳ１０７でそのプログラムのプロセスの動作をさせる。ステップＳ１０２、Ｓ１０５、Ｓ１０９及びＳ１１０の動作は不要である。
【００４６】
図８は、プロセス管理部２１のプログラムが起動された際の管理動作のフローチャートを示す。プロセス管理部２１は、プログラム起動部１７によるプログラムの起動の通知を受信して動作を開始する（ステップＳ２０１）。そして、ヒストリエントリ２２ａに第ｉのヒストリ２２ｂｉまでが記憶されている場合、第ｉ＋１のヒストリ２２ｂｉ＋１の領域をヒストリエントリ２２ａに追加割り当てる（ステップＳ２０２）。
【００４７】
そして、プロセス管理部２１は、動作していたプロセスを一時停止状態に置く（ステップＳ２０３）。なお、動作していたプロセスで、動作を一時停止させない設定となっているプロセスは、動作を一時停止状態にさせない。
【００４８】
そして、プロセス管理部２１は、プログラム起動部１７によってプログラムを指定したプロセスの生成要求を受信したか否かを調べ（ステップＳ２０４）、受信された場合、そのプログラムに対応するプロセスを生成し（ステップＳ２０５）、受信されない場合、生成せずに、管理動作を終了する（ステップＳ２０６）。
【００４９】
なお、プロセス管理部２１は、プログラム起動部１７によるプログラムの起動の通知を受けて、動作していたプロセスを一時停止状態に置くとしたが、これに限るものではない。例えば、制御部１１が起動するプログラムを指定してプログラム起動部１７を起動する前にプロセス管理部２１に上記一時停止を指示し、プロセス管理部２１は、この指示に応じて動作していたプロセスを一時停止状態に置くとしても良い。
【００５０】
次に、本実施形態に係る情報処理装置における、プログラムの動作終了に係る動作を説明する。プログラム起動部１７は、入力装置１６の所定のキー操作がされた場合、及び制御部１１が所定の状態にある場合、動作を終了するプログラムに係るヒストリを識別する情報を指定して制御部１１によって起動されて、識別されたヒストリを消滅させる。即ち、そのヒストリを指定して、ヒストリエントリ２２ａからそのヒストリを削除する。
【００５１】
この削除に伴い、プロセス管理部２１は、そのヒストリに割り当てられていた領域を解放し、上記プログラムを終了させる。更に、上記ヒストリが最新の起動に係るヒストリである場合、プロセス管理部２１は、最新の起動に係るヒストリに対応するプロセスをプログラム起動部１７に通知する。そして、プログラム起動部１７は、そのプロセスの動作を再開させる。
【００５２】
なお、制御部１１は、動作を終了するプログラムに係るヒストリを識別する情報を指定せず、プログラム起動部１７を制御して、プログラムの動作を終了させても良い。この場合、プログラム起動部１７は、最新の起動に係るヒストリを消滅させる。
【００５３】
即ち、プログラム起動部１７は、最新の起動に係るヒストリに対応するプログラムに対して終了確認の通知を送る。そして、その通知に応じてプログラムから終了する旨の応答を受信すると、プログラム起動部１７は、最新の起動に係るヒストリをヒストリエントリ２２ａから削除する。プロセス管理部２１は、上記削除に伴い、そのヒストリに割り当てられていた領域を解放し、上記プログラムを終了させる。
【００５４】
動作を終了するプログラムに係るヒストリを識別する情報を指定せず、プログラムの動作を終了させる一例として、ヒストリに係る全てのプログラムの終了させることがある。この場合、プログラム起動部１７は、上記最新の起動に係るヒストリを消滅させる処理を繰り返す。そして、最新の起動に係るヒストリに対応するプログラムに対して終了確認の通知を送り、その通知に応じてプログラムから終了する旨の応答を受信しないと、動作を終了する。
【００５５】
また、プログラム起動部１７は、そのヒストリに係るプロセスが用いていたデータ領域を解放する。更に、そのヒストリの消滅によってそのヒストリに係るプログラムで起動されたものが０個になる場合、そのプログラムに対応するプロセスをプロセス管理部２１に消滅させる。そして、ヒストリエントリ２２ａで最新のヒストリとして記憶されているヒストリに係るプロセスの動作を再開させる。
【００５６】
次に、図２ないし図４を参照して、１つのプログラムによって複数のヒストリが生成される例を説明する。図２は、装置が待ち受け状態にある際に、入力装置１６の所定のキー操作によって電子メール送受信部１８が起動され、送信メールの作成がされている場合のヒストリエントリ２２ａを示し、「電子メール送受信部−１」なる第１のヒストリ２２ｂ１が記憶されている。電子メール送受信部１８に係るプログラムからは複数のヒストリが生成されることがあるので、「−１」なる電子メール送受信部１８に係るプログラムから生成されたヒストリを識別する記号が付されている。
【００５７】
図３は、送信メールの作成中に通話着信があり、通話が開始され、上記送信メールの作成が一時停止された場合のヒストリエントリ２２ａを示し、「通話」なる第２のヒストリ２２ｂ２が追加記憶されている。通話に係るプログラムからは複数のヒストリが生成されることがないので、そのプログラムから生成されたヒストリを識別する記号は付されていない。
【００５８】
図４は、通話中に、入力装置１６の所定のキー操作によって電子メール送受信部１８が起動され、受信メールの閲覧中である場合のヒストリエントリ２２ａを示し、「電子メール送受信部−２」なる第３のヒストリ２２ｂ３が追加記憶されている。
【００５９】
以上の説明では、多重に起動される、即ち、複数のヒストリが生成されるプログラムとして、電子メール送受信部１８に係るプログラムがあり、１個に限り起動される、即ち、１つのヒストリが生成されるプログラムとして、通話に係るプログラムがあるとしたが、これに限るものではない。また、１個に限り起動されるプログラムの起動及び消滅に関して、多重に起動されるプログラムの起動及び消滅と同じ処理をしても良い。
【００６０】
以上の説明では、プロセス管理部２１は、ヒストリエントリ２２ａに新たなヒストリの領域を確保し、プログラム起動部１７は、その領域にヒストリを記憶するとしたが、これに限るものではない。プログラム起動部１７がヒストリエントリ２２ａに新たなヒストリの領域を確保しても良い。また、プロセス管理部２１がその領域にヒストリを記憶するとしても良い。
【００６１】
以上の説明では、プログラム起動部１７は、プログラムの起動がそのプログラムの１個目の起動であるか否か、即ち、その起動によってプロセスの生成が必要であるか否かを判断するとしたが、これに限るものではない。プロセス管理部２１が上記判断をしても良い。
【００６２】
以上の説明では、プロセス管理部２１は、プログラムの起動の際、動作していたプロセスを一時停止状態に置くとしたが、これに限るものではない。プログラム起動部１７がそのプロセスを一時停止状態に置くとしても良い。
【００６３】
（第２の実施形態）
本発明の第２の実施形態に係る情報処理装置が適用された移動通信端末装置は、第１の実施形態に係る情報処理装置が適用された移動通信端末装置と比較して、プログラム起動部１７の動作と、プロセス管理部２１の動作とが異なる。そこで、同じ部分には、同じ符号を付して説明を省略する。また、プログラム起動部１７の動作ステップ及びプロセス管理部２１の動作ステップであって、同じ動作のステップには同じ符号を付して説明を省略する。
【００６４】
図９は、第２の実施形態に係るプログラム起動部１７のプログラムを起動する動作のフローチャートを示す。このプログラム起動部１７は、ステップＳ１０１で動作を開始し、起動されたプログラムによって用いられるデータ領域を確保する（ステップＳ１２１）。ここで、このデータ領域の確保の動作は、起動が何個目かによって、第１の実施形態に係るプログラム起動部１７のステップＳ１０６及びステップＳ１０９の動作のいずれかを選択するが、これに限るものではない。
【００６５】
例えば、プログラム起動部１７は、起動が何個目かを知ることなく、データ領域をヒープ領域に確保しても良い。この場合、プログラム起動部１７は、確保されたデータ領域のアドレス及び大きさを、上述したようにヒストリエントリ２２ａに記憶させることができる。このように記憶させることによって、確保されたヒープ領域の解放動作を容易に行うことができる。
【００６６】
そして、プログラム起動部１７は、ステップＳ１２１で確保された領域をパラメータとしてステップＳ１０３のプログラムの起動の通知、ステップＳ１０４のヒストリの記憶の動作を経て、ステップＳ１０８で動作を終了する。
【００６７】
図９は、第２の実施形態に係るプロセス管理部２１のプログラムが起動された際の管理動作のフローチャートを示す。このプロセス管理部２１は、ステップＳ２０１の動作開始、ステップＳ２０２のヒストリエントリ２２ａに記憶領域を割り当て、ステップＳ２０３のプロセスの動作を一時停止状態に置く処理の後、第１の実施形態に係るプログラム起動部１７の動作の一部である、ステップＳ１０２の起動は何個目の起動であるかを調べ、そして、ステップＳ１０５の１個目の起動であるか否かの判断動作を行う。
【００６８】
そして、１個目の起動であれば、プロセス管理部２１は、ステップＳ２０５の上記起動されたプログラムに対応するプロセスの生成をした後、一方、２個目以上の起動であれば、ステップＳ２０５の動作を経ずに、プロセスを動作状態に置かせて（ステップＳ２１１）、ステップＳ２０６で動作を終了する。
【００６９】
ここで、ステップＳ２１１で動作状態に移させるプロセスは、上記起動されたプログラムに対応するプロセスであるが、そのプロセスは、ステップＳ２０５で生成されたプロセスであることもあり、また、ステップＳ２０３で動作を一時停止状態に置かれたプロセスであることもある。いずれの場合も、プロセス管理部２１は、そのプロセスを、ステップＳ２０１の開始の際にプログラム起動部１７によってパラメータとして与えられた記憶領域を指定して動作させる。
【００７０】
（その他の実施形態）
本発明の実施形態に係る情報処理装置は、プログラムを利用して動作するコンピュータであっても良い。また、以上の説明は、本発明の情報処理装置を移動通信端末装置に適用した例に基づいて行ったが、本発明は、シングルプロセスの実行環境で、１つのプログラムに複数の動作をさせるあらゆる情報処理装置に適用することが当然に可能である。また、上記２つの実施形態で説明した要素を適宜組み合わせても良い。本発明は以上の構成に限定されるものではなく、種々の変形が可能である。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施形態に係る移動通信端末装置の構成を示すブロック図。
【図２】本発明の実施形態に係るヒストリデータの構成の一例を示す図（その１）。
【図３】本発明の実施形態に係るヒストリデータの構成の一例を示す図（その２）。
【図４】本発明の実施形態に係るヒストリデータの構成の一例を示す図（その３）。
【図５】本発明の第１の実施形態に係るプログラム起動部のプログラム起動の動作を示すフローチャート。
【図６】本発明の実施形態に係るプロセスに割り当てられた記憶領域の構成の一例を示す図（その１）。
【図７】本発明の実施形態に係るプロセスに割り当てられた記憶領域の構成の一例を示す図（その２）。
【図８】本発明の第１の実施形態に係るプロセス管理部のプログラム起動に関わる動作を示すフローチャート。
【図９】本発明の第２の実施形態に係るプログラム起動部のプログラム起動の動作を示すフローチャート。
【図１０】本発明の第２の実施形態に係るプロセス管理部のプログラム起動に関わる動作を示すフローチャート。
【符号の説明】
【００７２】
１５  表示部
１６  入力装置
１７  プログラム起動部
１８  電子メール送受信部
２１  プロセス管理部
２２  ヒストリエントリ記憶部
２２ａ  ヒストリエントリ
２２ｂ１  第１のヒストリ
２２ｂ２  第２のヒストリ
２２ｂ３  第３のヒストリ
３１ａ  ポインタ領域
３１ｂ１  第１のデータ領域
３１ｂ２  第２のデータ領域
【図１】
2008009559.tif 000003
【図２】
2008009559.tif 000004
【図３】
2008009559.tif 000005
【図４】
2008009559.tif 000006
【図５】
2008009559.tif 000007
【図６】
2008009559.tif 000008
【図７】
2008009559.tif 000009
【図８】
2008009559.tif 000010
【図９】
2008009559.tif 000011
【図１０】
2008009559.tif 000012