(57)【要約】【課題】計算機システムにおいてページ割り当てを行う際に、プログラム（ページを要求する実行単位）の信頼性を判断することによって初期化処理を省略し、アロケート処理に要する時間を短縮する。【解決手段】計算機システムによっては、メモリをページ単位に管理し、要求に応じてページのアロケートを行う。ページが要求されたとき、信頼性判定部は信頼性判断基準に従って要求主が信頼できるかどうかの判定を行う。信頼できると判断したときは、ページを渡す際のページの初期化処理を省略することができ、ページ割り当て処理を高速化することが可能である。【選択図】図１
2005182470.tif 000002
【特許請求の範囲】
【請求項１】
メモリをページ単位で管理し、プログラムの要求に従ってメモリの確保・解放を行うメモリ割り当て装置であって、
予め与えられている判断基準に基づいてプログラムの信頼性を判断する信頼性判定部と、
プログラムに対して割り当てが可能なページであるフリーページを管理するフリーページプール部と、
前記フリーページプール部が管理しているフリーページを初期化する初期化処理部と、
プログラムからページ要求を受け取り、前記フリーページプール部よりフリーページを選択し、前記信頼性判定部に信頼性の判定を要求して判定結果を受け取り、信頼性なしと判定された場合に前記初期化処理部に選択したフリーページの初期化を要求し、前記プログラムに初期化したページを割り当てるページアロケータ部とを有するメモリ割り当て装置。
【請求項２】
前記ページアロケータ部は、信頼性ありと判定された場合に、前記初期化処理部に初期化を要求せずに、前記プログラムにページを割り当てることを特徴とする請求項１記載のメモリ割り当て装置。
【請求項３】
プログラムを格納する１つ以上の格納領域を持ち、信頼できるプログラムの格納領域を管理する領域照合部を備え、
前記信頼性判定部は、プログラムがページ要求する際に、前記ページ要求したプログラムが格納されている格納領域と前記領域照合部が管理している情報に基づき、信頼性を判定すること特徴とする請求項１に記載のメモリ割り当て装置。
【請求項４】
信頼できるプログラムの実行権限属性を管理するプログラム属性照合部を備え、
前記信頼性判定部は、プログラムがページ要求する際に、前記ページ要求したプログラムの属性と前記プログラム属性照合部が管理している情報に基づき、信頼性を判定することを特徴とする請求項１に記載のメモリ割り当て装置。
【請求項５】
システムがプログラムを一意に識別することが可能な識別子を持ち、システムが信頼できるプログラムの前記識別子を管理するプログラム識別子照合部を備え、
前記信頼性判定部は、プログラムがページ要求する際に、前記ページ要求したプログラムの識別子と前記プログラム識別子照合部が管理している情報に基づき、信頼性を判定することを特徴とする請求項１に記載のメモリ割り当て装置。
【請求項６】
信頼できるプログラム毎に証明書を持ち、プログラムの証明書の真偽判定を行う証明書照合部を備え、
前記信頼性判定部は、プログラムがページ要求する際に、前記証明書照合部が前記ページ要求したプログラムの証明書を判定した結果に基づき、信頼性を判定することを特徴とする請求項１に記載のメモリ割り当て装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムにおいて用いられるメモリ割り当て装置に関するものである。
【背景技術】
【０００２】
従来、メモリをページ単位に分割してメモリ管理を行っている計算機システムにおいて、プログラムはメモリを確保するために、オペレーティングシステムに対してページ割り当て処理を要求する。これをページ要求という。オペレーティングシステムは、ページ割り当て可能なページがどれかを管理しており、これら割り当て可能なページには、計算機システムが起動してから一度も使用されていないページや、プログラムがオペレーティングシステムに対して使用後に返却したページが含まれる。以後、前者を未使用ページ、後者を再利用可能ページということにする。ページ要求が発生した際、オペレーティングシステムはプログラムに対して再利用可能ページを割り当てた場合、プログラム間で流出してはいけないようなデータが流出してしまう恐れがあった。例えば、再利用可能ページには、直前のプログラムで使用したパスワード情報や個人情報、またはプログラムの内容そのものが含まれているので、第三者に当該データが流出すると悪用される可能性がある。データの流出を防ぐための手段として、オペレーティングシステムがページ割り当て処理を行う際に、当該ページを定数で初期化するという方法が考えられる。しかしこの方法では、初期化処理を行う分、ページ割り当て処理にかかる時間が増加してしまい、システム負荷の増大、プログラムの応答性能の低下等の問題を引き起こす。そこでＬｉｎｕｘオペレーティングシステムでは、ページ要求を受けた際に、当該ページにロードされるデータが予め決まっているか否かを判断することでページを初期化するか否かを決定する。また、ページの初期化処理をシステムの負荷が低いときにまとめて行っておくことによって、ページ割り当て処理の際にページの初期化処理を行わずにページ割り当てを可能にするという発明があった（特許文献１参照）。
【特許文献１】特開平１１−３２７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前記従来技術のように、システムの負荷が低いときにページの初期化処理を行ったとしても、ページ初期化が発生するほどシステムの処理量が増大する。そもそも、メモリを要求したプログラムが再利用ページを渡された際に当該ページのデータを盗み見ないという前提が成り立つならば、オペレーティングシステムはページの初期化処理を行う必要はないのだが、前記従来技術では、全てのプログラムがページを盗み見る可能性があるとして初期化処理を行っており、ページを盗み見る可能性のないプログラムにとって不必要なページ初期化処理が行われていた。このようにページ割り当ての際、ページ初期化処理は、プログラムの応答性能の低下やシステム全体の処理量の増大などを招くという要因の１つになっていた。また、ページを初期化することによってデータキャッシュのリプレースが頻繁に起こり、その後のプログラムの実行効率が低下してしまうという課題があった。
【０００４】
本発明は、前記従来の課題を解決するもので、不必要なページ初期化処理回数を減少させるページ割り当て装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
前記従来の課題を解決するために、本発明のメモリ割り当て装置は、予め与えられている判断基準に基づいてプログラムの信頼性を判断する信頼性判定部と、プログラムに対して割り当てが可能なページであるフリーページを管理するフリーページプール部と、前記フリーページプール部が管理しているフリーページを初期化する初期化処理部と、プログラムからページ要求を受け取り、前記フリーページプール部よりフリーページを選択し、前記信頼性判定部に信頼性の判定を要求して判定結果を受け取り、信頼性なしと判定された場合に前記初期化処理部に選択したフリーページの初期化を要求し、前記プログラムに初期化したページを割り当てるページアロケータ部とを有し、信頼性がないと判断したプログラムの場合のみ、メモリ割り当て時に初期化を行う。
【発明の効果】
【０００６】
本発明のメモリ割り当て装置により、信頼できるプログラムがページ要求を行った際にページを初期化する必要がなくなるので、オペレーティングシステムがページ割り当て処理中にページ初期化を行う回数が減少する。また、信頼性があると判断されたプログラムの実行速度の向上や、ページ初期化処理を行う際に発生する大量のデータキャッシュのリプレースを抑え、その後の処理のキャッシュミス発生率を増大させないという効果や、オペレーティングシステムの処理量の減少による実行効率の向上、消費電力削減という効果がある。
【発明を実施するための最良の形態】
【０００７】
以下本発明の実施の形態について、図面を参照しながら説明する。
【０００８】
（実施の形態１）
本発明の実施の形態１について図１、図２を用いて説明する。
【０００９】
図１は、実施の形態１におけるメモリ割り当て装置の構成を示すブロック図である。
【００１０】
メモリをページ単位に分割して管理しており、ページ単位でメモリの確保・解放を行うことができる計算機システムにおいて、本発明のメモリ割り当て装置は、メモリの確保のためにページ要求を発生するプログラム１００と、プログラム１００が実行される領域が予め信頼性あると登録されているか否かを判定する領域照合部１０５と、プログラム１００の信頼性を領域照合部１０５に問い合わせ、予め登録されている場合は信頼性あり、それ以外は信頼性なしと判断する信頼性判定部１０３と、プログラム１００に対して新規に割り当てることができる、使用可能なページ（未使用ページもしくは再利用可能ページ）渡すことが可能なページを管理するフリーページプール部１０４と、フリーページプール部１０４の未使用ページもしくは再利用可能ページを初期化する初期化処理部１０１と、プログラム１００がページ要求を発生した際に、ページ要求を受け取り、フリーページプール部１０４よりフリーページを選択し、信頼性判定部１０３に選択したフリーページの信頼性判定を要求する信頼性要求を出し、信頼性判定部１０３から信頼性ありと判定された場合はそのままプログラム１００にフリーページを割り当て、信頼性なしと判定された場合は初期化処理部１０１に選択したフリーページの初期化を要求し、プログラム１００に初期化したページを割り当てるページアロケータ部１０２とを備えている。
【００１１】
初期化処理部１０１は、ページアロケータ部１０２からの初期化要求を受け取り、要求されたページの初期化処理を行う。一例として、ページ全体に対して、ある定数値を書き込むことで初期化する。
【００１２】
領域照合部１０５は、開始番地、終了番地、信頼性あり・なしの３つのパラメタによって信頼できるプログラムが格納されている領域を予め登録しており、信頼性判定部１０３から照合要求とプログラム１００が格納されている領域の開始番地が通知されると、領域照合部１０５に登録されている領域内から実行されていたものなのか否かを照合する。照合結果は信頼性判定部１０３に送られる。なお、ここでは、開始番地と終了番地と信頼性情報を保持するとしたが、それだけに限らず、終了番地なしに開始番地のみで照合を行ってもよい。また、信頼性ありの領域のみを登録し、登録されていない領域は信頼性ないものとして照合を行ってもよい。
【００１３】
信頼性判定部１０３は、ページアロケータ部１０２から信頼性判定要求を受け、領域照合部１０５に対してプログラム１００が格納されている領域の開始番地と領域照合要求とを発行し、領域照合部１０５にプログラム１００が登録されているか否かを問い合わせる。信頼性判定部１０３は、領域照合部１０５から登録されていると通知されると信頼性あり、登録されていないと通知されると信頼性なしと判定し、ページアロケータ部１０２に信頼性判定結果を通知する。
【００１４】
フリーページプール部１０４は、どのプログラムからも使用されていないページ（２００、２０１、２０２）を格納しており、ページ割り当て時にページアロケータ部１０２はフリーページプール部１０４からページを取得する。また、プログラムからページの返却があったときに、ページアロケータ部１０２経由で、本フリーページプール部１０４にページが返却される。
【００１５】
ページアロケータ部１０２は、プログラム１００に割り当てるページをフリーページプール部１０４より選択し、信頼性判定部１０３に信頼性判定要求を出す。信頼性判定部１０３が信頼性ありと判断した場合は、選択したページをそのままプログラム１００に通知する。信頼性判定部１０３が信頼なしと判断した場合は、選択したページを初期化処理部１０１に渡し初期化処理を行い、プログラム１００に通知する。
【００１６】
なお、ここでは、プログラム１００のみ記載したが、複数個のプログラムを有してよく、複数個のプログラムが同時に起動することも可能である。また、同時に複数個のプログラムからページ要求を行ってもよい。
【００１７】
次に、本実施の形態における処理手順を、図２を用いて説明する。
【００１８】
まず、プログラム１００が、メモリ確保つまりページ取得のために、ページ割り当てを要求するページ要求をページアロケータ部１０２に発行する（ステップＳ１１）。
【００１９】
次に、ページアロケータ部１０２が、プログラム１００からページ要求を受け取り、フリーページプール部１０４よりフリーページを選択して取得する（ステップＳ１２）。
【００２０】
ページアロケータ部１０２は、信頼性判定部１０３にプログラム１００の信頼性判定を要求する信頼性判定要求とプログラム１００が格納されている開始物理番地とを発行する（ステップＳ１３）。
【００２１】
信頼性判定部１０３は、信頼性判定要求とプログラム１００が格納されている開始物理番地とを受け取り、領域照合部１０５に対して領域照合要求とプログラム１００が格納されている開始物理番地とを通知し、プログラム１００が登録されている領域から実行されているのかどうかを問い合わせ、領域照合部１０５から結果を受け取る（ステップＳ１４）。
【００２２】
信頼性判定部１０３は、領域照合部１０５から受け取った結果を基に信頼性を判定する（ステップＳ１５）。プログラム１００が格納されている領域が領域照合部１０５に登録されている場合は信頼性があると判定し（ステップＳ１５が信頼性あり）、ページアロケータ部１０２に判定結果を通知し、ページアロケータ部１０２は、ステップＳ１２にて取得したページをそのままプログラム１００に割り当てる（ステップＳ１７）。一方、プログラム１００が格納されている領域が領域照合部１０５に登録されていない場合は信頼性がないと判定し（ステップＳ１５が信頼性なし）、選択したフリーページの初期化を初期化処理部１０１に要求し、初期化処理部１０１が初期化を行い（ステップＳ１６）、ページアロケータ部１０２は、初期化処理部１０１から受け取った初期化済みのページを、プログラム１００に割り当てる（ステップＳ１７）。
【００２３】
本発明の実施の形態１における領域照合部１０５の照合条件の一例を具体的に説明する。
【００２４】
第一の例としては、プログラムがどこのパーティションから実行されたのかによって識別を行う方法が考えられる。例えば組み込み機器では、製品にプリインストールされているプログラムはリードオンリーのファイルシステム内に格納されていることがほとんどである。プリインストールされているプログラムは信頼できるプログラムであると判断することが可能であり、プリインストールされているプログラムが格納されているパーティションから実行されるものは信頼できる、それ以外のパーティションから実行されるものは信頼できないと判定することができる。
【００２５】
第二の例としては、工場出荷時の製品に元々取り付けられている記憶媒体は、マッピングされている物理アドレスにより、オペレーティングシステムで特定することが可能である。これを利用して、元々工場出荷時に構成されている記憶媒体から実行されるプログラムに関しては信頼できる、それ以外の、例えばネットワーク内やストレージデバイス内から実行されるプログラムに関しては信頼できないと判定することができる。
【００２６】
以上により、プログラムの格納領域に基づいて信頼性の判定を行い、信頼性があると判断した場合、メモリ割り当て時の初期化が不要となり、割り当て処理を高速化が可能となり、オペレーティングシステムにおける実行効率を向上できる。
【００２７】
（実施の形態２）
本発明の実施の形態２について図３、図４を用いて説明する。
【００２８】
図３は、実施の形態２におけるメモリ割り当て装置の構成を示すブロック図である。
【００２９】
メモリをページ単位に分割して管理しており、ページ単位でメモリの確保・解放を行うことができる計算機システムにおいて、本発明のメモリ割り当て装置は、メモリ確保のためにページ要求を発行するプログラム１００と、信頼できるプログラムの属性が登録されていたか否かを判定するプログラム属性照合部１０７と、プログラム１００の信頼性をプログラム属性照合部１０７に問い合わせ、予め登録されている場合は信頼性あり、それ以外は信頼性なしと判断する信頼性判定部１１３と、プログラム１００に対して新規に割り当てることができる、使用可能なページ（未使用ページもしくは再利用可能ページ）を渡すことが可能なページを管理するフリーページプール部１０４と、フリーページプール部１０４の未使用ページもしくは再利用可能ページの内容を初期化する初期化処理部１０１と、プログラム１００がページ要求を発行した際に、ページ要求を受け取り、フリーページプール部１０４よりフリーページを選択し、信頼性判定部１１３に選択したフリーページの信頼性判定を要求する信頼性判定要求を出し、信頼性判定部１１３から信頼性ありと判定された場合はプログラム１００にフリーページを割り当て、信頼性なしと判定された場合は初期化処理部１０１によってページを初期化させてプログラム１００にページを割り当てるページアロケータ部１０２とを備えている。
【００３０】
初期化処理部１０１は、ページアロケータ部１０２からの初期化要求を受け取り、要求されたページの初期化処理を行う。一例として、ページ全体に対して、ある定数値を書き込むことで初期化する。
【００３１】
プログラム属性照合部１０７は、属性と信頼性あり・なしの２つのパラメタによって信頼できるプログラムの属性を予め登録しており、信頼性判定部１１３から照合要求とプログラム１００の属性を表すプログラム属性が通知されると、当該属性値がプログラム属性照合部１０７に登録されているか否かを照合する。照合結果は信頼性判定部１１３に送られる。一例として、プログラム属性値として、ＵＮＩＸ（Ｒ）のユーザＩＤやグループＩＤを採用することもできる。なお、ここでは、属性と信頼性情報を保持するとしたが、それだけに限らず、信頼性ありの属性のみを登録し、登録されていない属性は信頼性ないものとして照合を行ってもよい。
【００３２】
信頼性判定部１１３は、ページアロケータ部１０２から信頼性判定要求を受け、プログラム属性照合部１０７に対してプログラム１００の属性と属性照合要求とを発行し、プログラム属性照合部１０７にプログラム１００の属性が登録されているか否かを問い合わせる。信頼性判定部１１３は、プログラム属性照合部１０７から登録されていると通知されると信頼性あり、登録されていないと通知されると信頼性なしと判定し、ページアロケータ部１０２に信頼性判定結果を通知する。
【００３３】
フリーページプール部１０４は、どのプログラムからも使用されていないページ（２００、２０１、２０２）を格納しており、ページ割り当て時にページアロケータ部１０２はフリーページプール部１０４からページを取得する。また、プログラムからページの返却があったときに、ページアロケータ部１０２経由で、本フリーページプール部１０４にページが返却される。
【００３４】
ページアロケータ部１０２は、プログラム１００に割り当てるページをフリーページプール部１０４より選択し、信頼性判定部１０３に信頼性判定要求を出す。信頼性判定部１０３が信頼性ありと判断した場合は、そのままプログラム１００に選択したページをそのまま通知する。信頼性判定部１０３が信頼なしと判断した場合は、選択したページを初期化処理部１０１に渡し初期化処理を行い、プログラム１００に通知する。
【００３５】
なお、ここでは、プログラム１００のみ記載したが、複数個のプログラムを有してよく、複数個のプログラムが同時に起動することも可能である。また、同時に複数個のプログラムからページ要求を行ってもよい。
【００３６】
次に、本実施の形態における処理手順を、図４を用いて説明する。
【００３７】
まず、プログラム１００が、メモリ確保つまりページ取得のために、ページ割り当てを要求するページ要求をページアロケータ部１０２に発行する（ステップＳ２１）。
【００３８】
次に、ページアロケータ部１０２が、プログラム１００からページ要求を受け取り、フリーページプール部１０４よりフリーページを選択して取得する（ステップＳ２２）。
【００３９】
ページアロケータ部１０２は、信頼性判定部１１３にプログラム１００の信頼性判定を要求する信頼性判定要求とプログラム１００の属性を表すプログラム属性とを発行する（ステップＳ２３）。
【００４０】
信頼性判定部１１３は、信頼性判定要求とプログラム１００の属性を表すプログラム属性とを受け取り、プログラム属性照合部１０７に対して属性照合要求とプログラム１００のプログラム属性とを発行し、プログラム１００の属性が登録されているのかどうかを問い合わせ、プログラム属性照合部１０７から結果を受け取る（ステップＳ２４）。
【００４１】
信頼性判定部１１３は、プログラム属性照合部１０７から受け取った結果を基に信頼性を判定する（ステップＳ２５）。プログラム１００の属性がプログラム属性照合部１０７に登録されている場合は信頼性があると判定し（ステップＳ２５が信頼性あり）、信頼性判定部１１３がページアロケータ部１０２に判定結果を通知し、ページアロケータ部１０２は、ステップＳ２２にて取得したページをそのままプログラム１００に割り当てる（ステップＳ２７）。一方、プログラム１００の属性がプログラム属性照合部１０７に登録されていない場合は信頼性がないと判定し（ステップＳ２５が信頼性なし）、信頼性判定部１１３がページアロケータ部１０２に判定結果を通知し、ページアロケータ部１０２は、選択したフリーページの初期化を初期化処理部１０１に要求し、初期化処理部１０１が初期化を行い（ステップＳ２６）、ページアロケータ部１０２は、初期化処理部１０１から受け取った初期化済みのページを、プログラム１００に割り当てる（ステップＳ２７）。
【００４２】
以上により、プログラムの属性に基づいて信頼性の判定を行い、信頼性があると判断した場合、メモリ割り当て時の初期化が不要となり、割り当て処理を高速化が可能となり、オペレーティングシステムにおける実行効率を向上できる。
【００４３】
（実施の形態３）
実施の形態３について図５、図６を用いて説明する。
【００４４】
図５は、実施の形態３におけるメモリ割り当て装置の構成を示すブロック図である。
【００４５】
メモリをページ単位に分割して管理しており、ページ単位でメモリの確保・解放を行うことができる計算機システムにおいて、メモリ割り当て装置は、メモリ確保のためにページ要求を発行するプログラム１００と、信頼できるプログラムの識別子が登録されていたかどうかを照合するプログラム識別子照合部１０８と、プログラム１００の識別子をプログラム識別子照合部１０８に問い合わせ、当該識別子がプログラム識別子照合部１０８に予め登録されている場合は信頼性あり、それ以外は信頼性なしと判断する信頼性判定部１２３と、プログラム１００に対して新規に割り当てることができる、使用可能なページ（未使用ページもしくは再利用可能ページ）を渡すことが可能なページを管理するフリーページプール部１０４と、フリーページプール部１０４の未使用ページもしくは再利用可能ページの内容を初期化する初期化処理部１０１と、プログラム１００がページ要求を発行した際に、ページ要求を受け取り、フリーページプール部１０４よりフリーページを選択し、信頼性判定部１２３に選択したフリーページの信頼性判定を要求する信頼性判定要求を出し、信頼性判定部１２３から信頼性ありと判定された場合はプログラム１００にフリーページを割り当て、信頼性なしと判定された場合は初期化処理部１０１によってページを初期化させてプログラム１００にページを割り当てるページアロケータ部１０２とを備えている。
【００４６】
初期化処理部１０１はページアロケータ部１０２からの初期化要求を受け取り、要求されたページの初期化処理を行う。一例として、ページ全体に対して、ある定数値を書き込むことで初期化する。
【００４７】
プログラム識別子照合部１０８は、識別子、信頼性あり・なしの２つのパラメタによって信頼できるプログラムを予め登録しており、信頼性判定部１２３から信頼性判定要求とプログラム１００の識別子が通知されると、当該識別子がプログラム識別子照合部１０８に登録されているか否かを照合する。照合結果は信頼性判定部１２３に送られる。一例として、プログラム識別子として、ＵＮＩＸ（Ｒ）のＰＩＤを採用することもできる。また、プログラムのＣＲＣチェックサムの値もプログラム識別子として採用可能である。なお、ここでは、識別子と信頼性情報を保持するとしたが、それだけに限らず、信頼性ありの識別子のみを登録し、登録されていない識別子は信頼性ないものとして照合を行ってもよい。
【００４８】
信頼性判定部１２３は、ページアロケータ部１０２から信頼性判定要求を受け、プログラム識別子照合部１０８に対してプログラム１００の識別子と領域照合要求とを発行し、プログラム識別子照合部１０８にプログラム１００の識別子が登録されているか否かを問い合わせる。信頼性判定部１２３は、プログラム識別子照合部１０８から登録されていると通知されると信頼性あり、登録されていないと通知されると信頼性なしと判定し、ページアロケータ部１０２に信頼性判定結果を通知する。
【００４９】
フリーページプール部１０４は、どのプログラムからも使用されていないページ（Ｓ２００、２０１、２０２）を格納しており、ページ割り当て時にページアロケータ部１０２はフリーページプール部１０４からページを取得する。また、プログラムからページの返却があったときに、ページアロケータ部１０２経由で、本フリーページプール部１０４にページが返却される。
【００５０】
ページアロケータ部１０２は、プログラム１００に割り当てるページをフリーページプール部１０４より選択し、信頼性判定部１０３に信頼性判定要求を出す。信頼性判定部１０３が信頼性ありと判断した場合は、そのままプログラム１００に選択したページをそのまま通知する。信頼性判定部１０３が信頼なしと判断した場合は、選択したページを初期化処理部１０１に渡し初期化処理を行い、プログラム１００に通知する。
【００５１】
なお、ここでは、プログラム１００のみ記載したが、複数個のプログラムを有してよく、複数個のプログラムが同時に起動することも可能である。また、同時に複数個のプログラムからページ要求を行ってもよい。
【００５２】
次に、本実施の形態における処理手順を、図６を用いて説明する。
【００５３】
まず、プログラム１００が、メモリ確保つまりページ取得のために、ページ割り当てを要求するページ要求をページアロケータ部１０２に発行する（ステップＳ３１）。
【００５４】
次に、ページアロケータ部１０２が、プログラム１００からページ要求を受け取り、フリーページプール部１０４よりフリーページを選択して取得する（ステップＳ３２）。
【００５５】
ページアロケータ部は、信頼性判定部１２３にプログラム１００の信頼性判定を要求する信頼性判定要求とプログラム１００の識別子を発行する（ステップＳ３３）。
【００５６】
信頼性判定部１２３は、信頼性判定要求とプログラム１００の識別子とを受け取り、プログラム識別子照合部１０８に対して識別子照合要求とプログラム１００の識別子とを発行し、プログラム１００の識別子が登録されているかどうかを問い合わせ、プログラム識別子照合部１０８から結果を受け取る（ステップＳ３４）。
【００５７】
信頼性判定部１２３は、プログラム識別子照合部１０８から受け取った結果を基に信頼性を判定する（ステップＳ３５）。プログラム１００の識別子がプログラム識別子照合部に登録されている場合は信頼性があると判定し（ステップＳ３５が信頼性あり）、信頼性判定部１２３がページアロケータ部１０２に判定結果を通知し、ページアロケータ部１０２は、ステップＳ３２にて取得したページをそのままプログラム１００に割り当てる（ステップＳ３７）。一方、プログラム１００の識別子がプログラム識別子照合部１０８に登録されていない場合は信頼性がないと判定し（ステップＳ３５が信頼性なし）、信頼性判定部１２３がページアロケータ部１０２に判定結果を通知し、ページアロケータ部１０２は、ステップＳ２２にて選択したページの初期化を初期化処理部１０１に要求し、初期化処理部１０１が初期化を行い（ステップＳ３６）、ページアロケータ部１０２は、初期化処理部１０１から受け取った初期化済みのページを、プログラム１００に割り当てる（ステップＳ３７）。
【００５８】
本発明の実施の形態３におけるプログラム識別子照合部１０８の照合条件の一例を具体的に説明する。
【００５９】
第一の例としては、予め信頼できるプログラムを一意に識別できる固有情報（例えばファイル名、格納先のオフセット情報など）をプログラム識別子照合部１０８に定義しておき、プログラム１００がページを要求したときに、プログラム識別子照合部１０８にプログラム１００が登録されているか否かを問い合わせ、結果を信頼性判定部１０３に送る。これによって、予めプログラム識別子照合部１０８に登録されているプログラムは信頼できる、それ以外のものは信頼できないと判定することができる。
【００６０】
以上により、プログラムの識別子に基づいて信頼性の判定を行い、信頼性があると判断した場合、メモリ割り当て時の初期化が不要となり、割り当て処理を高速化が可能となり、オペレーティングシステムにおける実行効率を向上できる。
【００６１】
（実施の形態４）
本発明の実施の形態４について図７、図８を用いて説明する。
【００６２】
図７は、実施の形態５におけるメモリ割り当て装置の構成を示すブロック図である。
【００６３】
メモリをページ単位に分割して管理しており、ページ単位でメモリの確保・解放を行うことができる計算機システムにおいて、メモリ割り当て装置は、メモリ確保のためにページ要求を発行するプログラム１００と、信頼できるプログラム毎に証明書を持ち、プログラム１００の証明書の真偽判定を行う証明書照合部１０６と、プログラム１００の信頼性を証明書照合部１０６に問い合わせ、予め登録されている場合は信頼性あり、それ以外は信頼性なしと判断する信頼性判定部１３３と、プログラム１００に対して新規に割り当てることができる、使用可能なページ（未使用ページもしくは再利用可能ページ）を渡すことが可能なページを管理するフリーページプール部１０４と、フリーページプール部１０４の未使用ページもしくは再利用可能ページの内容を初期化する初期化処理部１０１と、プログラム１００がページ要求を発行した際に、ページ要求を受け取り、フリーページプール部１０４よりフリーページを選択し、信頼性判定部１３３に選択したフリーページの信頼性判定を要求する信頼性判定要求を出し、信頼性判定部１３３から信頼性ありと判定された場合はプログラム１００にフリーページを割り当て、信頼性なしと判定された場合は初期化処理部１０１によってページを初期化させてプログラム１００にページを割り当てるページアロケータ部１０２とを備えている。
【００６４】
初期化処理部１０１はページアロケータ部１０２からの初期化要求を受け取り、要求されたページの初期化処理を行う。一例として、ページ全体に対して、ある定数値を書き込むことで初期化する。
【００６５】
証明書照合部１０６は、信頼性判定部１０３から信頼性判定要求とプログラム１００の証明書が通知されると、当該証明書の真偽判定を行い、判定結果を信頼性判定部１０３に通知する。
【００６６】
信頼性判定部１３３は、ページアロケータ部１０２から信頼性判定要求を受け、証明書照合部１０６に対してプログラム１００の証明書と証明書照合要求とを発行し、証明書照合部１０６にプログラム１００の証明書の真偽判定を問い合わせる。信頼性判定部１３３は、証明書照合部１０６から本物の証明書であると通知されると信頼性あり、本物ではないと通知されると信頼性なしと判定し、ページアロケータ部１０２に信頼性判定結果を通知する。
【００６７】
フリーページプール部１０４は、どのプログラムからも使用されていないページ（２００、２０１、２０２）を格納しており、ページ割り当て時にページアロケータ部１０２はフリーページプール部１０４からページを取得する。また、プログラムからページの返却があったときに、ページアロケータ部１０２経由で、本フリーページプール部１０４にページが返却される。
【００６８】
ページアロケータ部１０２は、プログラム１００に割り当てるページをフリーページプール部１０４より選択し、信頼性判定部１０３に信頼性判定要求を出す。信頼性判定部１０３が信頼性ありと判断した場合は、そのままプログラム１００に選択したページをそのまま通知する。信頼性判定部１０３が信頼なしと判断した場合は、選択したページを初期化処理部１０１に渡し初期化処理を行い、プログラム１００に通知する。
【００６９】
なお、ここでは、プログラム１００のみ記載したが、複数個のプログラムを有してよく、複数個のプログラムが同時に起動することも可能である。また、同時に複数個のプログラムからページ要求を行ってもよい。
【００７０】
次に、本実施の形態における処理手順を、図８を用いて説明する。
【００７１】
まず、プログラム１００が、メモリ確保つまりページ取得のために、ページ割り当てを要求するページ要求をページアロケータ部１０２に発行する（ステップＳ４１）。
【００７２】
次に、ページアロケータ部１０２が、プログラム１００からページ要求を受け取り、フリーページプール部１０４よりフリーページを選択して取得する（ステップＳ４２）。
【００７３】
ページアロケータ部１０２は、信頼性判定部１３３にプログラム１００の信頼性判定を要求する信頼性判定要求とプログラム１００の証明書とを発行する（ステップＳ４３）。
【００７４】
信頼性判定部１３３は、信頼性判定要求とプログラム１００の証明書とを受け取り、証明書照合部１０６に対して証明書照合要求とプログラム１００の証明書とを発行し、プログラム１００の証明書の真偽判定を問い合わせ、証明書照合部１０６から結果を受け取る（ステップＳ４４）。
【００７５】
信頼性判定部１３３は、証明書照合部１０６から受け取った結果を基に信頼性を判定する（ステップＳ４５）。プログラム１００の証明書が証明書照合部１０６によって本物であると判定された場合は信頼性があると判定し（ステップＳ４５が信頼性あり）、信頼性判定部１３３がページアロケータ部１０２に判定結果を通知し、ページアロケータ部１０２は、ステップＳ４２にて取得したページをそのままプログラム１００に割り当てる（ステップＳ４７）。一方、プログラム１００の証明書が証明書照合部１０６によって本物ではないと判定される場合は信頼性がないと判定し（ステップＳ４５が信頼性なし）、信頼性判定部１３３がページアロケータ部１０２に判定結果を通知し、ページアロケータ部１０２は、ステップＳ４２にて選択したページの初期化を初期化処理部１０１に要求し、初期化処理部１０１が初期化を行い（ステップＳ４６）、ページアロケータ部１０２は、初期化処理部１０１から受け取った初期化済みのページを、プログラム１００に割り当てる（ステップＳ４７）。
【００７６】
以上により、プログラムの証明書の真偽結果に基づいて信頼性の判定を行い、信頼性があると判断した場合、メモリ割り当て時の初期化が不要となり、割り当て処理を高速化が可能となり、オペレーティングシステムにおける実行効率を向上できる。
【００７７】
なお、本発明におけるメモリ割り当て装置では、信頼性に応じて初期化処理部１０１に初期化要求を出すか否かを決定することができるが、この信頼性の判定は、証明書照合部１０６だけでなく、前述した実施の形態で説明した領域照合部１０５と証明書照合部１０６とプログラム属性照合部１０７とプログラム識別子照合部１０８を適宜組み合わせて行ってもよい。
【産業上の利用可能性】
【００７８】
本発明にかかるメモリ割り当て装置は、信頼性がないと判断した場合のみ、メモリ割り当て時に初期化を行うことが可能となる効果を有し、安全性を必要とする組み込みなどのオペレーティングシステムなどで有用である。また、本発明にかかるメモリ割り当て装置を備えたオペレーティングシステムは、コンピュータのみならず、各種家電機器、情報処理機器、形態電話、産業機器などでも利用可能である。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施の形態１におけるメモリ割り当て装置の構成を示す図
【図２】本発明の実施の形態１におけるメモリ割り当て装置の処理手順を示したフローチャート
【図３】本発明の実施の形態２におけるメモリ割り当て装置の構成を示す図
【図４】本発明の実施の形態２におけるメモリ割り当て装置の処理手順を示したフローチャート
【図５】本発明の実施の形態３におけるメモリ割り当て装置の構成を示す図
【図６】本発明の実施の形態３におけるメモリ割り当て装置の処理手順を示したフローチャート
【図７】本発明の実施の形態４におけるメモリ割り当て装置の構成を示す図
【図８】本発明の実施の形態４におけるメモリ割り当て装置の処理手順を示したフローチャート
【符号の説明】
【００８０】
１００    プログラム
１０１    初期化処理部
１０２    ページアロケータ部
１０３，１１３，１２３，１３３    信頼性判定部
１０４    フリーページプール部
１０５    領域照合部
１０６    証明書照合部
１０７    プログラム属性照合部
１０８    プログラム識別子照合部
２００，２０１，２０２    ページ
【図１】
2005182470.tif 000003
【図２】
2005182470.tif 000004
【図３】
2005182470.tif 000005
【図４】
2005182470.tif 000006
【図５】
2005182470.tif 000007
【図６】
2005182470.tif 000008
【図７】
2005182470.tif 000009
【図８】
2005182470.tif 000010