(57)【要約】【課題】データの完全性を維持しつつ、効率的なアクセス制御を実現することを課題とする。【解決手段】情報処理装置２００内で動作するメモリ管理プログラムは、一方のプログラム（例えば、プログラムＡ）による共有メモリへのアクセス制限依頼を他方のプログラム（例えば、プログラムＢ）から受け付けた場合に、アクセス制限依頼が正当なものであるか否かを判定する。判定の結果、アクセス制限依頼が正当なものである場合には、一方のプログラム（例えば、プログラムＡ）による共有メモリへのアクセス制限をする。このようなことから、情報処理装置２００においてデータの完全性を維持しつつ、共有メモリへの効率的なアクセス制御を実現できる。【選択図】図１
2010238193.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラムに割り当てられた仮想アドレス空間の一部と、第２のプログラムに割り当てられた仮想アドレス空間の一部とを、第１のプログラムからの依頼に応じて同一の物理アドレス空間に対応付けて、第１のプログラムおよび第２のプログラムからのアクセスが可能な共有領域を生成する共有領域生成手順と、
第２のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定手順と、
前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第１のプログラムによる共有メモリへのアクセスを制限するアクセス制限手順と
をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項２】
前記依頼判定手順は、前記第１のプログラムからの依頼に応じて前記共有領域生成手順により前記共有領域が生成されている場合には、前記アクセス制限依頼が正当なものであると判定し、
前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第２のプログラムによる共有領域への読み書きを禁止することを特徴とする請求項１に記載の情報処理プログラム。
【請求項３】
前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第２のプログラムによる共有領域への読み書きを禁止する代わりに、前記第２のプログラムによる共有領域への書き込みのみを禁止することを特徴とする請求項２に記載の情報処理プログラム。
【請求項４】
前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第２のプログラムによる共有領域への読み書きを禁止する代わりに、前記第２のプログラムによるアクセス先を前記共有領域に対応しない領域に変更することを特徴とする請求項２に記載の情報処理プログラム。
【請求項５】
第１のプログラムからの依頼に応じて、第１のプログラムに割り当てられた仮想アドレス空間の一部と、第２のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第１のプログラムおよび第２のプログラムからのアクセスが可能な共有領域を生成する共有領域生成部と、
第２のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定部と、
前記依頼判定部により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第１のプログラムによる共有メモリへのアクセスを制限するアクセス制限部と
を有することを特徴とする情報処理装置。
【請求項６】
第１のプログラムからの依頼に応じて、第１のプログラムに割り当てられた仮想アドレス空間の一部と、第２のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第１のプログラムおよび第２のプログラムからのアクセスが可能な共有領域を生成する共有領域生成ステップと、
第２のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定ステップと、
前記依頼判定ステップにより前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第１のプログラムによる共有メモリへのアクセスを制限するアクセス制限ステップと
を含んだことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理プログラム、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
従来より、共有メモリによるプロセス間通信では、効率的なデータアクセスを実現することを目的として、送信側および受信側の両プロセスから共有メモリへの読み書き可能とする技術が存在する。
【０００３】
また、上記技術に関連して、例えば、共有メモリへの排他的なアクセスを実現する技術なども提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１−２０５３６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記した従来の技術は、受信側プロセスが、送信側プロセスにより共有メモリに書き込まれたデータの安全性をチェックし、チェックが完了したデータを使用するまでの間に、送信側プロセスによりデータが書き換えられてしまう恐れがある。このような事態に対処するために、受信側プロセスで共有メモリのデータを非共有メモリにコピーする技術があるが、コピーに時間を要する点やメモリ容量を圧迫する点で効率が悪い。
【０００６】
また、上記従来技術のように、ＯＳ（Operating System）の排他制御機能を利用して、共有メモリへ排他的にアクセスする技術があるが、一般的に送受信プロセス間の協調が必要となるので、送信側プロセスに悪意がある場合には実効性がない。
【０００７】
開示の技術は、上記に鑑みてなされたものであって、データの完全性を維持しつつ、共有メモリへの効率的なアクセス制御を実現することが可能な情報処理プログラム、情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示する技術は、一つの態様において、第１のプログラムからの依頼に応じて、第１のプログラムに割り当てられた仮想アドレス空間の一部と、第２のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第１のプログラムおよび第２のプログラムからのアクセスが可能な共有領域を生成する共有領域生成手順と、第２のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定手順と、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第１のプログラムによる共有メモリへのアクセスを制限するアクセス制限手順と、をコンピュータに実行させる。
【発明の効果】
【０００９】
本願の開示する技術の一つの態様によれば、データの完全性を維持しつつ、共有メモリへの効率的なアクセス制御を実現できる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係る情報処理装置の構成を示す図である。
【図２】図２は、実施例１に係る情報処理装置による処理の流れを示す図である。
【図３】図３は、実施例１に係るページテーブルの構成例を示す図である。
【図４】図４は、実施例１に係る共有メモリの割り当てを依頼するシステムコールの一例を示す図である。
【図５】図５は、実施例１に係るメモリ管理情報の構成例を示す図である。
【図６】図６は、実施例１に係る仮想アドレスを通知する場合のシステムコールの一例を示す図である。
【図７】図７は、実施例１に係る共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。
【図８】図８は、実施例１に係る共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。
【図９】図９は、実施例１に係る処理終了を通知する場合のシステムコールの一例を示す図である。
【図１０】図１０は、実施例１に係る共有メモリの解放を依頼する場合のシステムコールの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、図面を参照しつつ、本願の開示する情報処理プログラム、情報処理装置および情報処理方法の一実施形態について詳細に説明する。なお、情報処理プログラム、情報処理装置および情報処理方法の一実施形態として後述する実施例１により、本願が開示する技術が限定されるものではない。
【実施例１】
【００１２】
実施例１に係る情報処理装置は、異なるプログラムがそれぞれアクセス可能な仮想アドレス空間に対応付けられた同一の物理アドレス空間、いわゆる共有メモリを利用した動作（例えば、プロセス間通信等）を制御することを概要とする。
【００１３】
そして、実施例１に係る情報処理装置の骨子は、以下に説明する点にある。すなわち、共有メモリを利用する側のプログラム（例えば、プログラムＡ）による共有メモリへのアクセス制限依頼を受け付けると、アクセス制限依頼が共有メモリを所有する側のプログラム（例えば、プログラムＢ）からのものであるか否かを判定する。そして、アクセス制限依頼が共有メモリを所有する側のプログラム（例えば、プログラムＢ）からのものである場合には、共有メモリを利用する側のプログラム（例えば、プログラムＡ）による共有メモリへのアクセスを制限する。以下、実施例１に係る情報処理装置について具体的に説明する。
【００１４】
［情報処理装置の構成（実施例１）］
図１は、実施例１に係る情報処理装置の構成を示す図である。同図に示すように、実施例１に係る情報処理装置２００は、ＣＰＵ２１０、ストレージ２２０、レジスタ２３０、ＭＭＵ２４０およびメモリ２５０を有する。
【００１５】
ＣＰＵ２１０は、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、情報処理装置の制御やデータの計算、加工等の種々の処理を実行する。
【００１６】
また、ＣＰＵ２１０は、ＭＭＵ２４０を操作可能な特権モード、ＭＭＵ２４０を操作不可能な非特権モードなどの実行モードを有し、非特許権モードのメモリアクセスを制限できる。非特権モードで動作するプログラムは、特権モードで動作するプログラムの許可なしには特権モードに遷移できない。
【００１７】
ストレージ２２０は、データやプログラム等を記憶する。レジスタ２３０は、ＣＰＵ２１０による演算や処理の実行状態を保持する。
【００１８】
ＭＭＵ（Memory Management Unit：メモリ管理ユニット）２４０は、メモリ２５０を管理する。
【００１９】
メモリ２５０は、メモリ管理プログラム、プログラムＡ、プログラムＢなどが展開される。また、共有メモリ、メモリ管理情報、メモリ管理プログラムページテーブル、プログラムＡページテーブル、プログラムＢページテーブル、プログラムＡ非共有メモリ、プログラムＢ非共有メモリを有する。
【００２０】
特に、メモリ管理プログラムは、プログラムＡおよびプログラムＢによる共有メモリへのアクセスを制御する。例えば、メモリ管理プログラムは、ＣＰＵ２１０によりメモリ２５０から読込まれてメモリ２５０上に展開されることで、メモリ管理に関する処理を実行するプロセスとして機能する。なお、メモリ管理プログラムによる具体的な処理内容については、後述する情報処理装置２００の処理の流れ（図２）の中で説明する。
【００２１】
また、プログラムＡおよびプログラムＢは、非特権モードで動作し、互いに異なる物理アドレス領域に対応付けられた仮想アドレス空間を有する。共有メモリは、プログラムＡおよびプログラムＢが有する各仮想アドレス空間の一部が対応付けられた同一の物理アドレス領域である。
【００２２】
また、メモリ管理情報は、メモリ２５０を管理するための情報である。メモリ管理プログラムページテーブル、プログラムＡページテーブルおよびプログラムＢページテーブルは、仮想アドレスと物理アドレスとの相互変換に用いるテーブルである。
【００２３】
また、プログラムＡ非共有メモリは、プログラムＡのみが利用するメモリである。プログラムＢ非共有メモリは、プログラムＢのみが利用するメモリである。
【００２４】
［情報処理装置の処理（実施例１）］
図２は、実施例１に係る情報処理装置による処理の流れを示す図である。以下では、情報処理装置２００内で動作する各プログラム（メモリ管理プログラム、プログラムＡおよびプログラムＢ）を主体として処理の流れを説明する。実際には、各プログラムは、ＣＰＵ２１０によりメモリ２５０から読込まれてメモリ２５０上に展開されることでプロセスとして機能する。
【００２５】
同図に示すように、プログラムＡが起動する（ステップＳ１）。プログラムＡのプログラムファイルはストレージ２２０などのデータ格納装置に保存されており、ＣＰＵ２１０によってメモリ２５０上にロードされて実行される。
【００２６】
また、プログラムＡは、例えば、データの送信側であり、プログラムＢからみると信頼できないプログラムであるものとする。プログラムＡには、ＣＰＵ２１０上で動作するＯＳ（Operating System）により、独自のプロセスＩＤが付与される。また、プログラムＡのためのページテーブルもメモリ２５０内に用意される。
【００２７】
続いて、プログラムＢが起動する（ステップＳ２）。また、プログラムＢは、例えば、データの受信側であり、ＣＰＵ２１０上で動作するＯＳ（Operating System）により、独自のプロセスＩＤが付与される。また、プログラムＢのためのページテーブルもメモリ２５０内に用意される。プログラムＡおよびＢのためのページテーブルは、例えば、図３に示すように、仮想アドレスと、物理アドレスと、仮想アドレスに対するアクセス制御の属性を示す情報とを対応付けて記憶する。図３は、実施例１に係るページテーブルの構成例を示す図である。
【００２８】
プログラムＢは、プログラムＡに対する共有メモリの割り当てをメモリ管理プログラムに依頼する（ステップＳ３）。ここで、プログラムＢからメモリ管理プログラムへの依頼は、例えば、図４に示すような一般的なＯＳのシステムコールなどを用いて実行される。図４は、実施例１に係る共有メモリの割り当てを依頼するシステムコールの一例を示す図である。
【００２９】
共有メモリは、プログラムＢに割り当てられたメモリ領域の一部をプログラムＡからもアクセス可能にすることで実現される。プログラムＢは、プログラムＡに対する共有メモリの割り当てをメモリ管理プログラムに依頼する場合に、システムコールの引数として共有メモリにしたい領域の仮想アドレスなどを指定する。また、プログラムＡから読み書き可能にするか、書き込みのみ許可するかどうかのアクセス制御の属性を選択する。
【００３０】
プログラムＢからの依頼を受けて、メモリ管理プログラムは、プログラムＡのページテーブルを書き換えて、共有メモリを読み書き可能にする（ステップＳ４）。
【００３１】
具体的には、プログラムＢのページテーブルを基にメモリ領域の物理アドレスを取得し、プログラムＡのページテーブルに、先に取得した物理アドレスを追加する。さらに、メモリ管理プログラムは、追加した物理アドレスに対応する仮想アドレスとして適当なものを割り当てるとともに、アクセス制御の属性も追加する。
【００３２】
アクセス制御の属性の追加までを終えると、メモリ管理プログラムは、プログラムＡ用の仮想アドレスをシステムコールの戻り値としてプログラムＢに返す。また、メモリ管理プログラムは、プログラムＢがプログラムＡ用の共有メモリを作成したことをメモリ２５０内のメモリ管理情報に記録しておく。
【００３３】
メモリ管理情報は、例えば、図５に示すように、共有メモリの所有者のプロセスＩＤ（例えば、プログラムＢに付与されたプロセスＩＤ）と、仮想アドレスと、サイズと、利用者のプロセスＩＤ（例えば、プログラムＡに付与されたプロセスＩＤ）と、仮想アドレスとを対応付けて記憶する。図５は、実施例１に係るメモリ管理情報の構成例を示す図である。
【００３４】
メモリ管理プログラムによりプログラムＡのページテーブルが書き換えられると、プログラムＢは、メモリ管理プログラムからシステムコールの戻り値として受け付けたプログラムＡ用の仮想アドレス（共有メモリ）をシステムコールでプログラムＡに通知する（ステップＳ５）。
【００３５】
メモリ管理プログラムは、プログラムＢから仮想アドレスの通知があると、プログラムＡに仮想アドレスを通知する。図６に、プログラムＢがプログラムＡに仮想アドレスを通知する場合のシステムコールの一例を示す。図６は、実施例１に係る仮想アドレスを通知する場合のシステムコールの一例を示す図である。
【００３６】
仮想アドレス（共有メモリ）の通知を受けて、プログラムＡは、共有メモリにデータを書き込み（ステップＳ６）、共有メモリにデータを書き込んだことをプログラムＢに対して通知する（ステップＳ７）。
【００３７】
メモリ管理プログラムは、プログラムＡから共有メモリへの書き込みの通知があると、プログラムＢに共有メモリへのデータの書き込みを通知する。図７に、プログラムＡがプログラムＢに共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。図７は、実施例１に係る共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。
【００３８】
書き込みの通知を受けて、プログラムＢは、プログラムＡに対する共有メモリへのアクセス制御の属性を書き込み不可（または読み書き不可）に設定するようにメモリ管理プログラムに依頼する（ステップＳ８）。図８に、プログラムＢがメモリ管理プログラムにプログラムＡの共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。図８は、実施例１に係る共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。
【００３９】
プログラムＢからの依頼を受けて、メモリ管理プログラムは、プログラムＡに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムＢからのものであるかどうかをチェックする（ステップＳ９）。
【００４０】
具体的に説明すると、メモリ管理プログラムは、アクセス制御の依頼元であるプログラムＢについてのメモリ管理情報（図５）を参照する。そして、アクセス制御依頼のシステムコールに含まれるプログラムＢのプロセスＩＤと、指定された仮想アドレスがメモリ管理情報内で共有メモリの所有者として登録されているかどうかチェックする。
【００４１】
チェックの結果、プログラムＡに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムＢからのものである場合には（ステップＳ９肯定）、メモリ管理プログラムは、次のように動作する。メモリ管理プログラムは、プログラムＡのページテーブルを書き換えて、共有メモリを書き込み不可（または読み書き不可）に設定する（ステップＳ１０）。
【００４２】
メモリ管理プログラムによりプログラムＡのページテーブルが書き換えられると、プログラムＢは、共有メモリを読込んで必要な処理（例えば、テキストデータや画像データの出力、動画データの再生など）を行う（ステップＳ１１）。
【００４３】
処理完了後、プログラムＢは、プログラムＡに対する共有メモリへのアクセス制御の属性を読み書き可能に戻すように、メモリ管理プログラムに対してシステムコール（例えば、図７参照）で依頼する（ステップＳ１２）。
【００４４】
メモリ管理プログラムは、上述したステップＳ９と同様に、プログラムＡに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムＢからのものであるかどうかをチェックする（ステップＳ１３）。
【００４５】
チェックの結果、プログラムＡに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムＢからのものである場合には（ステップＳ１３肯定）、メモリ管理プログラムは、次のように動作する。メモリ管理プログラムは、プログラムＡのページテーブルを書き換えて、共有メモリを読み書き可能に設定する（ステップＳ１４）。
【００４６】
メモリ管理プログラムによりプログラムＡのページテーブルが書き換えられると、プログラムＢは、プログラムＡに処理終了をシステムコールで通知する（ステップＳ１５）。
【００４７】
メモリ管理プログラムは、プログラムＢから処理終了のシステムコールがあると、プログラムＡに処理終了を通知する。図９に、プログラムＢがプログラムＡに対して処理終了を通知する場合のシステムコールの一例を示す。図９は、実施例１に係る処理終了を通知する場合のシステムコールの一例を示す図である。
【００４８】
処理終了の通知を受けて、プログラムＡは、共有メモリからデータを読込んで必要な処理を行う（ステップＳ１６）。
【００４９】
共有メモリを利用した処理が全て完了した後、プログラムＢは、共有メモリを解放するようにメモリ管理プログラムにシステムコールで依頼する（ステップＳ１７）。図１０に、共有メモリの解放を依頼する場合のシステムコールの一例を示す。図１０は、実施例１に係る共有メモリの解放を依頼する場合のシステムコールの一例を示す図である。
【００５０】
プログラムＢからの依頼を受けて、メモリ管理プログラムは、上述したステップＳ９およびＳ１３と同様に、共有メモリの解放の依頼が、共有メモリの所有者であるプログラムＢからのものであるかどうかをチェックする（ステップＳ１８）。
【００５１】
チェックの結果、プログラムＡに対する共有メモリの解放の依頼が、共有メモリの所有者であるプログラムＢからのものである場合には（ステップＳ１８肯定）、メモリ管理プログラムは、上述したステップＳ１０と同様に、次のように動作する。メモリ管理プログラムは、プログラムＡのページテーブルを書き換えて、共有メモリを書き込み不可（または読み書き不可）に設定する（ステップＳ１９）。
【００５２】
ここで、ステップＳ９の説明に戻る。チェックの結果、プログラムＡに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムＢからのものではない場合には（ステップＳ９否定）、メモリ管理プログラムは、不正な依頼としてエラーを返して（ステップＳ２０）、処理を終了する。
【００５３】
ここで、ステップＳ１３の説明に戻る。チェックの結果、プログラムＡに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムＢからのものではない場合には（ステップＳ１３否定）、メモリ管理プログラムは、不正な依頼としてエラーを返して（ステップＳ２１）、処理を終了する。
【００５４】
ここで、ステップＳ１８の説明に戻る。チェックの結果、共有メモリの解放の依頼が、共有メモリの所有者であるプログラムＢからのものではない場合には（ステップＳ１８否定）、メモリ管理プログラムは、不正な依頼としてエラーを返して（ステップＳ２２）、処理を終了する。
【００５５】
［実施例１による効果］
上述してきたように、実施例１によれば、共有メモリを利用する側のプログラム（例えば、プログラムＡ）による共有メモリへのアクセス制限依頼を受け付けると、アクセス制限依頼が共有メモリを所有する側のプログラム（例えば、プログラムＢ）からのものであるか否かを判定する。そして、アクセス制限依頼が共有メモリを所有する側のプログラム（例えば、プログラムＢ）からのものである場合には、共有メモリを利用する側のプログラム（例えば、プログラムＡ）による共有メモリへのアクセスを制限する。
【００５６】
このようなことから、例えば、共有メモリを利用して情報処理装置２００内で実行されるプロセス間通信において、データの完全性を維持しつつ（プログラムＢの処理中におけるプログラムＡによる共有メモリの上書きを防止しつつ）、効率的なアクセス制御を実現できる。
【００５７】
すなわち、例えば、上述したプログラムＢ（例えば、受信側プロセス）が、プログラムＡ（例えば、送信側プロセス）により共有メモリに書き込まれたデータを安全に処理することが可能である。
【００５８】
さらに、データが書き換えられてしまうことに備えて、共有メモリのデータのコピーなどの処理も不要であるので、実行速度やメモリ使用量の点で効率が良い。このように、情報処理装置２００の性能を保ちつつ、データの安全性を向上できる。
【００５９】
また、現状の多くのＯＳでは、共有メモリへのアクセス制御は静的に決定されるものであり、いったんプロセス間で共有メモリが設定されると、それ以降はアクセス制御の状態を変更できない。さらに、一方のプロセスから、もう一方のプロセスの共有メモリのアクセス制御の状態を強制的に変更するような機能も実現されていない。
【００６０】
しかしながら、実施例１によれば、あたかも動的な共有メモリのアクセス制御が可能であり、効率的なアクセス制御が実現できる。
【００６１】
また、上記の実施例１では、メモリ管理プログラムが、プログラムページテーブル内のアクセス制御の属性を書き換えることにより、プログラムのアクセス制御を実現する場合を説明したが、これに限定されるものではない。
【００６２】
例えば、メモリ管理プログラムは、アクセス制御の対象となるプログラムの仮想アドレス空間に対応する物理アドレスが、共有メモリの物理アドレスとは異なるアドレスになるようにページテーブルを書き換えてもよい。これにより、アクセス制御の属性を書き換えるのと同様に、共有メモリに書き込まれたデータが書き換えられてしまうことを防止する効果がある。
【実施例２】
【００６３】
以下、本願の開示する情報処理プログラム、情報処理装置および情報処理方法の他の実施形態を説明する。
【００６４】
（１）装置構成等
図１に示した情報処理装置２００の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報処理装置２００の分散・統合の具体的形態は図示のものに限られず、例えば、ＣＰＵ２１０を処理内容に応じて、機能的あるいは物理的に分散する。
【００６５】
このように、情報処理装置２００の全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、情報処理装置２００にて行なわれる各処理機能（図２参照）は、その全部または任意の一部が、ＣＰＵ２１０および当該ＣＰＵ２１０にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６６】
（２）情報処理方法
上記の実施例１で説明した情報処理装置２００により、以下のような情報処理情報が実現される。
【００６７】
すなわち、第１のプログラム（例えば、プログラムＢ）からの依頼に応じて、第１のプログラム（例えば、プログラムＡ）に割り当てられた仮想アドレス空間の一部と、第２のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第１のプログラムおよび第２のプログラムからのアクセスが可能な共有領域を生成する共有領域生成ステップと（図２のステップＳ３およびステップＳ４参照）、第２のプログラムによる共有領域へのアクセス制限依頼を受け付けた場合に、アクセス制限依頼が正当なものであるか否かを判定する依頼判定ステップと（例えば、図２のステップＳ９参照）、依頼判定ステップによりアクセス制限依頼が正当なものであるものであると判定された場合には、第１のプログラムによる共有メモリへのアクセスを制限するアクセス制限ステップと（例えば、図２のステップＳ１０参照）を含んだ情報処理方法が実現される。
【符号の説明】
【００６８】
２００  情報処理装置
２１０  ＣＰＵ
２２０  ストレージ
２３０  レジスタ
２４０  ＭＭＵ
２５０  メモリ
【図１】
2010238193.tif 000003
【図２】
2010238193.tif 000004
【図３】
2010238193.tif 000005
【図４】
2010238193.tif 000006
【図５】
2010238193.tif 000007
【図６】
2010238193.tif 000008
【図７】
2010238193.tif 000009
【図８】
2010238193.tif 000010
【図９】
2010238193.tif 000011
【図１０】
2010238193.tif 000012