(57)【要約】【課題】  プログラムの起動にかかる時間を短縮し、ユーザーの利便性を高めた情報処理装置を提供する。【解決手段】  記憶手段１２は、プロセス空間として利用可能なメモリ空間を提供する。管理手段１３は、過去に実行したプログラムを終了した後もそのプロセス空間を記憶手段１２のメモリ空間に保持し、また各プログラムの優先度を管理している。そして、管理手段１３、プログラム起動時、そのプログラムのプロセス空間が保持されておらず、かつメモリ空間上に十分な空き領域が無ければ、管理手段１３は、実行中でないプログラムの中で優先度の低いプログラムのプロセス空間を破棄してメモリ空間上に空き領域を作り、その空き領域にプロセス空間を新たに確保する。そして、管理手段１３は、新たに確保したプロセス空間にプログラムを読み込む。【選択図】      図１
2005301801.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムを実行可能な情報処理装置であって、
前記プログラムが実行されるとき、該プログラムのプロセス空間として利用可能なメモリ空間を提供する記憶手段と、
過去に実行したプログラムの各々のプロセス空間を、該プログラムを終了した後も前記記憶手段の前記メモリ空間に保持し、前記過去に実行したプログラムの優先度を管理しており、いずれかのプログラムを起動するとき、該プログラムのプロセス空間が前記メモリ空間上に保持されていれば該プロセス空間を復活させて用い、該プログラムのプロセス空間が前記メモリ空間上に保持されていなければ、該プログラムのプロセス空間を確保するのに十分な空き領域が前記メモリ空間上にあるか否か判定し、十分な空き領域があれば、該空き領域に該プログラムのプロセス空間を新たに確保し、十分な空き領域が無ければ、実行中でないプログラムの中で前記優先度の低いプログラムのプロセス空間を破棄して前記メモリ空間上に空き領域を作り、該空き領域に、起動する前記プログラムのプロセス空間を新たに確保し、新たに確保した前記プロセス空間に、起動する前記プログラムを読み込む管理手段とを有する情報処理装置。
【請求項２】
前記管理手段は、過去の起動回数から、使用頻度の高いプログラムの前記優先度を高くする、請求項１記載の情報処理装置。
【請求項３】
前記管理手段は、過去の起動順序から、次に起動される可能性の高いプログラムの前記優先度を高くする、請求項１記載の情報処理装置。
【請求項４】
複数のプログラムを実行可能な情報処理装置において、前記プログラムにプロセス空間として利用されるメモリ空間を管理するメモリ管理装置であって、
過去に実行されたプログラムの各々の優先度を管理する優先度管理手段と、
過去に実行された前記プログラムの各々のプロセス空間を、該プログラムを終了した後も前記メモリ空間に保持しておき、いずれかのプログラムが起動されるとき、該プログラムのプロセス空間が前記メモリ空間上に保持されていれば該プロセス空間を復活させて用い、該プログラムのプロセス空間が前記メモリ空間上に保持されていなければ、該プログラムのプロセス空間を確保するのに十分な空き領域が前記メモリ空間上にあるか否か判定し、十分な空き領域があれば、該空き領域に該プログラムのプロセス空間を新たに確保し、十分な空き領域が無ければ、実行中でないプログラムの中で前記優先度の低いプログラムのプロセス空間を破棄して前記メモリ空間上に空き領域を作り、該空き領域に、起動する前記プログラムのプロセス空間を新たに確保するプロセス空間決定手段と、
前記プロセス空間決定手段が新たに確保した前記プロセス空間に、起動する前記プログラムを読み込むプログラム読み込み手段とを有するメモリ管理装置。
【請求項５】
前記優先度管理手段は、過去の起動回数から、使用頻度の高いプログラムの前記優先度を高くする、請求項４記載のメモリ管理装置。
【請求項６】
前記優先度管理手段は、過去の起動順序から、次に起動される可能性の高いプログラムの前記優先度を高くする、請求項４記載のメモリ管理装置。
【請求項７】
複数のプログラムを実行可能な情報処理装置において、前記プログラムによってプロセス空間として利用されるメモリ空間を管理するために、前記情報処理装置にて実行されるメモリ管理プログラムであって、
過去に実行されたプログラムの各々の優先度を管理する優先度管理手段と、
過去に実行された前記プログラムの各々のプロセス空間を、該プログラムを終了した後も前記メモリ空間に保持しておき、いずれかのプログラムが起動されるとき、該プログラムのプロセス空間が前記メモリ空間上に保持されていれば該プロセス空間を復活させて用い、該プログラムのプロセス空間が前記メモリ空間上に保持されていなければ、該プログラムのプロセス空間を確保するのに十分な空き領域が前記メモリ空間上にあるか否か判定し、十分な空き領域があれば、該空き領域に該プログラムのプロセス空間を新たに確保し、十分な空き領域が無ければ、実行中でないプログラムの中で前記優先度の低いプログラムのプロセス空間を破棄して前記メモリ空間上に空き領域を作り、該空き領域に、起動する前記プログラムのプロセス空間を新たに確保するプロセス空間決定手段と、
前記プロセス空間決定手段が新たに確保した前記プロセス空間に、起動する前記プログラムを読み込むプログラム読み込み手段として前記情報処理装置を機能させるためのメモリ管理プログラム。
【請求項８】
前記優先度管理手段は、過去の起動回数から、使用頻度の高いプログラムの前記優先度を高くする、請求項７記載のメモリ管理プログラム。
【請求項９】
前記優先度管理手段は、過去の起動順序から、次に起動される可能性の高いプログラムの前記優先度を高くする、請求項７記載のメモリ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムを実行する情報処理装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータ、携帯情報通信端末、携帯電話機などの情報処理装置は、各種アプリケーションのプログラムを実行することにより様々な機能をユーザーに提供する。ユーザーの利便性を高めるために様々な手法によりプログラム処理を削減することでレスポンスの向上が図られている。
【０００３】
また、プログラムの起動時などにおけるレスポンスを向上させることも重要である。例えば、ユーザーの操作により新たに起動されるプログラムと既に起動されているプログラムの双方に同等のレスポンスが要求される場合や、プログラムの起動と終了が頻繁に繰り返される場合には、プログラム起動のレスポンスが特に重要である。
【０００４】
プログラムを起動するとき、情報処理装置は、まず、第１のステップとして、そのプログラムが使用するメモリ空間（以下、「プロセス空間」という）を確保する。次に、第２のステップとして、情報処理装置は、プログラムを二次記憶装置からメモリ上に読み込む。図９では、二次記憶装置からメモリ空間上に確保されたプロセス空間ＭＡにプログラムが読み込まれる場合が例示されている。
【０００５】
さらに、第３のステップとして、情報処理装置は、プログラムの初期化処理により、メモリ上のデータ領域を初期化する。第４のステップとして、情報処理装置はメモリ上のプログラムの実行を開始する。そして、プログラムを終了するとき、情報処理装置は、図９に示したように、プロセス空間ＭＡを破棄して空き領域に戻す。
【０００６】
プログラム起動の一連の処理はプログラムの実行を開始するまでのものなので、プログラムの処理を削減しても、処理にかかる時間の短縮にはならない。そこで、例えば第２のステップについては、一般的に、キャッシュを用いて二次記憶装置へのアクセスを低減することによりレスポンスの向上が図られている。
【０００７】
また、第１のステップについては、プログラムを終了するときに、そのプログラムにて使用したテーブルを保存しておき、再びそのプログラムを起動するときにそのテーブルを利用することで時間短縮を図る方法が提案されている（特許文献１参照）。これによれば、プログラム起動時に、そのプログラムに対してメモリ領域の割り当てる処理と、プログラム終了時に、メモリ領域を解放する処理とを省くことができ、それによりプログラムの起動および終了のレスポンスを向上させることができる。
【特許文献１】特開２００３−１５０３９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来方法によれば、プログラムが終了した後にもそのプログラムのプロセス空間が保持されることとなり、実際には実行されていないプログラムのためにプロセス空間が確保された状態となる。一旦実行した後に終了したプログラムの数が増えると、メモリ空間内に保存された状態のプロセス空間が増えることとなるので、新たなプログラムを起動するときにプロセス空間を確保できない可能性がある。
【０００９】
それを回避するためには、保存しておいたプロセス空間を破棄して空き領域に戻す必要がある。しかし、そうすると、プロセス空間の破棄されたプログラムをその後に再び起動する必要が生じれば、プロセス空間を新たに確保し直さなければならず、起動にかかる時間が長くなってしまう。
【００１０】
本発明の目的は、プログラムの起動にかかる時間を短縮し、ユーザーの利便性を高めた情報処理装置を提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の情報処理装置は、複数のプログラムを実行可能な情報処理装置であって、
前記プログラムが実行されるとき、該プログラムのプロセス空間として利用可能なメモリ空間を提供する記憶手段と、
過去に実行したプログラムの各々のプロセス空間を、該プログラムを終了した後も前記記憶手段の前記メモリ空間に保持し、前記過去に実行したプログラムの優先度を管理しており、いずれかのプログラムを起動するとき、該プログラムのプロセス空間が前記メモリ空間上に保持されていれば該プロセス空間を復活させて用い、該プログラムのプロセス空間が前記メモリ空間上に保持されていなければ、該プログラムのプロセス空間を確保するのに十分な空き領域が前記メモリ空間上にあるか否か判定し、十分な空き領域があれば、該空き領域に該プログラムのプロセス空間を新たに確保し、十分な空き領域が無ければ、実行中でないプログラムの中で前記優先度の低いプログラムのプロセス空間を破棄して前記メモリ空間上に空き領域を作り、該空き領域に、起動する前記プログラムのプロセス空間を新たに確保し、新たに確保した前記プロセス空間に、起動する前記プログラムを読み込む管理手段とを有している。
【００１２】
したがって、本発明によれば、記憶手段のメモリ空間上にプロセス空間の保持されていないプログラムを起動するとき、メモリ空間に十分な空き領域が無ければ、管理手段は、優先度の高いプログラムのプロセス空間を残し、優先度の低いプログラムのプロセス空間から先に破棄するので、優先度の高いプログラムを再び起動するときの起動時間が確実に短縮される。
【００１３】
また、前記管理手段は、過去の起動回数から、使用頻度の高いプログラムの前記優先度を高くすることとしてもよい。また、前記管理手段は、過去の起動順序から、次に起動される可能性の高いプログラムの前記優先度を高くすることとしてもよい。
【発明の効果】
【００１４】
本発明によれば、メモリ空間上にプロセス空間の保持されていないプログラムを起動するとき、メモリ空間に十分な空き領域が無ければ、優先度の高いプログラムのプロセス空間を残し、優先度の低いプログラムのプロセス空間から先に破棄するので、優先度の高いプログラムを再び起動するときの起動時間が確実に短縮され、ユーザの利便性が高まる。
【発明を実施するための最良の形態】
【００１５】
本発明の一実施形態について図面を参照して詳細に説明する。
【００１６】
図１を参照すると、本実施形態の情報処理装置１０は、二次記憶装置１１、管理部１２、および記憶部１３を有している。
【００１７】
二次記憶装置１１は、予め各種アプリケーションのプログラムを記録している。
【００１８】
記憶部１２は、管理部１３により管理され、プログラムを実行するときにプロセス空間として利用されるメモリ空間を有している。
【００１９】
管理部１３は、ユーザの操作または他のアプリケーションからの要求などにより、二次記憶装置１１に記録されているプログラムを起動して実行し、または終了する。管理部１３は、プログラムを起動するとき、そのプログラムのためのプロセス空間を確保し、二次記憶装置１１からプロセス空間上にプログラムを読み込み、プロセス空間上のデータ領域を初期化した後にプログラムの実行を開始する。そして、管理部１３は、プログラムを終了するとき、プロセス空間を保持したままの状態としておき、そのプログラムを再び起動するときには、プロセス空間の確保およびプログラムの読み込みを省略する。
【００２０】
プロセス空間の保持とは、プロセス空間内のプログラム領域をそのままプログラムが記録された状態で残し、そのプログラムで使用していたデータ領域を確保しておくことをいう。データ領域については、その領域が確保されていればよく、その内容については、そのまま残しても、残さなくてもよい。
【００２１】
また、管理部１３は、過去に実行した各プログラムの使用頻度を優先度として管理しており、新たなプログラムを起動するとき、そのプログラムのプロセス空間を確保するだけの空き領域がなければ、実行されていないプログラムの中で使用頻度（優先度）の低いもののプロセス空間を破棄して空き領域を作る。
【００２２】
図２を参照すると、管理部１３は、優先度管理部２１、プロセス空間決定部２２、プログラム読み込み部２３、プログラム実行部２４を有している。
【００２３】
優先度管理部２１は、各プログラムの使用頻度を管理する。
【００２４】
プロセス空間決定部２２は、プログラムを起動するとき、そのプログラムに用いるプロセス空間を決定する。記憶部１２のメモリ空間上に空き領域があるか否か、および優先度管理部２１で管理されている各プログラムの使用頻度により、プロセス空間決定部２２の処理は異なる。
【００２５】
プログラム読み込み部２３は、プロセス空間決定部２２が新たなプロセス空間を確保した場合に、そのプロセス空間にプログラムを読み込む。
【００２６】
プログラム実行部２４は、プロセス空間上のプログラムにおける初期化処理を行った後にメインの処理を実行する。
【００２７】
図３を参照すると、プログラムを起動するとき、管理部１３のプロセス空間決定部２２は、まずステップ１０１にて、そのプログラムについてのプロセス空間が記憶部１２のメモリ空間上に保持されているか否か判定する。
【００２８】
プロセス空間が保持されていれば、プロセス空間決定部２２は、ステップ１０２にて、そのプロセス空間を復活させる。図４は、管理部がプログラムを復活させるときの処理の概略を示す図である。図４では、プロセス空間の保持されているプログラムＡを再度起動する場合が例示されている。図４中で、「プログラム」と示された領域は実行中のプログラムのプロセス空間を示し、「プロセス空間」と示された領域は、一旦実行された後に終了されたプログラムのために保持されているプロセス空間を示す。また、プログラムＡのプロセス空間がＭＡ、プログラムＢのプロセス空間がＭＢ、プログラムＣのプロセス空間がＭＣと示されている。図４を参照すると、プロセス空間決定部２２は、（ｂ）に示されているように記憶部１２のメモリ空間上に保持しておいたプロセス空間（ＭＡ）を、（ａ）に示されているように復活させることにより、プログラムＡのプロセス空間を確保している。
【００２９】
一方、プロセス空間が保持されていなれば、プロセス空間決定部２２は、ステップ１０３にて、起動するプログラムのプロセス空間を確保するだけの空き領域がメモリ空間上にあるか否か判定する。
【００３０】
空き領域があれば、プロセス空間決定部２２は、ステップ１０４にて、その空き領域に新たなプログラムのプロセス空間を確保する。一方、空き領域が無ければ、プロセス空間決定部２２は、ステップ１０５にて、優先度管理部２１にて管理されている情報を用いて、実行中でないプログラムの中で使用頻度の低いもののために保持されているプロセス空間を破棄して空き領域を作る。そして、プロセス空間決定部２２は、ステップ１０４にて、新たなプログラムのためのプロセス空間を確保する。
【００３１】
優先度管理部２１は、一旦実行したプログラムの使用頻度をこの管理テーブルを用いて管理している。図５を参照すると、各プログラムＡ〜Ｅの使用頻度が示されている。ここでは、一例として、使用頻度が「大」、「中」、「小」の３段階で示されている。プログラムの使用頻度は、例えば所定時間内の起動回数により分類すればよい。なお、本発明において使用頻度の粒度は任意である。
【００３２】
図６において、「プログラム」、「プロセス空間」、およびＭＡ〜ＭＣの表示は図４におけるものと同じ意味である。
【００３３】
ここでは、図６（ａ）に示されたように、プログラムＤが実行中であり、また実行中でないプログラムＡ〜Ｃのためにプロセス空間ＭＡ〜ＭＣが保持されているとする。この状態でプログラムＥを起動する要求が生じると、プロセス空間管理部２２は、図５の使用頻度管理テーブルを参照し、プロセス空間を破棄するプログラムを決定する。図５では、実行中でないプログラムＡ〜Ｃの中でプログラムＣの使用頻度が最も低いので、プロセス空間決定部２２は、プログラムＣのプロセス空間を破棄して空き領域を作り、その空き領域にプログラムＥのプロセス空間を確保する。なお、プログラムＣのプロセス空間を破棄するだけではプログラムＥのプロセス空間を確保できない場合、プロセス空間決定部２２は、必要な空き領域を確保できるまで優先度の低い順にプロセス空間の破棄を繰り返す。
【００３４】
次のステップ１０６にて、プログラム読み込み部２３は、二次記憶装置１１からプロセス空間上にプログラムを読み込む。図７は、管理部が二次記憶装置からプログラムを読み込むときの処理の概略を示す図である。図７では、プロセス空間に保持されていないプログラムＡを起動する場合が例示されている。図７中で、「プログラム」、「プロセス空間」、ＭＡ〜ＭＣの表示は図４におけるものと同じ意味である。図７を参照すると、管理部１３のプログラム読み込み部２３は、二次記憶装置１１から記憶部１２のメモリ空間にプログラムを読み込んでいる。
【００３５】
ステップ１０２またはステップ１０６の処理の後、管理部１３のプログラム実行部２４は、ステップ１０７にて、プログラムの初期化処理を行い、データ領域を初期化する。次に、は、ステップ１０８にて、プログラムの実行を開始する。次に、プログラム実行部２４は、ステップ１０９にて、プログラムの使用頻度を更新する。
【００３６】
なお、管理部１３のプログラム決定部２２は、プログラムを終了するとき、その実行を終わらせた後もプロセス空間を破棄することなく保持する。図８は、管理部がプロセス空間を保持するときの処理の概略を示す図である。図８では、プログラムＡを終了する場合が例示されている。図８中で、「プログラム」、「プロセス空間」、ＭＡ〜ＭＣの表示は図４におけるものと同じ意味である。図８を参照すると、（ａ）に示されているように、実行中のプログラムＡを終了するとき、管理部１３は、記憶部１１のメモリ空間上のプロセス空間ＭＡを（ｂ）に示されているように保持する。
【００３７】
したがって、本実施形態の情報処理装置によれば、記憶部１２のメモリ空間上にプロセス空間の保持されていないプログラムを起動するとき、メモリ空間に十分な空き領域が無ければ、管理部１３のプロセス空間決定部２２は、優先度管理部２１にて得られる使用頻度に基づき、使用頻度の高いプログラムのプロセス空間を残し、使用頻度の低いプログラムのプロセス空間から先に破棄するので、使用頻度の高いプログラムを再び起動するとき、プロセス空間決定部２２がプロセス空間を確保してプログラム読み込み部２３がプログラムをそのプロセス空間に読み込む処理が省略され、起動時間が確実に短縮され、ユーザーの利便性が高まる。
【００３８】
なお、本実施形態では、管理部１３は、破棄するプロセス空間を決定するときの基準となる優先度としてプログラムの使用頻度を用いたが、本発明はそれに限定されない。管理部１３は、例えば、過去のプログラム起動順序のパターンから次に起動される可能性が高いプログラムを求め、その優先度を高く設定すればよい。プログラム相互の関連性、各プログラムの使用目的、ユーザーの習慣などにより、プログラム起動順序には、ある程度の規則性ができ、過去のパターンからそれを求めることができる場合がある。
【００３９】
これによれば、起動される可能性の高いプログラムのプロセス空間がメモリ空間上に保持されるので、起動時間が短縮される可能性が高まる。
【図面の簡単な説明】
【００４０】
【図１】本発明の一実施形態の情報処理装置の構成を示すブロック図である。
【図２】図１に示した管理部の構成を示すブロック図である。
【図３】図１に示された管理部のプログラム起動時における動作を示すフローチャートである。
【図４】管理部がプログラムを復活させるときの処理の概略を示す図である。
【図５】使用頻度管理テーブルの内容の一例を示す図である。
【図６】管理部が図５の使用頻度に従ってプロセス空間を破棄して空き領域を作るときの処理の概略を示す図である。
【図７】管理部が二次記憶装置からプログラムを読み込むときの処理の概略を示す図である。
【図８】管理部がプロセス空間を保持するときの処理の概略を示す図である。
【図９】従来の情報処理装置がプログラムを起動および終了するときの動作を示す図である。
【符号の説明】
【００４１】
１０    情報処理装置
１１    二次記憶装置
１２    管理部
１３    記憶部
２１    優先度管理部
２２    プロセス空間決定部
２３    プログラム読み込み部
２４    プログラム実行部
１０１〜１０９    ステップ
【図１】
2005301801.tif 000003
【図２】
2005301801.tif 000004
【図３】
2005301801.tif 000005
【図４】
2005301801.tif 000006
【図５】
2005301801.tif 000007
【図６】
2005301801.tif 000008
【図７】
2005301801.tif 000009
【図８】
2005301801.tif 000010
【図９】
2005301801.tif 000011