(57)【要約】 【課題】  種類のアプリケーションを同時に起動するためのメモリ管理処理を実行することができる情報処理装置およびメモリ管理方法を提供することを目的とする。【解決手段】  Ｊａｖａアプリケーションであるアプリケーション１０１が実行中に、アプリケーション１０１がフラッシュデータであるアプリケーション１０６を起動させる処理が行われると、フラッシュプレイヤーであるネイティブソフト１０２は、ネイティブソフト１０２のためのメモリ領域から所定のメモリ領域をメモリ管理部１１０に確保させる。そして、確保されたメモリ領域を用いてネイティブソフト１０７は、アプリケーション１０６を起動させる。【選択図】  図１
2010102513.tif 000002
【特許請求の範囲】
【請求項１】
第1の機能を実行する第１のプログラムと、
第2の機能を実行する第２のプログラムと、
前記第１のプログラムおよび前記第２のプログラムの動作を実行するためのメモリ領域を有するメモリと、
前記第１のプログラムまたは前記第２のプログラムが動作するための所定のメモリ領域を前記メモリから確保するメモリ管理手段と、
を備え、
前記メモリ管理手段は、前記第１のプログラムが動作処理中に、前記第２のプログラムを起動すると、前記第２のプログラムのためのメモリ領域を、前記第１のプログラムのためのメモリ領域から確保することを特徴とする情報処理装置。
【請求項２】
前記第１のプログラムが動作終了すると、前記第２のプログラムの動作を終了させるアプリケーション管理手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２のプログラムが動作する際には、前記第１のプログラムのセキュリティポリシーを満たしているか否かを判断するセキュリティポリシー判断手段と、を備え、
前記セキュリティポリシー判断手段による判断結果にしたがって、セキュリティポリシーを満たしていないと判断された場合には、前記第２のプログラムは、その処理を停止することを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項４】
第１の機能を実行する第１のプログラムおよび第２の機能を実行する第２のプログラムの動作を実行するためのメモリ領域を有するメモリを備える情報処理装置のメモリ管理方法において、
前記第１のプログラムが動作するための所定のメモリ領域を前記メモリから確保する第１の確保ステップと、
前記第１のプログラムが動作処理中に、前記第２のプログラムを起動すると、前記第２のプログラムのためのメモリ領域を、前記第１のプログラムのためのメモリ領域から確保する第２の確保ステップとを備えるメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションを実行する情報処理装置およびそのアプリケーションのためのメモリ管理方法に関する。
【背景技術】
【０００２】
一般にアプリケーションが起動する場合、メモリ管理部がアプリケーションを展開するためのメモリ領域をメモリ上に確保することが行われている。例えば、特許文献１に記載されている技術においては、メモリ確保部は、アプリケーションからメモリの確保要求を受けると、メモリの要求量確保可能かチェックし、可能であれば確保する処理が記載されている。
【特許文献１】特開２００６−１０７１９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述背景技術に記載の発明においては、一つのアプリケーションが起動した場合を想定しているが、実際には、２種類のアプリケーションを同時に実行しようとする場合が考えられる。すなわち、アプリケーションＡが起動する場合には、その実行環境であるネイティブソフトＡがメモリ上にロードされる。そして、アプリケーションＡからの要求によりネイティブソフトＢがメモリ上にロードされる。ネイティブソフトＢは、ネイティブソフトＡが確保しているメモリ領域とは別のメモリ領域を確保するのが一般的である。
【０００４】
しかしながら、メモリの残容量が少ない場合、ネイティブソフトＢのための記憶容量を確保することができずアプリケーションＢが起動することができない場合があり得る。また、別の方法として、アプリケーションＢを起動するために、アプリケーションＡを終了させることにより、アプリケーションＢのためのメモリ領域を開放する必要があった。
【０００５】
したがって、メモリ容量によっては、２種類のアプリケーションを同時に起動いさせることができず、大変使い勝手の悪いものであった。
【０００６】
そこで、上述の課題を解決するために、本発明は、２種類のアプリケーションを同時に起動するためのメモリ管理処理を実行することができる情報処理装置およびメモリ管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するために、本発明の情報処理装置は、第1の機能を実行する第１のプログラムと、第2の機能を実行する第２のプログラムと、前記第１のプログラムおよび前記第２のプログラムの動作を実行するためのメモリ領域を有するメモリと、前記第１のプログラムまたは前記第２のプログラムが動作するための所定のメモリ領域を前記メモリから確保するメモリ管理手段と、を備え、前記メモリ管理手段は、前記第１のプログラムが動作処理中に、前記第２のプログラムを起動すると、前記第２のプログラムのためのメモリ領域を、前記第１のプログラムのためのメモリ領域から確保するように構成されている。
【０００８】
また、本発明のメモリ管理方法は、第１の機能を実行する第１のプログラムおよび第２の機能を実行する第２のプログラムの動作を実行するためのメモリ領域を有するメモリを備える情報処理装置のメモリ管理方法において、前記第１のプログラムが動作するための所定のメモリ領域を前記メモリから確保する第１の確保ステップと、前記第１のプログラムが動作処理中に、前記第２のプログラムを起動すると、前記第２のプログラムのためのメモリ領域を、前記第１のプログラムのためのメモリ領域から確保する第２の確保ステップとを備えている。
【０００９】
この発明によれば、第１のプログラムが動作処理中に、第２のプログラムを起動すると、第２のプログラムのためのメモリ領域を、第１のプログラムのためのメモリ領域から確保することができる。これにより、第１のプログラム、第２のプログラムなどの複数のアプリケーションが起動しようとした場合において、メモリの空き領域が不足していることによりアプリケーションの起動ができないといったことを防止することができ、確実な第２のプログラムの起動を実現することができる。
【００１０】
また、本発明の情報処理装置は、前記第１のプログラムが動作終了すると、前記第２のプログラムの動作を終了させるアプリケーション管理手段をさらに備えることが好ましい。
【００１１】
この発明によれば、第１のプログラムが動作終了すると、第２のプログラムの動作を終了させることができ、メモリ領域を第２のプログラム１０６のために占有させることがなく、メモリの使用効率を高めることができる。
【００１２】
また、本発明の情報処理装置は、前記第２のプログラムが動作する際には、前記第１のプログラムのセキュリティポリシーを満たしているか否かを判断するセキュリティポリシー判断手段と、を備え、前記セキュリティポリシー判断手段による判断結果にしたがって、セキュリティポリシーを満たしていないと判断された場合には、前記第２のプログラムは、その処理を停止することが好ましい。
【００１３】
この発明によれば、判断結果にしたがって、第２のプログラムがセキュリティポリシーを満たしていないと判断された場合には、第２のプログラムは、その処理を停止することができる。よって、セキュリティポリシーを満たしていないアプリケーションの起動を防止することができる。特に、アプリケーション１０１の指示によりアプリケーション１０６が起動する際には、アプリケーション１０６は、アプリケーション１０１のセキュリティポリシーを満たして動作することが要求される。この発明によれば、第１のプログラムのセキュリティポリシーに反した第２のプログラムの実行を未然に防ぐことができる。
【発明の効果】
【００１４】
本発明は、複数のアプリケーションが起動しようとした場合において、メモリの空き領域が不足していることによりいずれかのアプリケーションが起動できないといったことを防止することができ、確実なアプリケーションの起動を実現することができる。また、セキュリティポリシーの異なる複数のアプリケーションを１つのセキュリティポリシーに従って動作することができる。
【発明を実施するための最良の形態】
【００１５】
添付図面を参照しながら本発明の実施形態を説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
【００１６】
図１は、本実施形態の移動機１００の機能構成を示すブロック図である。図１に示されるように、移動機１００は、アプリケーション１０１（アプリケーションＡ）、ネイティブソフト１０２（ネイティブソフトＡ：動作プログラム１０３、メモリ管理プログラム１０４、セキュリティポリシー管理プログラム１０５（セキュリティポリシー判断手段）を含む）、アプリケーション１０６（アプリケーションＢ）、ネイティブソフト１０７（ネイティブソフトＢ（アプリケーション管理手段）：動作プログラム１０８、メモリ管理プログラム１０９を含む）、メモリ管理部１１０（メモリ管理手段）、システムメモリ１１１を含んで構成されている。以降必要に応じて、これらアプリケーション１０１、ネイティブソフト１０２を合わせて第１のプログラム、アプリケーション１０６およびネイティブソフト１０７を合わせて第２のプログラムと称する。このように構成されている移動機１００は図２に示されるハードウェア構成により実現される。
【００１７】
図２は、移動機１００のハードウェア構成図である。図１に示される移動機１００は、物理的には、図２に示すように、ＣＰＵ１１、主記憶装置であるＲＡＭ１２及びＲＯＭ１３、入力デバイスであるキーボード及びマウス等の入力装置１４、ディスプレイ等の出力装置１５、ネットワークカード等のデータ送受信デバイスである通信モジュール１６、ハードディスク等の補助記憶装置１７などを含むコンピュータシステムとして構成されている。図１において説明した各機能は、図２に示すＣＰＵ１１、ＲＡＭ１２等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、ＣＰＵ１１の制御のもとで入力装置１４、出力装置１５、通信モジュール１６を動作させるとともに、ＲＡＭ１２や補助記憶装置１７におけるデータの読み出し及び書き込みを行うことで実現される。以下、図１に示す機能ブロックに基づいて、各機能ブロックを説明する。
【００１８】
アプリケーション１０１は、所定の機能を実行するためのアプリケーションであって、例えば、Ｊａｖａ環境で実行されるＪａｖａアプリケーションである。なお、このアプリケーション１０１は、アプリケーション１０６などのアプリケーション１０１により実行されるアプリケーションにおいて必要とされるメモリ領域を初期値として保持している。なお、アプリケーション１０１とアプリケーション１０６とは同じソフトウエア会社が作成していることを前提としており、アプリケーション１０１に必要とするメモリ領域を保持しておくことに意義がある。例えば、上述したとおり、アプリケーション１０１は、ゲームアプリケーションであり、アプリケーション１０６は、そのゲーム上で動作するフラッシュデータである場合に、ゲームアプリケーション側にフラッシュデータが必要とするメモリ領域を保持しておくことで、確実なフラッシュデータの動作を実行できる。
【００１９】
そして、後述するメモリ管理プログラム１０４およびメモリ管理部１１０は、このアプリケーション１０１に保持されている初期値（メモリ領域）を用いてシステムメモリ１１１内においてメモリ領域を確保することができる。
【００２０】
ネイティブソフト１０２は、アプリケーション１０１を実行させるための実行環境を提供するプラットフォーム（アプリケーションまたはプログラミング言語）であって、例えば、Ｊａｖａ実行環境である。このネイティブソフト１０２は、動作プログラム１０３、メモリ管理プログラム１０４、セキュリティポリシー管理プログラム１０５を備えている。以下、さらに説明する。
【００２１】
動作プログラム１０３は、アプリケーション１０１を動作させるためのプログラムである。
【００２２】
メモリ管理プログラム１０４は、アプリケーション１０１のメモリ管理を行う部分であり、具体的には、アプリケーション１０１が使用しているシステムメモリ１１１のメモリ領域を管理するプログラムである。すなわち、メモリ管理プログラム１０４は、アプリケーション１０１の使用領域の不足を判断し、不足していると判断する場合には、メモリ管理部１１０に対して、システムメモリ１１１においてネイティブソフト１０２のために確保されているメモリ領域から不足分を充当するために新たなメモリ領域を確保するように指示するものである。
【００２３】
セキュリティポリシー管理プログラム１０５は、ネイティブソフト１０２のセキュリティポリシーを管理するプログラムであって、具体的には、通信が発生した場合のアクセス許可となるあて先を記憶し、アクセスの可否を判断し、また、ネイティブソフト１０２がアクセス可能な音楽などを再生する際における音量を記憶しておき、音量を必要以上に大きくしないようにする部分である。
【００２４】
アプリケーション１０６は、所定の機能を実行するためのアプリケーションであって、例えばアドビ社製のフラッシュプレイヤーにより処理されるデータである。本実施形態では、このデータは、スクリプトで記載され、処理されるものであることからアプリケーションと称している。
【００２５】
ネイティブソフト１０７は、アプリケーション１０６を実行させるための実行環境を提供するためのアプリケーションであって、例えば、アドビ社製のフラッシュプレイヤーである。
【００２６】
動作プログラム１０８は、アプリケーション１０６（データ）を動作実行させるためのプログラムである。
【００２７】
メモリ管理プログラム１０９は、アプリケーション１０６のメモリの使用領域の不足を判断するものであり、不足していると判断されると、メモリ管理プログラム１０４（メモリ管理部１１０）に対してシステムメモリ１１１から必要なメモリ領域を確保するよう指示を出力する部分である。
【００２８】
メモリ管理部１１０は、ネイティブソフト１０２からの指示によりネイティブソフト１０２、ネイティブソフト１０７、アプリケーション１０１およびアプリケーション１０６が動作するためのメモリ領域を、システムメモリ１１１上に確保する処理を行う部分である。さらに詳しくは、メモリ管理部１１０は、ネイティブソフト１０２およびアプリケーション１０１のためのメモリ領域を確保する処理を行うとともに、ネイティブソフト１０２からアプリケーション１０６のためのメモリ領域を確保するよう指示を受けると、すでに確保したアプリケーション１０１のためのメモリ領域からネイティブソフト１０７およびアプリケーション１０６のためのメモリ領域を抽出して確保する処理を行う。
【００２９】
図３に、メモリ管理部１１０においてメモリ領域の管理のための説明図を示す。図３に示すとおり、このメモリ管理部１１０は、ネイティブソフト１０２、ネイティブソフト１０７、アプリケーション１０１およびアプリケーション１０６のために確保している確保領域を特定可能に記憶することによって管理している。図３の例では、ネイティブソフトＡであるネイティブソフト１０２の確保領域は、００００−３０００であり、アプリケーション１０１の確保領域は、０５００−１ＦＦＦとして管理されている。また、ネイティブソフトＢであるネイティブソフト１０７の確保領域は、２０００−３０００として管理され、そのネイティブソフト１０７の実行環境下で実行されるアプリケーション１０６の確保領域は２５００−２ＡＡＡで管理されている。
【００３０】
システムメモリ１１１は、アプリケーション１０１およびアプリケーション１０６が動作するためのメモリ領域を有するメモリである。
【００３１】
つぎに、このように構成された移動機１００の動作について説明する。図４は、移動機１００の動作を示すフローチャートである。
【００３２】
まず、ネイティブソフト１０２（ネイティブソフトＡ）およびアプリケーション１０１（アプリケーションＡ）を起動するためのシステムメモリ１１１におけるメモリ領域を確保するよう、例えばアプリケーションの管理を行うＯＳ（Operating System）によりメモリ管理部１１０に依頼が行われる（Ｓ１０１）。確保されるメモリ領域はネイティブソフトに応じて定められている。
【００３３】
そして、メモリ管理部１１０によりシステムメモリ１１１において所定のメモリ領域が確保され（Ｓ１０２）、ネイティブソフト１０２により、確保したメモリ領域を使用してアプリケーション１０１が実行される（Ｓ１０３）。
【００３４】
つぎに、アプリケーション１０１が動作実行中において、そのアプリケーション１０１の処理によりアプリケーション１０６を起動させるか否かが、アプリケーション１０１により判断される（Ｓ１０４）。ここで、アプリケーション１０６を実行させないと判断されると、アプリケーション１０１のみが動作実行することになる（Ｓ１０５）。
【００３５】
Ｓ１０４において、アプリケーション１０１（アプリケーションＡ）がアプリケーション１０６（アプリケーションＢ）を起動させたと判断されると、ネイティブソフト１０２により、アプリケーション１０１に応じて予め指定されたメモリ領域、すなわち、アプリケーション１０１に保持されている初期値として保持されているメモリ領域をシステムメモリ１１１内に確保するよう、メモリ管理部１１０に指示が出力される（Ｓ１０６）。そして、メモリ管理部１１０によりネイティブソフト１０２に割り当てたメモリ領域から、ネイティブソフト１０７（ネイティブソフトＢ）が使用することができるメモリ領域が確保される（Ｓ１０７）。
【００３６】
ネイティブソフト１０２により、割り当てられたメモリ領域が使用され、ネイティブソフト１０７が起動され（Ｓ１０８）、確保したメモリ領域を利用してネイティブソフト１０７によりアプリケーション１０６の実行が開始される（Ｓ１０９）。
【００３７】
ここでアプリケーション１０６が実行に必要とするメモリ領域が足りているか否かが、メモリ管理プログラム１０９により判断される（Ｓ１１０）。
【００３８】
ここでメモリ領域が足りていないと判断されると、ネイティブソフト１０７により、追加のメモリ領域を確保するようネイティブソフト１０２に指示が出力される（Ｓ１１１）。そして、ネイティブソフト１０２によりネイティブソフト１０７のためのメモリ領域をシステムメモリ１１１内に確保するように、メモリ管理部１１０に指示が出力される（Ｓ１１２）。メモリ管理部１１０では、ネイティブソフト１０２のために割り当てられたメモリ領域からネイティブソフト１０７が使用することができるメモリ領域がシステムメモリ１１１から確保される（Ｓ１１３）。アプリケーション１０６を実行することができるメモリ領域を確保することができるまでこれらＳ１１０からＳ１１２が繰り返し行われる。
【００３９】
また、Ｓ１１０において、アプリケーション１０６を実行するためのメモリ領域が足りていると（Ｓ１１０：ＹＥＳ）、ネイティブソフト１０７によりアプリケーション１０６が実行される（Ｓ１１４）。なお、ここではアプリケーション１０６の実行に際して、セキュリティポリシーのチェックが行われる。この詳細処理については後述する。
【００４０】
つぎに、アプリケーション１０６が実行処理されると、アプリケーション１０６の実行状態が判断される（Ｓ１１５）。ここでアプリケーション１０６が終了であると、ネイティブソフト１０７により判断されると、ネイティブソフト１０７から、そのネイティブソフト１０７のために確保したメモリ領域を開放するよう、ネイティブソフト１０２に指示が出力される（Ｓ１１６）。
【００４１】
その指示を受けると、ネイティブソフト１０２では、メモリ管理部１１０にメモリ領域の開放処理が指示され（Ｓ１１７）、そしてメモリ管理部１１０によりメモリ領域の開放処理が行われる（Ｓ１１８）。
【００４２】
また、Ｓ１１５において、アプリケーション１０６の実行が終了していないと、ネイティブソフト１０７により判断されると（Ｓ１０４：ＮＯ）、アプリケーション１０１の実行が終了しているか否かがネイティブソフト１０２により判断される（Ｓ１１９）。ここで、アプリケーション１０１の実行が終了していないと判断されると、Ｓ１１０にもどり、アプリケーション１０６の実行を継続するとともに、アプリケーション１０６のメモリ領域の不足、またはアプリケーション１０６の動作が終了しているかが継続して判断されることになる。
【００４３】
Ｓ１１９において、アプリケーション１０１の実行が終了すると、ネイティブソフト１０２からの指示に基づいて、メモリ管理部１１０により、アプリケーション１０６のためのメモリ領域の開放処理が行われると、アプリケーション１０１のためのメモリ領域の開放処理が行われる。具体的には、ネイティブソフト１０２により、メモリ管理部１１０に対してメモリ領域の開放処理の指示が出力される（Ｓ１２３）。そして、メモリ管理部１１０により、アプリケーション１０１のためのメモリ領域の解消処理が行われる（Ｓ１２４）。
【００４４】
このような処理により、システムメモリ１１１におけるアプリケーション１０１のためのメモリ領域からアプリケーション１０６のためのメモリ領域の確保処理が行われ、システムメモリ１１１を効率的に使用することができる。
【００４５】
つぎに、Ｓ１１４における詳細処理について説明する。図５は、Ｓ１１４におけるアプリケーション１０６を実行する際においてネイティブソフト１０２のセキュリティポリシーに合致した処理を行うときのフローチャートである。
【００４６】
まず、ネイティブソフト１０７において、アプリケーション１０６で実行される関数またはコマンドを解釈する（Ｓ２０１）。ここで解釈された関数またはコマンドに基づいてネイティブソフト１０２で処理させるものであったと、ネイティブソフト１０７において判断される場合には、ネイティブソフト１０７によりネイティブソフト１０２に当該関数またはコマンドに基づいた処理の依頼が行われる（Ｓ２０２）。
【００４７】
処理の依頼を受けたネイティブソフト１０２において、アプリケーション１０１を実行する際のセキュリティポリシー、すなわち予め定められたセキュリティポリシーを満たしているか否かが判断される（Ｓ２０３）。ここで、セキュリティポリシーを満たしていると判断されると、ネイティブソフト１０２により関数またはコマンドで指定された処理が実行される（Ｓ２０４）。ここでは、ネイティブソフト１０２において処理を実行するもののほか、アプリケーション１０１に処理内容を通知し、アプリケーション１０１に処理を実行させることも含む。そして、ネイティブソフト１０２により処理結果がネイティブソフト１０７に通知される（Ｓ２０５）。
【００４８】
また、Ｓ２０３において、ネイティブソフト１０２によりセキュリティポリシーがあっていないと判断されると（Ｓ２０３：ＮＯ）、ネイティブソフト１０７に対して、ネイティブソフト１０２によりエラー通知がなされる（Ｓ２０６）。
【００４９】
このような処理により、セキュリティポリシーのチェックが行われ、セキュリティポリシーに反した処理がなされることがなくなる。
【００５０】
つぎに、システムメモリ１１１においてメモリ領域の確保の具体例について説明する。図６は、システムメモリ１１１におけるメモリ領域の確保の状態遷移を示した模式図である。
【００５１】
図６（ａ）では、システムメモリ１１１においてネイティブソフト１０２のためのメモリ領域が確保され、そのメモリ領域からさらにアプリケーション１０１のためのメモリ領域が確保されている様子が示されている。その後、図６（ｂ）においては、アプリケーション１０６が起動されると、ネイティブソフト１０２によりアプリケーション１０１のためのメモリ領域が開放されるとともに、アプリケーション１０６のためのメモリ領域が確保される。そして、図６（ｃ）で示されるように、アプリケーション１０６が終了すると、そのメモリ領域が開放され、またアプリケーション１０１のためのメモリ領域が確保される。
【００５２】
つぎに、アプリケーション１０６の実行の度合いが、アプリケーション１０１より大きい場合のメモリ領域確保について説明する。図６（ｄ）に示されるように、ネイティブソフト１０２のメモリ領域において、アプリケーション１０１のメモリ領域を少なめに確保しておき（例えば、確保した全メモリ領域のうち１／３をアプリケーション１０１のためのメモリ領域とするなど）、ネイティブソフト１０７のためのメモリ領域を確実に確保しようとしてもよい。このように、アプリケーション１０１のためのメモリ領域を少なめに確保しておくことで、ネイティブソフト１０７のためのメモリ領域を確実に確保し、アプリケーション１０６の確実な実行を可能とするものである。なお、ネイティブソフト１０７のために確保されたメモリ領域から、アプリケーション１０６のためのメモリ領域が確保されることになる。
【００５３】
図６（ｅ）に示されるように、ネイティブソフト１０７が起動されると、ネイティブソフト１０２のために確保されたメモリ領域から、ネイティブソフト１０７のためにより多くのメモリ領域を確保することができる。そして、そのネイティブソフト１０７のためのメモリ領域からアプリケーション１０６のためのメモリ領域が確保される。
【００５４】
そして、図６（ｆ）に示されるように、アプリケーション１０６が終了すると、アプリケーション１０６のためのメモリ領域およびネイティブソフト１０７のためのメモリ領域が開放され、開放された後には、アプリケーション１０１のためのメモリ領域を確保することができる。
【００５５】
逆に、アプリケーション１０１とアプリケーション１０６との実行度合いが同等であり、そのつどメモリ領域の使用率が変わる場合には、図６（ｇ）に示されるように、予め定められた少量のメモリ領域をアプリケーション１０１のために使用させる。そして、図６（ｈ）に示されるように、ネイティブソフト１０７のためのメモリ領域を、ネイティブソフト１０２のためのメモリ領域から確保しておくことで、アプリケーション１０１とアプリケーション１０６とはバランスよくメモリ領域を確保することができる。このように小領域のメモリ領域を確保しておくことで、アプリケーションの起動および終了のたびに、そのメモリ領域の確保および開放を、小領域単位で行うことができ、図６（ｉ）に示されるように、使用状況に応じてメモリ領域の確保を行うことができる。
【００５６】
つぎに、このように構成された移動機１００の作用効果について説明する。移動機１００は、Ｊａｖａ実行環境を提供するプログラムであるネイティブソフト１０２およびＪａｖａで構成されたアプリケーション（ゲームアプリケーションなどのＪａｖａアプリケーション）から構成される第１のプログラムと、フラッシュなどを再生するフラッシュプレイヤーなどである第２のプログラムと、を備えている。また、これら第１のプログラム、第２のプログラムを実行するためのメモリ領域を備えるシステムメモリ１１１を備えている。なお、本実施形態では、第１のプログラム、第２のプログラムは、それぞれネイティブソフトおよびアプリケーションを含んだものとして説明したが、その構成に限るものではなく、一のプログラム（アプリケーションまたはネイティブソフト）が他方のプログラム（アプリケーションまたはネイティブソフト）のためのメモリ領域を確保するような構成であればよく、少なくともプログラムにはネイティブソフトを含んだものとしていれば良い。
【００５７】
そして、アプリケーション１０１の起動指示がユーザから受けると、ネイティブソフト１０２（Ｊａｖａ実行環境）のためのメモリ領域を、メモリ管理部１１０がシステムメモリ１１１から確保し、ネイティブソフト１０２は、確保したメモリ領域を用いてアプリケーション１０１を起動させる。
【００５８】
一方、アプリケーション１０１が実行中に、当該アプリケーション１０１がアプリケーション１０６を起動させる処理が行われると、ネイティブソフト１０２は、アプリケーション１０１に応じて定められたメモリ領域を、メモリ管理部１１０に確保させ、メモリ管理部１１０は、指定されたメモリ領域を確保する。そして、確保されたメモリ領域を用いてネイティブソフト１０７は、アプリケーション１０６を起動させる。
【００５９】
このような構成により、アプリケーション１０６およびネイティブソフト１０７が起動しようとした場合において、システムメモリ１１１における空き領域が不足していることにより起動ができないといったことを防止することができ、確実なアプリケーション１０６の起動を実現することができる。
【００６０】
また、本実施形態の移動機１００において、アプリケーション１０１が動作終了すると、そのネイティブソフト１０２は、アプリケーション１０６およびネイティブソフト１０７の動作を終了させる。これにより、システムメモリ１１１におけるメモリ領域をアプリケーション１０６、ネイティブソフト１０７のために占有させることがなく、メモリの使用効率を高めることができる。
【００６１】
また、本実施形態の移動機１００において、アプリケーション１０１およびネイティブソフト１０２が動作する際には、アプリケーション１０１およびネイティブソフト１０２のセキュリティポリシーを満たしているか否かをセキュリティポリシー管理プログラム１０５が判断し、アプリケーション１０６およびネイティブソフト１０７が動作する際には、アプリケーション１０１の両方のセキュリティポリシーを満たしているか否かを、セキュリティポリシー管理プログラム１０５判断する。そして、この判断結果にしたがって、セキュリティポリシーを満たしていないと判断された場合には、ネイティブソフト１０２は、それらアプリケーション１０１および１０６の起動を中止する。
【００６２】
これにより、セキュリティポリシーを満たしていないアプリケーションの起動を防止することができる。特に、本実施形態のように、アプリケーション１０１の指示によりアプリケーション１０６が起動する際には、アプリケーション１０６は、アプリケーション１０１のセキュリティポリシーを満たして動作することが要求される。本実施形態では、セキュリティポリシーに反したアプリケーションの実行を未然に防ぐことができる。
【図面の簡単な説明】
【００６３】
【図１】本実施形態の移動機１００の機能構成を示すブロック図である。
【図２】移動機１００のハードウェア構成図である。
【図３】メモリ管理部１１０におけるメモリ領域の管理のための説明図である。
【図４】移動機１００の動作を示すフローチャートである。
【図５】セキュリティポリシーに合致したアプリケーションの起動処理を行うときの移動機１００の動作を示すフローチャートである。
【図６】システムメモリ１１１におけるメモリ領域の確保の状態遷移を示した模式図である。
【符号の説明】
【００６４】
１００…移動機、１０１…アプリケーション、１０２…ネイティブソフト、１０３…動作プログラム、１０４…メモリ管理プログラム、１０５…セキュリティポリシー管理プログラム、１０６…アプリケーション、１０７…ネイティブソフト、１０８…動作プログラム、１０９…メモリ管理プログラム、１１０…メモリ管理部、１１１…システムメモリ。
【図１】
2010102513.tif 000003
【図２】
2010102513.tif 000004
【図３】
2010102513.tif 000005
【図４】
2010102513.tif 000006
【図５】
2010102513.tif 000007
【図６】
2010102513.tif 000008