情報処理プログラム、情報処理装置および情報処理方法
【課題】データの完全性を維持しつつ、効率的なアクセス制御を実現することを課題とする。
【解決手段】情報処理装置200内で動作するメモリ管理プログラムは、一方のプログラム(例えば、プログラムA)による共有メモリへのアクセス制限依頼を他方のプログラム(例えば、プログラムB)から受け付けた場合に、アクセス制限依頼が正当なものであるか否かを判定する。判定の結果、アクセス制限依頼が正当なものである場合には、一方のプログラム(例えば、プログラムA)による共有メモリへのアクセス制限をする。このようなことから、情報処理装置200においてデータの完全性を維持しつつ、共有メモリへの効率的なアクセス制御を実現できる。
【解決手段】情報処理装置200内で動作するメモリ管理プログラムは、一方のプログラム(例えば、プログラムA)による共有メモリへのアクセス制限依頼を他方のプログラム(例えば、プログラムB)から受け付けた場合に、アクセス制限依頼が正当なものであるか否かを判定する。判定の結果、アクセス制限依頼が正当なものである場合には、一方のプログラム(例えば、プログラムA)による共有メモリへのアクセス制限をする。このようなことから、情報処理装置200においてデータの完全性を維持しつつ、共有メモリへの効率的なアクセス制御を実現できる。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報処理プログラム、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
従来より、共有メモリによるプロセス間通信では、効率的なデータアクセスを実現することを目的として、送信側および受信側の両プロセスから共有メモリへの読み書き可能とする技術が存在する。
【0003】
また、上記技術に関連して、例えば、共有メモリへの排他的なアクセスを実現する技術なども提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平1−205362号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上記した従来の技術は、受信側プロセスが、送信側プロセスにより共有メモリに書き込まれたデータの安全性をチェックし、チェックが完了したデータを使用するまでの間に、送信側プロセスによりデータが書き換えられてしまう恐れがある。このような事態に対処するために、受信側プロセスで共有メモリのデータを非共有メモリにコピーする技術があるが、コピーに時間を要する点やメモリ容量を圧迫する点で効率が悪い。
【0006】
また、上記従来技術のように、OS(Operating System)の排他制御機能を利用して、共有メモリへ排他的にアクセスする技術があるが、一般的に送受信プロセス間の協調が必要となるので、送信側プロセスに悪意がある場合には実効性がない。
【0007】
開示の技術は、上記に鑑みてなされたものであって、データの完全性を維持しつつ、共有メモリへの効率的なアクセス制御を実現することが可能な情報処理プログラム、情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本願の開示する技術は、一つの態様において、第1のプログラムからの依頼に応じて、第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成手順と、第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定手順と、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限手順と、をコンピュータに実行させる。
【発明の効果】
【0009】
本願の開示する技術の一つの態様によれば、データの完全性を維持しつつ、共有メモリへの効率的なアクセス制御を実現できる。
【図面の簡単な説明】
【0010】
【図1】図1は、実施例1に係る情報処理装置の構成を示す図である。
【図2】図2は、実施例1に係る情報処理装置による処理の流れを示す図である。
【図3】図3は、実施例1に係るページテーブルの構成例を示す図である。
【図4】図4は、実施例1に係る共有メモリの割り当てを依頼するシステムコールの一例を示す図である。
【図5】図5は、実施例1に係るメモリ管理情報の構成例を示す図である。
【図6】図6は、実施例1に係る仮想アドレスを通知する場合のシステムコールの一例を示す図である。
【図7】図7は、実施例1に係る共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。
【図8】図8は、実施例1に係る共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。
【図9】図9は、実施例1に係る処理終了を通知する場合のシステムコールの一例を示す図である。
【図10】図10は、実施例1に係る共有メモリの解放を依頼する場合のシステムコールの一例を示す図である。
【発明を実施するための形態】
【0011】
以下に、図面を参照しつつ、本願の開示する情報処理プログラム、情報処理装置および情報処理方法の一実施形態について詳細に説明する。なお、情報処理プログラム、情報処理装置および情報処理方法の一実施形態として後述する実施例1により、本願が開示する技術が限定されるものではない。
【実施例1】
【0012】
実施例1に係る情報処理装置は、異なるプログラムがそれぞれアクセス可能な仮想アドレス空間に対応付けられた同一の物理アドレス空間、いわゆる共有メモリを利用した動作(例えば、プロセス間通信等)を制御することを概要とする。
【0013】
そして、実施例1に係る情報処理装置の骨子は、以下に説明する点にある。すなわち、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセス制限依頼を受け付けると、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものであるか否かを判定する。そして、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものである場合には、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセスを制限する。以下、実施例1に係る情報処理装置について具体的に説明する。
【0014】
[情報処理装置の構成(実施例1)]
図1は、実施例1に係る情報処理装置の構成を示す図である。同図に示すように、実施例1に係る情報処理装置200は、CPU210、ストレージ220、レジスタ230、MMU240およびメモリ250を有する。
【0015】
CPU210は、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、情報処理装置の制御やデータの計算、加工等の種々の処理を実行する。
【0016】
また、CPU210は、MMU240を操作可能な特権モード、MMU240を操作不可能な非特権モードなどの実行モードを有し、非特許権モードのメモリアクセスを制限できる。非特権モードで動作するプログラムは、特権モードで動作するプログラムの許可なしには特権モードに遷移できない。
【0017】
ストレージ220は、データやプログラム等を記憶する。レジスタ230は、CPU210による演算や処理の実行状態を保持する。
【0018】
MMU(Memory Management Unit:メモリ管理ユニット)240は、メモリ250を管理する。
【0019】
メモリ250は、メモリ管理プログラム、プログラムA、プログラムBなどが展開される。また、共有メモリ、メモリ管理情報、メモリ管理プログラムページテーブル、プログラムAページテーブル、プログラムBページテーブル、プログラムA非共有メモリ、プログラムB非共有メモリを有する。
【0020】
特に、メモリ管理プログラムは、プログラムAおよびプログラムBによる共有メモリへのアクセスを制御する。例えば、メモリ管理プログラムは、CPU210によりメモリ250から読込まれてメモリ250上に展開されることで、メモリ管理に関する処理を実行するプロセスとして機能する。なお、メモリ管理プログラムによる具体的な処理内容については、後述する情報処理装置200の処理の流れ(図2)の中で説明する。
【0021】
また、プログラムAおよびプログラムBは、非特権モードで動作し、互いに異なる物理アドレス領域に対応付けられた仮想アドレス空間を有する。共有メモリは、プログラムAおよびプログラムBが有する各仮想アドレス空間の一部が対応付けられた同一の物理アドレス領域である。
【0022】
また、メモリ管理情報は、メモリ250を管理するための情報である。メモリ管理プログラムページテーブル、プログラムAページテーブルおよびプログラムBページテーブルは、仮想アドレスと物理アドレスとの相互変換に用いるテーブルである。
【0023】
また、プログラムA非共有メモリは、プログラムAのみが利用するメモリである。プログラムB非共有メモリは、プログラムBのみが利用するメモリである。
【0024】
[情報処理装置の処理(実施例1)]
図2は、実施例1に係る情報処理装置による処理の流れを示す図である。以下では、情報処理装置200内で動作する各プログラム(メモリ管理プログラム、プログラムAおよびプログラムB)を主体として処理の流れを説明する。実際には、各プログラムは、CPU210によりメモリ250から読込まれてメモリ250上に展開されることでプロセスとして機能する。
【0025】
同図に示すように、プログラムAが起動する(ステップS1)。プログラムAのプログラムファイルはストレージ220などのデータ格納装置に保存されており、CPU210によってメモリ250上にロードされて実行される。
【0026】
また、プログラムAは、例えば、データの送信側であり、プログラムBからみると信頼できないプログラムであるものとする。プログラムAには、CPU210上で動作するOS(Operating System)により、独自のプロセスIDが付与される。また、プログラムAのためのページテーブルもメモリ250内に用意される。
【0027】
続いて、プログラムBが起動する(ステップS2)。また、プログラムBは、例えば、データの受信側であり、CPU210上で動作するOS(Operating System)により、独自のプロセスIDが付与される。また、プログラムBのためのページテーブルもメモリ250内に用意される。プログラムAおよびBのためのページテーブルは、例えば、図3に示すように、仮想アドレスと、物理アドレスと、仮想アドレスに対するアクセス制御の属性を示す情報とを対応付けて記憶する。図3は、実施例1に係るページテーブルの構成例を示す図である。
【0028】
プログラムBは、プログラムAに対する共有メモリの割り当てをメモリ管理プログラムに依頼する(ステップS3)。ここで、プログラムBからメモリ管理プログラムへの依頼は、例えば、図4に示すような一般的なOSのシステムコールなどを用いて実行される。図4は、実施例1に係る共有メモリの割り当てを依頼するシステムコールの一例を示す図である。
【0029】
共有メモリは、プログラムBに割り当てられたメモリ領域の一部をプログラムAからもアクセス可能にすることで実現される。プログラムBは、プログラムAに対する共有メモリの割り当てをメモリ管理プログラムに依頼する場合に、システムコールの引数として共有メモリにしたい領域の仮想アドレスなどを指定する。また、プログラムAから読み書き可能にするか、書き込みのみ許可するかどうかのアクセス制御の属性を選択する。
【0030】
プログラムBからの依頼を受けて、メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを読み書き可能にする(ステップS4)。
【0031】
具体的には、プログラムBのページテーブルを基にメモリ領域の物理アドレスを取得し、プログラムAのページテーブルに、先に取得した物理アドレスを追加する。さらに、メモリ管理プログラムは、追加した物理アドレスに対応する仮想アドレスとして適当なものを割り当てるとともに、アクセス制御の属性も追加する。
【0032】
アクセス制御の属性の追加までを終えると、メモリ管理プログラムは、プログラムA用の仮想アドレスをシステムコールの戻り値としてプログラムBに返す。また、メモリ管理プログラムは、プログラムBがプログラムA用の共有メモリを作成したことをメモリ250内のメモリ管理情報に記録しておく。
【0033】
メモリ管理情報は、例えば、図5に示すように、共有メモリの所有者のプロセスID(例えば、プログラムBに付与されたプロセスID)と、仮想アドレスと、サイズと、利用者のプロセスID(例えば、プログラムAに付与されたプロセスID)と、仮想アドレスとを対応付けて記憶する。図5は、実施例1に係るメモリ管理情報の構成例を示す図である。
【0034】
メモリ管理プログラムによりプログラムAのページテーブルが書き換えられると、プログラムBは、メモリ管理プログラムからシステムコールの戻り値として受け付けたプログラムA用の仮想アドレス(共有メモリ)をシステムコールでプログラムAに通知する(ステップS5)。
【0035】
メモリ管理プログラムは、プログラムBから仮想アドレスの通知があると、プログラムAに仮想アドレスを通知する。図6に、プログラムBがプログラムAに仮想アドレスを通知する場合のシステムコールの一例を示す。図6は、実施例1に係る仮想アドレスを通知する場合のシステムコールの一例を示す図である。
【0036】
仮想アドレス(共有メモリ)の通知を受けて、プログラムAは、共有メモリにデータを書き込み(ステップS6)、共有メモリにデータを書き込んだことをプログラムBに対して通知する(ステップS7)。
【0037】
メモリ管理プログラムは、プログラムAから共有メモリへの書き込みの通知があると、プログラムBに共有メモリへのデータの書き込みを通知する。図7に、プログラムAがプログラムBに共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。図7は、実施例1に係る共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。
【0038】
書き込みの通知を受けて、プログラムBは、プログラムAに対する共有メモリへのアクセス制御の属性を書き込み不可(または読み書き不可)に設定するようにメモリ管理プログラムに依頼する(ステップS8)。図8に、プログラムBがメモリ管理プログラムにプログラムAの共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。図8は、実施例1に係る共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。
【0039】
プログラムBからの依頼を受けて、メモリ管理プログラムは、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものであるかどうかをチェックする(ステップS9)。
【0040】
具体的に説明すると、メモリ管理プログラムは、アクセス制御の依頼元であるプログラムBについてのメモリ管理情報(図5)を参照する。そして、アクセス制御依頼のシステムコールに含まれるプログラムBのプロセスIDと、指定された仮想アドレスがメモリ管理情報内で共有メモリの所有者として登録されているかどうかチェックする。
【0041】
チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものである場合には(ステップS9肯定)、メモリ管理プログラムは、次のように動作する。メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを書き込み不可(または読み書き不可)に設定する(ステップS10)。
【0042】
メモリ管理プログラムによりプログラムAのページテーブルが書き換えられると、プログラムBは、共有メモリを読込んで必要な処理(例えば、テキストデータや画像データの出力、動画データの再生など)を行う(ステップS11)。
【0043】
処理完了後、プログラムBは、プログラムAに対する共有メモリへのアクセス制御の属性を読み書き可能に戻すように、メモリ管理プログラムに対してシステムコール(例えば、図7参照)で依頼する(ステップS12)。
【0044】
メモリ管理プログラムは、上述したステップS9と同様に、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものであるかどうかをチェックする(ステップS13)。
【0045】
チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものである場合には(ステップS13肯定)、メモリ管理プログラムは、次のように動作する。メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを読み書き可能に設定する(ステップS14)。
【0046】
メモリ管理プログラムによりプログラムAのページテーブルが書き換えられると、プログラムBは、プログラムAに処理終了をシステムコールで通知する(ステップS15)。
【0047】
メモリ管理プログラムは、プログラムBから処理終了のシステムコールがあると、プログラムAに処理終了を通知する。図9に、プログラムBがプログラムAに対して処理終了を通知する場合のシステムコールの一例を示す。図9は、実施例1に係る処理終了を通知する場合のシステムコールの一例を示す図である。
【0048】
処理終了の通知を受けて、プログラムAは、共有メモリからデータを読込んで必要な処理を行う(ステップS16)。
【0049】
共有メモリを利用した処理が全て完了した後、プログラムBは、共有メモリを解放するようにメモリ管理プログラムにシステムコールで依頼する(ステップS17)。図10に、共有メモリの解放を依頼する場合のシステムコールの一例を示す。図10は、実施例1に係る共有メモリの解放を依頼する場合のシステムコールの一例を示す図である。
【0050】
プログラムBからの依頼を受けて、メモリ管理プログラムは、上述したステップS9およびS13と同様に、共有メモリの解放の依頼が、共有メモリの所有者であるプログラムBからのものであるかどうかをチェックする(ステップS18)。
【0051】
チェックの結果、プログラムAに対する共有メモリの解放の依頼が、共有メモリの所有者であるプログラムBからのものである場合には(ステップS18肯定)、メモリ管理プログラムは、上述したステップS10と同様に、次のように動作する。メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを書き込み不可(または読み書き不可)に設定する(ステップS19)。
【0052】
ここで、ステップS9の説明に戻る。チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものではない場合には(ステップS9否定)、メモリ管理プログラムは、不正な依頼としてエラーを返して(ステップS20)、処理を終了する。
【0053】
ここで、ステップS13の説明に戻る。チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものではない場合には(ステップS13否定)、メモリ管理プログラムは、不正な依頼としてエラーを返して(ステップS21)、処理を終了する。
【0054】
ここで、ステップS18の説明に戻る。チェックの結果、共有メモリの解放の依頼が、共有メモリの所有者であるプログラムBからのものではない場合には(ステップS18否定)、メモリ管理プログラムは、不正な依頼としてエラーを返して(ステップS22)、処理を終了する。
【0055】
[実施例1による効果]
上述してきたように、実施例1によれば、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセス制限依頼を受け付けると、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものであるか否かを判定する。そして、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものである場合には、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセスを制限する。
【0056】
このようなことから、例えば、共有メモリを利用して情報処理装置200内で実行されるプロセス間通信において、データの完全性を維持しつつ(プログラムBの処理中におけるプログラムAによる共有メモリの上書きを防止しつつ)、効率的なアクセス制御を実現できる。
【0057】
すなわち、例えば、上述したプログラムB(例えば、受信側プロセス)が、プログラムA(例えば、送信側プロセス)により共有メモリに書き込まれたデータを安全に処理することが可能である。
【0058】
さらに、データが書き換えられてしまうことに備えて、共有メモリのデータのコピーなどの処理も不要であるので、実行速度やメモリ使用量の点で効率が良い。このように、情報処理装置200の性能を保ちつつ、データの安全性を向上できる。
【0059】
また、現状の多くのOSでは、共有メモリへのアクセス制御は静的に決定されるものであり、いったんプロセス間で共有メモリが設定されると、それ以降はアクセス制御の状態を変更できない。さらに、一方のプロセスから、もう一方のプロセスの共有メモリのアクセス制御の状態を強制的に変更するような機能も実現されていない。
【0060】
しかしながら、実施例1によれば、あたかも動的な共有メモリのアクセス制御が可能であり、効率的なアクセス制御が実現できる。
【0061】
また、上記の実施例1では、メモリ管理プログラムが、プログラムページテーブル内のアクセス制御の属性を書き換えることにより、プログラムのアクセス制御を実現する場合を説明したが、これに限定されるものではない。
【0062】
例えば、メモリ管理プログラムは、アクセス制御の対象となるプログラムの仮想アドレス空間に対応する物理アドレスが、共有メモリの物理アドレスとは異なるアドレスになるようにページテーブルを書き換えてもよい。これにより、アクセス制御の属性を書き換えるのと同様に、共有メモリに書き込まれたデータが書き換えられてしまうことを防止する効果がある。
【実施例2】
【0063】
以下、本願の開示する情報処理プログラム、情報処理装置および情報処理方法の他の実施形態を説明する。
【0064】
(1)装置構成等
図1に示した情報処理装置200の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報処理装置200の分散・統合の具体的形態は図示のものに限られず、例えば、CPU210を処理内容に応じて、機能的あるいは物理的に分散する。
【0065】
このように、情報処理装置200の全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、情報処理装置200にて行なわれる各処理機能(図2参照)は、その全部または任意の一部が、CPU210および当該CPU210にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0066】
(2)情報処理方法
上記の実施例1で説明した情報処理装置200により、以下のような情報処理情報が実現される。
【0067】
すなわち、第1のプログラム(例えば、プログラムB)からの依頼に応じて、第1のプログラム(例えば、プログラムA)に割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成ステップと(図2のステップS3およびステップS4参照)、第2のプログラムによる共有領域へのアクセス制限依頼を受け付けた場合に、アクセス制限依頼が正当なものであるか否かを判定する依頼判定ステップと(例えば、図2のステップS9参照)、依頼判定ステップによりアクセス制限依頼が正当なものであるものであると判定された場合には、第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限ステップと(例えば、図2のステップS10参照)を含んだ情報処理方法が実現される。
【符号の説明】
【0068】
200 情報処理装置
210 CPU
220 ストレージ
230 レジスタ
240 MMU
250 メモリ
【技術分野】
【0001】
この発明は、情報処理プログラム、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
従来より、共有メモリによるプロセス間通信では、効率的なデータアクセスを実現することを目的として、送信側および受信側の両プロセスから共有メモリへの読み書き可能とする技術が存在する。
【0003】
また、上記技術に関連して、例えば、共有メモリへの排他的なアクセスを実現する技術なども提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平1−205362号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上記した従来の技術は、受信側プロセスが、送信側プロセスにより共有メモリに書き込まれたデータの安全性をチェックし、チェックが完了したデータを使用するまでの間に、送信側プロセスによりデータが書き換えられてしまう恐れがある。このような事態に対処するために、受信側プロセスで共有メモリのデータを非共有メモリにコピーする技術があるが、コピーに時間を要する点やメモリ容量を圧迫する点で効率が悪い。
【0006】
また、上記従来技術のように、OS(Operating System)の排他制御機能を利用して、共有メモリへ排他的にアクセスする技術があるが、一般的に送受信プロセス間の協調が必要となるので、送信側プロセスに悪意がある場合には実効性がない。
【0007】
開示の技術は、上記に鑑みてなされたものであって、データの完全性を維持しつつ、共有メモリへの効率的なアクセス制御を実現することが可能な情報処理プログラム、情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本願の開示する技術は、一つの態様において、第1のプログラムからの依頼に応じて、第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成手順と、第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定手順と、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限手順と、をコンピュータに実行させる。
【発明の効果】
【0009】
本願の開示する技術の一つの態様によれば、データの完全性を維持しつつ、共有メモリへの効率的なアクセス制御を実現できる。
【図面の簡単な説明】
【0010】
【図1】図1は、実施例1に係る情報処理装置の構成を示す図である。
【図2】図2は、実施例1に係る情報処理装置による処理の流れを示す図である。
【図3】図3は、実施例1に係るページテーブルの構成例を示す図である。
【図4】図4は、実施例1に係る共有メモリの割り当てを依頼するシステムコールの一例を示す図である。
【図5】図5は、実施例1に係るメモリ管理情報の構成例を示す図である。
【図6】図6は、実施例1に係る仮想アドレスを通知する場合のシステムコールの一例を示す図である。
【図7】図7は、実施例1に係る共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。
【図8】図8は、実施例1に係る共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。
【図9】図9は、実施例1に係る処理終了を通知する場合のシステムコールの一例を示す図である。
【図10】図10は、実施例1に係る共有メモリの解放を依頼する場合のシステムコールの一例を示す図である。
【発明を実施するための形態】
【0011】
以下に、図面を参照しつつ、本願の開示する情報処理プログラム、情報処理装置および情報処理方法の一実施形態について詳細に説明する。なお、情報処理プログラム、情報処理装置および情報処理方法の一実施形態として後述する実施例1により、本願が開示する技術が限定されるものではない。
【実施例1】
【0012】
実施例1に係る情報処理装置は、異なるプログラムがそれぞれアクセス可能な仮想アドレス空間に対応付けられた同一の物理アドレス空間、いわゆる共有メモリを利用した動作(例えば、プロセス間通信等)を制御することを概要とする。
【0013】
そして、実施例1に係る情報処理装置の骨子は、以下に説明する点にある。すなわち、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセス制限依頼を受け付けると、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものであるか否かを判定する。そして、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものである場合には、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセスを制限する。以下、実施例1に係る情報処理装置について具体的に説明する。
【0014】
[情報処理装置の構成(実施例1)]
図1は、実施例1に係る情報処理装置の構成を示す図である。同図に示すように、実施例1に係る情報処理装置200は、CPU210、ストレージ220、レジスタ230、MMU240およびメモリ250を有する。
【0015】
CPU210は、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、情報処理装置の制御やデータの計算、加工等の種々の処理を実行する。
【0016】
また、CPU210は、MMU240を操作可能な特権モード、MMU240を操作不可能な非特権モードなどの実行モードを有し、非特許権モードのメモリアクセスを制限できる。非特権モードで動作するプログラムは、特権モードで動作するプログラムの許可なしには特権モードに遷移できない。
【0017】
ストレージ220は、データやプログラム等を記憶する。レジスタ230は、CPU210による演算や処理の実行状態を保持する。
【0018】
MMU(Memory Management Unit:メモリ管理ユニット)240は、メモリ250を管理する。
【0019】
メモリ250は、メモリ管理プログラム、プログラムA、プログラムBなどが展開される。また、共有メモリ、メモリ管理情報、メモリ管理プログラムページテーブル、プログラムAページテーブル、プログラムBページテーブル、プログラムA非共有メモリ、プログラムB非共有メモリを有する。
【0020】
特に、メモリ管理プログラムは、プログラムAおよびプログラムBによる共有メモリへのアクセスを制御する。例えば、メモリ管理プログラムは、CPU210によりメモリ250から読込まれてメモリ250上に展開されることで、メモリ管理に関する処理を実行するプロセスとして機能する。なお、メモリ管理プログラムによる具体的な処理内容については、後述する情報処理装置200の処理の流れ(図2)の中で説明する。
【0021】
また、プログラムAおよびプログラムBは、非特権モードで動作し、互いに異なる物理アドレス領域に対応付けられた仮想アドレス空間を有する。共有メモリは、プログラムAおよびプログラムBが有する各仮想アドレス空間の一部が対応付けられた同一の物理アドレス領域である。
【0022】
また、メモリ管理情報は、メモリ250を管理するための情報である。メモリ管理プログラムページテーブル、プログラムAページテーブルおよびプログラムBページテーブルは、仮想アドレスと物理アドレスとの相互変換に用いるテーブルである。
【0023】
また、プログラムA非共有メモリは、プログラムAのみが利用するメモリである。プログラムB非共有メモリは、プログラムBのみが利用するメモリである。
【0024】
[情報処理装置の処理(実施例1)]
図2は、実施例1に係る情報処理装置による処理の流れを示す図である。以下では、情報処理装置200内で動作する各プログラム(メモリ管理プログラム、プログラムAおよびプログラムB)を主体として処理の流れを説明する。実際には、各プログラムは、CPU210によりメモリ250から読込まれてメモリ250上に展開されることでプロセスとして機能する。
【0025】
同図に示すように、プログラムAが起動する(ステップS1)。プログラムAのプログラムファイルはストレージ220などのデータ格納装置に保存されており、CPU210によってメモリ250上にロードされて実行される。
【0026】
また、プログラムAは、例えば、データの送信側であり、プログラムBからみると信頼できないプログラムであるものとする。プログラムAには、CPU210上で動作するOS(Operating System)により、独自のプロセスIDが付与される。また、プログラムAのためのページテーブルもメモリ250内に用意される。
【0027】
続いて、プログラムBが起動する(ステップS2)。また、プログラムBは、例えば、データの受信側であり、CPU210上で動作するOS(Operating System)により、独自のプロセスIDが付与される。また、プログラムBのためのページテーブルもメモリ250内に用意される。プログラムAおよびBのためのページテーブルは、例えば、図3に示すように、仮想アドレスと、物理アドレスと、仮想アドレスに対するアクセス制御の属性を示す情報とを対応付けて記憶する。図3は、実施例1に係るページテーブルの構成例を示す図である。
【0028】
プログラムBは、プログラムAに対する共有メモリの割り当てをメモリ管理プログラムに依頼する(ステップS3)。ここで、プログラムBからメモリ管理プログラムへの依頼は、例えば、図4に示すような一般的なOSのシステムコールなどを用いて実行される。図4は、実施例1に係る共有メモリの割り当てを依頼するシステムコールの一例を示す図である。
【0029】
共有メモリは、プログラムBに割り当てられたメモリ領域の一部をプログラムAからもアクセス可能にすることで実現される。プログラムBは、プログラムAに対する共有メモリの割り当てをメモリ管理プログラムに依頼する場合に、システムコールの引数として共有メモリにしたい領域の仮想アドレスなどを指定する。また、プログラムAから読み書き可能にするか、書き込みのみ許可するかどうかのアクセス制御の属性を選択する。
【0030】
プログラムBからの依頼を受けて、メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを読み書き可能にする(ステップS4)。
【0031】
具体的には、プログラムBのページテーブルを基にメモリ領域の物理アドレスを取得し、プログラムAのページテーブルに、先に取得した物理アドレスを追加する。さらに、メモリ管理プログラムは、追加した物理アドレスに対応する仮想アドレスとして適当なものを割り当てるとともに、アクセス制御の属性も追加する。
【0032】
アクセス制御の属性の追加までを終えると、メモリ管理プログラムは、プログラムA用の仮想アドレスをシステムコールの戻り値としてプログラムBに返す。また、メモリ管理プログラムは、プログラムBがプログラムA用の共有メモリを作成したことをメモリ250内のメモリ管理情報に記録しておく。
【0033】
メモリ管理情報は、例えば、図5に示すように、共有メモリの所有者のプロセスID(例えば、プログラムBに付与されたプロセスID)と、仮想アドレスと、サイズと、利用者のプロセスID(例えば、プログラムAに付与されたプロセスID)と、仮想アドレスとを対応付けて記憶する。図5は、実施例1に係るメモリ管理情報の構成例を示す図である。
【0034】
メモリ管理プログラムによりプログラムAのページテーブルが書き換えられると、プログラムBは、メモリ管理プログラムからシステムコールの戻り値として受け付けたプログラムA用の仮想アドレス(共有メモリ)をシステムコールでプログラムAに通知する(ステップS5)。
【0035】
メモリ管理プログラムは、プログラムBから仮想アドレスの通知があると、プログラムAに仮想アドレスを通知する。図6に、プログラムBがプログラムAに仮想アドレスを通知する場合のシステムコールの一例を示す。図6は、実施例1に係る仮想アドレスを通知する場合のシステムコールの一例を示す図である。
【0036】
仮想アドレス(共有メモリ)の通知を受けて、プログラムAは、共有メモリにデータを書き込み(ステップS6)、共有メモリにデータを書き込んだことをプログラムBに対して通知する(ステップS7)。
【0037】
メモリ管理プログラムは、プログラムAから共有メモリへの書き込みの通知があると、プログラムBに共有メモリへのデータの書き込みを通知する。図7に、プログラムAがプログラムBに共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。図7は、実施例1に係る共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。
【0038】
書き込みの通知を受けて、プログラムBは、プログラムAに対する共有メモリへのアクセス制御の属性を書き込み不可(または読み書き不可)に設定するようにメモリ管理プログラムに依頼する(ステップS8)。図8に、プログラムBがメモリ管理プログラムにプログラムAの共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。図8は、実施例1に係る共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。
【0039】
プログラムBからの依頼を受けて、メモリ管理プログラムは、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものであるかどうかをチェックする(ステップS9)。
【0040】
具体的に説明すると、メモリ管理プログラムは、アクセス制御の依頼元であるプログラムBについてのメモリ管理情報(図5)を参照する。そして、アクセス制御依頼のシステムコールに含まれるプログラムBのプロセスIDと、指定された仮想アドレスがメモリ管理情報内で共有メモリの所有者として登録されているかどうかチェックする。
【0041】
チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものである場合には(ステップS9肯定)、メモリ管理プログラムは、次のように動作する。メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを書き込み不可(または読み書き不可)に設定する(ステップS10)。
【0042】
メモリ管理プログラムによりプログラムAのページテーブルが書き換えられると、プログラムBは、共有メモリを読込んで必要な処理(例えば、テキストデータや画像データの出力、動画データの再生など)を行う(ステップS11)。
【0043】
処理完了後、プログラムBは、プログラムAに対する共有メモリへのアクセス制御の属性を読み書き可能に戻すように、メモリ管理プログラムに対してシステムコール(例えば、図7参照)で依頼する(ステップS12)。
【0044】
メモリ管理プログラムは、上述したステップS9と同様に、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものであるかどうかをチェックする(ステップS13)。
【0045】
チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものである場合には(ステップS13肯定)、メモリ管理プログラムは、次のように動作する。メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを読み書き可能に設定する(ステップS14)。
【0046】
メモリ管理プログラムによりプログラムAのページテーブルが書き換えられると、プログラムBは、プログラムAに処理終了をシステムコールで通知する(ステップS15)。
【0047】
メモリ管理プログラムは、プログラムBから処理終了のシステムコールがあると、プログラムAに処理終了を通知する。図9に、プログラムBがプログラムAに対して処理終了を通知する場合のシステムコールの一例を示す。図9は、実施例1に係る処理終了を通知する場合のシステムコールの一例を示す図である。
【0048】
処理終了の通知を受けて、プログラムAは、共有メモリからデータを読込んで必要な処理を行う(ステップS16)。
【0049】
共有メモリを利用した処理が全て完了した後、プログラムBは、共有メモリを解放するようにメモリ管理プログラムにシステムコールで依頼する(ステップS17)。図10に、共有メモリの解放を依頼する場合のシステムコールの一例を示す。図10は、実施例1に係る共有メモリの解放を依頼する場合のシステムコールの一例を示す図である。
【0050】
プログラムBからの依頼を受けて、メモリ管理プログラムは、上述したステップS9およびS13と同様に、共有メモリの解放の依頼が、共有メモリの所有者であるプログラムBからのものであるかどうかをチェックする(ステップS18)。
【0051】
チェックの結果、プログラムAに対する共有メモリの解放の依頼が、共有メモリの所有者であるプログラムBからのものである場合には(ステップS18肯定)、メモリ管理プログラムは、上述したステップS10と同様に、次のように動作する。メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを書き込み不可(または読み書き不可)に設定する(ステップS19)。
【0052】
ここで、ステップS9の説明に戻る。チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものではない場合には(ステップS9否定)、メモリ管理プログラムは、不正な依頼としてエラーを返して(ステップS20)、処理を終了する。
【0053】
ここで、ステップS13の説明に戻る。チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものではない場合には(ステップS13否定)、メモリ管理プログラムは、不正な依頼としてエラーを返して(ステップS21)、処理を終了する。
【0054】
ここで、ステップS18の説明に戻る。チェックの結果、共有メモリの解放の依頼が、共有メモリの所有者であるプログラムBからのものではない場合には(ステップS18否定)、メモリ管理プログラムは、不正な依頼としてエラーを返して(ステップS22)、処理を終了する。
【0055】
[実施例1による効果]
上述してきたように、実施例1によれば、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセス制限依頼を受け付けると、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものであるか否かを判定する。そして、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものである場合には、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセスを制限する。
【0056】
このようなことから、例えば、共有メモリを利用して情報処理装置200内で実行されるプロセス間通信において、データの完全性を維持しつつ(プログラムBの処理中におけるプログラムAによる共有メモリの上書きを防止しつつ)、効率的なアクセス制御を実現できる。
【0057】
すなわち、例えば、上述したプログラムB(例えば、受信側プロセス)が、プログラムA(例えば、送信側プロセス)により共有メモリに書き込まれたデータを安全に処理することが可能である。
【0058】
さらに、データが書き換えられてしまうことに備えて、共有メモリのデータのコピーなどの処理も不要であるので、実行速度やメモリ使用量の点で効率が良い。このように、情報処理装置200の性能を保ちつつ、データの安全性を向上できる。
【0059】
また、現状の多くのOSでは、共有メモリへのアクセス制御は静的に決定されるものであり、いったんプロセス間で共有メモリが設定されると、それ以降はアクセス制御の状態を変更できない。さらに、一方のプロセスから、もう一方のプロセスの共有メモリのアクセス制御の状態を強制的に変更するような機能も実現されていない。
【0060】
しかしながら、実施例1によれば、あたかも動的な共有メモリのアクセス制御が可能であり、効率的なアクセス制御が実現できる。
【0061】
また、上記の実施例1では、メモリ管理プログラムが、プログラムページテーブル内のアクセス制御の属性を書き換えることにより、プログラムのアクセス制御を実現する場合を説明したが、これに限定されるものではない。
【0062】
例えば、メモリ管理プログラムは、アクセス制御の対象となるプログラムの仮想アドレス空間に対応する物理アドレスが、共有メモリの物理アドレスとは異なるアドレスになるようにページテーブルを書き換えてもよい。これにより、アクセス制御の属性を書き換えるのと同様に、共有メモリに書き込まれたデータが書き換えられてしまうことを防止する効果がある。
【実施例2】
【0063】
以下、本願の開示する情報処理プログラム、情報処理装置および情報処理方法の他の実施形態を説明する。
【0064】
(1)装置構成等
図1に示した情報処理装置200の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報処理装置200の分散・統合の具体的形態は図示のものに限られず、例えば、CPU210を処理内容に応じて、機能的あるいは物理的に分散する。
【0065】
このように、情報処理装置200の全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、情報処理装置200にて行なわれる各処理機能(図2参照)は、その全部または任意の一部が、CPU210および当該CPU210にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0066】
(2)情報処理方法
上記の実施例1で説明した情報処理装置200により、以下のような情報処理情報が実現される。
【0067】
すなわち、第1のプログラム(例えば、プログラムB)からの依頼に応じて、第1のプログラム(例えば、プログラムA)に割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成ステップと(図2のステップS3およびステップS4参照)、第2のプログラムによる共有領域へのアクセス制限依頼を受け付けた場合に、アクセス制限依頼が正当なものであるか否かを判定する依頼判定ステップと(例えば、図2のステップS9参照)、依頼判定ステップによりアクセス制限依頼が正当なものであるものであると判定された場合には、第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限ステップと(例えば、図2のステップS10参照)を含んだ情報処理方法が実現される。
【符号の説明】
【0068】
200 情報処理装置
210 CPU
220 ストレージ
230 レジスタ
240 MMU
250 メモリ
【特許請求の範囲】
【請求項1】
第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを、第1のプログラムからの依頼に応じて同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成手順と、
第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定手順と、
前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限手順と
をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記依頼判定手順は、前記第1のプログラムからの依頼に応じて前記共有領域生成手順により前記共有領域が生成されている場合には、前記アクセス制限依頼が正当なものであると判定し、
前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第2のプログラムによる共有領域への読み書きを禁止することを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第2のプログラムによる共有領域への読み書きを禁止する代わりに、前記第2のプログラムによる共有領域への書き込みのみを禁止することを特徴とする請求項2に記載の情報処理プログラム。
【請求項4】
前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第2のプログラムによる共有領域への読み書きを禁止する代わりに、前記第2のプログラムによるアクセス先を前記共有領域に対応しない領域に変更することを特徴とする請求項2に記載の情報処理プログラム。
【請求項5】
第1のプログラムからの依頼に応じて、第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成部と、
第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定部と、
前記依頼判定部により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限部と
を有することを特徴とする情報処理装置。
【請求項6】
第1のプログラムからの依頼に応じて、第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成ステップと、
第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定ステップと、
前記依頼判定ステップにより前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限ステップと
を含んだことを特徴とする情報処理方法。
【請求項1】
第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを、第1のプログラムからの依頼に応じて同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成手順と、
第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定手順と、
前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限手順と
をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記依頼判定手順は、前記第1のプログラムからの依頼に応じて前記共有領域生成手順により前記共有領域が生成されている場合には、前記アクセス制限依頼が正当なものであると判定し、
前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第2のプログラムによる共有領域への読み書きを禁止することを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第2のプログラムによる共有領域への読み書きを禁止する代わりに、前記第2のプログラムによる共有領域への書き込みのみを禁止することを特徴とする請求項2に記載の情報処理プログラム。
【請求項4】
前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第2のプログラムによる共有領域への読み書きを禁止する代わりに、前記第2のプログラムによるアクセス先を前記共有領域に対応しない領域に変更することを特徴とする請求項2に記載の情報処理プログラム。
【請求項5】
第1のプログラムからの依頼に応じて、第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成部と、
第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定部と、
前記依頼判定部により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限部と
を有することを特徴とする情報処理装置。
【請求項6】
第1のプログラムからの依頼に応じて、第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成ステップと、
第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定ステップと、
前記依頼判定ステップにより前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限ステップと
を含んだことを特徴とする情報処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2010−238193(P2010−238193A)
【公開日】平成22年10月21日(2010.10.21)
【国際特許分類】
【出願番号】特願2009−88382(P2009−88382)
【出願日】平成21年3月31日(2009.3.31)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成22年10月21日(2010.10.21)
【国際特許分類】
【出願日】平成21年3月31日(2009.3.31)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]