JP5338435B2 - 情報処理プログラム、情報処理装置および情報処理方法 - Google Patents

情報処理プログラム、情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP5338435B2
JP5338435B2 JP2009088382A JP2009088382A JP5338435B2 JP 5338435 B2 JP5338435 B2 JP 5338435B2 JP 2009088382 A JP2009088382 A JP 2009088382A JP 2009088382 A JP2009088382 A JP 2009088382A JP 5338435 B2 JP5338435 B2 JP 5338435B2
Authority
JP
Japan
Prior art keywords
program
request
access
shared area
address space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009088382A
Other languages
English (en)
Other versions
JP2010238193A (ja
Inventor
尚 兒島
正弘 中田
哲也 塩田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009088382A priority Critical patent/JP5338435B2/ja
Priority to EP10156651.1A priority patent/EP2237155B1/en
Priority to US12/725,980 priority patent/US8307166B2/en
Priority to KR1020100025811A priority patent/KR101139195B1/ko
Publication of JP2010238193A publication Critical patent/JP2010238193A/ja
Application granted granted Critical
Publication of JP5338435B2 publication Critical patent/JP5338435B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Description

この発明は、情報処理プログラム、情報処理装置および情報処理方法に関する。
従来より、共有メモリによるプロセス間通信では、効率的なデータアクセスを実現することを目的として、送信側および受信側の両プロセスから共有メモリへの読み書き可能とする技術が存在する。
また、上記技術に関連して、例えば、共有メモリへの排他的なアクセスを実現する技術なども提案されている。
特開平1−205362号公報
ところで、上記した従来の技術は、受信側プロセスが、送信側プロセスにより共有メモリに書き込まれたデータの安全性をチェックし、チェックが完了したデータを使用するまでの間に、送信側プロセスによりデータが書き換えられてしまう恐れがある。このような事態に対処するために、受信側プロセスで共有メモリのデータを非共有メモリにコピーする技術があるが、コピーに時間を要する点やメモリ容量を圧迫する点で効率が悪い。
また、上記従来技術のように、OS(Operating System)の排他制御機能を利用して、共有メモリへ排他的にアクセスする技術があるが、一般的に送受信プロセス間の協調が必要となるので、送信側プロセスに悪意がある場合には実効性がない。
開示の技術は、上記に鑑みてなされたものであって、データの完全性を維持しつつ、共有メモリへの効率的なアクセス制御を実現することが可能な情報処理プログラム、情報処理装置および情報処理方法を提供することを目的とする。
本願の開示する技術は、一つの態様において、第1のプログラムからの依頼に応じて、第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成手順と、第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定手順と、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限手順と、をコンピュータに実行させる。
本願の開示する技術の一つの態様によれば、データの完全性を維持しつつ、共有メモリへの効率的なアクセス制御を実現できる。
図1は、実施例1に係る情報処理装置の構成を示す図である。 図2は、実施例1に係る情報処理装置による処理の流れを示す図である。 図3は、実施例1に係るページテーブルの構成例を示す図である。 図4は、実施例1に係る共有メモリの割り当てを依頼するシステムコールの一例を示す図である。 図5は、実施例1に係るメモリ管理情報の構成例を示す図である。 図6は、実施例1に係る仮想アドレスを通知する場合のシステムコールの一例を示す図である。 図7は、実施例1に係る共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。 図8は、実施例1に係る共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。 図9は、実施例1に係る処理終了を通知する場合のシステムコールの一例を示す図である。 図10は、実施例1に係る共有メモリの解放を依頼する場合のシステムコールの一例を示す図である。
以下に、図面を参照しつつ、本願の開示する情報処理プログラム、情報処理装置および情報処理方法の一実施形態について詳細に説明する。なお、情報処理プログラム、情報処理装置および情報処理方法の一実施形態として後述する実施例1により、本願が開示する技術が限定されるものではない。
実施例1に係る情報処理装置は、異なるプログラムがそれぞれアクセス可能な仮想アドレス空間に対応付けられた同一の物理アドレス空間、いわゆる共有メモリを利用した動作(例えば、プロセス間通信等)を制御することを概要とする。
そして、実施例1に係る情報処理装置の骨子は、以下に説明する点にある。すなわち、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセス制限依頼を受け付けると、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものであるか否かを判定する。そして、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものである場合には、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセスを制限する。以下、実施例1に係る情報処理装置について具体的に説明する。
[情報処理装置の構成(実施例1)]
図1は、実施例1に係る情報処理装置の構成を示す図である。同図に示すように、実施例1に係る情報処理装置200は、CPU210、ストレージ220、レジスタ230、MMU240およびメモリ250を有する。
CPU210は、所定の制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、情報処理装置の制御やデータの計算、加工等の種々の処理を実行する。
また、CPU210は、MMU240を操作可能な特権モード、MMU240を操作不可能な非特権モードなどの実行モードを有し、非特許権モードのメモリアクセスを制限できる。非特権モードで動作するプログラムは、特権モードで動作するプログラムの許可なしには特権モードに遷移できない。
ストレージ220は、データやプログラム等を記憶する。レジスタ230は、CPU210による演算や処理の実行状態を保持する。
MMU(Memory Management Unit:メモリ管理ユニット)240は、メモリ250を管理する。
メモリ250は、メモリ管理プログラム、プログラムA、プログラムBなどが展開される。また、共有メモリ、メモリ管理情報、メモリ管理プログラムページテーブル、プログラムAページテーブル、プログラムBページテーブル、プログラムA非共有メモリ、プログラムB非共有メモリを有する。
特に、メモリ管理プログラムは、プログラムAおよびプログラムBによる共有メモリへのアクセスを制御する。例えば、メモリ管理プログラムは、CPU210によりメモリ250から読込まれてメモリ250上に展開されることで、メモリ管理に関する処理を実行するプロセスとして機能する。なお、メモリ管理プログラムによる具体的な処理内容については、後述する情報処理装置200の処理の流れ(図2)の中で説明する。
また、プログラムAおよびプログラムBは、非特権モードで動作し、互いに異なる物理アドレス領域に対応付けられた仮想アドレス空間を有する。共有メモリは、プログラムAおよびプログラムBが有する各仮想アドレス空間の一部が対応付けられた同一の物理アドレス領域である。
また、メモリ管理情報は、メモリ250を管理するための情報である。メモリ管理プログラムページテーブル、プログラムAページテーブルおよびプログラムBページテーブルは、仮想アドレスと物理アドレスとの相互変換に用いるテーブルである。
また、プログラムA非共有メモリは、プログラムAのみが利用するメモリである。プログラムB非共有メモリは、プログラムBのみが利用するメモリである。
[情報処理装置の処理(実施例1)]
図2は、実施例1に係る情報処理装置による処理の流れを示す図である。以下では、情報処理装置200内で動作する各プログラム(メモリ管理プログラム、プログラムAおよびプログラムB)を主体として処理の流れを説明する。実際には、各プログラムは、CPU210によりメモリ250から読込まれてメモリ250上に展開されることでプロセスとして機能する。
同図に示すように、プログラムAが起動する(ステップS1)。プログラムAのプログラムファイルはストレージ220などのデータ格納装置に保存されており、CPU210によってメモリ250上にロードされて実行される。
また、プログラムAは、例えば、データの送信側であり、プログラムBからみると信頼できないプログラムであるものとする。プログラムAには、CPU210上で動作するOS(Operating System)により、独自のプロセスIDが付与される。また、プログラムAのためのページテーブルもメモリ250内に用意される。
続いて、プログラムBが起動する(ステップS2)。また、プログラムBは、例えば、データの受信側であり、CPU210上で動作するOS(Operating System)により、独自のプロセスIDが付与される。また、プログラムBのためのページテーブルもメモリ250内に用意される。プログラムAおよびBのためのページテーブルは、例えば、図3に示すように、仮想アドレスと、物理アドレスと、仮想アドレスに対するアクセス制御の属性を示す情報とを対応付けて記憶する。図3は、実施例1に係るページテーブルの構成例を示す図である。
プログラムBは、プログラムAに対する共有メモリの割り当てをメモリ管理プログラムに依頼する(ステップS3)。ここで、プログラムBからメモリ管理プログラムへの依頼は、例えば、図4に示すような一般的なOSのシステムコールなどを用いて実行される。図4は、実施例1に係る共有メモリの割り当てを依頼するシステムコールの一例を示す図である。
共有メモリは、プログラムBに割り当てられたメモリ領域の一部をプログラムAからもアクセス可能にすることで実現される。プログラムBは、プログラムAに対する共有メモリの割り当てをメモリ管理プログラムに依頼する場合に、システムコールの引数として共有メモリにしたい領域の仮想アドレスなどを指定する。また、プログラムAから読み書き可能にするか、書き込みのみ許可するかどうかのアクセス制御の属性を選択する。
プログラムBからの依頼を受けて、メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを読み書き可能にする(ステップS4)。
具体的には、プログラムBのページテーブルを基にメモリ領域の物理アドレスを取得し、プログラムAのページテーブルに、先に取得した物理アドレスを追加する。さらに、メモリ管理プログラムは、追加した物理アドレスに対応する仮想アドレスとして適当なものを割り当てるとともに、アクセス制御の属性も追加する。
アクセス制御の属性の追加までを終えると、メモリ管理プログラムは、プログラムA用の仮想アドレスをシステムコールの戻り値としてプログラムBに返す。また、メモリ管理プログラムは、プログラムBがプログラムA用の共有メモリを作成したことをメモリ250内のメモリ管理情報に記録しておく。
メモリ管理情報は、例えば、図5に示すように、共有メモリの所有者のプロセスID(例えば、プログラムBに付与されたプロセスID)と、仮想アドレスと、サイズと、利用者のプロセスID(例えば、プログラムAに付与されたプロセスID)と、仮想アドレスとを対応付けて記憶する。図5は、実施例1に係るメモリ管理情報の構成例を示す図である。
メモリ管理プログラムによりプログラムAのページテーブルが書き換えられると、プログラムBは、メモリ管理プログラムからシステムコールの戻り値として受け付けたプログラムA用の仮想アドレス(共有メモリ)をシステムコールでプログラムAに通知する(ステップS5)。
メモリ管理プログラムは、プログラムBから仮想アドレスの通知があると、プログラムAに仮想アドレスを通知する。図6に、プログラムBがプログラムAに仮想アドレスを通知する場合のシステムコールの一例を示す。図6は、実施例1に係る仮想アドレスを通知する場合のシステムコールの一例を示す図である。
仮想アドレス(共有メモリ)の通知を受けて、プログラムAは、共有メモリにデータを書き込み(ステップS6)、共有メモリにデータを書き込んだことをプログラムBに対して通知する(ステップS7)。
メモリ管理プログラムは、プログラムAから共有メモリへの書き込みの通知があると、プログラムBに共有メモリへのデータの書き込みを通知する。図7に、プログラムAがプログラムBに共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。図7は、実施例1に係る共有メモリへの書き込みを通知する場合のシステムコールの一例を示す。
書き込みの通知を受けて、プログラムBは、プログラムAに対する共有メモリへのアクセス制御の属性を書き込み不可(または読み書き不可)に設定するようにメモリ管理プログラムに依頼する(ステップS8)。図8に、プログラムBがメモリ管理プログラムにプログラムAの共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。図8は、実施例1に係る共有メモリに対するアクセス制御を依頼する場合のシステムコールの一例を示す。
プログラムBからの依頼を受けて、メモリ管理プログラムは、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものであるかどうかをチェックする(ステップS9)。
具体的に説明すると、メモリ管理プログラムは、アクセス制御の依頼元であるプログラムBについてのメモリ管理情報(図5)を参照する。そして、アクセス制御依頼のシステムコールに含まれるプログラムBのプロセスIDと、指定された仮想アドレスがメモリ管理情報内で共有メモリの所有者として登録されているかどうかチェックする。
チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものである場合には(ステップS9肯定)、メモリ管理プログラムは、次のように動作する。メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを書き込み不可(または読み書き不可)に設定する(ステップS10)。
メモリ管理プログラムによりプログラムAのページテーブルが書き換えられると、プログラムBは、共有メモリを読込んで必要な処理(例えば、テキストデータや画像データの出力、動画データの再生など)を行う(ステップS11)。
処理完了後、プログラムBは、プログラムAに対する共有メモリへのアクセス制御の属性を読み書き可能に戻すように、メモリ管理プログラムに対してシステムコール(例えば、図7参照)で依頼する(ステップS12)。
メモリ管理プログラムは、上述したステップS9と同様に、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものであるかどうかをチェックする(ステップS13)。
チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものである場合には(ステップS13肯定)、メモリ管理プログラムは、次のように動作する。メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを読み書き可能に設定する(ステップS14)。
メモリ管理プログラムによりプログラムAのページテーブルが書き換えられると、プログラムBは、プログラムAに処理終了をシステムコールで通知する(ステップS15)。
メモリ管理プログラムは、プログラムBから処理終了のシステムコールがあると、プログラムAに処理終了を通知する。図9に、プログラムBがプログラムAに対して処理終了を通知する場合のシステムコールの一例を示す。図9は、実施例1に係る処理終了を通知する場合のシステムコールの一例を示す図である。
処理終了の通知を受けて、プログラムAは、共有メモリからデータを読込んで必要な処理を行う(ステップS16)。
共有メモリを利用した処理が全て完了した後、プログラムBは、共有メモリを解放するようにメモリ管理プログラムにシステムコールで依頼する(ステップS17)。図10に、共有メモリの解放を依頼する場合のシステムコールの一例を示す。図10は、実施例1に係る共有メモリの解放を依頼する場合のシステムコールの一例を示す図である。
プログラムBからの依頼を受けて、メモリ管理プログラムは、上述したステップS9およびS13と同様に、共有メモリの解放の依頼が、共有メモリの所有者であるプログラムBからのものであるかどうかをチェックする(ステップS18)。
チェックの結果、プログラムAに対する共有メモリの解放の依頼が、共有メモリの所有者であるプログラムBからのものである場合には(ステップS18肯定)、メモリ管理プログラムは、上述したステップS10と同様に、次のように動作する。メモリ管理プログラムは、プログラムAのページテーブルを書き換えて、共有メモリを書き込み不可(または読み書き不可)に設定する(ステップS19)。
ここで、ステップS9の説明に戻る。チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものではない場合には(ステップS9否定)、メモリ管理プログラムは、不正な依頼としてエラーを返して(ステップS20)、処理を終了する。
ここで、ステップS13の説明に戻る。チェックの結果、プログラムAに対する共有メモリへのアクセス制御の依頼が、共有メモリの所有者であるプログラムBからのものではない場合には(ステップS13否定)、メモリ管理プログラムは、不正な依頼としてエラーを返して(ステップS21)、処理を終了する。
ここで、ステップS18の説明に戻る。チェックの結果、共有メモリの解放の依頼が、共有メモリの所有者であるプログラムBからのものではない場合には(ステップS18否定)、メモリ管理プログラムは、不正な依頼としてエラーを返して(ステップS22)、処理を終了する。
[実施例1による効果]
上述してきたように、実施例1によれば、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセス制限依頼を受け付けると、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものであるか否かを判定する。そして、アクセス制限依頼が共有メモリを所有する側のプログラム(例えば、プログラムB)からのものである場合には、共有メモリを利用する側のプログラム(例えば、プログラムA)による共有メモリへのアクセスを制限する。
このようなことから、例えば、共有メモリを利用して情報処理装置200内で実行されるプロセス間通信において、データの完全性を維持しつつ(プログラムBの処理中におけるプログラムAによる共有メモリの上書きを防止しつつ)、効率的なアクセス制御を実現できる。
すなわち、例えば、上述したプログラムB(例えば、受信側プロセス)が、プログラムA(例えば、送信側プロセス)により共有メモリに書き込まれたデータを安全に処理することが可能である。
さらに、データが書き換えられてしまうことに備えて、共有メモリのデータのコピーなどの処理も不要であるので、実行速度やメモリ使用量の点で効率が良い。このように、情報処理装置200の性能を保ちつつ、データの安全性を向上できる。
また、現状の多くのOSでは、共有メモリへのアクセス制御は静的に決定されるものであり、いったんプロセス間で共有メモリが設定されると、それ以降はアクセス制御の状態を変更できない。さらに、一方のプロセスから、もう一方のプロセスの共有メモリのアクセス制御の状態を強制的に変更するような機能も実現されていない。
しかしながら、実施例1によれば、あたかも動的な共有メモリのアクセス制御が可能であり、効率的なアクセス制御が実現できる。
また、上記の実施例1では、メモリ管理プログラムが、プログラムページテーブル内のアクセス制御の属性を書き換えることにより、プログラムのアクセス制御を実現する場合を説明したが、これに限定されるものではない。
例えば、メモリ管理プログラムは、アクセス制御の対象となるプログラムの仮想アドレス空間に対応する物理アドレスが、共有メモリの物理アドレスとは異なるアドレスになるようにページテーブルを書き換えてもよい。これにより、アクセス制御の属性を書き換えるのと同様に、共有メモリに書き込まれたデータが書き換えられてしまうことを防止する効果がある。
以下、本願の開示する情報処理プログラム、情報処理装置および情報処理方法の他の実施形態を説明する。
(1)装置構成等
図1に示した情報処理装置200の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報処理装置200の分散・統合の具体的形態は図示のものに限られず、例えば、CPU210を処理内容に応じて、機能的あるいは物理的に分散する。
このように、情報処理装置200の全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、情報処理装置200にて行なわれる各処理機能(図2参照)は、その全部または任意の一部が、CPU210および当該CPU210にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(2)情報処理方法
上記の実施例1で説明した情報処理装置200により、以下のような情報処理情報が実現される。
すなわち、第1のプログラム(例えば、プログラムB)からの依頼に応じて、第1のプログラム(例えば、プログラムA)に割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを同一の物理アドレス空間に対応付けて、第1のプログラムおよび第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成ステップと(図2のステップS3およびステップS4参照)、第2のプログラムによる共有領域へのアクセス制限依頼を受け付けた場合に、アクセス制限依頼が正当なものであるか否かを判定する依頼判定ステップと(例えば、図2のステップS9参照)、依頼判定ステップによりアクセス制限依頼が正当なものであるものであると判定された場合には、第1のプログラムによる共有メモリへのアクセスを制限するアクセス制限ステップと(例えば、図2のステップS10参照)を含んだ情報処理方法が実現される。
200 情報処理装置
210 CPU
220 ストレージ
230 レジスタ
240 MMU
250 メモリ

Claims (6)

  1. 仮想アドレス空間と、物理アドレス空間と、アクセス制御属性とを対応付けて記憶するページテーブルにおいて、第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを、前記第2のプログラムからの依頼に応じて同一の物理アドレス空間に対応付けて前記ページテーブルに記憶させることにより前記第1のプログラムおよび前記第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成手順と、
    前記第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定手順と、
    前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記ページテーブルにおいて前記共有領域に応じた前記物理アドレス空間に対応する前記アクセス制御属性に前記第1のプログラムからのアクセス不可を設定することにより前記第1のプログラムによる前記共有領域へのアクセスを制限するアクセス制限手順と
    をコンピュータに実行させることを特徴とする情報処理プログラム。
  2. 前記依頼判定手順は、前記第2のプログラムからの依頼に応じて前記共有領域生成手順により前記共有領域が生成されている場合には、前記アクセス制限依頼が正当なものであると判定し、
    前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる前記共有領域への読み書きを禁止することを特徴とする請求項1に記載の情報処理プログラム。
  3. 前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる前記共有領域への読み書きを禁止する代わりに、前記第1のプログラムによる前記共有領域への書き込みのみを禁止することを特徴とする請求項2に記載の情報処理プログラム。
  4. 前記アクセス制限手順は、前記依頼判定手順により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記第1のプログラムによる前記共有領域への読み書きを禁止する代わりに、前記第1のプログラムによるアクセス先を前記共有領域に対応しない領域に変更することを特徴とする請求項2に記載の情報処理プログラム。
  5. 仮想アドレス空間と、物理アドレス空間と、アクセス制御属性とを対応付けて記憶するページテーブルにおいて、第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを、前記第2のプログラムからの依頼に応じて同一の物理アドレス空間に対応付けて前記ページテーブルに記憶させることにより前記第1のプログラムおよび前記第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成部と、
    前記第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定部と、
    前記依頼判定部により前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記ページテーブルにおいて前記共有領域に応じた前記物理アドレス空間に対応する前記アクセス制御属性に前記第1のプログラムからのアクセス不可を設定することにより前記第1のプログラムによる前記共有領域へのアクセスを制限するアクセス制限部と
    を有することを特徴とする情報処理装置。
  6. 仮想アドレス空間と、物理アドレス空間と、アクセス制御属性とを対応付けて記憶するページテーブルにおいて、第1のプログラムに割り当てられた仮想アドレス空間の一部と、第2のプログラムに割り当てられた仮想アドレス空間の一部とを、前記第2のプログラムからの依頼に応じて同一の物理アドレス空間に対応付けて前記ページテーブルに記憶させることにより前記第1のプログラムおよび前記第2のプログラムからのアクセスが可能な共有領域を生成する共有領域生成ステップと、
    前記第2のプログラムによる前記共有領域へのアクセス制限依頼を受け付けた場合に、前記アクセス制限依頼が正当なものであるか否かを判定する依頼判定ステップと、
    前記依頼判定ステップにより前記アクセス制限依頼が正当なものであるものであると判定された場合には、前記ページテーブルにおいて前記共有領域に応じた前記物理アドレス空間に対応する前記アクセス制御属性に前記第1のプログラムからのアクセス不可を設定することにより前記第1のプログラムによる前記共有領域へのアクセスを制限するアクセス制限ステップと
    を含んだことを特徴とする情報処理方法。
JP2009088382A 2009-03-31 2009-03-31 情報処理プログラム、情報処理装置および情報処理方法 Expired - Fee Related JP5338435B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009088382A JP5338435B2 (ja) 2009-03-31 2009-03-31 情報処理プログラム、情報処理装置および情報処理方法
EP10156651.1A EP2237155B1 (en) 2009-03-31 2010-03-16 Information processing program, information processing device and information processing method
US12/725,980 US8307166B2 (en) 2009-03-31 2010-03-17 Information processing program, information processing device and information processing method
KR1020100025811A KR101139195B1 (ko) 2009-03-31 2010-03-23 정보 처리 프로그램 기억 매체, 정보 처리 장치 및 정보 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009088382A JP5338435B2 (ja) 2009-03-31 2009-03-31 情報処理プログラム、情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JP2010238193A JP2010238193A (ja) 2010-10-21
JP5338435B2 true JP5338435B2 (ja) 2013-11-13

Family

ID=42562417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009088382A Expired - Fee Related JP5338435B2 (ja) 2009-03-31 2009-03-31 情報処理プログラム、情報処理装置および情報処理方法

Country Status (4)

Country Link
US (1) US8307166B2 (ja)
EP (1) EP2237155B1 (ja)
JP (1) JP5338435B2 (ja)
KR (1) KR101139195B1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101532397B1 (ko) * 2011-08-31 2015-06-29 후아웨이 테크놀러지 컴퍼니 리미티드 컴퓨터 시스템의 메모리 관리 방법, 메모리 관리 유닛 및 컴퓨터 시스템
JP5821723B2 (ja) * 2012-03-15 2015-11-24 富士通株式会社 情報処理装置及び制御プログラム
US9996481B2 (en) 2012-06-21 2018-06-12 Saab Ab Dynamic memory access management
US9652270B2 (en) * 2014-03-21 2017-05-16 Intel Corporation Apparatus and method for virtualized computing
US10628192B2 (en) * 2015-12-24 2020-04-21 Intel Corporation Scalable techniques for data transfer between virtual machines
WO2017155523A1 (en) 2016-03-09 2017-09-14 Hewlett Packard Enterprise Development Lp Server virtual address space
US10585412B2 (en) * 2017-02-13 2020-03-10 Rockwell Automation Technologies, Inc. Safety controller using hardware memory protection
CN109756704A (zh) * 2018-11-30 2019-05-14 安徽清新互联信息科技有限公司 一种嵌入式音视频监控系统的进程间通信方法及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01205362A (ja) 1988-02-12 1989-08-17 Sanyo Electric Co Ltd バス制御装置
US5123094A (en) * 1990-01-26 1992-06-16 Apple Computer, Inc. Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
US8495131B2 (en) * 2002-10-08 2013-07-23 International Business Machines Corporation Method, system, and program for managing locks enabling access to a shared resource
KR100766666B1 (ko) * 2005-06-15 2007-10-11 후지쯔 가부시끼가이샤 멀티프로세서 시스템
US7536517B2 (en) * 2005-07-29 2009-05-19 Microsoft Corporation Direct-update software transactional memory
JP2007310834A (ja) * 2006-05-22 2007-11-29 Hitachi Ltd データ保護方法、情報処理装置及びオペレーティングシステム
US9274859B2 (en) * 2006-05-25 2016-03-01 Nvidia Corporation Multi processor and multi thread safe message queue with hardware assistance
US7840765B2 (en) * 2006-10-31 2010-11-23 Hewlett-Packard Development Company, L.P. RDMA copy-on-write
JP4930078B2 (ja) 2007-01-31 2012-05-09 富士通株式会社 情報処理方法、情報処理装置、情報処理プログラムおよび該プログラムを記録した記録媒体
JP5308629B2 (ja) * 2007-03-26 2013-10-09 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス保護方法

Also Published As

Publication number Publication date
KR20100109403A (ko) 2010-10-08
EP2237155A2 (en) 2010-10-06
EP2237155A3 (en) 2012-05-30
EP2237155B1 (en) 2017-07-26
KR101139195B1 (ko) 2012-04-26
JP2010238193A (ja) 2010-10-21
US20100250866A1 (en) 2010-09-30
US8307166B2 (en) 2012-11-06

Similar Documents

Publication Publication Date Title
JP5338435B2 (ja) 情報処理プログラム、情報処理装置および情報処理方法
US9122575B2 (en) Processing system having memory partitioning
JP5518946B2 (ja) 保護領域境界を越えるオブジェクトの起動のための方法、システム、及び装置
JP6893479B2 (ja) 所有権テーブルを用いたデータ処理装置及び方法
JP6913636B2 (ja) 共有ページ
US9218302B2 (en) Page table management
JP3704573B2 (ja) クラスタシステム
US8904400B2 (en) Processing system having a partitioning component for resource partitioning
JP2018522340A (ja) 安全な初期化
JP2018523211A (ja) 保護された例外処理
US20040205203A1 (en) Enforcing isolation among plural operating systems
JP2018524691A (ja) アドレス変換
JP2007287103A (ja) マイクロコンピュータ及びメモリアクセスの制御方法
WO2010097925A1 (ja) 情報処理装置
US8458434B2 (en) Unified virtual contiguous memory manager
US20190286327A1 (en) Memory Objects
WO2016127807A1 (zh) 多副本写入存储设备的方法及存储设备
JP5864534B2 (ja) 仮想計算機システム、メモリ管理方法、メモリ管理プログラム、記録媒体および集積回路
JPS5848289A (ja) バツフアメモリ制御方式
JP2007310834A (ja) データ保護方法、情報処理装置及びオペレーティングシステム
WO2021192098A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2009026310A (ja) データ記憶方法
JP6438381B2 (ja) 電子制御装置
JP6351397B2 (ja) 情報処理装置および情報処理方法、およびコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121225

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130722

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees