JP3874603B2 - 計算機システムの共有メモリ構築方法 - Google Patents
計算機システムの共有メモリ構築方法 Download PDFInfo
- Publication number
- JP3874603B2 JP3874603B2 JP2000354694A JP2000354694A JP3874603B2 JP 3874603 B2 JP3874603 B2 JP 3874603B2 JP 2000354694 A JP2000354694 A JP 2000354694A JP 2000354694 A JP2000354694 A JP 2000354694A JP 3874603 B2 JP3874603 B2 JP 3874603B2
- Authority
- JP
- Japan
- Prior art keywords
- memory space
- shared memory
- shared
- physical
- virtual
- 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
Links
Images
Landscapes
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、1台の計算機上の制御プログラムの制御下で複数の異種または同種のOSが同時に動作することが可能な計算機システムの共有メモリ構築方法に係り、特に、それぞれのOS上で動作するプロセス間で共有メモリを構築することを可能とした計算機システムの共有メモリ構築方法に関する。
【0002】
【従来の技術】
共有メモリを構築することが可能な計算機システムに関する従来技術として、複数の仮想計算機が動作する1つの実計算機上において、複数の仮想計算機に割り当てるメモリ空間を相互に一部または全部を重複して設定し、その設定範囲内でメモリ空間を占有または共有することにより、仮想計算機相互間での共有メモリ空間を実現するというものが知られている。
【0003】
そして、前述の従来技術は、OS上で動作するプロセスが共有メモリ空間を必要とする場合、この仮想計算機相互間に提供された共有メモリ空間を使用することにより、プロセス間でのメモリの共有が可能とされている。
【0004】
なお、共有メモリの構築に関する従来技術として、例えば、特開平11―249916号公報等に記載された技術が知られている。
【0005】
【発明が解決しようとする課題】
前述した従来技術は、OS上で動作するプロセスからの共有メモリの要求に対して、プロセス間ではなくそのプロセスが動作しているOSの仮想計算機相互間で共有メモリ空間を実現するために、プロセスレベルの要求がOS及び仮想計算機のメモリ空間の割り当ての変更にまで波及し、共有メモリ構築のためのオーバーヘッドが大きくなるという問題点を有している。
【0006】
また、前述した従来技術は、予め仮想計算機に割り当てるメモリ空間を相互に一部または全部を重複して設定しておく必要があり、重複して設定したメモリ空間より大きいサイズの共有メモリ空間を動的に確保することが不可能であり、必要な場合には仮想計算機へのメモリ割り当てを再設定する必要が生じ、この再設定のために大きなオーバーヘッドが生じるという問題点を有している。
【0007】
本発明の目的は、前述した従来技術の問題点を解決し、1台の計算機上の制御プログラムの制御下で複数の異種または同種のOSが同時に動作することが可能な計算機システムにおいて、計算機システム上で動作するOSに対して柔軟なメモリ空間の割り当てを可能としつつ、共有メモリ空間として割り当てられるメモリ空間サイズの各OSに割り当てられるメモリ空間サイズへの依存を解消してオーバーヘッドの低減を図り、任意のサイズの共有メモリ空間の構築を可能とした計算機システムの共有メモリ構築方法を提供することにある。
【0008】
また、本発明の目的は、OS上で動作するプロセスからのプロセス間での共有メモリの構築要求に対し、プロセスと制御プログラムとによって共有メモリを実現することを可能として、OSの介入を必要とせずOSに対して透過的に動的な共有メモリの構築を可能とした計算機システムの共有メモリ構築方法を提供することにある。
【0009】
【課題を解決するための手段】
本発明によれば前記目的は、制御プログラムの制御下で1台の計算機上で複数のOSが同時に動作し、各OSの仮想メモリ空間で少なくとも1つのプロセスが動作し、各OSは、各プロセスが使用する仮想メモリ空間のマッピング先の物理メモリ空間の開始物理アドレスが格納されるメモリ空間変換テーブルを有する計算機システムの共有メモリ構築方法であって、前記制御プログラムは、前記複数のOSの各プロセスが共有メモリ空間として使用する物理メモリ空間の開始物理アドレスが格納される共有メモリ制御テーブルを有し、あるOSで動作する第1のプロセスが前記制御プログラムに共有メモリ空間の使用を要求し、該要求を受けた前記制御プログラムは、当該第1のプロセス対応に前記メモリ空間変換テーブルに格納されている開始物理アドレスを前記共有メモリ制御テーブルに格納されている開始物理アドレスに書き換えることにより達成される。
【0010】
それぞれのOS上では共有メモリを使用するプロセスが動作しており、これらのプロセスは、共有メモリの設計仕様に従って設計されている。この設計仕様は、プロセスがその実行に際し、共有メモリ空間に指定する仮想メモリ空間のマッピング先の物理メモリ空間を占有して使用できるようOSに対して要求し、指定した物理メモリ空間を占有使用することが求められる。また、同一の共有メモリ空間を共有するそれぞれのプロセスは、共有メモリの構築に際して同一のメモリ空間サイズを要求することを求められる。
【0011】
それぞれのOS上で動作するプロセスが制御プログラムに対してメモリ空間の共有を要求すると、要求を受け取った制御プログラムは、OSが管理するメモリ空間変換テーブル内の共有メモリ空間として指定する仮想メモリ空間のメモリマッピングを、共有メモリ空間に指定された物理メモリ空間にOSに非通知に変更することによりOSが関与することなく共有メモリを構築する。
【0012】
一般的には、OS上のプロセスが使用する仮想メモリ空間に対応する物理メモリ空間は、OSが状況に応じてメモリ割り当ての変更を行うが、本発明は、プロセスが共有メモリに使用する仮想メモリ空間のマッピング先の物理メモリ空間を占有しているため、OSによってメモリマップが変更されることはない。従って、共有メモリ空間の構築時にメモリ空間変換テーブルの書き換えを行ってもOSによって検出されることはない。また、ハードウェアによるメモリ空間の変換は、マッピングを変更しただけなので性能が低下することもない。
【0013】
プロセスが共有メモリ空間の使用を終了した場合、プロセスは、共有メモリ空間の開放を制御プログラムに要求する。制御プログラムは、共有メモリ空間構築の際と同様に、OSに非通知にOSのメモリ空間変換テーブルを共有メモリ空間の構築前のマッピングに戻すことによって、共有メモリ空間の構築以前のメモリ割り当て状態に完全に戻す。
【0014】
共有メモリの構築からプロセスによる共有メモリ空間の使用、及び、共有メモリ空間の開放に至る一連の処理において、OSにはメモリ空間変換テーブルが書き換えられたことは通知せず、OSによってメモリ空間変換テーブルの書き換えを検知されることもない。また、一連の処理にOSは一切関与しない。
【0015】
前述したように、本発明は、OSをスルーして要求を発行し制御プラグラムが要求を処理することにより、OSがプロセス間共有メモリ機構等を有する必要がなく、通常の物理計算機上で動作するOSであれば本発明を適応可能なOSの種類は問わない。また、共有メモリ要求に際して、メモリ空間の占有を宣言することにより、OSは、対応するメモリ空間を、その要求を発行したプロセスに占有させるため、一度共有メモリ要求を発行すれば共有メモリ空間の開放要求を出さない限り共有メモリ空間を使用しつづけることができ、マッピング変更に伴なうハードウェアによる空間変換の性能低下もない。
【0016】
共有メモリ空間の開放要求時、変更したメモリマップをもとに戻すことにより、OSは、マッピング変更前となんらかわらずに動作が可能となる。また、アトミック命令で共有メモリのロック制御が可能で、OSの排他制御機構を使用しないため異種OSのプロセス間であってもメモリの共有が可能である。
【0017】
本発明は、OSの介入を必要としないため、OSが有する機能に制約されることがなく本発明の対象となるOSは限定されない。また、本発明は、OS上で動作するプロセスと制御プログラムによってプロセス間共有メモリを実現することができ、OS介入がない分、計算機システムの性能向上を図ることができる。
【0018】
【発明の実施の形態】
以下、本発明による計算機システムの共有メモリ構築方法の実施形態を図面により詳細に説明する。
【0019】
図1は本発明の一実施形態による計算機システムの構成を示すブロック図、図2は複数のプロセスが共有メモリを構築していない状態のメモリマップの構成を示す図、図3は複数のプロセスが共有メモリを構築している状態のメモリマップの構成を示す図、図4は共有メモリ制御プログラムが制御する共有メモリ制御テーブルの構成を示す図である。図1〜図4において、100はハードウェア、200はハイパバイザ、210は共有メモリ制御プログラム、220は共有メモリ制御テーブル、300はOSa、400はOSb、310はプロセスa、410はプロセスb、320はメモリ空間変換テーブルa、420はメモリ空間変換テーブルb、1100はOSaの仮想メモリ空間、1200はOSbの仮想メモリ空間、1500は物理メモリ空間である。
【0020】
本発明の一実施形態による計算機システムは、図1に示すように、計算機システムを構成するハードウェア100と、1台の計算機上で複数の異なるOSが同時に動作することを可能とする制御プログラムであるハイパバイザ200と、ハイパバイザ200上で動作するOSa300、OSb400と、OSa300、OSb400上で動作するプロセスa310、プロセスb410とにより構成されている。そして、ハイパバイザ200は、共有メモリ制御プログラム210を備え、この共有メモリ制御プログラム210は、共有メモリ制御プログラム210が制御する共有メモリ制御テーブル220を有している。また、OSa300、OSb400は、各OSが管理するメモリ空間変換テーブルa320、メモリ空間変換テーブルb420を有している。
【0021】
なお、図1に示す計算機システムの例は、それぞれ1つのプロセスが動作する2つのOSを有するとして示しているが、OSはさらに多数であってよく、また、プロセスも、1つのOS上で複数が動作するものであってよい。
【0022】
図1に示す計算機システムの動作時の2つのプロセスが共有メモリ空間を構築していない状態でのメモリマップを図2に示している。図2において、OSa300の仮想メモリ空間1100内では、プロセスa310が仮想メモリ空間1151及び1152で動作し、OSb400の仮想メモリ空間1200内では、プロセスb410が仮想メモリ空間1251及び1252で動作している。また、Va−1及びSa−1は、仮想メモリ空間1151の開始仮想アドレス及びサイズを、Va−2及びSa−2は、仮想メモリ空間1152の開始仮想アドレス及びサイズを示している。Vb−1及びSb−1は、仮想メモリ空間1251の開始仮想アドレス及びサイズを、Vb−2及びSb−2は、仮想メモリ空間1252の開始仮想アドレス及びサイズを示している。
【0023】
物理メモリ空間1500内では、ハイパバイザ200が物理メモリ空間1570で動作している。物理メモリ空間1530は、ハイパバイザ200によってOSaのメモリ空間1100に割り当てられた物理メモリ空間を示し、物理メモリ空間1550は、ハイパバイザ200によってOSbのメモリ空間1200に割り当てられた物理メモリ空間を示している。共有メモリ構築前、物理メモリ空間1531は、仮想メモリ空間1151のマッピング先とされ、物理メモリ空間1532は、仮想メモリ空間1152のマッピング先とされ、物理メモリ空間1551は、仮想メモリ空間1251のマッピング先とされ、物理メモリ空間1552は、仮想メモリ空間1252のマッピング先とされている。
【0024】
前述の状態で、プロセスa及びプロセスbは、OSa及びOSbに対して、マッピング先の物理メモリ空間の占有使用を要求し、各物理メモリ空間がプロセスに占有使用されている。Pa−1は、物理メモリ空間1531の開始物理アドレスを、Pa−2は、物理メモリ空間1532の開始物理アドレスを、Pb−1は、物理メモリ空間1551の開始物理アドレスを、Pb−2は、物理メモリ空間1552の開始物理アドレスをそれぞれ示している。
【0025】
図2内に示しているテーブルは、ハードウェアのメモリ空間変換を示すものであり、テーブル321は、OSa300が管理するメモリ空間変換テーブルa320のプロセスa310に関する部分を示したものである。このテーブル321における325はプロセスa310が使用している仮想メモリ空間1151のマッピング先の物理メモリ空間の開始物理アドレスを示している。また、テーブル421は、OSb400が管理するメモリ空間変換テーブルb420のプロセスb410に関する部分を示したものである。このテーブル420における425はプロセスb410が使用している仮想メモリ空間1251のマッピング先の物理メモリ空間の開始物理アドレスを示している。
【0026】
図1に示す計算機システムの動作時の2つのプロセスが共有メモリ空間を構築している状態でのメモリマップを図3に示している。図3において、図2と異なるのは、仮想メモリ空間1151のマッピング先が物理メモリ空間1531ではなく、物理メモリ空間1551になっている点である。共有メモリ構築の際、メモリ空間変換テーブルa320内の仮想メモリ空間1151のマッピング先の物理アドレスがPa−1からPb−1に変更される。この結果、物理メモリ空間1551は、仮想メモリ空間1151及び仮想メモリ空間1251のマッピング先の共有メモリ空間となり、物理メモリ空間1531は、どの仮想アドレス空間もマッピングされない状態となる。
【0027】
共有メモリ制御プログラム210が制御する共有メモリ制御テーブル220の構成を図4に示している。共有メモリ制御テーブル220は、エントリ名221、開始物理アドレス222、共有メモリサイズ223、アクセスフラグ224、制御フラグ225、変更前物理アドレス226の各フィールドにより構成される。エントリ名221には、その共有メモリ空間を使用するプロセス名等のエントリの名前が格納される。開始物理アドレス222には、共有メモリ空間として使用する物理メモリ空間の開始アドレスが格納される。共有メモリサイズ223には、共有メモリ空間として使用する物理メモリ空間のサイズが格納される。アクセスフラグ224には、その共有メモリ空間を使用中のプロセス及びそのプロセスが動作するOSを識別するための識別子が格納される。制御フラグ225には、その共有メモリ空間へのプロセス毎のアクセス権等が格納される。変更前物理アドレス226には、そのエントリの共有メモリ空間にマッピングされる全ての仮想メモリ空間が共有メモリ空間へのマッピングを変更する前にマッピングされていた物理メモリ空間の物理アドレスが格納される。
【0028】
プロセス内の仮想メモリ空間のマッピング先の物理メモリ空間を共有メモリ空間として提供したプロセスの場合、変更前物理アドレス226には開始物理アドレス222と同じ値が格納される。アクセスフラグ224、制御フラグ225及び変更前物理アドレス226には、各エントリに対して、そのエントリの共有メモリ空間にマッピングされている全ての仮想メモリ空間に関するものが格納される。共有メモリ制御テーブル220は、共有メモリ制御プログラム210によってのみ制御される。OS上の各プロセスが共有メモリ空間を使用する際に、各プロセスが発行するエントリ名は一致しなければならない。エントリ名が異なる共有メモリを使用することはできない。プロセスは、異なるエントリ名を使用することにより、複数の共有メモリを使用することが可能となる。
【0029】
図5はOSb上のプロセスbが共有メモリ制御プログラムに対して共有メモリ空間の登録を要求したときの処理動作を説明するフローチャート、図6はOSa上のプロセスaが共有メモリ制御テーブルに登録された共有可能メモリ空間の使用を要求したときの処理動作を説明するフローチャート、図7は共有メモリ空間の開放処理、すなわち、OSa上のプロセスaが仮想メモリ空間のマッピングを共有メモリ構築以前の状態に戻す処理動作を説明するフローチャート、図8はOSb上のプロセスbが共有メモリ制御テーブルの共有メモリ空間の登録を抹消する要求を行った場合の処理動作について説明するフローチャートである。
【0030】
図5に示すフローは、仮想メモリ空間の一部または全部を同一の物理メモリ空間にマッピングする処理において、特に、仮想メモリ空間の一部を物理メモリ空間にマッピングする場合の処理の例であり、以下、これについて説明する。
【0031】
(1)OSb上のプロセスbがメモリ空間の共有メモリ制御テーブルへの登録要求を行うことにより処理が開始され、OSb上のプロセスbは、現在使用している仮想メモリ空間の一部の仮想メモリ空間1251を共有メモリとして使用するため、共有メモリ制御プログラム210に対して共有メモリ制御テーブル220に仮想メモリ空間1251を共有メモリとして登録するよう要求する(ステップ2010、2020)。
【0032】
(2)この要求に対して、共有メモリ制御プログラム210は、共有メモリ制御テーブル220内をサーチし、指定されたエントリ名がエントリ名221に登録されいるか否かを調べ、同名のエントリがエントリ名221に存在する場合、登録不可能なため、エラーリターンとなる(ステップ2030、2150)。
【0033】
(3)ステップ2030で、エントリ名221に同一のエントリ名が存在しない場合、エントリ名221へ当該エントリを格納し、次に、メモリ空間変換テーブルb420内を検索して仮想メモリ空間1251に対応する物理メモリ空間1551の先頭物理アドレスPb−1を求め、共有メモリ制御テーブル220内の開始物理アドレス222へ格納する(ステップ2040、2050)。
【0034】
(4)次に、共有メモリ空間のサイズ、この場合、Sb−1を共有メモリサイズ223に格納し、さらに、アクセスフラグ224へ要求を出したプロセスb及びプロセスbが動作しているOSbを識別するための識別子を格納する(ステップ2060、2070)。
【0035】
(5)次に、制御フラグ225へこの共有メモリ空間へのアクセス権などを格納する。この処理を開始させた要求は、プロセスb内の仮想メモリ空間1251のマッピング先の物理メモリ空間を共有メモリ空間として提供するものであるので、変更前物理アドレス226に、開始物理アドレス222と同じ物理メモリ空間1551の先頭物理アドレスPb−1を格納して、処理を正常終了する(ステップ2080、2090、2100)。
【0036】
前述の処理が終了した時点で、物理アドレスPb−1から大きさSb−1までの物理メモリ空間1551は、共有メモリ空間として共有メモリ制御テーブル220内に登録されたことになり、エントリ名が一致すればOSb上のプロセスb以外のプロセスから共有可能となる。
【0037】
次に、図6に示すフローを参照してOSa上のプロセスaが共有メモリ制御テーブルに登録された共有可能メモリ空間の使用を要求したときの共有処理動作について説明する。
【0038】
(1)共有処理が開始されると、OSa上のプロセスaは、仮想メモリ空間1151のマッピングを現在のマッピング先である物理アドレスPa−1からサイズSa−1を持つ物理メモリ空間1531から共有メモリテーブル220に登録されている共有メモリ空間にマッピングを変更するよう共有メモリ制御プログラム210に要求する。プロセスは、共有メモリを構築する際に同一のエントリ名を使用するよう設計されており、この場合もプロセスaは、OSb上のプロセスbが共有メモリテーブル220に登録したエントリ名と同一のエントリ名を使用して要求を発行する(ステップ2210、2220)。
【0039】
(2)プロセスaからの要求に対して、共有メモリ制御プログラム210は、共有メモリ制御テーブル220内のエントリ名221に、要求されたエントリ名が登録されているか否かをサーチする。エントリ名221に同一のエントリ名が登録されていなければ、要求を実行することができないのでエラーリターンとする(ステップ2230、2350)。
【0040】
(3)ステップ2230で、エントリ名221に同一のエントリ名が登録されていた場合、次に、共有メモリサイズ223をチェックする。このチェックの結果、要求された共有メモリ空間のサイズが登録されている共有メモリサイズと等しくなければ、すなわち、Sa−1がSb−1に等しくなければ要求を満たすことができないためエラーリターンとする(ステップ2240、2350)。
【0041】
(4)ステップ2240のチェックの結果、要求された共有メモリ空間のサイズが登録されている共有メモリサイズと等しかった場合、次に、マッピング可能か否かを制御フラグ225をチェックして調べ、不可である場合、エラーリターンとする(ステップ2250、2350)。
【0042】
(5)ステップ2250のチェックで、マッピング可能であった場合は、OSaが管理するメモリ空間変換テーブルa320内から仮想アドレスVa−1からサイズSa−1を持つ仮想メモリ空間1151に関するエントリを検索し、現在のマッピング先の物理メモリ空間1531の開始物理メモリアドレス325の値Pa−1を変更前アドレス226に追加する。また、メモリ空間変換テーブルa320内に仮想メモリ空間1151に関するエントリがない場合、エラーリターンとする(ステップ2260、2270、2350)。
【0043】
(6)次に、開始物理メモリアドレス325を現在のマッピング先の物理メモリ空間1531の開始物理アドレスPa−1から共有メモリ制御テーブル220内の該当エントリの開始物理アドレス222が示す共有メモリ空間1551の物理アドレスPb−1に書き換える。このとき、OSaには、メモリ空間変換テーブルa320が書き換えられたことは通知されない(ステップ2280)。
【0044】
(7)次に、アクセスフラグ224に、新たにプロセスa及びプロセスaが動作するOSaを識別するための識別子を追加して、処理を正常終了する(ステップ2290、2300)。
【0045】
前述した処理が終了した時点で、OSa上で動作するプロセスaとOSb上で動作するプロセスbとは、それぞれの仮想メモリ空間1151及び仮想メモリ空間1251が同一の物理メモリ空間1551へマッピングされたことになり、共有メモリとして使用可能となる。マッピングの変更要求は、プロセスから共有メモリ制御プログラム210に対して発行され、共有メモリ制御プログラム210がマッピングの変更を行うため、OSが関与する必要はない。
【0046】
前述した図6に示すフローの処理は、プロセスbからの要求により、図5に示したフローの処理を実行して、プロセスbが使用しているメモリ空間を共有メモリ空間として提供することが登録された後に、プロセスaがプロセスbが提供した共有メモリ空間を使用するための処理であったが、本発明は、プロセスbによる共有メモリ空間の提供がなくても、プロセスaが、プロセスbが使用しているメモリ空間を共有メモリ空間として使用可能とすることができる。このような使用の形態は、例えば、プロセスaがプロセスbの動作を監視する等の場合に好適なものである。
【0047】
この場合の処理は、プロセスaがプロセスbの動作を監視する等の場合、前述した図6に示すフローのステップ2220で、特別のエントリ名を持ってマッピングの要求を出すこととしておき、ステップ2230でのチェックで、未登録と判定された場合に、直ちにエラーリターンとするのではなく、未登録と判定された場合に、要求されたエントリ名が特別なものであるか否かをチェックし、もし、エントリ名が特別のものである場合に、ステップ2280の処理に移行して、メモリ空間変換テーブルを更新する処理とすればよい。
【0048】
次に、図7に示すフローを参照して共有メモリ空間の開放処理、すなわち、OSa上のプロセスaが仮想メモリ空間1151のマッピングを共有メモリ構築以前に戻す処理動作について説明する。この処理は、OSb上のプロセスbが一部の仮想メモリ空間1251のマッピング先の物理メモリ空間1551を共有メモリとして提供し、OSa上のプロセスaが一部の仮想メモリ空間1151をプロセスaが提供した共有メモリ空間にマッピングすることによりOSa上のプロセスaとOSb上のプロセスbが共有メモリ空間を使用している場合に、OSa上のプロセスaが仮想メモリ空間1151のマッピングを共有メモリ構築以前の状態に戻すことにより、共有メモリ空間へのアクセス権を放棄する処理である。
【0049】
(1)処理が開始されると、OSa上のプロセスaは、仮想メモリ空間1151の共有メモリ空間1551へのマッピングを共有メモリ構築前にマッピングしていた物理メモリ空間1531へマッピングを戻すように共有メモリ制御プログラム210に対して要求を行う(ステップ2410、2420)。
【0050】
(2)要求を受け取った共有メモリ制御プログラム210は、要求されたエントリ名が共有メモリ制御テーブル220内のエントリ名221に存在するか否かをサーチしてチェックし、該当するエントリ名が登録されていなければエラーリターンとする(ステップ2430、2500)。
【0051】
(3)ステップ2430で、要求されたエントリ名が存在した場合、次に、そのエントリの変更前アドレス226からプロセスaの変更前アドレスPa−1を求め、OSaが管理するメモリ空間変換テーブルa320内の仮想メモリ空間1151のマッピング先の物理メモリアドレス325を物理メモリ空間1551を示す物理アドレスPb−1から変更前アドレスPa−1に書き換える(ステップ2440)。
【0052】
(4)次に、そのエントリにおけるOSa上のプロセスaに関するアクセスフラグ224、制御フラグ225及び変更前アドレス226をクリアして、処理を正常終了する(ステップ2450、2460、2470、2480)。
【0053】
次に、図8を参照して、OSb上のプロセスbが共有メモリ制御テーブルの共有メモリ空間の登録を抹消する要求を行った場合の処理動作について説明する。この処理は、OSa上のプロセスaとOSb上のプロセスbとが、プロセスbが提供した共有メモリ空間を使用していて、OSa上のプロセスaが共有メモリ空間へのアクセスを放棄した後、OSb上のプロセスbによる共有メモリ制御テーブル220の共有メモリ空間の登録抹消の要求を行った場合の処理である。
【0054】
(1)登録抹消の処理が開始されると、OSb上のプロセスbは、仮想メモリ空間1251のマッピング先である物理メモリ空間1551を共有メモリ制御テーブル220から共有メモリ空間としての登録を抹消するように共有メモリ制御プログラム210に要求を行う(ステップ2610、2620)。
【0055】
(2)要求を受け取った共有メモリ制御プログラム210は、要求されたエントリ名が共有メモリ制御テーブル220内のエントリ名221に存在するか否かをサーチしてチェックし、要求されたエントリ名が登録されていなければエラーリターンとする(ステップ2630、2750)。
【0056】
(3)ステップ2630のチェックで、要求されたエントリ名が存在した場合、他にアクセス中のプロセスが存在するす否かをアクセスフラグ224をチェックして調べ、他にアクセス中のプロセスが存在する場合、共有メモリの登録を解除することができないのでエラーリターンとする(ステップ2640、2750)。
【0057】
(4)ステップ2640のチェックで、他にアクセス中のプロセスが存在しない場合、そのエントリに関する全ての項目、すなわち、アクセスフラグ224、制御フラグ225、変更前アドレス226、開始物理アドレス222、共有メモリサイズ223、エントリ名221をクリア、すなわち、削除して、処理を正常終了する(ステップ2650、2660、2670、2680、2690、2700、2710)。
【0058】
なお、前述した処理で、OSbが管理するメモリ空間変換テーブルb420には、変更は加えられない。
【0059】
前述した処理が終了した時点で、OSのメモリ空間変換テーブルは、共有メモリ空間構築前の状態に戻され、OSは、プロセス間での共有メモリ構築以前と同様の動作環境で動作を継続する。
【0060】
前述で説明した本発明の実施形態は、共有メモリ制御プログラム内の共有メモリ制御テーブルを使用して、共有メモリ空間を構築するとして説明したが、本発明は、共有メモリ制御テーブル210を使用することなくプロセス間で共有メモリを構築することもできる。この場合、前述した実施形態に比較して、処理の一部をプロセス側に任せることにより、共有メモリ制御プログラムを簡素化することができるという利点を得ることができる。
【0061】
OSa上で動作するプロセスa及びOSb上で動作するプロセスbは、共有メモリ設計仕様に従って設計され、動作に際しOSに対してOS空間内での固定オフセットアドレスに占有メモリ空間を要求する。OSa上で動作するプロセスa及びOSb上で動作するプロセスbは、その動作時の実行アドレスが固定的に規定されている。すなわち、OSa上で動作するプロセスaの仮想メモリ空間1151及び1152の物理メモリ空間1530内でのオフセットアドレス、OSb上で動作するプロセスbの仮想メモリ空間1251及び1252の物理メモリ空間1550内でのオフセットアドレスは固定的であり、それぞれのプロセスはお互いのプロセスのオフセットアドレスを計算により求めることができる。
【0062】
以下、共有メモリ制御テーブルを用いない本発明の他の実施形態における処理動作を説明する。なお、計算機システムの構成は、図1に示す計算機システムにおける共有メモリ制御プログラムの中から共有メモリ制御テーブルを除いた構成でよい。
【0063】
図9はOSb上のプロセスbが共有メモリ制御プログラムに対して共有メモリ空間の登録を要求したときの本発明の他の実施形態の処理動作を説明するフローチャート、図10はOSa上のプロセスaが共有可能メモリ空間の使用を要求したときの本発明の他の実施形態の処理動作を説明するフローチャート、図11は共有メモリ空間の開放処理、すなわち、OSa上のプロセスaが仮想メモリ空間のマッピングを共有メモリ構築以前の状態に戻す本発明の他の実施形態の処理動作を説明するフローチャート、図12はOSb上のプロセスbが共有メモリ空間の登録を抹消する要求を行った場合の本発明の他の実施形態の処理動作について説明するフローチャートである。
【0064】
図9に示すフローによるOSbのプロセスbが共有メモリ空間の登録を要求したときの本発明の他の実施形態の処理動作は、OSb上のプロセスbによる仮想メモリ空間の共有メモリ空間への登録処理が開始されると、OSb上のプロセスbがプロセス内の仮想メモリ空間1251を共有メモリ空間としてプロセスb内に設定して、正常終了することにより行われる(ステップ3010、3020、3030)。この処理の設定により、プロセスb上でこの仮想メモリ空間1251が共有メモリ空間として認識される。共有メモリ制御プログラム210に対しては処理要求が出されない。
【0065】
次に、図10に示すフローを参照して、OSa上のプロセスaによるメモリ空間の共有メモリ空間へのマッピング変更要求の処理動作について説明する。
【0066】
(1)OSa上のプロセスaによる仮想メモリ空間の共有メモリ空間へのマッピング変更処理が始点されると、OSa上のプロセスaは、仮想メモリ空間1151のマッピングを現在のマッピング先である物理メモリ空間1531からOSb上のプロセスbが提供する共有メモリ空間1551にマッピングを変更するように共有メモリ制御プログラム210に要求を行う。プロセスa内の仮想メモリ空間1151の物理メモリ空間1550におけるオフセットアドレス及びプロセスb内の仮想メモリ空間1251の物理メモリ空間1550におけるオフセットアドレスは固定的であり、プロセスa及びプロセスbには既知の値である(ステップ3110、3120)。
【0067】
(2)共有メモリ制御プログラム210は、プロセスaからのマッピング変更要求に対して、OSa内のメモリ空間変換テーブルa320内の仮想メモリ空間1151の物理メモリアドレス325を物理メモリ空間1531の物理開始アドレスPa−1から図9のステップ3020で登録された仮想メモリ空間1251のマッピング先の物理メモリ空間の開始物理アドレスPb−1に書き換えて処理を正常終了する。この場合、共有メモリ制御プログラム210は、プロセスからの要求に対してメモリ空間サイズ等のチェックを行わず、要求通りにマッピングの変更を行う。これは、共有メモリに使用する物理アドレス空間のサイズ等の管理が全てプロセス側の責任で行われるからである(ステップ3130、3140)。
【0068】
図9、図10に示すフローの処理が終了した時点で、OSa上で動作するプロセスaとOSb上で動作するプロセスbとは、それぞれの仮想メモリ空間1151及び1251が同一の物理メモリ空間1551へマッピングされたことになり、物理メモリ空間1551を共有メモリとして使用可能となる。マッピングの変更要求は、プロセスから共有メモリ制御プログラム210に対して発行され、共有メモリ制御プログラム210が直接OSのメモリ変換テーブル内の該当エントリを書き換えるため、共有メモリ空間の構築にOSが関与することはない。
【0069】
次に、図11に示すフローを参照して、共有メモリ空間の開放処理、すなわち、OSa上のプロセスaが仮想メモリ空間のマッピングを共有メモリ構築以前の状態に戻す処理動作を説明する。図11に示すフローの処理は、図9及び図10に示したフローによって、OSb上のプロセスbが仮想メモリ空間1251のマッピング先の物理メモリ空間1551を共有メモリ空間として提供し、OSa上のプロセスaが仮想メモリ空間1151をプロセスbが提供した共有メモリ空間にマッピングすることにより、OSa上のプロセスaとOSb上のプロセスbとが共有メモリを使用している場合に、OSa上のプロセスaが共有メモリ空間に対するマッピングを共有メモリ構築以前の状態に戻し共有メモリ空間へのアクセス権を放棄する処理である。
【0070】
(1)OSa上のプロセスaによるマッピング変更の処理が開始されると、OSa上のプロセスaは、現在仮想メモリ空間1151が共有メモリ空間1551にマッピングされている状態を、共有メモリ構築前のマッピング先である物理メモリ空間1531にマッピングを変更するように共有メモリ制御プログラム210に要求を行う(ステップ3210、3220)。
【0071】
(2)共有メモリ制御プログラム210は、プロセスaからの要求に対して、メモリ空間のサイズ等のチェックを行わずに要求通りに、OSaのメモリ空間変換テーブルa320内の仮想メモリ空間1151のエントリの物理アドレス325を共有メモリ空間1551の開始物理アドレスPb−1から固定オフセットアドレスにある仮想メモリ空間1531を示す開始物理アドレスPa−1に変更して、処理を正常終了する。これは、共有メモリ空間に使用する物理アドレス空間のアクセス管理が全てプロセス側の責任で行われるからである(ステップ3230、3240)。
【0072】
次に、図12を参照して、OSb上のプロセスbが共有メモリ空間の登録を抹消する要求を行った場合の処理動作を説明する。図12に示すフローの処理は、図9及び図10に示すフローの処理により、OSa上のプロセスaとOSb上のプロセスbとがプロセスbが提供した共有メモリを使用していて、OSa上のプロセスaが共有メモリ空間へのアクセス権を放棄した後、OSb上のプロセスbによる共有メモリ空間の登録を削除する処理である。
【0073】
この処理は、登録を削除する処理が開始されると、OSb上のプロセスbが、プロセスb内での仮想メモリ空間1251の共有メモリ空間登録を削除して、処理を正常終了することにより行われる(ステップ3310、3320、3330)。
【0074】
前述の図11、図12の処理の終了の時点で、OSのメモリ空間変換テーブルは、共有メモリ空間構築前の状態に戻され、OSは、プロセス間での共有メモリ構築以前と同様の動作環境で動作を継続する。
【0075】
前述までに説明した本発明の実施形態は、OSに割り当てられている物理メモリ空間を共有メモリ空間として割り当てるとしたが、本発明は、どのOSにも割り当てられていない物理メモリ空間を共有メモリ空間として割り当てるようにすることができる。
【0076】
図13はどのOSにも割り当てられていない物理メモリ空間を共有メモリ空間として割り当てた場合のメモリマップの一例を示す図であり、以下、これについて説明する。この例の場合、前述までに説明した実施形態と比較して、共有メモリ空間として物理メモリ空間を提供しているOSがダウンした場合に、他のOSへその影響が波及することがないという利点を得ることができる。
【0077】
図13に示すメモリマップの例は、図2に示すメモリマップの例から、OSaのメモリ空間変換テーブルa320の一部を示すテーブル321における仮想メモリ空間1151の物理アドレスが、物理メモリ空間1531の開始物理アドレスPa−1から共有メモリ空間1540の開始物理アドレスP0−1に変更され、OSbのメモリ空間変換テーブルb420の一部を示すテーブル421の仮想メモリ空間1251の物理アドレスが、物理メモリ空間1551の開始物理アドレスPb−1から共有メモリ空間1540の開始物理アドレスP0−1に変更されている。従って、OSa上の仮想メモリ空間1151及びOSb上の仮想メモリ空間1251は共に、物理メモリ空間内の共有メモリ空間1540へマッピングされており、OSa上のプロセスaとOSb上のプロセスbとは、共有メモリ空間1540を共有する共有メモリを構築している。
【0078】
なお、前述した例における共有メモリ空間1540は、OSが制御可能なメモリサイズより大きいサイズとして割り当てることができる。但し、この場合、OSが制御可能なメモリサイズより大きいサイズとして割り当てられる共有メモリ空間は、OSが制御可能なメモリサイズを有する複数の共有メモリ空間として物理メモリ空間に設けられ、それらの共有メモリ空間の開始物理アドレスを順次変更していくように制御される。
【0079】
図13に示す例は、物理メモリ空間1500内の特にOSに割り当てられていない物理メモリ空間を共有メモリ空間として使用した場合を示しているが、本発明は、OSに割り当てられているが、その時点ではOSが使用していない、すなわち、プロセス等に割り当てられていない物理メモリ空間を共有メモリ空間として割り当てることも可能である。
【0080】
図14は複数のOSがメモリマップトI/Oを共有メモリ空間として割り当てた場合のメモリマップの一例を示す図であり、以下、これについて説明する。
【0081】
一般に、1つのI/O装置を複数のプロセスが使用するために、物理メモリ空間にメモリマップトI/Oと呼ばれるメモリ領域が確保されており、図14に示すメモリマップの例は、このような場合に、メモリマップトI/Oを共有メモリ空間として割り当てた例である。
【0082】
図14において、1580はシステムに1つ搭載されるメモリマップトI/O、1180はOSaの仮想メモリ空間1100におけるメモリマップトI/O、1280はOSbの仮想メモリ空間1200におけるメモリマップトI/Oを示している。メモリ空間変換テーブルa320の一部を示すテーブル321内のメモリマップトI/O1180の物理アドレス325は、図2に示す物理メモリ空間1531の開始物理アドレスPa−1からメモリマップトI/O1580の開始物理アドレスP0−2に変更され、メモリ空間変換テーブルb420の一部を示すテーブル421内のメモリマップトI/O1280の物理アドレス425は、物理メモリ空間1551の開始物理アドレスPb−1からメモリマップトI/O1580の開始物理アドレスP0−2に変更されている。従って、OSa上のメモリマップトI/O1180及びOSb上のメモリマップトI/O1280は、物理メモリ空間内のメモリマップトI/O1580へマッピングされたことになり、OSaとOSbとは、メモリマップトI/Oを共有する共有メモリ空間を構築している。
【0083】
なお、前述した例は、複数のプロセスが、共有メモリ空間として設定されたメモリマップトI/Oを共有するとして説明したが、この共有メモリ空間として設定されたメモリマップトI/Oは、複数のOSからも共有メモリ空間として使用することができる。
【0084】
【発明の効果】
以上説明したように本発明によれば、1台の計算機上で制御プログラムの制御下で複数のOSが同時に動作する計算機システムにおいて、それぞれの異種または同種のOS上で動作する異なるプロセス間でOSに非依存で透過的に共有メモリを構築することが可能となるので、プロセス間での共有メモリの構築におけるオーバーヘッドを低減することができ、自由度の高い共有メモリ空間の構築を行うことができる。
【0085】
また、本発明によれば、システム内に1つしか存在しないメモリマップトI/Oを複数の異種または同種のOSに共有メモリ空間として割り当てることもできる。さらに、本発明によれば、あるOS上のプロセスが他のOSに割り当てられた物理メモリ空間をそのOSに非通知に共有メモリ空間として使用することができるので、そのプロセスが他のOSに割り当てられたメモリ空間をそのOSに認識されずに参照及び変更することが可能となる。
【図面の簡単な説明】
【図1】本発明の一実施形態による計算機システムの構成を示すブロック図である。
【図2】複数のプロセスが共有メモリを構築していない状態のメモリマップの構成を示す図である。
【図3】複数のプロセスが共有メモリを構築している状態のメモリマップの構成を示す図である。
【図4】共有メモリ制御プログラムが制御する共有メモリ制御テーブルの構成を示す図である。
【図5】OSb上のプロセスbが共有メモリ制御プログラムに対して共有メモリ空間の登録を要求したときの処理動作を説明するフローチャートである。
【図6】OSa上のプロセスaが共有メモリ制御テーブルに登録された共有可能メモリ空間の使用を要求したときの処理動作を説明するフローチャートである。
【図7】OSa上のプロセスaが仮想メモリ空間のマッピングを共有メモリ構築以前の状態に戻す処理動作を説明するフローチャートである。
【図8】OSb上のプロセスbが共有メモリ制御テーブルの共有メモリ空間の登録を抹消する要求を行った場合の処理動作について説明するフローチャートである。
【図9】OSb上のプロセスbが共有メモリ制御プログラムに対して共有メモリ空間の登録を要求したときの本発明の他の実施形態の処理動作を説明するフローチャートである。
【図10】OSa上のプロセスaが共有可能メモリ空間の使用を要求したときの本発明の他の実施形態の処理動作を説明するフローチャートである。
【図11】OSa上のプロセスaが仮想メモリ空間のマッピングを共有メモリ構築以前の状態に戻す本発明の他の実施形態の処理動作を説明するフローチャートである。
【図12】OSb上のプロセスbが共有メモリ空間の登録を抹消する要求を行った場合の本発明の他の実施形態の処理動作について説明するフローチャートである。
【図13】どのOSにも割り当てられていない物理メモリ空間を共有メモリ空間として割り当てた場合のメモリマップの一例を示す図である。
【図14】複数のOSがメモリマップトI/Oを共有メモリ空間として割り当てた場合のメモリマップの一例を示す図である。
【符号の説明】
100 ハードウェア
200 ハイパバイザ
210 共有メモリ制御プログラム
220 共有メモリ制御テーブル
300 OSa
400 OSb
310 プロセスa
410 プロセスb
320 メモリ空間変換テーブルa
420 メモリ空間変換テーブルb
1100 OSaの仮想メモリ空間
1200 OSbの仮想メモリ空間
1500 物理メモリ空間
Claims (5)
- 制御プログラムの制御下で1台の計算機上で複数のOSが同時に動作し、各OSの仮想メモリ空間で少なくとも1つのプロセスが動作し、各OSは、各プロセスが使用する仮想メモリ空間のマッピング先の物理メモリ空間の開始物理アドレスが格納されるメモリ空間変換テーブルを有する計算機システムの共有メモリ構築方法であって、
前記制御プログラムは、前記複数のOSの各プロセスが共有メモリ空間として使用する物理メモリ空間の開始物理アドレスが格納される共有メモリ制御テーブルを有し、
あるOSで動作する第1のプロセスが前記制御プログラムに共有メモリ空間の使用を要求し、該要求を受けた前記制御プログラムは、当該第1のプロセス対応に前記メモリ空間変換テーブルに格納されている開始物理アドレスを前記共有メモリ制御テーブルに格納されている開始物理アドレスに書き換えることを特徴とする計算機システムの共有メモリ構築方法。 - 他のOSで動作する第2のプロセスが前記制御プログラムに当該第2のプロセスが使用する仮想メモリ空間を共有メモリ空間として登録することを要求し、該要求を受けた前記制御プログラムは当該第2のプロセスが使用する仮想メモリ空間のマッピング先の物理メモリ空間の先頭物理アドレスを開始物理アドレスとして前記共有メモリ制御テーブルに格納することを特徴とする請求項1記載の計算機システムの共有メモリ構築方法。
- 前記共有メモリ空間として、どのOSにも割り当てられていない物理メモリ空間が割り当てられることを特徴とする請求項1記載の計算機システムの共有メモリ構築方法。
- 前記共有メモリ空間として割り当てられる物理メモリ空間が、OSが制御可能なメモリサイズより大きいことを特徴とする請求項3記載の計算機システムの共有メモリ構築方法。
- 前記共有メモリ空間として、メモリマップトI/O領域が割り当てられることを特徴とする請求項1記載の計算機システムの共有メモリ構築方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000354694A JP3874603B2 (ja) | 2000-11-21 | 2000-11-21 | 計算機システムの共有メモリ構築方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000354694A JP3874603B2 (ja) | 2000-11-21 | 2000-11-21 | 計算機システムの共有メモリ構築方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002157133A JP2002157133A (ja) | 2002-05-31 |
JP3874603B2 true JP3874603B2 (ja) | 2007-01-31 |
Family
ID=18827232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000354694A Expired - Fee Related JP3874603B2 (ja) | 2000-11-21 | 2000-11-21 | 計算機システムの共有メモリ構築方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3874603B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150006903A (ko) * | 2010-09-24 | 2015-01-19 | 인텔 코오퍼레이션 | 컴퓨팅 플랫폼의 이종 프로세서들 간의 공유 가상 메모리에서의 가상 함수들의 공유 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008033392A (ja) | 2006-07-26 | 2008-02-14 | Nec Corp | 仮想計算機システム及びその動作方法 |
JP2008077144A (ja) * | 2006-09-19 | 2008-04-03 | Ricoh Co Ltd | 仮想化システム、メモリ管理方法及び制御プログラム |
GB2460393B (en) | 2008-02-29 | 2012-03-28 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry |
JP2009252202A (ja) * | 2008-04-11 | 2009-10-29 | Hitachi Ltd | コンピュータシステム |
US8230155B2 (en) | 2008-06-26 | 2012-07-24 | Microsoft Corporation | Direct memory access filter for virtualized operating systems |
US8151032B2 (en) * | 2008-06-26 | 2012-04-03 | Microsoft Corporation | Direct memory access filter for virtualized operating systems |
JP5146174B2 (ja) | 2008-07-28 | 2013-02-20 | 富士通株式会社 | 仮想マシンモニタ装置およびプログラム,ならびに仮想マシン間メモリ共有管理方法 |
WO2010097925A1 (ja) * | 2009-02-26 | 2010-09-02 | 株式会社日立製作所 | 情報処理装置 |
CN102053871B (zh) * | 2009-10-28 | 2013-03-13 | 中国移动通信集团公司 | 一种应用程序图像的显示方法和装置 |
JP5457916B2 (ja) * | 2010-04-01 | 2014-04-02 | 株式会社東芝 | メモリ共有装置 |
WO2012147116A1 (en) | 2011-04-25 | 2012-11-01 | Hitachi, Ltd. | Computer system and virtual machine control method |
JP2014139702A (ja) * | 2011-04-28 | 2014-07-31 | Panasonic Corp | 仮想計算機システムとその制御方法、プログラム、および集積回路 |
WO2015079494A1 (ja) * | 2013-11-26 | 2015-06-04 | 株式会社日立製作所 | ストレージ装置及び計算機システム |
JP5741722B1 (ja) | 2014-01-28 | 2015-07-01 | 日本電気株式会社 | 情報処理装置、及び、情報処理方法 |
JP6439887B1 (ja) * | 2018-02-08 | 2018-12-19 | 日本電気株式会社 | 情報処理装置 |
-
2000
- 2000-11-21 JP JP2000354694A patent/JP3874603B2/ja not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150006903A (ko) * | 2010-09-24 | 2015-01-19 | 인텔 코오퍼레이션 | 컴퓨팅 플랫폼의 이종 프로세서들 간의 공유 가상 메모리에서의 가상 함수들의 공유 |
US8997113B2 (en) | 2010-09-24 | 2015-03-31 | Intel Corporation | Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform |
KR101534037B1 (ko) * | 2010-09-24 | 2015-07-08 | 인텔 코포레이션 | 컴퓨팅 플랫폼의 이종 프로세서들 간의 공유 가상 메모리에서의 가상 함수들의 공유 |
KR101581796B1 (ko) * | 2010-09-24 | 2016-01-04 | 인텔 코포레이션 | 컴퓨팅 플랫폼의 이종 프로세서들 간의 공유 가상 메모리에서의 가상 함수들의 공유 |
KR101761650B1 (ko) * | 2010-09-24 | 2017-07-28 | 인텔 코포레이션 | 컴퓨팅 플랫폼의 이종 프로세서들 간의 공유 가상 메모리에서의 가상 함수들의 공유 |
Also Published As
Publication number | Publication date |
---|---|
JP2002157133A (ja) | 2002-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3874603B2 (ja) | 計算機システムの共有メモリ構築方法 | |
JP2743608B2 (ja) | 共有レジスタ制御方式 | |
US6832298B2 (en) | Server system operation control method | |
US6996828B1 (en) | Multi-OS configuration method | |
US6591355B2 (en) | Distributed shared memory system with variable granularity | |
US6442568B1 (en) | Customer information control system application programming interface with transient data functions, in a loosely coupled data processing environment | |
US5239643A (en) | Method for reducing disk I/O accesses in a multi-processor clustered type data processing system | |
US20130124775A1 (en) | Computer system and bus assignment method | |
US20020091786A1 (en) | Information distribution system and load balancing method thereof | |
JPH1124943A (ja) | 計算機再起動方法および計算機停止方法 | |
JP2005316809A (ja) | 計算機、計算機起動方法、管理サーバ装置およびプログラム | |
US20070156763A1 (en) | Storage management system and method thereof | |
JP2003167737A (ja) | スタック使用方法 | |
US20140059093A1 (en) | Information processing method and apparatus for garbage collection | |
US6546485B1 (en) | Method for exchanging modules in operating system by using inheritance buffer presented in virtual space to store inherited information of old module and read by new module thereafter | |
JP2006155272A (ja) | 仮想計算機の制御方法及びプログラム | |
US7660794B2 (en) | Method and program product for reducing database walk frequency while repetitively accessing a firewall connection and rule database | |
EP0319148B1 (en) | Method of operating a multi-processor system for the transfer of data between processor units | |
US7395400B2 (en) | Adaptive address space operating system | |
JP3589858B2 (ja) | マイクロカーネルアクセス方法および処理装置エージェント | |
JP2004258698A (ja) | マルチos計算機システムの制御方法 | |
JP5235751B2 (ja) | 仮想計算機を有する物理計算機 | |
US7139879B2 (en) | System and method of improving fault-based multi-page pre-fetches | |
WO2017044124A1 (en) | Switch process virtual address space | |
US11789924B2 (en) | Lock metadata re-balancing upon storage expansion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040409 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060718 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060919 |
|
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: 20061017 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061024 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101102 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111102 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121102 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121102 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131102 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |