(57)【要約】【課題】アプリケーションプログラムの起動を迅速に行なうことが可能なメモリ管理装置を提供する。【解決手段】選択部１は、起動要求を受け付け、その起動要求にて要求されたアプリケーションプログラムと対応付けられた識別情報を特定記憶部２３から選択する。監視部３は、選択部１が選択した識別情報と対応付けられた後続アプリケーションプログラムの識別情報を起動手順記憶部２１から選択する。推測部４は、監視部３が選択した識別情報と対応付けられた必要なメモリ量を需要記憶部２２から選択する。推測部４は、空き領域がその選択した必要なメモリ量より大きいか否かを判定する。推測部４がその空き領域がその必要なメモリ量より小さいと判定すると、管理部５１は、その空き領域がその必要なメモリ量になるまでメモリ３０の領域を確保する。【選択図】図１
2008225669.tif 000002
【特許請求の範囲】
【請求項１】
予め起動手順が定められたアプリケーションプログラムの起動に必要なメモリ量を確保するメモリ管理装置であって、
メモリと、
アプリケーションプログラムと、該アプリケーションプログラムの識別情報とを対応付けて記憶する特定記憶部と、
前記アプリケーションプログラムの識別情報と、該アプリケーションプログラムから起動される別のアプリケーションプログラムの識別情報とを対応付けて記憶する起動手順記憶部と、
前記別のアプリケーションプログラムの識別情報を、該別のアプリケーションプログラムの起動に必要なメモリ量と対応付けて記憶する需要記憶部と、
前記アプリケーションプログラムを起動する旨の起動要求を受け付け、該起動要求にて要求されたアプリケーションプログラムと対応付けられた識別情報を前記特定記憶部から選択する選択部と、
前記選択部が選択した識別情報と対応付けられた前記別のアプリケーションプログラムの識別情報を前記起動手順記憶部から選択する監視部と、
前記監視部が選択した識別情報と対応付けられたメモリ量を前記需要記憶部から選択し、かつ、前記メモリの空き領域を調べ、該空き領域が前記選択したメモリ量より大きいか否かを判定する推測部と、
前記推測部にて前記空き領域が前記メモリ量より小さいと判定されると、前記メモリの空き領域が前記メモリ量になるまで前記メモリの空き領域を確保する管理部と、を含むメモリ管理装置。
【請求項２】
請求項１に記載のメモリ管理装置において、
プロセスを起動するためのシステムコールの生成パターンを、該プロセスの識別情報と対応付けて記憶する動作記憶部と、
前記プロセスの識別情報を、該プロセスから起動される別のプロセスの識別情報と対応付けて記憶するプロセス起動手順記憶部と、
前記別のプロセスの識別情報を、該別のプロセスの動作に必要なメモリ量と対応付けて記憶するプロセス需要記憶部と、
前記システムコールを生成する実行部と、
前記実行部が生成したシステムコールの生成パターンを解析し、該生成パターンと対応付けられたプロセスの識別情報を前記動作記憶部から選択し、その後、該プロセスの識別情報と対応付けられた前記別のプロセスの識別情報を前記プロセス起動手順記憶部から選択するプロセス監視部と、を含み、
前記推測部は、前記プロセス監視部が選択したプロセスの識別情報と対応付けられたメモリ量を前記プロセス需要記憶部から選択し、かつ、前記メモリの空き領域を調べ、該空き領域が前記選択したメモリ量より大きいか否かを判定する、メモリ管理装置。
【請求項３】
請求項１に記載のメモリ管理装置において、
プロセスの識別情報を、該プロセスから起動される別のプロセスの識別情報と対応付けて記憶するプロセス起動手順記憶部と、
前記別のプロセスの識別情報を、該別のプロセスの動作に必要なメモリ量と対応付けて記憶するプロセス需要記憶部と、
機能を実行する旨の実行要求を受け付けると、該機能に応じたプロセスの識別情報を送る実行部と、
前記実行部から受け付けたプロセスの識別情報と対応付けられた別のプロセスの識別情報を、前記プロセス起動手順記憶部から選択するプロセス監視部と、を含み、
前記推測部は、前記プロセス監視部が選択したプロセスの識別情報と対応付けられたメモリ量を前記プロセス需要記憶部から選択し、かつ、前記メモリの空き領域を調べ、該空き領域が前記選択したメモリ量より大きいか否かを判定する、メモリ管理装置。
【請求項４】
請求項１から３までのいずれか１項に記載のメモリ管理装置において、
前記管理部は、前記推測部にて前記空き領域が前記メモリ量より小さいと判定されると、前記メモリの空き領域が前記メモリ量になるまで、前記メモリ内のデータをスワップアウトするスワップ処理部を含む、メモリ管理装置。
【請求項５】
請求項１から３までのいずれか１項に記載のメモリ管理装置において、
前記推測部は、前記メモリにおいてアドレスが連続した空き領域を調べ、該空き領域が前記推測部にて選択されたメモリ量より大きいか否かを判定し、
前記管理部は、前記アドレスが連続した空き領域が前記メモリ量より小さいと判定されると、前記アドレスが連続した空き領域が前記メモリ量になるまで、前記メモリをデフラグする整理部を含む、メモリ管理装置。
【請求項６】
アプリケーションプログラムと該アプリケーションプログラムの識別情報とを対応付けた情報と、前記アプリケーションプログラムの識別情報と該アプリケーションプログラムから起動される別のアプリケーションプログラムの識別情報とを対応付けた情報と、前記別のアプリケーションプログラムの識別情報を該別のアプリケーションプログラムの起動に必要なメモリ量と対応付けた情報とを活用し、予め起動手順が定められたアプリケーションプログラムの起動に必要なメモリ量を確保するためのメモリ管理方法であって、
前記アプリケーションプログラムを起動する旨の起動要求を受け付ける受付ステップと、
前記受け付けられた起動要求にて要求されたアプリケーションプログラムと対応付けられた識別情報を選択する第一選択ステップと、
前記選択された識別情報と対応付けられた前記別のアプリケーションプログラムの識別情報を選択する第二選択ステップと、
前記選択された別のアプリケーションプログラムの識別情報と対応付けられたメモリ量を選択する第三選択ステップと、
メモリの空き領域を調べる調査ステップと、
前記調べられた空き領域が前記選択されたメモリ量より大きいか否かを判定する判定する判定ステップと、
前記空き領域が前記メモリ量より小さいと判定されると、前記メモリの空き領域が前記メモリ量になるまで前記メモリの領域を確保する確保ステップと、を含むメモリ管理方法。
【請求項７】
請求項６に記載のメモリ管理方法において、
プロセスを起動するためのシステムコールの生成パターンを該プロセスの識別情報と対応付けた情報と、前記プロセスの識別情報を該プロセスから起動される別のプロセスの識別情報と対応付けた情報と、前記別のプロセスの識別情報を該別のプロセスの動作に必要なメモリ量と対応付けた情報とを活用し、
前記システムコールを生成する生成ステップと、
前記システムコールの生成パターンを解析する解析ステップと、
前記解析された生成パターンと対応付けられたプロセスの識別情報を選択する第一プロセス選択ステップと、
前記選択されたプロセスの識別情報と対応付けられた別のプロセスの識別情報を選択する第二プロセス選択ステップと、
前記選択された別のプロセスの識別情報と対応付けられたメモリ量を選択する第三プロセス選択ステップと、を含むメモリ管理方法。
【請求項８】
請求項６に記載のメモリ管理方法において、
プロセスの識別情報を該プロセスから起動される別のプロセスの識別情報と対応付けた情報と、前記別のプロセスの識別情報を該別のプロセスの動作に必要なメモリ量と対応付けた情報と、を活用し、
機能を実行する旨の実行要求を受け付ける入力ステップと、
前記機能に応じたプロセスの識別情報を送る送信ステップと、
前記送られたプロセスの識別情報と対応付けられた別のプロセスの識別情報を選択する第四プロセス選択ステップと、
前記選択された別のプロセスの識別情報と対応付けられたメモリ量を選択する第五プロセス選択ステップと、を含むメモリ管理方法。
【請求項９】
請求項６から８までのいずれか１項に記載のメモリ管理方法において、
前記管理ステップは、前記空き領域が前記メモリ量より小さいと判定されると、前記メモリの空き領域が前記メモリ量になるまで、前記メモリ内のデータをスワップアウトするスワップアウトステップを含む、メモリ管理方法。
【請求項１０】
請求項６から８までのいずれか１項に記載のメモリ管理方法において、
前記調査ステップでは、前記メモリにおいてアドレスが連続した空き領域を調べ、
前記管理ステップは、前記アドレスが連続した空き領域が前記メモリ量より小さいと判定されると、前記アドレスが連続した空き領域が前記メモリ量になるまで、前記メモリをデフラグするデフラグステップを含む、メモリ管理方法。
【請求項１１】
請求項６から１０までのいずれか１項に記載のメモリ管理方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの空き領域を管理するメモリ管理装置、メモリ管理方法およびプログラムに関する。
【背景技術】
【０００２】
通常、アプリケーションプログラムの起動では、メモリが使用される。この起動中にメモリの空き領域が不足した場合、オペレーティングシステム（ＯＳと略す）が、メモリの空き領域を確保するための領域確保処理を行なう。領域確保処理は、例えば、スワップ処理である。
【０００３】
アプリケーションプログラムの起動中に領域確保処理が行なわれると、そのアプリケーションプログラムの起動が完了するまでに非常に時間がかかるという問題があった。
【０００４】
従来、この問題を改善するために、メモリ管理装置が用いられている。
【０００５】
メモリ管理装置は、先ず、アプリケーションプログラムの起動が要求されると、その起動が要求されたアプリケーションプログラムのメモリの使用量を予測する。続いて、メモリ管理装置では、ＯＳが、その予測された使用量の空きメモリ領域を確保し、その後、そのアプリケーションプログラムを起動する。
【０００６】
これにより、アプリケーションプログラムの起動の速度を向上させることが可能になる。
【０００７】
このようなメモリ管理装置として、例えば、特許文献１（特開２００１−２５６１１１号公報）に記載のシステム監視装置がある。
【０００８】
このシステム監視装置では、システムリソース監視手段が設けられている。システムリソース監視手段は、アプリケーションプログラムにて使用されるメモリサイズを予測する予測手段と、その予測されたメモリサイズに基づいて、そのアプリケーションプログラムで使用されるメモリの領域を確保する確保手段とを備える。
【０００９】
予測手段は、アプリケーションプログラムが起動されるたびに、そのアプリケーションプログラムで使用されるメモリサイズを取得する。
【００１０】
確保手段は、予測手段が過去に取得したメモリサイズの平均値を算出し、その算出した平均値分だけメモリの領域を確保する。
【特許文献１】特開２００１−２５６１１１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
特許文献１に記載のシステム監視装置は、アプリケーションプログラムの起動の要求の後、その起動が要求されたアプリケーションプログラムによって使用される分のメモリサイズを過去の使用量から算出し、そのメモリサイズ分のメモリの領域を確保している。
【００１２】
このため、アプリケーションの起動が要求されてから、そのアプリケーションの起動が終了するまでの時間が長くなる。
【００１３】
本発明の目的は、アプリケーションプログラムの起動を迅速に行なうことが可能なメモリ管理装置、メモリ管理方法およびプログラムを提供することである。
【課題を解決するための手段】
【００１４】
上記の目的を達成するために、本発明のメモリ管理装置は、予め起動手順が定められたアプリケーションプログラムの起動に必要なメモリ量を確保するメモリ管理装置であって、メモリと、アプリケーションプログラムと該アプリケーションプログラムの識別情報とを対応付けて記憶する特定記憶部と、前記アプリケーションプログラムの識別情報と、該アプリケーションプログラムから起動される別のアプリケーションプログラムの識別情報とを対応付けて記憶する起動手順記憶部と、前記別のアプリケーションプログラムの識別情報を、該別のアプリケーションプログラムの起動に必要なメモリ量と対応付けて記憶する需要記憶部と、前記アプリケーションプログラムを起動する旨の起動要求を受け付け、該起動要求にて要求されたアプリケーションプログラムと対応付けられた識別情報を前記特定記憶部から選択する選択部と、前記選択部が選択した識別情報と対応付けられた前記別のアプリケーションプログラムの識別情報を前記起動手順記憶部から選択する監視部と、前記監視部が選択した識別情報と対応付けられたメモリ量を前記需要記憶部から選択し、かつ、前記メモリの空き領域を調べ、該空き領域が前記選択したメモリ量より大きいか否かを判定する推測部と、前記推測部にて前記空き領域が前記メモリ量より小さいと判定されると、前記メモリの空き領域が前記メモリ量になるまで前記メモリの空き領域を確保する管理部と、を含む。
【００１５】
また、本発明のメモリ管理方法は、アプリケーションプログラムと該アプリケーションプログラムの識別情報とを対応付けた情報と、前記アプリケーションプログラムの識別情報と該アプリケーションプログラムから起動される別のアプリケーションプログラムの識別情報とを対応付けた情報と、前記別のアプリケーションプログラムの識別情報を該別のアプリケーションプログラムの起動に必要なメモリ量と対応付けた情報とを活用し、予め起動手順が定められたアプリケーションプログラムの起動に必要なメモリ量を確保するためのメモリ管理方法であって、前記アプリケーションプログラムを起動する旨の起動要求を受け付ける受付ステップと、前記受け付けられた起動要求にて要求されたアプリケーションプログラムと対応付けられた識別情報を選択する第一選択ステップと、前記選択された識別情報と対応付けられた前記別のアプリケーションプログラムの識別情報を選択する第二選択ステップと、前記選択された別のアプリケーションプログラムの識別情報と対応付けられたメモリ量を選択する第三選択ステップと、メモリの空き領域を調べる調査ステップと、前記調べられた空き領域が前記選択されたメモリ量より大きいか否かを判定する判定する判定ステップと、前記空き領域が前記メモリ量より小さいと判定されると、前記メモリの空き領域が前記メモリ量になるまで前記メモリの領域を確保する確保ステップと、を含む。
【００１６】
上記の発明によれば、メモリの空き領域が、アプリケーションプログラムから起動される別のアプリケーションプログラムの起動に必要なメモリ量になるまで確保される。
【００１７】
このため、別のアプリケーションプログラムの起動が要求される前に、その別のアプリケーションプログラムの起動に必要なメモリ量を確保することが可能になる。したがって、アプリケーションプログラムの起動を迅速に行なうことが可能になる。
【００１８】
また、本発明のメモリ管理装置は、プロセスを起動するためのシステムコールの生成パターンを、該プロセスの識別情報と対応付けて記憶する動作記憶部と、前記プロセスの識別情報を、該プロセスから起動される別のプロセスの識別情報と対応付けて記憶するプロセス起動手順記憶部と、前記別のプロセスの識別情報を、該別のプロセスの動作に必要なメモリ量と対応付けて記憶するプロセス需要記憶部と、前記システムコールを生成する実行部と、前記実行部が生成したシステムコールの生成パターンを解析し、該生成パターンと対応付けられたプロセスの識別情報を前記動作記憶部から選択し、その後、該プロセスの識別情報と対応付けられた前記別のプロセスの識別情報を前記プロセス起動手順記憶部から選択するプロセス監視部と、を含み、前記推測部は、前記プロセス監視部が選択したプロセスの識別情報と対応付けられたメモリ量を前記プロセス需要記憶部から選択し、かつ、前記メモリの空き領域を調べ、該空き領域が前記選択したメモリ量より大きいか否かを判定することが望ましい。
【００１９】
また、本発明のメモリ管理方法は、プロセスを起動するためのシステムコールの生成パターンを該プロセスの識別情報と対応付けた情報と、前記プロセスの識別情報を該プロセスから起動される別のプロセスの識別情報と対応付けた情報と、前記別のプロセスの識別情報を該別のプロセスの動作に必要なメモリ量と対応付けた情報とを活用し、前記システムコールを生成する生成ステップと、前記システムコールの生成パターンを解析する解析ステップと、前記解析された生成パターンと対応付けられたプロセスの識別情報を選択する第一プロセス選択ステップと、前記選択されたプロセスの識別情報と対応付けられた別のプロセスの識別情報を選択する第二プロセス選択ステップと、前記選択された別のプロセスの識別情報と対応付けられたメモリ量を選択する第三プロセス選択ステップと、を含むことが望ましい。
【００２０】
上記の発明によれば、メモリの空き領域が、プロセスから起動される別のプロセスの動作に必要なメモリ量になるまで確保される。
【００２１】
このため、別のプロセスが生成される前に、その別のプロセスの動作に必要なメモリ量を確保することが可能になる。よって、アプリケーションプログラムのプロセスの起動のときに、そのアプリケーションプログラムのプロセスの動作に必要な空きメモリ領域が予め確保されるので、容易にメモリの空き領域が確保され、その別のプロセスの生成を迅速に行うことが可能となる。したがって、アプリケーションプログラムの起動を迅速に行なうことが可能になる。
【００２２】
また、本発明のメモリ管理装置は、プロセスの識別情報を、該プロセスから起動される別のプロセスの識別情報と対応付けて記憶するプロセス起動手順記憶部と、前記別のプロセスの識別情報を、該別のプロセスの動作に必要なメモリ量と対応付けて記憶するプロセス需要記憶部と、機能を実行する旨の実行要求を受け付けると、該機能に応じたプロセスの識別情報を送る実行部と、前記実行部から受け付けたプロセスの識別情報と対応付けられた別のプロセスの識別情報を、前記プロセス起動手順記憶部から選択するプロセス監視部と、を含み、前記推測部は、前記プロセス監視部が選択したプロセスの識別情報と対応付けられたメモリ量を前記プロセス需要記憶部から選択し、かつ、前記メモリの空き領域を調べ、該空き領域が前記選択したメモリ量より大きいか否かを判定することが望ましい。
【００２３】
また、本発明のメモリ管理方法は、プロセスの識別情報を該プロセスから起動される別のプロセスの識別情報と対応付けた情報と、前記別のプロセスの識別情報を該別のプロセスの動作に必要なメモリ量と対応付けた情報と、を活用し、機能を実行する旨の実行要求を受け付ける入力ステップと、前記機能に応じたプロセスの識別情報を送る送信ステップと、前記送られたプロセスの識別情報と対応付けられた別のプロセスの識別情報を選択する第四プロセス選択ステップと、前記選択された別のプロセスの識別情報と対応付けられたメモリ量を選択する第五プロセス選択ステップと、を含むことが望ましい。
【００２４】
上記の発明によれば、実行を要求された機能に応じたプロセスの識別情報が送られる。また、そのプロセスの識別情報と対応付けられた別のプロセスの識別情報が選択される。
【００２５】
このため、システムコールの生成パターンが解析されなくても、アプリケーションプログラムの起動のときに確保するメモリの領域を軽減することが可能になる。したがって、アプリケーションプログラムの起動をさらに迅速に行なうことが可能になる。
【００２６】
また、本発明のメモリ管理装置では、前記管理部は、前記推測部にて前記空き領域が前記メモリ量より小さいと判定されると、前記メモリの空き領域が前記メモリ量になるまで、前記メモリ内のデータをスワップアウトするスワップ処理部を含むことが望ましい。
【００２７】
また、本発明のメモリ管理方法では、前記管理ステップは、前記空き領域が前記メモリ量より小さいと判定されると、前記メモリの空き領域が前記メモリ量になるまで、前記メモリ内のデータをスワップアウトするスワップアウトステップを含むことが望ましい。
【００２８】
上記の発明によれば、メモリの空き領域が必要なメモリ量になるまで、メモリ内のデータが、スワップアウトされる。このため、容易にメモリの空き領域が確保され、アプリケーションプログラムの起動を迅速に行なうことが可能になる。
【００２９】
また、本発明のメモリ管理装置では、前記推測部は、前記メモリにおいてアドレスが連続した空き領域を調べ、該空き領域が前記推測部にて選択されたメモリ量より大きいか否かを判定し、前記管理部は、前記アドレスが連続した空き領域が前記メモリ量より小さいと判定されると、前記アドレスが連続した空き領域が前記メモリ量になるまで、前記メモリをデフラグする整理部を含むことが望ましい。
【００３０】
また、本発明のメモリ管理方法では、前記調査ステップでは、前記メモリにおいてアドレスが連続した空き領域を調べ、前記管理ステップは、前記アドレスが連続した空き領域が前記メモリ量より小さいと判定されると、前記アドレスが連続した空き領域が前記メモリ量になるまで、前記メモリをデフラグするデフラグステップを含むことが望ましい。
【００３１】
上記の発明によれば、メモリにおいてアドレスが連続した空き領域が必要なメモリ量になるまでデフラグされる。このため、アドレスが連続したメモリの空き領域が必要な場合に、スワップデバイスがなくても、そのアドレスが連続したメモリの空き領域が確保されるので、アプリケーションプログラムの起動を迅速に行なうことが可能になる。
【００３２】
また、本発明のプログラムは、前記メモリ管理方法をコンピュータに実行させる。
【発明の効果】
【００３３】
本発明によれば、アプリケーションプログラムの起動を迅速に行なうことが可能になる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施形態について図面を参照して説明する。
【００３５】
図１は、本発明の第一の実施形態のメモリ管理装置の構成を示したブロック図である。メモリ管理装置は、アプリケーションプログラムを起動する機能を有し、アプリケーションプログラムの起動手順は、予め定められている。なお、メモリ管理装置は、コンピュータシステムに組み込まれる。
【００３６】
図１において、メモリ管理装置は、情報処理部１０と、記憶部２０と、メモリ３０とを含む。
【００３７】
情報処理部１０は、アプリケーション選択部１と、アプリケーション制御部２と、アプリケーション監視部３と、メモリ推測部４と、メモリ管理部５１とを含む。
【００３８】
記憶部２０は、アプリケーション起動手順記憶部２１と、アプリケーションメモリ需要記憶部２２と、アプリケーション特定記憶部２３とを含む。
【００３９】
アプリケーション起動手順記憶部（起動手順記憶部と略す）２１は、あるアプリケーションプログラムから別のアプリケーションプログラムを起動する際のアプリケーションプログラムを対応付ける起動手順を記憶する。このとき、あるアプリケーションプログラムから別のアプリケーションプログラムへの対応付けが複数あってもよい。なお、これらの対応付けは、各アプリケーションプログラムの識別情報を用いて設定される。以下、あるアプリケーションプログラムから起動される別のアプリケーションプログラムを後続アプリケーションプログラムと称する。
【００４０】
起動手順は、アプリケーションプログラムの階層構造を示すツリーで表すことができる。図２は、アプリケーションプログラムの起動手順の一例を示した説明図である。
【００４１】
図２では、ノード２０１から２０８までは、それぞれアプリケーションプログラムを示している。ノード２０２、２０６、２０７および２０８以外が示すアプリケーションプログラムは、次に後続アプリケーションプログラムを起動させるメニューとしても動作する。ノード２０１は、アプリケーション選択部１から最初に起動されるアプリケーションプログラムである。
【００４２】
アプリケーションメモリ需要記憶部（需要記憶部と略す）２２は、アプリケーションプログラムごとに（アプリケーションプログラムの識別情報ごとに）、アプリケーションプログラムの起動に必要なメモリ量を対応付ける需要情報を記憶する。
【００４３】
必要なメモリ量は、過去に起動されたアプリケーションプログラムが起動に使用したメモリ量から求められてもよいし、アプリケーションプログラムの設計者または利用者にて予め設定されてもよい。
【００４４】
アプリケーション特定記憶部（特定記憶部と略す）２３は、コンピュータシステムにインストールされたアプリケーションプログラムと、そのアプリケーションプログラムの識別情報を対応付ける特定情報を記憶する。
【００４５】
アプリケーション選択部（選択部と略す）１は、アプリケーションプログラムを起動する旨の起動要求を受け付ける。選択部１は、その起動要求にて要求されたアプリケーションプログラムと対応付けられた識別情報を特定記憶部２３から選択し、そのアプリケーションプログラムの起動をアプリケーション制御部（制御部と略す）２に対して要求する。
【００４６】
ここで、選択部１は、起動要求を、コンピュータシステムの入力デバイスから受け付けてもよいし、コンピュータシステムにインストールされた他のアプリケーションプログラムまたはＯＳに従って動作するＣＰＵから受け付けてもよい。なお、ＯＳは、コンピュータシステムにインストールされたソフトウェアである。
【００４７】
制御部２は、選択部１が要求したアプリケーションプログラムを構成するプロセスの起動および実行をＯＳに従って動作するＣＰＵに対して要求し、同時に管理部５１に対して空きメモリの確保を要求する。
【００４８】
アプリケーション監視部（監視部と略す）３は、選択部１が選択したアプリケーションプログラムの識別情報に対応付けられた後続アプリケーションプログラムの識別情報を起動手順記憶部２１から選択する。なお、選択部１が選択したアプリケーションプログラムの識別情報に、複数の後続アプリケーションプログラムの識別情報が対応付けられている場合、監視部３は、その複数の後続アプリケーションプログラムの識別情報を選択する。
【００４９】
メモリ推測部（推測部と略す）４は、監視部３が選択した後続アプリケーションプログラムの識別情報と対応付けられた必要なメモリ量を選択する。なお、監視部３が複数の後続アプリケーションの識別情報を選択した場合、推測部４は、その複数の後続アプリケーションプログラムの識別情報のそれぞれと対応付けられた複数の必要なメモリ量の中から、最も大きいメモリ量を需要記憶部２２から選択する。
【００５０】
また、推測部４は、現在のメモリ３０の空き領域を調べ、その空き領域がその必要なメモリ量より大きいか否かを判定する。
【００５１】
管理部５１は、メモリ３０の空き領域の確保および解放など、メモリ３０を管理する。
【００５２】
管理部５１は、推測部４にて空き領域が必要なメモリ量より小さいと判定された場合、その空き領域が必要なメモリ量になるまでメモリ３０の空き領域を確保する。
【００５３】
管理部５１では、スワップ処理部５１１は、空き領域がその必要なメモリ量になるまで、メモリ３０内のデータをスワップデバイス（不図示）にスワップアウトする。このとき、管理部５１は、スワップ処理部５１１がスワップアウトする前に、メモリ３０内の不要である可能性が高い不要候補メモリ領域の解放を試みてもよい。この場合、不要候補メモリ領域の解放で、必要なメモリ量が確保されなかった場合に、スワップアウトが実行される。
【００５４】
スワップ処理部５１１は、メモリ３０内の不要である可能性が高い不要候補メモリ領域内のデータをスワップアウトする。スワップ処理部５１１による不要候補メモリ領域の選択方法は、例えば、一定期間内でアクセス回数が少ないメモリ領域から順に、そのメモリ領域を不要候補メモリ領域として選択する方法などである。なお、不要候補メモリ領域の選択方法は、この方法に限らず適宜変更可能である。また、この選択方法は、当業者にとって自明なため、詳細な説明は省略する。
【００５５】
次に動作を説明する。
【００５６】
図３は、メモリ管理装置の動作を説明するためのフローチャートである。
【００５７】
ステップＡ１では、選択部１は、起動要求を受け付け、その起動要求にて要求されたアプリケーションプログラムと対応付けられた識別情報を特定記憶部２３から選択する。選択部１は、その識別情報を制御部２および監視部３に送る。
【００５８】
制御部２は、その識別情報を受け付けると、その識別情報にて特定されるアプリケーションプログラムを構成するプロセスの起動および実行を行なう旨のプロセス実行要求をＯＳに従って動作するＣＰＵに送る。
【００５９】
監視部３は、その識別情報を受け付けると、ステップＡ２を実行する。
【００６０】
ステップＡ２では、監視部３は、起動が要求されたアプリケーションプログラムの識別情報と対応付けられた後続アプリケーションプログラムの識別情報を起動手順記憶部２１から選択し、その後続アプリケーションプログラムの識別情報を推測部４に送る。なお、監視部３は、そのアプリケーションプログラムの識別情報に、複数の後続アプリケーションプログラムの識別情報が対応付けられている場合、その複数の後続アプリケーションプログラムの識別情報を起動手順記憶部２１から選択し、その選択した複数の後続アプリケーションプログラムの識別情報を推測部４に送る。
【００６１】
推測部４は、その後続アプリケーションプログラムの識別情報を受け付けると、ステップＡ３を実行する。
【００６２】
ステップＡ３では、推測部４は、その後続アプリケーションプログラムの識別情報と対応付けられた必要なメモリ量を需要記憶部２２から選択する。なお、推測部４は、監視部３から複数の後続アプリケーションの識別情報を受け付けた場合、その複数の後続アプリケーションプログラムの識別情報のそれぞれと対応付けられた複数の必要なメモリ量の中から、最も大きいメモリ量を需要記憶部２２から選択する。推測部４は、必要なメモリ量を選択すると、ステップＡ４を実行する。
【００６３】
ステップＡ４では、推測部４は、メモリ３０の空き領域を調べ、その空き領域がその必要なメモリ量より大きいか否かを判定する。推測部４は、その空き領域がその必要なメモリ領域より小さいと、ステップＡ５を実行し、その空き領域がその必要なメモリ量より大きいと、動作を終了する。
【００６４】
ステップＡ５では、推測部４は、空き領域を確保する旨の確保要求を生成し、その確保要求を管理部５１に送る。なお、確保要求は、空き領域および必要なメモリ量を含む。
【００６５】
管理部５１は、確保要求を受け付けると、スワップ処理部５１１にスワップアウトの要求を送る。なお、スワップアウトの要求は、空き領域および必要なメモリ量を含む。
【００６６】
このとき、管理部５１は、スワップアウトの要求を送る前に、メモリ３０内の不要候補メモリ領域の解放を試みてもよい。この場合、不要候補メモリ領域の解放で、必要なメモリ量が確保されなかった場合に、スワップアウトの要求が送られる。
【００６７】
スワップ処理部５１１は、そのスワップアウトの要求を受け付けると、例えば、その必要なメモリ量と空き領域との差を確保量として求め、その確保量だけの不要候補メモリ領域を選択することで、その選択した不要候補メモリ領域内のデータをスワップデバイスにスワップアウトする。
【００６８】
また、スワップ処理部５１１は、不要候補メモリ領域の不要を示す度合いの高い順に、例えば、アクセス回数が少ない順に、スワップアウトし、その結果、必要なメモリ量が確保されていれば、スワップアウトを終了するなどしてもよい。なお、スワップアウトの方法は、これらの方法に限らず適宜変更可能である。
【００６９】
スワップ処理部５１１は、不要候補メモリ領域内のデータをスワップアウトすると、スワップアウトが完了した旨を推測部４に送る。推測部４は、その旨を受け付けると、ステップＡ４を実行する。これは、実際に空き領域が必要量より大きくなったか否かを確認するためである。
【００７０】
次に効果を説明する。
【００７１】
本実施形態によれば、起動手順記憶部２１は、あるアプリケーションプログラムの識別情報を、そのアプリケーションプログラムから起動される後続アプリケーションプログラムの識別情報と対応付けて記憶する。需要記憶部２２は、アプリケーションプログラムの識別情報を、そのアプリケーションプログラムの起動に必要なメモリ量と対応付けて記憶する。特定記憶部２３は、アプリケーションプログラムを、そのアプリケーションプログラムの識別情報と対応付けて記憶する。
【００７２】
選択部１は、起動要求を受け付け、その起動要求にて要求されたアプリケーションプログラムと対応付けられた識別情報を特定記憶部２３から選択する。監視部３は、選択部１が選択した識別情報と対応付けられた後続アプリケーションプログラムの識別情報を起動手順記憶部２１から選択する。推測部４は、監視部３が選択した識別情報と対応付けられた必要なメモリ量を需要記憶部２２から選択する。推測部４は、空き領域がその選択した必要なメモリ量より大きいか否かを判定する。推測部４がその空き領域がその必要なメモリ量より小さいと判定すると、管理部５１は、その空き領域がその必要なメモリ量になるまでメモリ３０の領域を確保する。
【００７３】
このため、後続アプリケーションプログラムの起動が要求される前に、その後続アプリケーションプログラムの起動に必要なメモリ量を確保することが可能になる。したがって、アプリケーションプログラムの起動を迅速に行なうことが可能になる。
【００７４】
また、本実施形態では、管理部５１は、その空き領域がその必要なメモリ量になるまで、メモリ３０内のデータをスワップアウトすることで、メモリ３０の領域を確保する。
【００７５】
このため、容易にメモリの空き領域が確保され、アプリケーションプログラムの起動を迅速に行なうことが可能になる。
【００７６】
次に、第二の実施形態のメモリ管理装置について説明する。
【００７７】
図４は、第二の実施形態のメモリ管理装置の構成を示したブロック図である。以下では、図１と異なる構成および動作について主に説明する。なお、図４において、図１と同じものには、同じ符号が付してある。
【００７８】
図４において、管理部５１は、スワップ処理部５１１の代わりにメモリ整理回収部５１２を含む。メモリ管理装置の他の構成は、図１で示した構成と同じである。
【００７９】
一般的に、メモリについて領域の確保および解放が繰り返されると、メモリ３０内のデータが断片化し、メモリ３０の空き領域も断片化する。小さな空き領域の断片が増加すると、アプリケーションプログラムの起動に必要なメモリ量の、メモリアドレスが連続した空き領域を確保することができない場合がある。この場合、アプリケーションプログラムの起動に時間がかかる可能性がある。
【００８０】
推測部４は、メモリ３０においてメモリアドレスが連続した空き領域を調べ、その空き領域が需要記憶部２２から選択した必要なメモリ量より大きいか否かを判定する。
【００８１】
管理部５１は、推測部４にてメモリアドレスが連続した空き領域が必要なメモリ量より小さいと判定されると、メモリアドレスが連続した空き領域がその必要なメモリ量になるまで、メモリ３０内の断片化したデータが連続するように再配置し、メモリ３０の領域を確保する。
【００８２】
具体的には、管理部５１のメモリ整理回収部（整理部と略す）５１２は、そのメモリアドレスが連続した空き領域がその必要なメモリ量になるまで、メモリ３０をデフラグする。これにより、アプリケーションプログラムの起動に必要なメモリ量の、メモリアドレスが連続した領域を確保することができる。
【００８３】
図５は、整理部５１２がデフラグする前とデフラグした後のメモリ領域の一例を示した模式図である。図５において、「空」は、空き領域を示し、「使用中」は、使用領域を示す。図５において、デフラグされる前（処理前）では断面化されていた空き領域が、デフラグされた後（処理後）では連続化されている。
【００８４】
例えば、「４ＭＢ」の連続した空き領域が必要な場合、処理前では、「４ＭＢ」の連続した空き領域がないとき、整理部５１２は、メモリアドレスが連続した空き領域が「４ＭＢ」になるまでメモリ３０をデフラグする。
【００８５】
次に動作を説明する。
【００８６】
図６は、第二の実施形態のメモリ管理装置の動作を説明するためのフローチャートである。図６において、図３で説明した処理と同じ処理には、同じ符号が付してある。
【００８７】
ステップＡ３で推測部４は、必要なメモリ量を選択すると、ステップＡ６を実行する。
【００８８】
ステップＡ６では、推測部４は、メモリアドレスが連続したメモリ３０の空き領域を調べ、その空き領域がその必要なメモリ量より大きいか否かを判定する。推測部４は、その空き領域がその必要なメモリ量より小さいと、ステップＡ７を実行し、その空き領域がその必要なメモリ量より大きいと、動作を終了する。
【００８９】
ステップＡ７では、推測部４は、確保要求を生成し、その確保要求を管理部５１に送る。
【００９０】
管理部５１は、その確保要求を受け付けると、デフラグの要求を整理部５１２に送る。なお、デフラグの要求は、空き領域および必要なメモリ量を含む。
【００９１】
このとき、管理部５１が、デフラグの要求を送る前に、メモリ３０内の不要候補メモリ領域の解放を試みてもよい。この場合、不要候補メモリ領域の解放で、必要なメモリ量が確保されなかった場合に、デフラグの要求を送る。
【００９２】
整理部５１２は、そのデフラグの要求を受け付けると、メモリアドレスが連続したメモリ３０の空き領域が必要なメモリ量になるまで、メモリ３０をデフラグする。整理部５１２は、メモリ３０をデフラグすると、デフラグが完了した旨を推測部４に通知する。推測部４は、その旨を受け付けると、ステップＡ６を実行する。
【００９３】
次に効果を説明する。
【００９４】
本実施形態によれば、推測部４は、メモリ３０においてアドレスが連続した空き領域を調べ、その空き領域が必要なメモリ量より大きいか否かを判定する。管理部５１は、その空き領域がその必要なメモリ量より小さいと、メモリアドレスが連続したメモリの空き領域が必要なメモリ量になるまで、メモリ３０をデフラグする。
【００９５】
この場合、アドレスが連続した空き領域が必要なメモリ量になるまで、メモリ３０がデフラグされる。
【００９６】
このため、アドレスが連続した空き領域が必要な場合に、スワップデバイスがなくても、そのアドレスが連続したメモリの空き領域が確保されるので、アプリケーションプログラムの起動を迅速に行なうことが可能になる。
【００９７】
次に、第三の実施形態のメモリ管理装置について説明する。
【００９８】
図７は、第三の実施形態のメモリ管理装置の構成を示したブロック図である。以下、主に図１と異なる構成について説明する。なお、図７において、図１と同じものには同じ符号が付してある。
【００９９】
図７において、情報処理部１０は、図１で示した構成に加えて、アプリケーションプログラム実行部６と、プロセス監視部７とを含む。記憶部２０は、図１で示した構成に加えて、プロセス起動手順記憶部２４と、プロセス動作パターン記憶部２５と、プロセスメモリ需要記憶部２６とを含む。
【０１００】
プロセス起動手順記憶部２４は、プロセスの起動手順を記憶する。
【０１０１】
プロセスの起動手順は、あるプロセスから別のプロセスを起動する際のプロセスを対応付ける情報である。このとき、あるプロセスから別のプロセスへの対応付けが複数あってもよい。なお、これらの対応付けは、各プロセスの識別情報を用いて設定される。以下、あるプロセスから起動される別のプロセスを後続プロセスと称する。
【０１０２】
プロセス動作パターン記憶部（動作記憶部と略す）２５は、システムコールの生成パターンとプロセスとを対応付けるパターン情報を記憶する。パターン情報は、具体的には、アプリケーションプログラムのプロセスを起動するためのシステムコールの生成パターンと、そのプロセスの識別情報と、をアプリケーションプログラムの識別情報ごとに対応付ける。生成パターンは、例えば、システムコールが生成される順番を示す。
【０１０３】
プロセスメモリ需要記憶部（プロセス需要記憶部と略す）２６は、プロセスごとに（プロセスの識別情報ごとに）、プロセスの動作に必要なメモリ量を対応付ける需要情報として記憶されている。
【０１０４】
このプロセスの動作に必要なメモリ量は、過去に起動されたプロセスの動作に使用されたメモリ量から求められてもよいし、アプリケーションプログラムの設計者または利用者にて予め設定されてもよい。
【０１０５】
アプリケーションプログラム実行部（実行部と略す）６は、コンピュータシステムにインストールされたアプリケーションプログラムが実行されることで実現される。
【０１０６】
実行部６は、ある機能を実行する旨の実行要求を受け付けると、その実行要求にて要求された機能に応じたシステムコールを生成する。ここで、実行部６は、実行要求を、コンピュータシステムの入力デバイスから受け付けてもよいし、コンピュータシステムにインストールされた他のアプリケーションプログラムまたはＯＳに従って動作するＣＰＵから受け付けてもよい。
【０１０７】
プロセス監視部７は、実行部６が生成したシステムコールの生成パターンを解析する。例えば、プロセス監視部７は、実行部６が生成したシステムコールの順序を解析する。
【０１０８】
プロセス監視部７は、選択部１が選択したアプリケーションプログラムの識別情報と対応付けられ、かつ、その解析したシステムコールの生成パターンと対応付けられた、プロセスの識別情報を動作記憶部２５から選択する。
【０１０９】
プロセス監視部７は、プロセスの識別情報を選択すると、そのプロセスの識別情報と対応付けられた後続プロセスの識別情報を、プロセス起動手順記憶部２４から選択する。なお、プロセス監視部７は、動作記憶部２５から選択したプロセスの識別情報に、複数の後続プロセスの識別情報が対応付けられている場合、その複数の後続プロセスの識別情報を選択する。
【０１１０】
推測部４は、プロセス監視部７が選択した後続プロセスの識別情報と対応付けられた必要なメモリ量をプロセス需要記憶部２６から選択する。なお、プロセス監視部７が複数の後続プロセスの識別情報を選択した場合、推測部４は、その複数の後続プロセスの識別情報のそれぞれと対応付けられた複数の必要なメモリ量の中から、最も大きいメモリ量をプロセス需要記憶部２６から選択する。
【０１１１】
次に動作を説明する。
【０１１２】
先ず、第一の実施形態（図３）で説明した後続アプリケーションプログラムの起動に必要なメモリ量の空き領域を確保する動作の変更点を説明する。
【０１１３】
図３のステップＡ２では、監視部３は、アプリケーションプログラムの識別情報を推測部４に送っていたが、本実施の形態では、そのアプリケーションプログラムの識別情報をプロセス監視部７に送る。
【０１１４】
プロセス監視部７は、そのアプリケーションプログラムの識別情報を受け付けると、そのアプリケーションプログラムの識別情報を推測部４に送る。このとき、プロセス監視部７は、そのアプリケーションプログラムの識別情報を保持する。
【０１１５】
推測部４は、その後続アプリケーションプログラムの識別情報を受け付けると、ステップＡ３を実行する。以降、図３のステップＡ３からＡ５までが実行される。
【０１１６】
次に、後続プロセスの空き領域を確保する動作を説明する。
【０１１７】
図８は、後続プロセスの動作に必要なメモリ量の空き領域を確保する動作を説明するためのフローチャートである。なお、図８において、図３と同じ処理には同じ符号が付してある。
【０１１８】
実行部６は、実行要求を受け付けると、ステップＣ１を実行する。
【０１１９】
ステップＣ１では、実行部６は、その実行要求にて要求された機能に応じたシステムコールを生成し、そのシステムコールをプロセス監視部７と、ＯＳに従って動作するＣＰＵに送る。
【０１２０】
そのＣＰＵは、そのシステムコールを受け付けると、そのシステムコールに応じた処理を行う。
【０１２１】
プロセス監視部７は、そのシステムコールを受け付けると、ステップＣ２を実行する。
【０１２２】
ステップＣ２では、プロセス監視部７は、そのシステムコールの生成パターンを解析する。プロセス監視部７は、生成パターンを解析すると、ステップＣ３を実行する。
【０１２３】
ステップＣ３では、プロセス監視部７は、保持しているアプリケーションプログラムの識別情報と対応付けられ、かつ、その解析したシステムコールの生成パターンと対応付けられた、プロセスの識別情報を動作記憶部２５から選択する。プロセス監視部７は、プロセスの識別情報を選択すると、ステップＣ４を実行する。
【０１２４】
ステップＣ４では、プロセス監視部７は、そのプロセスの識別情報と対応付けられた後続プロセスの識別情報をプロセス起動手順記憶部２４から選択し、その選択した後続プロセスの識別情報を推測部４に送る。
【０１２５】
なお、プロセス監視部７は、そのプロセスの識別情報に、複数の後続プロセスの識別情報が対応付けられている場合、その複数の後続プロセスの識別情報を選択し、その選択した複数の後続プロセスの識別情報を推定部４に送る。
【０１２６】
推測部４は、その後続プロセスの識別情報を受け付けると、ステップＣ５を実行する。
【０１２７】
ステップＣ５では、推測部４は、その後続プロセスの識別情報と対応付けられた必要なメモリ量をプロセス需要記憶部２６から選択する。なお、推定部４は、プロセス監視部７から複数の後続プロセスの識別情報を受け付けた場合、その複数の後続プロセスのそれぞれと対応付けられた複数の必要なメモリ量の中から、最も大きいメモリ量をプロセス需要記憶部２６から選択する。推測部４は、必要なメモリ量を選択すると、ステップＡ４を実行する。その後、ステップＡ４およびＡ５が実行される。
【０１２８】
次に効果を説明する。
【０１２９】
本実施形態によれば、動作記憶部２５は、プロセスを生成するためのシステムコールの生成パターンを、そのプロセスの識別情報と対応付けて記憶する。プロセス起動手順記憶部２４は、プロセスの識別情報を、そのプロセスから起動される後続プロセスの識別情報と対応付けて記憶する。プロセス需要記憶部２６は、その後続プロセスの識別情報を、その後続プロセスの動作に必要なメモリ量と対応付けて記憶する。
【０１３０】
実行部６は、システムコールを生成する。プロセス監視部７は、実行部６が生成したシステムコールの生成パターンを解析し、その解析した生成パターンと対応付けられたプロセスの識別情報を動作記憶部２５から選択する。推測部４は、プロセス監視部７が選択したプロセスの識別情報と対応付けられた必要なメモリ量をプロセス需要記憶部２６から選択する。推測部４は、空き領域がその選択した必要なメモリ量より大きいか否かを判定する。管理部５１は、推測部４にてその空き領域がその必要なメモリ量になるまでメモリ３０の領域を確保する。
【０１３１】
このため、後続プロセスが生成される前に、その後続プロセスの動作に必要なメモリ量を確保することが可能になる。よって、アプリケーションプログラムのプロセスの起動のときに、そのアプリケーションプログラムのプロセスの動作に必要な空きメモリ領域が予め確保されるので、容易にメモリの空き領域が確保され、後続プロセスの生成を迅速に行うことが可能となる。したがって、アプリケーションプログラムの起動を迅速に行なうことが可能になる。
【０１３２】
次に、第四の実施形態のメモリ管理装置について説明する。
【０１３３】
図９は、第四の実施形態のメモリ管理装置の構成を示したブロック図である。以下、主に図１および図７と異なる構成について説明する。なお、図９において、図７と同じものには同じ符号が付してある。
【０１３４】
図９において、情報処理部１０は、図７で示した構成と同じ構成を有する。記憶部２０は、図７で示した構成から動作記憶部２５を除いた構成を有する。
【０１３５】
実行部６は、コンピュータシステムの入力デバイスから実行要求を受け付けると、その実行要求にて要求された機能に応じたプロセスの識別情報を、プロセス監視部７に送る。
【０１３６】
プロセス監視部７は、実行部６からプロセスの識別情報を受け付けると、そのプロセスの識別情報と対応付けられた後続プロセスの識別情報をプロセス起動手順記憶部２４から選択する。
【０１３７】
次に動作を説明する。
【０１３８】
図１０は、第四の実施形態のメモリ管理装置の動作を説明するためのフローチャートである。なお、図１０において、図８と同じ処理には同じ符号が付してある。
【０１３９】
実行部６は、実行要求を受け付けると、ステップＣ７を実行する。
【０１４０】
ステップＣ７では、実行部６は、実行要求にて要求された機能に応じたプロセスの識別情報をプロセス監視部７に送る。
【０１４１】
また、プロセス監視部７は、そのプロセスの識別情報を受け付けると、ステップＣ４を実行する。その後、ステップＣ４、Ｃ５、Ａ４およびＡ５が実行される。
【０１４２】
次に効果を説明する。
【０１４３】
実行部６は、機能を実行する旨の実行要求を受け付けると、その機能に応じたプロセスの識別情報をプロセス監視部７に送る。プロセス監視部７は、その送られたプロセスの識別情報と対応付けられた後続プロセスの識別情報を、プロセス起動手順記憶部２４から選択する。推測部４は、プロセス監視部７が選択したプロセスの識別情報と対応付けられた必要なメモリ量をプロセス需要記憶部２６から選択する。
【０１４４】
この場合、実行を要求された機能に応じたプロセスの識別情報が実行部６から送られる。また、そのプロセスの識別情報と対応付けられた後続プロセスの識別情報が選択される。
【０１４５】
このため、システムコールの生成パターンが解析されなくても、アプリケーションプログラムの起動のときに確保するメモリの領域を軽減することが可能になる。したがって、アプリケーションプログラムの起動をさらに迅速に行なうことが可能になる。
【実施例】
【０１４６】
第一の実施例として、第一の実施形態のメモリ管理装置を組み込んだコンピュータシステムについて説明する。以下、コンピュータシステムを携帯電話機として説明するが、コンピュータシステムは、携帯電話機に限らず適宜変更可能である。
【０１４７】
図１１は、第一の実施例の携帯電話機の構成の一例を示したブロック図である。
【０１４８】
図１１において、携帯電話機は、通信処理部４１と、ディスプレイ４２と、キーボード４３と、ハードディスクドライブ（ＨＤＤと略す）４４と、メモリ４５と、ＣＰＵ４６とを含む。
【０１４９】
通信処理部４１は、電話通信など無線通信を行なう。ディスプレイ４２は、種々の情報を表示する。キーボード４３は、利用者から種々の情報を受け付ける。例えば、キーボード４３は、利用者から起動要求を受け付ける。
【０１５０】
ＨＤＤ４４は、種々の情報を記憶する。また、ＨＤＤ４４は、スワップアウトされたデータを記憶するスワップデバイスとして用いられる。
【０１５１】
メモリ４５およびＣＰＵ４６は、メモリ管理装置を構成する。メモリ４５は、図１で示した記憶部２０に対応し、ＣＰＵ４６は、図１で示した情報処理部１０に対応する。
【０１５２】
図１２は、メモリ４５およびＣＰＵ４６の構成の一例を示したブロック図である。
【０１５３】
メモリ４５は、ＣＰＵ４６にて読み取り可能な記録媒体であり、ＣＰＵ４６の動作を規定するプログラムを記録する。
【０１５４】
また、メモリ４５は、起動手順記憶部１０２１と、需要記憶部１０２２と、特定記憶部１０２３を含む。
【０１５５】
起動手順記憶部１０２１、需要記憶部１０２２および特定記憶部１０２３のそれぞれは、図１で示した起動手順記憶部２１、需要記憶部２２および特定記憶部２３のそれぞれと同等な機能を有するため、説明は省略する。
【０１５６】
なお、起動手順、需要情報および特定情報は、ＨＤＤ４４に記憶され、携帯電話機が立ち上がると、ＣＰＵ４６は、その起動手順、需要情報および特定情報をＨＤＤ４４から取得し、その起動手順を起動手順記憶部１０２１に記憶し、その需要情報を需要記憶部１０２２に記憶し、その特定情報を特定記憶部１０２３に記憶するものとする。また、需要情報の各アプリケーションプログラムの起動に必要なメモリ量は、アプリケーションプログラムの開発者が定め、そのアプリケーションプログラムが携帯電話機に導入される際に、識別情報と対応付けられてＨＤＤ４４に記憶される。
【０１５７】
ＣＰＵ４６は、メモリ４５に記録されたプログラムを読み取り、読み取ったプログラムを実行して、図１の情報処理部１０と同等な機能を実現する。具体的には、ＣＰＵ４６は、アプリケーションランチャー部１００１と、制御部１００２と、監視部１００３と、推測部１００４と、ＯＳ実行部１００５とを実現する。
【０１５８】
アプリケーションランチャー部（ランチャー部と略す）１００１、制御部１００２、監視部１００３および推測部１００４は、ミドルウェアが実行されることで実現されることが望ましい。また、ランチャー部１００１、制御部１００２、監視部１００３および推測部１００４は、ユーザモードで動作する。
【０１５９】
なお、ランチャー部１００１、制御部１００２、監視部１００３および推測部１００４のそれぞれは、図１で示した選択部１、制御部２、監視部３および推測部４のそれぞれと同等な機能を有するため、詳細な説明は省略する。
【０１６０】
ＯＳ実行部１００５は、ＯＳが実行されることで実現される。ＯＳは、Ｌｉｎｕｘ系統またはＵｎｉｘ系統であることが望ましいが、Ｌｉｎｕｘ系統またはＵｎｉｘ系統に限らず適宜変更可能である。
【０１６１】
ＯＳ実行部１００５は、メモリマネージャ１０５１と、制御モジュール１０５２とを含む。メモリマネージャ１０５１は、スワップ処理部１５１１を含む。
【０１６２】
制御モジュール１０５２は、推測部１００４から確保要求を受け付け、その確保要求をメモリマネージャ１０５１にて認識可能な形式に変換する。制御モジュール１０５２は、その形式を変換した確保要求をメモリマネージャ１０５１に送る。
【０１６３】
メモリマネージャ１０５１およびスワップ処理部１５１１のそれぞれは、図１で示した管理部５１およびスワップ処理部５１１のそれぞれと同等な機能を有するため、説明は省略する。
【０１６４】
次に携帯電話機のアプリケーションプルグラムの起動手順の例を説明する
図１３は、携帯電話機のアプリケーションプルグラムの起動手順の一例を説明するための説明図である。図１３では、アプリケーションプログラムの起動手順を示すツリーが示されている。ノード６０１から６０８までは、アプリケーションプログラムを示す。なお、ノード６０１から６０８までのそれぞれの下部には、そのノードが示すアプリケーションプログラムの起動に必要なメモリ量が示されている。
【０１６５】
図１４は、アプリケーションプログラムと、そのアプリケーションプログラムの起動に必要なメモリ量の関係の一例を示した説明図である。
【０１６６】
図１４では、アプリケーション名と、ＩＤと、消費メモリ量とが示されている。アプリケーション名は、アプリケーションプログラムの名前を示す。ＩＤは、そのアプリケーションプログラムの識別情報を示す。消費メモリ量は、そのアプリケーションプログラムの起動に必要なメモリ量を示す。
【０１６７】
ＯＳ実行部１００５は、携帯電話機が立ち上がると、「メニュー１」を起動する旨の起動要求をランチャー部１００１に送るように設定されているものとする。
【０１６８】
ランチャー部１００１は、その起動要求を受け付けると、その起動要求にて要求されたアプリケーションプログラムと対応付けられたアプリケーションプログラムの識別情報「ＩＤ１」を特定記憶部１０２３から選択する。
【０１６９】
監視部１００３は、その選択したアプリケーションプログラムの識別情報「ＩＤ１」と対応付けられた、「メール」の識別情報「ＩＤ２」と、「メニュー２」の識別情報「ＩＤ３」と、「ブラウザ」の識別情報「ＩＤ４」とを選択する。
【０１７０】
推測部１００４は、その選択された識別情報「ＩＤ２」「ＩＤ３」および「ＩＤ４」のそれぞれと対応付けられた複数の必要なメモリ量の中から、最も大きいメモリ量を需要記憶部１０２２から選択する。この場合、「ブラウザ」の起動に必要なメモリ量「４ＭＢ」が最も大きいので、推測部１００４は、必要なメモリ量「４ＭＢ」を選択する。
【０１７１】
メモリマネージャ１０５１は、その必要なメモリ量「４ＭＢ」になるまで、メモリ４５の空き領域を確保する。
【０１７２】
その後、利用者がキーボード４３を用いて「メール」を選択した場合、キーボード４３は、「メール」を起動する旨の起動要求をランチャー部１００１に送る。
【０１７３】
ランチャー部１００１は、その起動要求を受け付けると、その起動要求にて要求された「メール」と対応付けられた識別情報「ＩＤ２」を特定記憶部１０２３から選択する。
【０１７４】
この場合、監視部１００３は、「メール」から起動される後続アプリケーションプログラムがないと判定して、動作を終了する。
【０１７５】
また、利用者がキーボード４３を用いて「メニュー２」を選択した場合、キーボード４３は、「メニュー２」を起動する旨の起動要求をランチャー部１００１に送る。
【０１７６】
ランチャー部１００１は、その起動要求を受け付けると、その起動要求にて要求された「メニュー２」と対応付けられた識別情報「ＩＤ３」を特定記憶部１０２３から選択する。
【０１７７】
監視部１００３は、その識別情報「ＩＤ３」と対応付けられた、「メニュー３」の識別情報「ＩＤ５」と、「ゲーム」の識別情報「ＩＤ６」とを起動手順記憶部１０２１から選択する。
【０１７８】
推測部１００４は、その識別情報「ＩＤ５」および「ＩＤ６」のそれぞれと対応付けられた複数の必要なメモリ量の中から、最も大きいメモリ量を需要記憶部１０２２から選択する。この場合、「ゲーム」の起動に必要なメモリ量「１０ＭＢ」が最も大きいので、推測部１００４は、必要なメモリ量「１０ＭＢ」を選択する。
【０１７９】
メモリマネージャ１０５１は、その必要なメモリ量「１０ＭＢ」になるまで、メモリ４５の空き領域を確保する。
【０１８０】
その後、利用者がキーボード４３を用いて「メニュー３」を選択した場合、キーボード４３は、「メニュー３」を起動する旨の起動要求をランチャー部１００１に送る。
【０１８１】
ランチャー部１００１は、その起動要求にて要求された「メニュー３」と対応付けられた識別情報「ＩＤ５」を特定記憶部１０２３から選択する。
【０１８２】
監視部１００３は、その識別情報「ＩＤ５」と対応付けられた、「音声メモ」の識別情報「ＩＤ７」と、「音楽再生」の識別情報「ＩＤ８」とを起動手順記憶部１０２１から選択する。
【０１８３】
推測部１００４は、その識別情報「ＩＤ７」および「ＩＤ８」のそれぞれと対応付けられた複数の必要なメモリ量の中から、最も大きいメモリ量を需要記憶部１０２２から選択する。この場合、「音楽再生」の起動に必要なメモリ量「４ＭＢ」が最も大きいので、推測部１００４は、必要なメモリ量「４ＭＢ」を選択する。
【０１８４】
次に動作を説明する。
【０１８５】
図１５は、携帯電話機の動作の一例を説明するためにフローチャートである。以下、「メニュー１」が起動された状態で、利用者がアプリケーションプログラム「ブラウザ」を選択した場合を例に説明する。
【０１８６】
ステップＢ１では、ランチャー部１００１は、「ブラウザ」を起動する旨の起動要求を受け付け、その「ブラウザ」と対応付けられた識別情報「ＩＤ４」を特定記憶部１０２３から選択する。選択部１は、その識別情報「ＩＤ４」を制御部１００２および監視部１００３に送る。
【０１８７】
制御部１００２は、その識別情報「ＩＤ４」を受け付けると、その識別情報「ＩＤ４」にて特定される「ブラウザ」を構成するプロセスの起動および実行を行なう旨のプロセス実行要求を生成し、そのプロセス実行要求をＯＳ実行部１００５に送る。
【０１８８】
なお、制御部１００２は、「ブラウザ」の識別情報「ＩＤ４」を受け付ける前に受け付けた「メニュー１」の識別情報「ＩＤ１」を保持するものとする。これは、「ブラウザ」が終了された場合に「メニュー１」が起動されるように、制御部１００２が、「メニュー１」を構成するプロセスの起動および実行を行なう旨のプロセス実行要求をＯＳ実行部１００５に送るためである。
【０１８９】
ＯＳ実行部１００５は、そのプロセス実行要求を受け付けると、そのプロセス実行要求に応じてプロセスの起動および実行を行なう。
【０１９０】
監視部１００３は、その識別情報を受け付けると、ステップＢ２を実行する。
【０１９１】
ステップＢ２では、監視部１００３は、その「ブラウザ」の識別情報「ＩＤ４」と対応付けられた「音楽再生」の識別情報「ＩＤ８」を起動手順記憶部１０２１から選択し、その後続アプリケーションプログラムの識別情報「ＩＤ８」を推測部１００４に送る。推測部１００４は、その後続アプリケーションプログラムの識別情報「ＩＤ８」を受け付けると、ステップＢ３を実行する。
【０１９２】
ステップＢ３では、推測部１００４は、その後続アプリケーションプログラムの識別情報「ＩＤ８」と対応付けられた必要なメモリ量「４ＭＢ」を、需要記憶部１０２２から選択する。
【０１９３】
ステップＢ４では、推測部１００４は、メモリ４５の空き領域を調べる。例えば、推測部１００４は、「/procファイルシステム」を用いて、メモリ４５の空き領域を調べる。
【０１９４】
推測部１００４は、メモリ４５の空き領域を調べると、その空き領域がその必要なメモリ量より大きいか否かを判定する。推測部１００４は、その空き領域がその必要なメモリ量より小さいと、ステップＢ５を実行し、その空き領域がその必要なメモリ量より大きいと、動作を終了する。
【０１９５】
ステップＢ５では、推測部１００４は、空き領域を確保する旨の確保要求を生成し、その確保要求を制御モジュール１０５２に送る。
【０１９６】
制御モジュール１０５２は、その確保要求を受け付け、その確保要求をメモリマネージャ１０５１にて認識可能な形式に変換する。制御モジュール１０５２は、その形式を変換した確保要求をメモリマネージャ１０５１に送る。
【０１９７】
メモリマネージャ１０５１は、その確保要求を受け付けると、スワップ処理部１５１１にスワップの要求を送る。
【０１９８】
このとき、メモリマネージャ１０５１は、スワップアウトの要求を送る前に、メモリ４５内の不要候補メモリ領域の解放を試みてもよい。この場合、メモリマネージャ１０５１は、不要候補メモリ領域の解放で、必要なメモリ量が確保されなかった場合に、スワップアウトの要求を送る。
【０１９９】
スワップ処理部１５１１は、そのスワップアウトの要求を受け付けると、必要なメモリ量が確保されるまで、メモリ４５の不要候補メモリ領域内のデータをＨＤＤ４４にスワップアウトする。
【０２００】
スワップ処理部１５１１は、不要候補データをスワップアウトすると、スワップアウトが完了した旨を推測部１００４に送る。推測部１００４は、その旨を受け付けると、ステップＢ４を実行する。
【０２０１】
次に、第二の実施例として、第二の実施形態のメモリ管理装置を組み込んだ携帯電話機を説明する。
【０２０２】
図１６は、第二の実施例の携帯電話機の構成の一例を示したブロック図である。以下、図１１と異なる構成について主に説明する。なお、図１６において、図１１と同じものには同じ符号が付してある。
【０２０３】
図１６において、携帯電話機は、ＨＤＤ４４の代わりにフラッシュメモリ４７を含む。なお、携帯電話機のその他の構成は、図１１と同じである。
【０２０４】
フラッシュメモリ４７は、一般的に、ＨＤＤ４４に比べて、小型であり、読み書き速度が速く、かつ、耐衝撃性が高い。このため、フラッシュメモリ４７は、携帯電話機におけるデータの格納手段として好適である。しかしながら、フラッシュメモリ４７は、書き換え耐性が低いため、スワップデバイスには適さない。
【０２０５】
図１７は、この携帯電話機のメモリ４５およびＣＰＵ４６の構成の一例を示したブロック図である。以下、図１２と異なる構成について主に説明する。なお、図１７において、図１２と同じものには同じ符号が付してある。
【０２０６】
図１７において、メモリ４５は、図１２で示した構成と同じ構成を有する。ＣＰＵ４６では、メモリマネージャ１０５１が、スワップ処理部１５１１の代わりにガベージコレクタ１５１２を含む。ＣＰＵ４６のその他の構成は、図１２で示した構成と同じである。
【０２０７】
ガベージコレクタ１５１２は、整理部５１２と同等な機能を有するため、ガベージコレクタ１５１２の説明は省略する。
【０２０８】
次に、第三の実施例として、第三の実施形態のメモリ管理装置を組み込んだ携帯電話機を説明する。
【０２０９】
第三の実施例の携帯電話機は、図１１で示した携帯電話機と同じ構成を有する。
【０２１０】
図１８は、第三の実施例の携帯電話機のメモリ４５およびＣＰＵ４６の構成の一例を示したブロック図である。以下、主に図１２と異なる構成について説明する。なお、図１８において、図１２と同じものには同じ符号が付してある。
【０２１１】
図１８において、メモリ４５は、図１２で示した構成に加え、プロセス起動手順記憶部１０２４と、動作記憶部１０２５と、プロセス需要記憶部１０２６とを含む。ＣＰＵ４６は、図１２で示した構成に加え、アプリケーション実行部１００６と、プロセス監視部１００７とを含む。
【０２１２】
なお、プロセスの起動手順、パターン情報およびプロセス需要情報は、ＨＤＤ４４に記憶され、携帯電話機が立ち上がると、ＣＰＵ４６は、プロセスの起動手順、パターン情報およびプロセス需要情報をＨＤＤ４４から取得し、そのプロセスの起動手順をプロセス起動手順記憶部１０２４に記憶し、そのパターン情報を動作記憶部１０２５に記憶し、そのプロセス需要情報をプロセス需要記憶部１０２６に記憶するものとする。また、プロセス需要情報の各プロセスの動作に必要なメモリ量は、そのプロセスのアプリケーションプログラムの開発者が定め、そのアプリケーションプログラムが携帯電話機に導入される際に、プロセスの識別情報と対応付けられてＨＤＤ４４に記憶される。
【０２１３】
プロセス起動手順記憶部１０２４と、動作記憶部１０２５と、プロセス需要記憶部１０２６は、図７で示したプロセス起動手順記憶部２４と、動作記憶部２５と、プロセス需要記憶部２６と同等な機能を有するため、説明は省略する。また、アプリケーション実行部（実行部）１００６と、プロセス監視部１００７とは、図７で示した実行部６と、プロセス監視部７と同等な機能を有するため、説明は省略する。
【０２１４】
次に携帯電話機のプロセスの起動手順の例を説明する
図１９は、携帯電話機のプロセスの起動手順の一例を説明するための説明図である。なお、図１９において、図１３と同じものには同じ符号が付してある。また、アプリケーションプログラム「メール」を示すノード６０２の中に、「メール」で実行されるプロセスの起動手順を示すツリーが示されている。ノード６１１から６１５までは、プロセスを示す。なお、ノード６１１から６１５までのそれぞれの下部には、そのノードが示すプロセスの動作に必要なメモリ量が示されている。
【０２１５】
図２０は、プロセスと、そのプロセスの動作に必要なメモリ量の関係の一例を示した説明図である。
【０２１６】
図２０では、機能名と、機能ＩＤと、消費メモリ量とが示されている。機能名は、機能の名前を示す。機能ＩＤは、その機能の識別情報を示す。消費メモリ量は、その機能の動作に必要なメモリ量を示す。
【０２１７】
本実施例では、一つのプロセスが一つの機能に対応されているとする。この場合、機能ＩＤは、プロセスの識別情報であり、消費メモリ量は、その機能に応じたプロセスの動作に必要なメモリ量を示す。
【０２１８】
アプリケーションプログラム「メール」が起動中に、利用者がキーボード４３を用いて「機能メニュー１」を選択した場合、キーボード４３は、「機能メニュー１」を実行する旨の実行要求を実行部１００６に送る。
【０２１９】
実行部１００６は、その実行要求を受け付けると、「機能メニュー１」に応じたシステムコールを生成する。
【０２２０】
プロセス監視部１００７は、実行部１００６が生成したシステムコールの生成パターンを解析する。プロセス監視部１００７は、アプリケーションプログラム「メール」の識別情報と対応付けられ、かつ、その解析したシステムコールの生成パターンと対応付けられた、「機能メニュー１」の識別情報「機能ＩＤ１」を動作記憶部１０２５から選択する。
【０２２１】
プロセス監視部１００７は、その「機能メニュー１」の識別情報「機能ＩＤ１」と対応付けられた、「返信」の識別情報「機能ＩＤ２」と、「機能メニュー２」の識別情報「機能ＩＤ３」をプロセス起動手順記憶部２４から選択する。
【０２２２】
推測部１００４は、その識別情報「機能ＩＤ２」および「機能ＩＤ３」のそれぞれと対応付けられた複数の必要なメモリ量の中から、最も大きいメモリ量をプロセス需要記憶部１０２６から選択する。この場合、「返信」の動作に必要なメモリ量「１００ｋＢ」が最も大きいので、推測部１００４は、必要なメモリ量「１００ｋＢ」を選択する。
【０２２３】
メモリマネージャ１０５１は、その選択されたメモリ量「１００ｋＢ」になるまで、メモリ４５の空き領域を確保する。
【０２２４】
その後、利用者がキーボード４３を用いて「返信」を選択した場合、キーボード４３は、「返信」を実行する旨の実行要求を実行部１００６に送る。
【０２２５】
実行部１００６は、その実行要求を受け付けると、その「返信」に応じたシステムコールを生成する。
【０２２６】
プロセス監視部１００７は、実行部１００６が生成したシステムコールの生成パターンを解析する。プロセス監視部１００７は、アプリケーションプログラム「メール」の識別情報と対応付けられ、かつ、その解析したシステムコールの生成パターンと対応付けられた、プロセスの識別情報「機能ＩＤ２」を選択する。
【０２２７】
この場合、プロセス監視部１００７は、「返信」から起動される後続プロセスがないと判定して、動作を終了する。
【０２２８】
一方、利用者がキーボード４３を用いて「機能メニュー２」を選択した場合、キーボード４３は、「機能メニュー２」を実行する旨の実行要求を実行部１００６に送る。
【０２２９】
実行部１００６は、その実行要求を受け付けると、「機能メニュー２」に応じたシステムコールを生成する。
【０２３０】
プロセス監視部１００７は、実行部１００６が生成したシステムコールの生成パターンを解析する。プロセス監視部１００７は、アプリケーションプログラム「メール」の識別情報と対応付けられ、かつ、実行部１００６にて生成されたシステムコールの生成パターンと対応付けられた、プロセスの識別情報「機能ＩＤ３」を動作記憶部１０２５から選択する。
【０２３１】
プロセス監視部１００７は、その識別情報「機能ＩＤ３」と対応付けられた、「引用返信」の識別情報「機能ＩＤ４」と、「画像付き返信」の識別情報「機能ＩＤ５」とをプロセス起動手順記憶部１０２４から選択する。
【０２３２】
推測部１００４は、その識別情報「機能ＩＤ４」および「機能ＩＤ５」のそれぞれと対応付けられた複数の必要なメモリ量の中から、最も大きいメモリ量をプロセス需要記憶部１０２６から選択する。この場合、「画像付き返信」の起動に必要なメモリ量「２００ｋＢ」が最も大きいので、推測部１００４は、必要なメモリ量「２００ｋＢ」を選択する。
【０２３３】
メモリマネージャ１０５１は、その選択されたメモリ量「２００ｋＢ」になるまで、メモリ４５の空き領域を確保する。
【０２３４】
次に、動作を説明する。
【０２３５】
図２１は、携帯電話機の動作の一例を説明するためのフローチャートである。以下、「機能メニュー２」が起動された状態で、利用者がキーボード４３を用いてアプリケーションプログラム「引用返信」を選択した場合を例に説明する。
【０２３６】
利用者がキーボード４３を用いて「引用返信」を選択した場合、キーボード４３は、「引用返信」を実行する旨の実行要求を実行部１００６に送る。実行部１００６は、その実行要求を受け付けると、ステップＤ１を実行する。
【０２３７】
ステップＤ１では、実行部１００６は、その「引用返信」に応じたシステムコールを生成し、そのシステムコールをプロセス監視部１００７と、ＯＳ実行部１００５とに送る。
【０２３８】
ＯＳ実行部１００５は、そのシステムコールを受け付けると、そのシステムコールに応じた処理を行う。
【０２３９】
プロセス監視部１００７は、そのシステムコールを受け付けると、ステップＤ２を実行する。
【０２４０】
ステップＤ２では、プロセス監視部１００７は、そのシステムコールの生成パターンを解析する。プロセス監視部１００７は、生成パターンを解析すると、ステップＤ３を実行する。
【０２４１】
ステップＤ３では、プロセス監視部１００７は、保持しているアプリケーションプログラムの識別情報と対応付けられ、かつ、その解析したシステムコールの生成パターンと対応付けられた、プロセスの識別情報を動作記憶部１０２５から選択する。プロセス監視部１００７は、プロセスの識別情報を選択すると、ステップＤ４を実行する。
【０２４２】
ステップＤ４では、プロセス監視部１００７は、そのプロセスの識別情報と対応付けられた後続プロセスの識別情報をプロセス起動手順記憶部１０２４から選択し、その選択したプロセスの識別情報を推測部１００４に送る。推測部１００４は、そのプロセスの識別情報を受け付けると、ステップＤ５を実行する。
【０２４３】
ステップＤ５では、推測部１００４は、そのプロセスの識別情報と対応付けられた必要なメモリ量をプロセス需要記憶部１０２６から選択する。推測部１００４は、必要はメモリ量を選択すると、ステップＢ４を実行する。その後、ステップＢ４およびＢ５が実行される。
【０２４４】
次に、第四の実施例として、第四の実施形態のメモリ管理装置を組み込んだ携帯電話機を説明する。
【０２４５】
第四の実施例の携帯電話機は、図１１で示した携帯電話機と同じ構成を有する。
【０２４６】
図２２は、第四の実施例の携帯電話機のメモリ４５およびＣＰＵ４６の構成の一例を示したブロック図である。以下、主に図１８と異なる構成について説明する。なお、図２２において、図１８と同じものには同じ符号が付してある。
【０２４７】
図２２において、メモリ４５は、図１８で示した構成から、動作記憶部１０２５を除いた構成を有する。ＣＰＵ４６は、図１８と同じ構成を有する。
【０２４８】
次に動作を説明する。
【０２４９】
図２３は、第四の実施例の携帯電話機の動作の一例を説明するためのフローチャートである。なお、図２３において、図２１と同じ処理には同じ符号が付してある。
【０２５０】
利用者がキーボード４３を用いて機能を選択した場合、キーボード４３は、その機能を実行する旨の実行要求を実行部１００６に送る。実行部１００６は、その実行要求を受け付けると、ステップＤ７を実行する。
【０２５１】
ステップＤ７では、実行部１００６は、実行要求にて要求された機能に応じたプロセスの識別情報をプロセス監視部１００７および制御部１００２に送る。
【０２５２】
制御部１００２は、そのプロセスの識別情報を受け付けると、そのプロセスの起動および実行を行う旨のプロセス実行要求を生成し、そのプロセス実行要求をＯＳ実行部１００５に送る。
【０２５３】
ＯＳ実行部１００５は、そのプロセス実行要求を受け付けると、そのプロセス実行要求に応じてプロセスの起動および実行を行う。
【０２５４】
また、プロセス監視部１００７は、その識別情報を受け付けると、ステップＤ４を実行する。その後、ステップＤ４、Ｄ６、Ｂ４およびＢ５が実行される。
【０２５５】
以上説明した各実施形態および各実施例において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【産業上の利用可能性】
【０２５６】
例えば、アプリケーションプログラムの起動手順が定められた組込システムに適用できる。
【図面の簡単な説明】
【０２５７】
【図１】本発明の第一の実施形態のメモリ管理装置の構成を示したブロック図である。
【図２】アプリケーションプログラムの起動手順の一例を示した説明図である。
【図３】本発明の第一の実施形態のメモリ管理装置の動作を説明するためのフローチャートである。
【図４】本発明の第二の実施形態のメモリ管理装置の構成を示したブロック図である。
【図５】メモリ領域の一例を示した模式図である。
【図６】本発明の第二の実施形態のメモリ管理装置の動作を説明するためのフローチャートである。
【図７】本発明の第三の実施形態のメモリ管理装置の構成を示したブロック図である。
【図８】本発明の第三の実施形態のメモリ管理装置の動作を説明するためのフローチャートである。
【図９】本発明の第四の実施形態のメモリ管理装置の構成を示したブロック図である。
【図１０】本発明の第四の実施形態のメモリ管理装置の動作を説明するためのフローチャートである。
【図１１】携帯電話機の構成の一例を示したブロック図である。
【図１２】第一の実施例のメモリおよびＣＰＵの構成を示したブロック図である。
【図１３】携帯電話機のアプリケーションプルグラムの起動手順の一例を説明するための説明図である。
【図１４】アプリケーションプログラムと必要なメモリ量との関係の一例を示した説明図である。
【図１５】第一の実施例の携帯電話機の動作を説明するためのフローチャートである。
【図１６】携帯電話機の構成の他の例を示したブロック図である。
【図１７】第二の実施例のメモリおよびＣＰＵの構成を示したブロック図である。
【図１８】第三の実施例のメモリおよびＣＰＵの構成を示したブロック図である。
【図１９】携帯電話機のプロセスの起動手順の一例を説明するための説明図である。
【図２０】機能と必要なメモリ量との関係の一例を示した説明図である。
【図２１】第三の実施例の携帯電話機の動作を説明するためのフローチャートである。
【図２２】第四の実施例のメモリおよびＣＰＵの構成を示したブロック図である。
【図２３】第四の実施例の携帯電話機の動作を説明するためのフローチャートである。
【符号の説明】
【０２５８】
１        アプリケーション選択部
２        アプリケーション制御部
３        アプリケーション監視部
４        メモリ推測部
６        アプリケーションプログラム実行部
７        プロセス監視部
１０      情報処理部
２１      アプリケーション起動手順記憶部
２２      アプリケーションメモリ需要記憶部
２３      アプリケーション特定記憶部
２４      プロセス起動手順記憶部
２５      プロセス動作パターン記憶部
２６      プロセスメモリ需要記憶部
３０      メモリ
４１      通信処理部
４２      ディスプレイ
４３      キーボード
４４      ＨＤＤ
４５      メモリ
４６      ＣＰＵ
４７      フラッシュメモリ
５１      管理部
５１１    スワップ処理部
５１２    メモリ整理回収部
【図１】
2008225669.tif 000003
【図２】
2008225669.tif 000004
【図３】
2008225669.tif 000005
【図４】
2008225669.tif 000006
【図５】
2008225669.tif 000007
【図６】
2008225669.tif 000008
【図７】
2008225669.tif 000009
【図８】
2008225669.tif 000010
【図９】
2008225669.tif 000011
【図１０】
2008225669.tif 000012
【図１１】
2008225669.tif 000013
【図１２】
2008225669.tif 000014
【図１３】
2008225669.tif 000015
【図１４】
2008225669.tif 000016
【図１５】
2008225669.tif 000017
【図１６】
2008225669.tif 000018
【図１７】
2008225669.tif 000019
【図１８】
2008225669.tif 000020
【図１９】
2008225669.tif 000021
【図２０】
2008225669.tif 000022
【図２１】
2008225669.tif 000023
【図２２】
2008225669.tif 000024
【図２３】
2008225669.tif 000025