JP4012517B2 - 仮想計算機環境におけるロックの管理 - Google Patents

仮想計算機環境におけるロックの管理 Download PDF

Info

Publication number
JP4012517B2
JP4012517B2 JP2004111541A JP2004111541A JP4012517B2 JP 4012517 B2 JP4012517 B2 JP 4012517B2 JP 2004111541 A JP2004111541 A JP 2004111541A JP 2004111541 A JP2004111541 A JP 2004111541A JP 4012517 B2 JP4012517 B2 JP 4012517B2
Authority
JP
Japan
Prior art keywords
lock
virtual machine
shared data
virtual
shared
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
JP2004111541A
Other languages
English (en)
Other versions
JP2004326753A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US10/425,468 external-priority patent/US7328437B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004326753A publication Critical patent/JP2004326753A/ja
Application granted granted Critical
Publication of JP4012517B2 publication Critical patent/JP4012517B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45566Nested virtual machines
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Description

本発明は、一般に、コンピュータ・システムに関し、より詳細には、仮想計算機オペレーティング・システムにおける共用リソースに関するロックの管理に対処する。
仮想計算機オペレーティング・システムは、現在では周知のものであり、共通基本部分と、共通基本部分によって形成される個別ユーザ部分とを含む。IBMのz/VMオペレーティング・システムでは、共通基本部分は「制御プログラム」または「CP」と呼ばれ、各ユーザ部分は「仮想計算機」または「ゲスト」と呼ばれている。仮想計算機またはゲストは、実メモリ、CPU、入出力(I/O)などの実リソースの仮想共用/パーティション化である。ゲスト・オペレーティング・システムは各仮想計算機上で実行され/動作し、1つまたは複数のアプリケーションがゲスト・オペレーティング・システム上で動作する。各アプリケーションおよびゲスト・オペレーティング・システムは、それ自体の専用の実コンピュータ上で動作している場合と同様の挙動を示す。
一部のコンピューティング環境では、リソースが複数のプログラム間で共用される。共用リソースは、共用データ(共用ファイルおよび共用ディレクトリを含む)と共用処理ルーチンからなる。たとえば、VM/CMSでは、仮想計算機にとって専用のメモリのいくつかの部分が同じ仮想計算機内の複数のプログラム間で共用される。VM/CMSは専用ロックを使用して、共用メモリへのアクセスを並列にすることができる時期と、このようなアクセスを順次にしなければならない時期を決定する。また、VM/CMSでは、同じ仮想計算機内のすべてのプログラムが外部記憶媒体にアクセスするために使用する、仮想計算機にとって専用の処理ルーチンが存在する。VM/CMSは専用ロックを使用して、共用処理ルーチンを並列実行可能な時期と、このようなルーチンを順次実行しなければならない時期を決定する。VM/CMSはリソースを共用する際に有効であるが、単一仮想計算機内のリソースの共用に制限されている。
IBMのVM/SP6オペレーティング・システムおよびIBMのVM/ESAオペレーティング・システムの後続のリリースでは、複数の仮想計算機(共通基本部分を有する)間で共有すべきデータは1つのサーバ仮想計算機の専用メモリ内に常駐する。同様に、ロック管理構造はサーバ仮想計算機内に常駐する。このデータは、すべての仮想計算機が共用データへのアクセスを要求するためにサーバ仮想計算機との通信を要求することによって、複数の仮想計算機によって共用される。このような通信は、高オーバヘッドであるTCP/IP、IUCV(ユーザー間通信機能)、またはゲストLANメッセージ(後述する)の形になっている。その場合、サーバ仮想計算機はその専用ロックを使用して、共用データへのアクセスをアービトレート(arbitrate)する。共用処理ルーチンの使用をアービトレートするために、同様の配置を使用する。上記の配置は複数の仮想計算機による共用リソースへのアクセスを可能にするが、要求側仮想計算機とサーバ仮想計算機との間の高オーバヘッドの通信プロトコルが必要となる。
IBM資料「z/VM4.2.0 General Information」(文書番号:GC24−5991−03)
したがって、本発明の一般的な一目的は、効果的かつ効率よく共用リソースへのアクセスを可能にする、仮想計算機オペレーティング・システム内の機能性を提供することにある。
本発明の他の目的は、仮想計算機オペレーティング・システムの共用メモリ内の共用リソースに関するロックを効果的かつ効率よく管理する、仮想計算機オペレーティング・システム内の機能性を提供することにある。
本発明の他の目的は、仮想計算機の専用メモリ内の共用リソースに関するロックを効果的かつ効率よく管理する、仮想計算機オペレーティング・システム内の機能性を提供することにある。
本発明は、複数の仮想計算機によるロックをまとめて管理し、そのロックによって保護される共用データにアクセスするための技法にある。コンピュータ・システムは、第1および第2の仮想計算機と、第1および第2の仮想計算機によって共用されるメモリを定義する。ロック構造は共用メモリ内に定義される。ロック構造は、共用メモリ内の共用データに関するロックのホルダをリストすることができる。第1の仮想計算機は、ロック構造の操作により使用可能なときに共用データに関するロックを獲得する。ロックを獲得した後、第1の仮想計算機は共用データにアクセスする。ロック構造および共用データは、第1の仮想計算機により直接アクセス可能である。第2の仮想計算機は、ロック構造の操作により使用可能なときに共用データに関するロックを獲得する。ロックを獲得した後、第2の仮想計算機は共用データにアクセスする。ロック構造および共用データは、第2の仮想計算機により直接アクセス可能である。
本発明の他の実施形態によれば、コンピュータ・システムは、第1および第2の仮想計算機と、第1および第2の仮想計算機によって共用されるメモリと、第1の仮想計算機に対する専用のメモリを定義する。ロック構造は共用メモリ内に常駐する。ロック構造は、専用メモリ内の共用データに関するロックのホルダをリストすることができる。第1の仮想計算機は、ロック構造の操作により使用可能なときに共用データに関するロックを獲得するための第1のプログラム機能を含む。また、第1の仮想計算機は、共用データにアクセスするために第1の仮想計算機がロックを獲得した後でアクティブになる第2のプログラム機能も含む。ロック構造は第1のプログラム機能により直接アクセス可能であり、さらに共用データは第2のプログラム機能により直接アクセス可能である。第2の仮想計算機は、ロック構造の操作により使用可能なときに共用データに関するロックを獲得するための第3のプログラム機能を含む。また、第2の仮想計算機は、共用データへのアクセスを第1の仮想計算機から要求するために第2の仮想計算機がロックを獲得した後でアクティブになる第4のプログラム機能も含む。ロック構造は第3のプログラム機能により直接アクセス可能である。共用データは第4のプログラム機能により直接アクセス可能ではない。
次に、全体を通して同様の参照番号が同様の要素を示す図面を詳細に参照すると、図1は、全体が10で示される本発明の第1の実施形態によるコンピュータ・システムを示している。コンピュータ・システム10は、物理的コンピュータ20(CPU23を含む)と、仮想計算機オペレーティング・システム11とを含む。一例として、仮想計算機オペレーティング・システムは、本発明を含むように修正されたIBMのz/VMバージョン4.2.0または4.3.0にすることができる。z/VM4.2.0の詳細は、POBox 29570,IBM Publications, Raleigh, North Carolina 27626-0570にあるInternational Business Machines Corp.からまたはwww.IBM.com/shop/publications/orderにあるWWWで入手可能なIBM資料「z/VM 4.2.0 GeneralInformation」(文書番号:GC24−5991−03)に開示されている。本発明は他のサーバ・コンピュータまたはパーソナル・コンピュータでも実現可能であるが、オペレーティング・システム11はIBMのzSeriesメインフレームなどの物理的コンピュータ10で実行される。オペレーティング・システム11は、共通基本部分21(z/VMオペレーティング・システムでは「CP」と呼ぶ)を含む。共通基本部分21は、物理的コンピュータのリソース(CPUおよびメモリを含む)をロジカル・パーティション化して、ユーザ部分12、14、16(z/VMオペレーティング・システムでは「仮想計算機」または「ゲスト仮想計算機」と呼ぶ)を形成する。また、共通基本部分は、メモリの仮想化、デバイスの仮想化、CPUの仮想化などの機能も実行する。ゲスト・オペレーティング・システム22、24、26は、ユーザ部分12、14、16上でそれぞれ実行され、アプリケーション32、34、36は、ゲスト・オペレーティング・システム22、24、26上でそれぞれ実行される。各オペレーティング・システム上では複数のアプリケーションが実行されている可能性がある。一例として、ゲスト・オペレーティング・システム22および24はLinux(Linus Torvaldsの商標)オペレーティング・システムであり、ゲスト・オペレーティング・システム26はIBMのCMSオペレーティング・システムである。Microsoft Windows(商標)オペレーティング・システム、Unix(商標)オペレーティング・システム、Sun MicrosystemsのSolaris(商標)オペレーティング・システム、またはHewlett PackardのHP UXオペレーティング・システムなど、ユーザ部分で実行中の他のゲスト・オペレーティング・システムも実現可能である。一例として、アプリケーション32、34、36は、IBMのDB2データベース管理アプリケーション、IBMのWebSphereアプリケーション、通信アプリケーションなどにすることができる。アプリケーション32、34、36は共用データへのアクセスを要求する可能性を除いて、そのアプリケーションの性質は本発明の一部を形成するものではない。
各仮想計算機は、その専用データ、アプリケーション、それぞれ仮想計算機12、14、16内のデータ・アクセス機能62、64、66(「DAF」)およびロック・アクセス機能(「LAF」)72、74、76などのオペレーティング・システム機能のために、それ自体の専用メモリを有する。その結果として、各仮想計算機には、個別の物理的コンピュータ内のように他の仮想計算機からのプライバシの手段が与えられる。また、仮想計算機間のロジカル・パーティションは、仮想CPUと他の仮想デバイスを各仮想計算機に割り振ることによって提供される。「仮想CPU」は実CPU(複数も可)の一部分であって、ゲスト・オペレーティング・システムにとってそれ自体のCPUのように見える部分である。コンピュータ10は、すべての仮想計算機12、14、16によって共用されるメモリ領域25も含む。「共用」されているので、各仮想計算機は、共用メモリ25と、適切なアドレスによって共用メモリに記憶されたデータおよびデータ構造に直接アクセスすることができる。本発明によれば、共用ファイル80および97と共用ディレクトリ98を含む共用データ78は共用メモリ内に位置する(ただし、DAFとLAFはそれぞれの仮想計算機の専用メモリ内に位置する)。その結果として、各DAFは、それからデータを読み取り、そこにデータを書き込むために、共用ファイルと共用ディレクトリにアクセスすることができる。以下により詳細に説明するように、各DAFは共用メモリ25内の共用データ78へのアクセスを管理する。より詳細に後述する共用ロック構造58も共用メモリ25内に常駐する。その結果として、各LAFは共用ロック構造58にもアクセスすることができる。各LAFは、共用データに関するロックを入手または解除するために共用ロック構造を管理する。各DAF62、64、66およびLAF72、74、76は、共用データへのアクセスを可能にし、それぞれのアプリケーション32、34、36およびそれぞれのオペレーティング・システム22、24、26によって行われる読取り要求および書込み要求に関する対応するロックを管理する。
図1に示す状態では、仮想計算機12および16は同時に共用ファイル80からデータを読み取っており、仮想計算機14は共用ファイル80への書込みを待っている。以下に説明するように、書込み操作は仮想計算機12および16が読み取っているデータを改変することになると考えられるので、仮想計算機12または16が共用ファイル80へのそれぞれのアクセスを完了するまで仮想計算機14は共用ファイル80に書き込むことができない。仮想計算機12の場合、読取り要求92はアプリケーション32から発生し、そのアプリケーション32が実行のためにその要求をオペレーティング・システム22に渡している。同様に、仮想計算機16の場合、読取り要求96はアプリケーション36から発生し、そのアプリケーション36が実行のためにその要求をオペレーティング・システム26に渡している。仮想計算機14の場合、書込み要求はオペレーティング・システム24から発生している。しかし、各仮想計算機内の読取り要求および書込み要求の発生源は本発明にとって重要なものではない。
図2は、コンピュータ・システム10の共用メモリ25内のロック構造または制御ブロック58をより詳細に示している。また、図2は、ロック構造58の効果を仮想計算機へのロック・チェーン(lock chain)90および関連矢印により象徴的に示している。仮想計算機12および16は同時に共用ファイル80に関する共用ロック91を保持している。仮想計算機14は、共用ファイル80に対する排他ロックについて仮想計算機12および16を待っているプレース・ホルダ92を有している。これは、実際にはロック構造または制御ブロック58内に記録され、仮想計算機12および16が同時に共用ファイル80に関する共用ロック91を保持し、仮想計算機14が共用ファイル80に関する排他ロックについて仮想計算機12および16を待っていることを示す。制御ブロック58の「ウェイタ・リスト」95は、ロックに関する上記の所有権、ウェイタ(複数も可)の順序、および各ロックの性質を示し、すなわち、仮想計算機12および16は現在、共用方式でロック91を保持し、仮想計算機14は現在、排他方式でロックを待っている。図示した実施形態では、ファイル97およびディレクトリ98それぞれに関し、追加の個別ロック構造または制御ブロック59および61が存在する。制御ブロック59および61のそれぞれは原理/構造において制御ブロック58と同様であるが、制御ブロック59および61のそれぞれの状態は仮想計算機のダイナミクス、すなわち、現在、ファイル97に関するロックを保持している仮想計算機がある場合にどの仮想計算機が保持しているか、現在、ファイル97に関するロックを待っている仮想計算機がある場合にどの仮想計算機が待っているか、ならびに現在、ディレクトリ98に関するロックを保持している仮想計算機がある場合にどの仮想計算機が保持しているか、現在、ディレクトリ98に関するロックを待っている仮想計算機がある場合にどの仮想計算機が待っているかに依存する。個別ロックにより、他のファイルまたはディレクトリに対して各仮想計算機が保持するロックの排他または共用という性質にかかわらず、複数の仮想計算機は同時にファイル80および97とディレクトリ98にアクセスすることができる。たとえば、仮想計算機12がファイル80に関する排他ロックを有している場合、仮想計算機14は同時にファイル97に関する排他ロックを有することができ、仮想計算機16は同時にディレクトリ98に関する排他ロックを有することができる。それぞれのロックを備えた他の共用データ構造も同様に共用メモリ25に含めることができる。
図3は、共用メモリ内の共用ファイル、ディレクトリ、またはその他のデータ構造に関するロックを入手して、それにアクセスしようと試みている仮想計算機内の各LAF、DAF、その他の機能の操作700を示している。以下の例では、仮想計算機は共用ファイルに関するロックを要求する(ステップ701)。仮想計算機が共用ファイルを読み取りたいと希望する場合、仮想計算機は共用ロックのみを要求する必要がある。しかし、仮想計算機が共用ファイルに書き込みたいと希望する場合、仮想計算機は排他ロックを要求することになる。要求が排他ロックに関するものである場合、判断702は判断704に至る。判断704では、LAFは、要求したロックが現在、他の仮想計算機(共用方式または排他方式のいずれかで)によって保持されているかどうかを判定する。保持されている場合、排他ロックは現行リクエスタにとって使用不能であり、LAFは、要求側仮想計算機が「ウェイタ・リスト」上にあって、待機待ち行列(wait queue)上に登録されていることを示すように制御ブロック58を更新する(ステップ705)。次に、LAFは、その仮想計算機が実行すべき他の作業を有するかどうかを判定する(判断706)。有していない場合、LAFは、「状況(status)」というカテゴリで制御ブロック58内に項目(entry)を作成し、要求側仮想計算機が「アイドル(idle)」状態であることを示す(ステップ708)。次にLAFによって要求側仮想計算機は、覚醒した(awaken)ときに読み取るようにこの仮想計算機がプログラミングされるという項目を他の制御ブロック内に作成した後で「アイドル/休止(idle/quiescent)」状態に入る(ステップ710)。次に、要求側仮想計算機は割込みを待ち(判断712)、その時点でその仮想計算機は覚醒し、他の制御ブロックを読み取ることになる。この他の制御ブロックは、そのLAFを呼び出すよう仮想計算機に通知する(ステップ713)。もう一度、判断706を参照すると、要求側仮想計算機(この時点ではロックを獲得できないもの)が実行すべき他の作業を有する場合、LAFは、ゲスト・オペレーティング・システムまたはアプリケーションに制御を返して、その他の作業を実行することになる(ステップ707)。その後、ゲスト・オペレーティング・システムはLAFを呼び出すことになる(ステップ713)。
判断712またはステップ707を介してステップ713でLAFが呼び出されると、LAFは制御ブロック58を読み取って、その仮想計算機がロックを保持する資格があるかどうかを判定することになり、すなわち、要求したロックが排他である場合、他のいかなる仮想計算機も現在、ロックを保持していないと判断し、要求したロックが共用である場合、他のいかなる仮想計算機も現在、排他方式でロックを保持していないと判断することになる(判断715)。仮想計算機がロックを保持する資格がない場合、LAFは判断706に戻り、前述の処理を続行する。しかし、その時点で仮想計算機がロックを保持する資格がある場合、LAFはロックを獲得する(ステップ722)。このロックの獲得は、制御ブロック58に対する対応する更新、すなわち、要求側仮想計算機がその時点でロックを保持しており、ウェイタではないという表示によって実施される。次に、LAFは要求側仮想計算機のDAFを呼び出して、共用メモリ25からのデータの読取りまたは共用メモリ25へのデータの書込みのいずれかのために適切なアドレスによって共用データに直接アクセスする(ステップ724)。その後、DAFは、仮想計算機が共用データに対するそのアクセスを完了したことをLAFに通知し、LAFはロックを「解除(release)」する(ステップ728)。応答として、LAFは、要求側仮想計算機がもはやロックを保持していないことを示すように制御ブロック58を更新する。また、LAFは、他の仮想計算機が現在、ロックを待っているかどうかを制御ブロック58から判定する(判断730)。待っていない場合、LAFの処理は完了し、制御はLAFの仮想計算機のゲスト・オペレーティング・システムまたはアプリケーションに返される(ステップ732)。待っている場合、LAFは、「待ち」というマークが付けられた第1の仮想計算機が「アイドル」状態であるかどうかを制御ブロック58から判定する(判断734)。アイドル状態ではない場合、LAFは、この非アイドル状態で待っている仮想計算機がその現行作業項目をいつ完了するかをチェックすることになるという項目を他の制御ブロックに作成する(ステップ736)。この項目は、そのLAFを呼び出してステップ722でロックを獲得しようと試みるよう、待っている仮想計算機に通知することになる(ステップ713)。その場合、非アイドル状態で待っている仮想計算機に対しこの時点で割込みを行うことは破壊的すぎると考えられるので、LAFに関する処理が完了する(ステップ732)。もう一度、判断734を参照すると、待っている仮想計算機がアイドル状態である場合、LAFは、割込みが行われたときに待っている仮想計算機のLAFを呼び出すための項目を他の制御ブロック内に作成し、待っている仮想計算機に対する割込みを発行する(ステップ738)。それはとにかくアイドル状態であるので、これは待っている仮想計算機にとって破壊的なものにはならないだろう。次に、要求側仮想計算機のLAFはその処理を完了し、それ自体の仮想計算機のオペレーティング・システムまたはアプリケーションに制御を返す(ステップ732)。割込みの受信後、アイドル状態で待っている仮想計算機(ステップ712)は覚醒することになり、ステップ722でロックを獲得することができる。
もう一度、判断704を参照すると、要求したロックが現在、何かに保持されていない場合、LAFは要求側仮想計算機に対し「非アイドル」として制御ブロック58の「状況」カテゴリにマークを付け(ステップ720)、その要求側仮想計算機にロックを授与する(ステップ722)。LAFは前述の処理を続行する。もう一度、判断702を参照すると、仮想計算機が要求したロックが、共用ファイル80の読取りなど、共用である場合、LAFは、ロックが現在、排他方式で保持されているかどうかを判定する(判断740)。保持されていない場合(すなわち、いかなるロックも現在、保持されていないかまたは共用ロックのみが現在、保持されている場合)、LAFは、ステップ720に移行し、前述の処理を続行する。しかし、ロックが現在、他の仮想計算機によって排他方式で保持されている場合、LAFは、ステップ705に移行して要求側仮想計算機をウェイタ・リストに追加し、前述のように続行する。
図4および図5は、本発明の第2の実施形態によるコンピュータ・システム110を示している。システム110はシステム10と同様のものであるが、システム110では共用ファイル180が仮想計算機12の専用メモリ内に常駐する。システム10では、共用ファイル80が共用メモリ25内に常駐する。また、システム110(システム10のように共用メモリ25からではなく)では、仮想計算機12の専用メモリ内の共用ファイルにアクセスするために、後述するようにDAF162、164、166に対して対応する変更が行われている。システム10および110はいずれも共用メモリ25内に同じロック構造58を有する。システム110のLAF172、174、176(システム10のLAF72、74、76のように)は、適切なアドレスによって共用メモリからのロック構造58に直接アクセスすることができる。LAF172、174、176がLAF72、74、76と異なる点は、LAF172、174、176がDAF162、164、166に関するロックを制御するのに対し、LAF72、74、76が共用データに関するロックを制御することである。この違いの理由は、DAF162、164、166が共用データにアクセスするために相当な時間を必要とし、実際に共用データにアクセスする時間より多くなる可能性があることであり、DAF162、164、166の動作全体の間、競合(conflict)を回避しなければならない。対照的に、システム10の場合のように共用データが共用メモリ内に常駐する場合、共用データへの実際のアクセスはかなり速くなる。
図6は、仮想計算機12の専用メモリ内の共用ファイル、ディレクトリ、またはその他のデータ構造に関するロックを入手しようと試みているシステム110の各仮想計算機12、14、16内の各LAF172、174、176、各DAF162、164、166、その他の機能の操作800を示している。
上記のように、LAF172、174、176は、何がロックされるかを除き、LAF72、74、76と同様のものである。システム10ではLAF72、74、76が共用データをロックするのに対し、システム110ではLAF172、174、176がDAF162、164、166をロックする。したがって、DAF162は、LAF172が最初にロックを入手せずにそれ自体の専用メモリ内の共用データ180からのデータにアクセスするように動作することはできない。また、DAF164は、LAF174が最初にロックを入手せずに仮想計算機12からの共用データ180を要求するように動作することはできない。同様に、DAF166は、LAF176が最初にロックを入手せずに仮想計算機12からの共用データ180を要求するように動作することはできない。
また、上記のように、DAF162、164、166は、共用データにアクセスする方法を除き、DAF62、64、66と同様のものである。これは、機能700ではステップ724であったが、機能800ではステップ824である。上記で説明したように、ステップ724では、すべての要求側仮想計算機が適切なアドレスによって共用メモリからの共用データに直接アクセスする。しかし、システム110では、共用データは共用メモリ内に常駐せず、むしろ仮想計算機12内に常駐する。したがって、仮想計算機12がロックを保持し、仮想計算機12内の共用データへのアクセスを要求する場合、DAF162は適切なアドレスを使用してそのデータに直接アクセスする。しかし、仮想計算機14または16がロックを保持し、仮想計算機12内の共用データへのアクセスを要求する場合、DAF164または166はその共用データに直接アクセスすることができない。その代わりに、DAF164または166は仮想計算機12に仮想計算機間メッセージ要求を送信して、データにアクセスする。この仮想計算機間メッセージは、既知のTCP/IP、IUCV、またはゲストLAN通信プロトコルを使用して作成することができる。TCP/IPは業界標準であり、したがって、本書で説明する必要はない。「IUCV」はIBMのzSerieサーバの独自プロトコルであり、以下のステップを有する。リクエスタの専用メモリ内にメッセージが書き込まれる。次に、共通基本部分を介して仮想計算機12に割込みが送信される。共通基本部分は仮想計算機12の専用メモリにメッセージを書き込む。この割込みは仮想計算機12内の割込みハンドラを呼び出してメッセージを読み取り、処理のために仮想計算機12内の適切な機能にそれを転送する。仮想計算機12内のこの機能は、メッセージ(DAF164または166から発生したもの)を受信し、読取り要求の場合は指定のアドレスからデータを取り出し(fetch)、書込み要求の場合は指定のアドレスに書き込む。次に、仮想計算機12内の機能は、IUCVを使用して、読取り要求の場合はデータを返し、書込み要求の場合は肯定応答を返し、いずれの場合も仮想計算機間メッセージを使用する。このように返した後、それぞれのLAF174または176はロックを解除する。上記のように、IUCVの代わりにゲストLANを使用することができる。ゲストLANは、LANプロトコルを使用する仮想化通信装置である。LANプロトコルは、単一送信側(sender)と複数の受信側(receiver)との間で同時に通信を可能にするものである。ゲストLANを介して通信するためには、送信側と受信側(複数も可)はどちらも共通基本部分を呼び出して、ゲストLANに参加したいことを示す。データを送信するためには、送信側は共通基本部分を呼び出して、送信すべきデータと、どの受信側(複数も可)がそのデータを獲得すべきかを示す。共通基本部分は、識別された受信側ごとに割込みを生成する。このような各受信側は、共通基本部分を呼び出してデータを受信することによって応答する。次に共通基本部分は、送信側の専用メモリからのデータをそれぞれの受信側の専用メモリにコピーする。すべての受信側がそのデータを受信すると、共通基本部分は送信側に対する割込みを生成し、そのデータがすべての受信側に転送されたことを示す。
上記に基づいて、本発明を実施するコンピュータ・システムについて説明してきた。しかし、本発明の範囲を逸脱せずに多数の修正および置換を行うことができる。たとえば、仮想計算機の代わりにロジカル・パーティションを使用することができるだろう。また、所望であれば、LAF172、174、176は、DAF162、164、166に関するロックの代わりに、共用データ180に関するロックを入手することができる。したがって、本発明は、限定としてではなく例証として開示したものであり、本発明の範囲を決定するためには特許請求の範囲を参照しなければならない。
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)第1および第2の仮想計算機と、前記第1および第2の仮想計算機によって共用されるメモリを定義するコンピュータ・システムにおいて、前記コンピュータ・システムが、
前記共用メモリ内のロック構造であって、前記共用メモリ内の共用データに関するロックのホルダをリストすることができるロック構造を有し、
前記第1の仮想計算機が、前記ロック構造の操作により使用可能なときに前記共用データに関するロックを獲得するための第1のプログラム機能と、前記共用データにアクセスするために前記第1の仮想計算機が前記ロックを獲得した後でアクティブになる第2のプログラム機能とを含み、前記ロック構造が前記第1のプログラム機能により直接アクセス可能であり、前記共用データが前記第2のプログラム機能により直接アクセス可能であり、
前記第2の仮想計算機が、前記ロック構造の操作により使用可能なときに前記共用データに関するロックを獲得するための第3のプログラム機能と、前記共用データにアクセスするために前記第2の仮想計算機が前記ロックを獲得した後でアクティブになる第4のプログラム機能とを含み、前記ロック構造が前記第3のプログラム機能により直接アクセス可能であり、前記共用データが前記第4のプログラム機能により直接アクセス可能である、コンピュータ・システム。
(2)前記第1および第2のプログラム機能が前記第1の仮想計算機にとって専用のメモリ内に常駐し、前記第3および第4のプログラム機能が前記第2の仮想計算機にとって専用のメモリ内に常駐する、上記(1)に記載のコンピュータ・システム。
(3)前記共用データにアクセスするために前記第1の仮想計算機内からの要求によって前記ロックを獲得するために前記第1のプログラム機能が開始され、前記共用データにアクセスするために前記第2の仮想計算機内からの要求によって前記ロックを獲得するために前記第3のプログラム機能が開始される、上記(1)に記載のコンピュータ・システム。
(4)前記共用データが共用ファイルである、上記(1)に記載のコンピュータ・システム。
(5)前記共用データが共用ディレクトリである、上記(1)に記載のコンピュータ・システム。
(6)現在、前記ロックを待っている仮想計算機がある場合にどの仮想計算機が待っているかについても前記ロック構造がリストする、上記(1)に記載のコンピュータ・システム。
(7)現在、共用ロックを保持する2つ以上の仮想計算機と、現在、ロックを待っている2つ以上の仮想計算機が存在することができる、上記(6)に記載のコンピュータ・システム。
(8)前記第1のプログラム機能が前記ロック構造を操作して、前記第1の仮想計算機が(a)前記ロックを所有すること、(b)前記ロックを所有しないこと、(c)前記ロックを待っていることを示すことができ、
前記第3のプログラム機能が前記ロック構造を操作して、前記第2の仮想計算機が(a)前記ロックを所有すること、(b)前記ロックを所有しないこと、(c)前記ロックを待っていることを示すことができる、上記(1)に記載のコンピュータ・システム。
(9)前記第2の仮想計算機が前記第1および第2のプログラム機能にアクセスできないように前記第1および第2のプログラム機能が前記第1の仮想計算機にとって専用のものであり、前記第1の仮想計算機が前記第3および第4のプログラム機能にアクセスできないように前記第3および第4のプログラム機能が前記第2の仮想計算機にとって専用のものである、上記(1)に記載のコンピュータ・システム。
(10)第1および第2の仮想計算機と、前記第1および第2の仮想計算機によって共用されるメモリを定義するコンピュータ・システム内の共用データにアクセスするための方法において、前記方法が、
前記共用メモリ内のロック構造を定義するステップであって、前記ロック構造が前記共用メモリ内の共用データに関するロックのホルダをリストすることができるステップと、
前記第1の仮想計算機が、前記ロック構造の操作により使用可能なときに前記共用データに関するロックを獲得し、前記ロックの獲得後に前記共用データにアクセスするステップであって、前記ロック構造および前記共用データが前記第1の仮想計算機により直接アクセス可能であるステップと、
前記第2の仮想計算機が、前記ロック構造の操作により使用可能なときに前記共用データに関するロックを獲得し、前記ロックの獲得後に前記共用データにアクセスするステップであって、前記ロック構造および前記共用データが前記第2の仮想計算機により直接アクセス可能であるステップとを有する方法。
(11)前記共用データにアクセスするために前記第1の仮想計算機内からの要求によって前記ロックを獲得するために前記第1の仮想計算機が開始され、前記共用データにアクセスするために前記第2の仮想計算機内からの要求によって前記ロックを獲得するために前記第2の仮想計算機が開始される、上記(10)に記載の方法。
(12)現在、前記ロックを待っている仮想計算機がある場合にどの仮想計算機が待っているかについても前記ロック構造がリストする、上記(10)に記載の方法。
(13)前記第1の仮想計算機が前記ロックを獲得するステップが、前記第1の仮想計算機内の第1のプログラム機能を実行することによって実行され、前記第1の仮想計算機が前記共用データにアクセスするステップが、前記第1の仮想計算機内の第2のプログラム機能を実行することによって実行され、
前記第2の仮想計算機が前記ロックを獲得するステップが、前記第2の仮想計算機内の第3のプログラム機能を実行することによって実行され、前記第2の仮想計算機が前記共用データにアクセスするステップが、前記第2の仮想計算機内の第4のプログラム機能を実行することによって実行され、
前記第2の仮想計算機が前記第1および第2のプログラム機能にアクセスできないように前記第1および第2のプログラム機能が前記第1の仮想計算機にとって専用のものであり、前記第1の仮想計算機が前記第3および第4のプログラム機能にアクセスできないように前記第3および第4のプログラム機能が前記第2の仮想計算機にとって専用のものである、上記(10)に記載の方法。
(14)第1および第2の仮想計算機と、前記第1および第2の仮想計算機によって共用されるメモリを定義するコンピュータ・システム内の共用データにアクセスするためのコンピュータ・プログラム記録媒体において、前記コンピュータ・プログラム記録媒体が、
コンピュータ可読媒体と、
前記共用メモリ内のロック構造を定義するための第1のプログラム命令であって、前記ロック構造が前記共用メモリ内の共用データに関するロックのホルダをリストすることができる第1のプログラム命令と、
前記ロック構造の操作により使用可能なときに前記共用データに関するロックを獲得し、前記ロックの獲得後に前記共用データにアクセスするために前記第1の仮想計算機において実行される第2のプログラム命令であって、前記ロック構造および前記共用データが前記第1の仮想計算機により直接アクセス可能である第2のプログラム命令と、
前記ロック構造の操作により使用可能なときに前記共用データに関するロックを獲得し、前記ロックの獲得後に前記共用データにアクセスするために前記第2の仮想計算機において実行される第3のプログラム命令であって、前記ロック構造および前記共用データが前記第2の仮想計算機により直接アクセス可能である第3のプログラム命令とを有し、
前記第1、第2、および第3のプログラム命令が前記媒体上に記録される、コンピュータ・プログラム記録媒体。
(15)第1および第2の仮想計算機と、前記第1および第2の仮想計算機によって共用されるメモリと、前記第1の仮想計算機にとって専用のメモリを定義するコンピュータ・システムにおいて、前記コンピュータ・システムが、
前記共用メモリ内のロック構造であって、前記専用メモリ内の共用データに関するロックのホルダをリストすることができるロック構造を有し、
前記第1の仮想計算機が、前記ロック構造の操作により使用可能なときに前記共用データに関するロックを獲得するための第1のプログラム機能と、前記共用データにアクセスするために前記第1の仮想計算機が前記ロックを獲得した後でアクティブになる第2のプログラム機能とを含み、前記ロック構造が前記第1のプログラム機能により直接アクセス可能であり、前記共用データが前記第2のプログラム機能により直接アクセス可能であり、
前記第2の仮想計算機が、前記ロック構造の操作により使用可能なときに前記共用データに関するロックを獲得するための第3のプログラム機能と、前記共用データへのアクセスを前記第1の仮想計算機から要求するために前記第2の仮想計算機が前記ロックを獲得した後でアクティブになる第4のプログラム機能とを含み、前記ロック構造が前記第3のプログラム機能により直接アクセス可能であり、前記共用データが前記第4のプログラム機能により直接アクセス可能でない、コンピュータ・システム。
(16)前記第2のプログラム機能が前記ロックなしで前記共用データにアクセスできず、前記第4のプログラム機能が前記ロックなしで前記共用データへのアクセスを前記第1の仮想計算機から要求できないように、前記ロックが前記第2および第4のプログラム機能に関するものである、上記(15)に記載のコンピュータ・システム。
(17)前記ロックが前記共用データに関するものである、上記(15)に記載のコンピュータ・システム。
(18)前記第1および第2のプログラム機能が前記第1の仮想計算機にとって専用のメモリ内に常駐し、前記第3および第4のプログラム機能が前記第2の仮想計算機にとって専用のメモリ内に常駐する、上記(15)に記載のコンピュータ・システム。
(19)前記共用データにアクセスするために前記第1の仮想計算機内からの要求によって前記ロックを獲得するために前記第1のプログラム機能が開始され、前記共用データにアクセスするために前記第2の仮想計算機内からの要求によって前記ロックを獲得するために前記第3のプログラム機能が開始される、上記(15)に記載のコンピュータ・システム。
(20)前記共用データが共用ファイルである、上記(15)に記載のコンピュータ・システム。
(21)現在、前記ロックを待っている仮想計算機がある場合にどの仮想計算機が待っているかについても前記ロック構造がリストする、上記(15)に記載のコンピュータ・システム。
(22)現在、共用ロックを保持する2つ以上の仮想計算機と、現在、ロックを待っている2つ以上の仮想計算機が存在することができる、上記(21)に記載のコンピュータ・システム。
(23)前記第1のプログラム機能が前記ロック構造を操作して、(a)前記第1の仮想計算機がロックを所有することを示すために前記ロックを入手し、(b)前記第1の仮想計算機が前記ロックを所有しないことを示すために前記ロックを解除し、(c)前記第1の仮想計算機がロックを待っていることを示すために前記ロックを待ち、
前記第3のプログラム機能が前記ロック構造を操作して、(a)前記第2の仮想計算機がロックを所有することを示すために前記ロックを入手し、(b)前記第2の仮想計算機が前記ロックを所有しないことを示すために前記ロックを解除し、(c)前記第2の仮想計算機がロックを待っていることを示すために前記ロックを待つ、上記(15)に記載のコンピュータ・システム。
(24)前記第2の仮想計算機が前記第1および第2のプログラム機能にアクセスできないように前記第1および第2のプログラム機能が前記第1の仮想計算機にとって専用のものであり、前記第1の仮想計算機が前記第3および第4のプログラム機能にアクセスできないように前記第3および第4のプログラム機能が前記第2の仮想計算機にとって専用のものである、上記(15)に記載のコンピュータ・システム。
本発明の第1の実施形態によるデータ・アクセス機能を備えた仮想計算機オペレーティング・システムを含むコンピュータ・システムのブロック図である。 本発明の第1の実施形態によるロック・アクセス機能を備えた仮想計算機オペレーティング・システムを含む図1のコンピュータ・システムのブロック図である。 図1および図2のコンピュータ・システム内のロック管理機能、データ・アクセス機能、その他の機能を示す流れ図である。 本発明の第2の実施形態によるデータ・アクセス機能を備えた仮想計算機オペレーティング・システムを含むコンピュータ・システムのブロック図である。 本発明の第2の実施形態によるロック・アクセス機能を備えた仮想計算機オペレーティング・システムを含む図4のコンピュータ・システムのブロック図である。 図4および図5のコンピュータ・システム内のロック管理機能、データ・アクセス機能、その他の機能を示す流れ図である。
符号の説明
10 コンピュータ・システム
11 仮想計算機オペレーティング・システム
12、14、16 仮想計算機、ユーザ部分
20 物理的コンピュータ
21 基本部分
22、24 仮想計算機Linux、ゲスト・オペレーティング・システム
23 CPU
25 共用メモリ
26 仮想計算機CMS、ゲスト・オペレーティング・システム
32、34、36 アプリケーション
58 共用ロック構造、制御ブロック
59、61 制御ブロック
62、64、66 DAF(データ・アクセス機能)
72、74、76 LAF(ロック・アクセス機能)
78 共用データ
80、97 ファイル
90 ロック・チェーン
92、96 読取り要求
94 書込み要求
98 ディレクトリ
110 コンピュータ・システム
162、164、166 DAF
172、174、176 LAF
180 共用ファイル




Claims (24)

  1. 第1および第2の仮想計算機と、前記第1および第2の仮想計算機によって共用されるメモリを定義するコンピュータ・システムにおいて、前記コンピュータ・システムが、
    前記共用メモリ内のロック構造であって、前記共用メモリ内の共用データに関するロックのホルダをリストすることができるロック構造を有し、
    前記第1の仮想計算機が、前記ロック構造を参照し、前記第1の仮想計算機が排他ロックを要求し、前記ロック構造が排他ロックされていることを示す場合にアイドル状態とし、前記第1の仮想計算機がアイドル中の場合に前記共用データに関するロックを獲得することができることを判断して前記ロックを獲得させるための第1のプログラム機能と、前記共用データにアクセスするために前記第1の仮想計算機が前記ロックを獲得した後でアクティブになる第2のプログラム機能とを含み、前記ロック構造が前記第1のプログラム機能により直接アクセス可能であり、前記共用データが前記第2のプログラム機能により直接アクセス可能であり、
    前記第2の仮想計算機が、前記ロック構造を参照し、前記第2の仮想計算機が排他ロックを要求し、前記ロック構造が排他ロックされていることを示す場合にアイドル状態とし、前記第2の仮想計算機がアイドル中の場合に前記共用データに関するロックを獲得することができることを判断して前記ロックを獲得させるための第3のプログラム機能と、前記共用データにアクセスするために前記第2の仮想計算機が前記ロックを獲得した後でアクティブになる第4のプログラム機能とを含み、前記ロック構造が前記第3のプログラム機能により直接アクセス可能であり、前記共用データが前記第4のプログラム機能により直接アクセス可能である、コンピュータ・システム。
  2. 前記第1および第2のプログラム機能が前記第1の仮想計算機にとって専用のメモリ内に常駐し、前記第3および第4のプログラム機能が前記第2の仮想計算機にとって専用のメモリ内に常駐する、請求項1に記載のコンピュータ・システム。
  3. 前記共用データにアクセスするために前記第1の仮想計算機内からの要求によって前記ロックを獲得するために前記第1のプログラム機能が開始され、前記共用データにアクセスするために前記第2の仮想計算機内からの要求によって前記ロックを獲得するために前記第3のプログラム機能が開始される、請求項1に記載のコンピュータ・システム。
  4. 前記共用データが共用ファイルである、請求項1に記載のコンピュータ・システム。
  5. 前記共用データが共用ディレクトリである、請求項1に記載のコンピュータ・システム。
  6. 現在、前記ロックを待っている仮想計算機がある場合にどの仮想計算機が待っているかについても前記ロック構造がリストする、請求項1に記載のコンピュータ・システム。
  7. 現在、共用ロックを保持する2つ以上の仮想計算機と、現在、ロックを待っている2つ以上の仮想計算機が存在することができる、請求項6に記載のコンピュータ・システム。
  8. 前記第1のプログラム機能が前記ロック構造を操作して、前記第1の仮想計算機が(a)前記ロックを所有すること、(b)前記ロックを所有しないこと、(c)前記ロックを待っていることを示すことができ、
    前記第3のプログラム機能が前記ロック構造を操作して、前記第2の仮想計算機が(a)前記ロックを所有すること、(b)前記ロックを所有しないこと、(c)前記ロックを待っていることを示すことができる、請求項1に記載のコンピュータ・システム。
  9. 前記第2の仮想計算機が前記第1および第2のプログラム機能にアクセスできないように、前記第1および第2のプログラム機能が前記第1の仮想計算機にとって専用のものであり、前記第1の仮想計算機が前記第3および第4のプログラム機能にアクセスできないように前記第3および第4のプログラム機能が前記第2の仮想計算機にとって専用のものである、請求項1に記載のコンピュータ・システム。
  10. 第1および第2の仮想計算機と、前記第1および第2の仮想計算機によって共用されるメモリを定義するコンピュータ・システム内の共用データにアクセスするための方法をコンピュータに対して実行させる方法であって、前記方法が、前記コンピュータに対し、
    前記共用メモリ内のロック構造を定義するステップであって、前記ロック構造が前記共用メモリ内の共用データに関するロックのホルダをリストするステップと、
    前記第1の仮想計算機が、前記ロック構造を参照し、前記第1の仮想計算機が排他ロックを要求し、前記ロック構造が排他ロックされていることを示す場合にアイドル状態とし、前記第1の仮想計算機がアイドル中の場合に前記共用データに関するロックを獲得することができることを判断して前記ロックを獲得させるための第1のプログラム機能と、前記共用データにアクセスするために前記第1の仮想計算機が前記ロックを獲得した後でアクティブになる第2のプログラム機能とを含み、前記ロック構造が前記第1のプログラム機能により直接アクセス可能であり、前記共用データが前記第2のプログラム機能により直接アクセス可能とするステップと、
    前記第2の仮想計算機が、前記ロック構造を参照し、前記第2の仮想計算機が排他ロックを要求し、前記ロック構造が排他ロックされていることを示す場合にアイドル状態とし、前記第2の仮想計算機がアイドル中の場合に前記共用データに関するロックを獲得することができることを判断して前記ロックを獲得させるための第3のプログラム機能と、前記共用データにアクセスするために前記第2の仮想計算機が前記ロックを獲得した後でアクティブになる第4のプログラム機能とを含み、前記ロック構造が前記第3のプログラム機能により直接アクセス可能であり、前記共用データが前記第4のプログラム機能により直接アクセス可能とするステップと
    を実行させる方法。
  11. 前記共用データにアクセスするために前記第1の仮想計算機内からの要求によって前記ロックを獲得するために前記第1の仮想計算機が開始され、前記共用データにアクセスするために前記第2の仮想計算機内からの要求によって前記ロックを獲得するために前記第2の仮想計算機が開始される、請求項10に記載の方法。
  12. 現在、前記ロックを待っている仮想計算機がある場合にどの仮想計算機が待っているかについても前記ロック構造がリストする、請求項10に記載の方法。
  13. 前記第1の仮想計算機が前記ロックを獲得するステップが、前記第1の仮想計算機内の第1のプログラム機能を実行することによって実行され、前記第1の仮想計算機が前記共用データにアクセスするステップが、前記第1の仮想計算機内の第2のプログラム機能を実行することによって実行され、
    前記第2の仮想計算機が前記ロックを獲得するステップが、前記第2の仮想計算機内の第3のプログラム機能を実行することによって実行され、前記第2の仮想計算機が前記共用データにアクセスするステップが、前記第2の仮想計算機内の第4のプログラム機能を実行することによって実行され、
    前記第2の仮想計算機が前記第1および第2のプログラム機能にアクセスできないように前記第1および第2のプログラム機能が前記第1の仮想計算機にとって専用のものであり、前記第1の仮想計算機が前記第3および第4のプログラム機能にアクセスできないように前記第3および第4のプログラム機能が前記第2の仮想計算機にとって専用のものである、請求項10に記載の方法。
  14. 第1および第2の仮想計算機と、前記第1および第2の仮想計算機によって共用されるメモリを定義するコンピュータ・システム内の共用データにアクセスするためのコンピュータ・プログラムであって、前記コンピュータ・プログラム記録媒体は、前記コンピュータ・システムの仮想計算機に対し、
    前記共用メモリ内のロック構造を定義するステップであって、前記ロック構造が前記共用メモリ内の共用データに関するロックのホルダをリストする機能手段と、
    前記第1の仮想計算機が、前記ロック構造を参照し、前記第1の仮想計算機が排他ロックを要求し、前記ロック構造が排他ロックされていることを示す場合にアイドル状態とし、前記第1の仮想計算機がアイドル中の場合に前記共用データに関するロックを獲得することができることを判断して前記ロックを獲得させるための第1のプログラム機能と、前記共用データにアクセスするために前記第1の仮想計算機が前記ロックを獲得した後でアクティブになる第2のプログラム機能とを含み、前記ロック構造が前記第1のプログラム機能により直接アクセス可能であり、前記共用データが前記第2のプログラム機能により直接アクセス可能とする機能手段と、
    前記第2の仮想計算機が、前記ロック構造を参照し、前記第2の仮想計算機が排他ロックを要求し、前記ロック構造が排他ロックされていることを示す場合にアイドル状態とし、前記第2の仮想計算機がアイドル中の場合に前記共用データに関するロックを獲得することができることを判断して前記ロックを獲得させるための第3のプログラム機能と、前記共用データにアクセスするために前記第2の仮想計算機が前記ロックを獲得した後でアクティブになる第4のプログラム機能とを含み、前記ロック構造が前記第3のプログラム機能により直接アクセス可能であり、前記共用データが前記第4のプログラム機能により直接アクセス可能とする機能手段と
    を実現させる、コンピュータ実行可能なプログラム。
  15. 第1および第2の仮想計算機と、前記第1および第2の仮想計算機によって共用されるメモリと、前記第1の仮想計算機にとって専用のメモリを定義するコンピュータ・システムにおいて、前記コンピュータ・システムが、
    前記共用メモリ内のロック構造であって、前記専用メモリ内の共用データに関するロックのホルダをリストすることができるロック構造を有し、
    前記第1の仮想計算機が、前記ロック構造を参照し、前記第1の仮想計算機が排他ロックを要求し、前記ロック構造が排他ロックされていることを示す場合にアイドル状態とし、前記第1の仮想計算機がアイドル中の場合に前記共用データに関するロックを獲得することができることを判断して前記ロックを獲得させるための第1のプログラム機能と、前記共用データにアクセスするために前記第1の仮想計算機が前記ロックを獲得した後でアクティブになる第2のプログラム機能とを含み、前記ロック構造が前記第1のプログラム機能により直接アクセス可能であり、前記共用データが前記第2のプログラム機能により直接アクセス可能であり、
    前記第2の仮想計算機が、前記ロック構造を参照し、前記第2の仮想計算機が排他ロックを要求し、前記ロック構造が排他ロックされていることを示す場合にアイドル状態とし、前記第2の仮想計算機がアイドル中の場合に前記共用データに関するロックを獲得することができることを判断して前記ロックを獲得させるための第3のプログラム機能と、前記共用データへのアクセスを前記第1の仮想計算機から要求するために前記第2の仮想計算機が前記ロックを獲得した後でアクティブになる第4のプログラム機能とを含み、前記ロック構造が前記第3のプログラム機能により直接アクセス可能であり、前記共用データが前記第4のプログラム機能により直接アクセス可能でない、コンピュータ・システム。
  16. 前記第2のプログラム機能が前記ロックなしで前記共用データにアクセスできず、前記第4のプログラム機能が前記ロックなしで前記共用データへのアクセスを前記第1の仮想計算機から要求できないように、前記ロックが前記第2および第4のプログラム機能に関するものである、請求項15に記載のコンピュータ・システム。
  17. 前記ロックが前記共用データに関するものである、請求項15に記載のコンピュータ・システム。
  18. 前記第1および第2のプログラム機能が前記第1の仮想計算機にとって専用のメモリ内に常駐し、前記第3および第4のプログラム機能が前記第2の仮想計算機にとって専用のメモリ内に常駐する、請求項15に記載のコンピュータ・システム。
  19. 前記共用データにアクセスするために前記第1の仮想計算機内からの要求によって前記ロックを獲得するために前記第1のプログラム機能が開始され、前記共用データにアクセスするために前記第2の仮想計算機内からの要求によって前記ロックを獲得するために前記第3のプログラム機能が開始される、請求項15に記載のコンピュータ・システム。
  20. 前記共用データが共用ファイルである、請求項15に記載のコンピュータ・システム。
  21. 現在、前記ロックを待っている仮想計算機がある場合にどの仮想計算機が待っているかについても前記ロック構造がリストする、請求項15に記載のコンピュータ・システム。
  22. 現在、共用ロックを保持する2つ以上の仮想計算機と、現在、ロックを待っている2つ以上の仮想計算機が存在することができる、請求項21に記載のコンピュータ・システム。
  23. 前記第1のプログラム機能が前記ロック構造を操作して、(a)前記第1の仮想計算機がロックを所有することを示すために前記ロックを入手し、(b)前記第1の仮想計算機が前記ロックを所有しないことを示すために前記ロックを解除し、(c)前記第1の仮想計算機がロックを待っていることを示すために前記ロックを待ち、
    前記第3のプログラム機能が前記ロック構造を操作して、(a)前記第2の仮想計算機がロックを所有することを示すために前記ロックを入手し、(b)前記第2の仮想計算機が前記ロックを所有しないことを示すために前記ロックを解除し、(c)前記第2の仮想計算機がロックを待っていることを示すために前記ロックを待つ、請求項15に記載のコンピュータ・システム。
  24. 前記第2の仮想計算機が前記第1および第2のプログラム機能にアクセスできないように前記第1および第2のプログラム機能が前記第1の仮想計算機にとって専用のものであり、前記第1の仮想計算機が前記第3および第4のプログラム機能にアクセスできないように前記第3および第4のプログラム機能が前記第2の仮想計算機にとって専用のものである、請求項15に記載のコンピュータ・システム。
JP2004111541A 2003-04-29 2004-04-05 仮想計算機環境におけるロックの管理 Expired - Fee Related JP4012517B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/425,468 US7328437B2 (en) 2002-10-24 2003-04-29 Management of locks in a virtual machine environment

Publications (2)

Publication Number Publication Date
JP2004326753A JP2004326753A (ja) 2004-11-18
JP4012517B2 true JP4012517B2 (ja) 2007-11-21

Family

ID=33415918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004111541A Expired - Fee Related JP4012517B2 (ja) 2003-04-29 2004-04-05 仮想計算機環境におけるロックの管理

Country Status (2)

Country Link
US (2) US7831977B2 (ja)
JP (1) JP4012517B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8820171B2 (en) 2011-09-20 2014-09-02 Corning Incorporated Method to monitor safe operation of an ultracapacitor

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050132363A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for optimizing context switching between virtual machines
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US9606821B2 (en) * 2004-12-17 2017-03-28 Intel Corporation Virtual environment manager for creating and managing virtual machine environments
US8180923B2 (en) * 2005-11-29 2012-05-15 Intel Corporation Network access control for many-core systems
US8255922B1 (en) * 2006-01-09 2012-08-28 Oracle America, Inc. Mechanism for enabling multiple processes to share physical memory
US10339617B2 (en) * 2006-02-01 2019-07-02 Cerner Innovations, Inc. Order profile safeguarding mechanism
US8001540B2 (en) * 2006-08-08 2011-08-16 International Business Machines Corporation System, method and program product for control of sequencing of data processing by different programs
US20080104589A1 (en) * 2006-11-01 2008-05-01 Mccrory Dave Dennis Adaptive, Scalable I/O Request Handling Architecture in Virtualized Computer Systems and Networks
US7529867B2 (en) * 2006-11-01 2009-05-05 Inovawave, Inc. Adaptive, scalable I/O request handling architecture in virtualized computer systems and networks
US20080162805A1 (en) * 2007-01-03 2008-07-03 Springfield Randall S Method and Apparatus for Using Non-Addressable Memories of a Computer System
US20090037915A1 (en) * 2007-07-31 2009-02-05 Rothman Michael A Staging block-based transactions
CN100489814C (zh) * 2007-08-01 2009-05-20 杭州华三通信技术有限公司 一种共享缓存系统及实现方法
US8521966B2 (en) 2007-11-16 2013-08-27 Vmware, Inc. VM inter-process communications
US8015115B2 (en) * 2007-12-27 2011-09-06 Pitney Bowes Inc. System and method for providing controlled access to a funds dispensing device from external processors
US9141437B2 (en) 2008-01-29 2015-09-22 International Business Machines Corporation Methods and systems for migrating network resources to improve network utilization
WO2009097586A1 (en) * 2008-01-31 2009-08-06 Bea Systems, Inc. System and method for transactional cache
US8380907B2 (en) * 2008-02-26 2013-02-19 International Business Machines Corporation Method, system and computer program product for providing filtering of GUEST2 quiesce requests
US8140834B2 (en) * 2008-02-26 2012-03-20 International Business Machines Corporation System, method and computer program product for providing a programmable quiesce filtering register
US8527715B2 (en) * 2008-02-26 2013-09-03 International Business Machines Corporation Providing a shared memory translation facility
US8458438B2 (en) * 2008-02-26 2013-06-04 International Business Machines Corporation System, method and computer program product for providing quiesce filtering for shared memory
WO2010023052A2 (en) 2008-08-26 2010-03-04 International Business Machines Corporation A method, apparatus and computer program for provisioning a storage volume to a virtual server
US20100057741A1 (en) * 2008-08-29 2010-03-04 International Business Management Productions Software resource access utilizing multiple lock tables
US8996835B2 (en) * 2008-09-15 2015-03-31 International Business Machines Corporation Apparatus and method for provisioning storage to a shared file system in a storage area network
JPWO2010097933A1 (ja) * 2009-02-27 2012-08-30 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US8195879B2 (en) 2009-05-08 2012-06-05 International Business Machines Corporation Demand based partitioning of microprocessor caches
US8700727B1 (en) * 2010-02-05 2014-04-15 Toshiba Corporation Peer-to-peer based caching for network file system
US8863117B2 (en) * 2010-07-19 2014-10-14 International Business Machines Corporation Optimizing a file system interface in a virtualized computing environment
US8463788B2 (en) 2010-09-03 2013-06-11 Marvell World Trade Ltd. Balancing caching load in a peer-to-peer based network file system
US20120089650A1 (en) * 2010-10-08 2012-04-12 Spectra Logic Corporation System and method for a storage system
US8468524B2 (en) * 2010-10-13 2013-06-18 Lsi Corporation Inter-virtual machine time profiling of I/O transactions
US20120137062A1 (en) * 2010-11-30 2012-05-31 International Business Machines Corporation Leveraging coalesced memory
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US8996807B2 (en) 2011-02-15 2015-03-31 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a multi-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
DE102011116866A1 (de) * 2011-10-25 2013-04-25 Fujitsu Technology Solutions Intellectual Property Gmbh Clustersystem und Verfahren zum Ausführen einer Mehrzahl von virtuellen Maschinen
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US8904113B2 (en) 2012-05-24 2014-12-02 International Business Machines Corporation Virtual machine exclusive caching
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9086957B2 (en) 2012-08-02 2015-07-21 International Business Machines Corporation Requesting a memory space by a memory controller
US9524190B1 (en) * 2012-09-07 2016-12-20 Veritas Technologies, LLC Systems and methods for caching data on virtualization servers
US9405689B2 (en) 2012-11-19 2016-08-02 Marvell World Trade Ltd. Locally caching data from a shared storage
EP2880520A1 (en) * 2012-12-13 2015-06-10 Hitachi, Ltd. Computer realizing high-speed access and data protection of storage device, computer system, and i/o request processing method
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9740563B2 (en) * 2013-05-24 2017-08-22 International Business Machines Corporation Controlling software processes that are subject to communications restrictions by freezing and thawing a computational process in a virtual machine from writing data
US10229043B2 (en) 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
US20150058926A1 (en) * 2013-08-23 2015-02-26 International Business Machines Corporation Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment
US9652270B2 (en) 2014-03-21 2017-05-16 Intel Corporation Apparatus and method for virtualized computing
US10884774B2 (en) * 2014-06-16 2021-01-05 Hewlett Packard Enterprise Development Lp Virtual node deployments of cluster-based applications modified to exchange reference to file systems
US9710381B2 (en) 2014-06-18 2017-07-18 International Business Machines Corporation Method and apparatus for cache memory data processing
US10397053B2 (en) * 2014-08-14 2019-08-27 Netapp Inc. Methods for managing storage virtual machine configuration changes in a distributed storage system and devices thereof
US9389789B2 (en) 2014-12-15 2016-07-12 International Business Machines Corporation Migration of executing applications and associated stored data
BR112017011541B1 (pt) * 2015-12-30 2023-09-26 Huawei Technologies Co., Ltd Método para processar uma solicitação de bloqueio, aparelho de gerenciamento de solicitação de bloqueio e servidor
US10552069B2 (en) * 2017-07-07 2020-02-04 Sap Se Caching the topology of a distributed data storage system
WO2019127191A1 (zh) * 2017-12-28 2019-07-04 深圳前海达闼云端智能科技有限公司 一种多操作系统共享文件系统的方法、装置和电子设备
US10802973B1 (en) 2019-07-01 2020-10-13 Bank Of America Corporation Data access tool
US11755426B2 (en) * 2021-05-03 2023-09-12 Dell Products L.P. Automatic recovery of locking filesystem shared between virtual tape library nodes
US11880350B2 (en) 2021-06-08 2024-01-23 International Business Machines Corporation Identifying resource lock ownership across a clustered computing environment

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61206043A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd 仮想計算機システムにおける割込制御方法
US4835685A (en) * 1985-05-06 1989-05-30 Computer X, Inc. Virtual single machine with message-like hardware interrupts and processor exceptions
JPS6336445A (ja) 1986-07-31 1988-02-17 Nec Corp 仮想計算機システムにおけるフアイル共用制御方式
US4965719A (en) * 1988-02-16 1990-10-23 International Business Machines Corporation Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system
JPH02112055A (ja) 1988-10-21 1990-04-24 Fuji Electric Co Ltd マルチプロロセッサシステムのデータ転送方式
CA2027934C (en) * 1989-12-22 1994-06-21 Cherie C. Barnes Accelerated deadlock detection in congested data transactions
JPH04367963A (ja) * 1991-06-15 1992-12-21 Hitachi Ltd 共有記憶通信方法
JPH0619785A (ja) 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
JPH0713823A (ja) 1993-06-24 1995-01-17 Nec Corp 仮想計算機システムにおけるファイル資源管理方式
JP3696901B2 (ja) 1994-07-19 2005-09-21 キヤノン株式会社 負荷分散方法
US5884077A (en) 1994-08-31 1999-03-16 Canon Kabushiki Kaisha Information processing system and method in which computer with high load borrows processor of computer with low load to execute process
US5713008A (en) * 1995-06-08 1998-01-27 Sun Microsystems Determination of working sets by logging and simulating filesystem operations
JP3512910B2 (ja) 1995-07-06 2004-03-31 株式会社東芝 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法
US5794044A (en) * 1995-12-08 1998-08-11 Sun Microsystems, Inc. System and method for runtime optimization of private variable function calls in a secure interpreter
JPH09319653A (ja) 1996-05-31 1997-12-12 Canon Inc 情報処理装置、情報処理システム及びその制御方法
US5953538A (en) * 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US6438663B1 (en) 1996-12-11 2002-08-20 Steeleye Technology, Inc. System and method for identifying shared virtual memory in a computer cluster
US6170045B1 (en) 1997-04-30 2001-01-02 International Business Machines Corporation Cross-system data piping using an external shared memory
FR2763714B1 (fr) 1997-05-26 1999-07-02 Bull Sa Compteurs de remplacement pour machine avec memoire a acces non uniforme
US6075938A (en) 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US6003066A (en) 1997-08-14 1999-12-14 International Business Machines Corporation System for distributing a plurality of threads associated with a process initiating by one data processing station among data processing stations
US6389482B1 (en) 1997-08-28 2002-05-14 International Business Machines Corp. Dynamic transitioning from a local pipe to a cross-system pipe
US6205528B1 (en) 1997-08-29 2001-03-20 International Business Machines Corporation User specifiable allocation of memory for processes in a multiprocessor computer having a non-uniform memory architecture
US6542926B2 (en) 1998-06-10 2003-04-01 Compaq Information Technologies Group, L.P. Software partitioned multi-processor system with flexible resource sharing levels
US6332180B1 (en) * 1998-06-10 2001-12-18 Compaq Information Technologies Group, L.P. Method and apparatus for communication in a multi-processor computer system
JPH11149387A (ja) 1997-11-17 1999-06-02 Hitachi Ltd 共有装置制御方法及びその実施装置
US6601146B2 (en) 1998-06-16 2003-07-29 International Business Machines Corporation Technique for efficiently transferring moderate amounts of data across address space boundary
US6314501B1 (en) * 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6154832A (en) * 1998-12-04 2000-11-28 Advanced Micro Devices, Inc. Processor employing multiple register sets to eliminate interrupts
US6115779A (en) * 1999-01-21 2000-09-05 Advanced Micro Devices, Inc. Interrupt management system having batch mechanism for handling interrupt events
US6397350B1 (en) * 1999-02-19 2002-05-28 International Business Machines Corporation Method of providing direct data processing access using a queued direct input-output device
US6347341B1 (en) * 1999-02-22 2002-02-12 International Business Machines Corporation Computer program product used for exchange and transfer of data having a siga vector and utilizing a queued direct input-output device
US6496909B1 (en) * 1999-04-06 2002-12-17 Silicon Graphics, Inc. Method for managing concurrent access to virtual memory data structures
WO2000073902A1 (en) 1999-06-01 2000-12-07 Microsoft Corporation Single logical clipboard for multiple computers
WO2000079302A1 (en) 1999-06-21 2000-12-28 Kirov Assen S Three-dimensional liquid scintillation dosimetry system
US6738977B1 (en) 2000-05-31 2004-05-18 International Business Machines Corporation Class sharing between multiple virtual machines
JP2002073358A (ja) 2000-09-04 2002-03-12 Hitachi Ltd 仮想計算機主記憶のアクセス制御方法
US6567905B2 (en) * 2001-01-23 2003-05-20 Gemstone Systems, Inc. Generational garbage collector with persistent object cache
GB2381092B (en) 2001-10-19 2005-10-19 Ibm Object locking in a shared VM environment
US7131120B2 (en) 2002-05-16 2006-10-31 Sun Microsystems, Inc. Inter Java virtual machine (JVM) resource locking mechanism
US7181744B2 (en) 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
US7299468B2 (en) 2003-04-29 2007-11-20 International Business Machines Corporation Management of virtual machines to utilize shared resources
US7251815B2 (en) 2003-04-29 2007-07-31 International Business Machines Corporation Multiple virtual machines sharing processor and work queue in memory having program/dispatch functions for assigning and accessing work items while the virtual machine was not idle

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8820171B2 (en) 2011-09-20 2014-09-02 Corning Incorporated Method to monitor safe operation of an ultracapacitor

Also Published As

Publication number Publication date
JP2004326753A (ja) 2004-11-18
US8589937B2 (en) 2013-11-19
US7831977B2 (en) 2010-11-09
US20100299673A1 (en) 2010-11-25
US20050223005A1 (en) 2005-10-06

Similar Documents

Publication Publication Date Title
JP4012517B2 (ja) 仮想計算機環境におけるロックの管理
US7328437B2 (en) Management of locks in a virtual machine environment
JP3882931B2 (ja) 仮想計算機環境におけるディスパッチ機能の管理
JP4769484B2 (ja) 仮想計算機をマイグレーションするための方法およびシステム
JP3882930B2 (ja) 共用リソースを使用するための仮想計算機の管理
US8433902B2 (en) Computer system with dual operating modes
JP5106036B2 (ja) コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム
US10437865B1 (en) Computer storage deduplication
US9996401B2 (en) Task processing method and virtual machine
US9235435B2 (en) Direct memory access filter for virtualized operating systems
KR0170565B1 (ko) 메모리 관리 방법, 마이크로커널 구조 데이타 프로세싱 시스템, 운영 체제 퍼스낼리티 시스템 동작 방법, 퍼스낼리티 뉴트럴 서비스 프로그램 실행 방법 및 응용 프로그램 실행방법
US5161227A (en) Multilevel locking system and method
JP2008515103A (ja) ソフトウェアアプリケーションの実行の分離のための方法および装置
US20080134187A1 (en) Hardware scheduled smp architectures
JP2588175B2 (ja) ハツシユ・テ−ブル・エントリ排他処理装置
JP2021060707A (ja) 同期制御システムおよび同期制御方法
US20050132143A1 (en) Intent seizes in a multi-processor environment
JPH11134206A (ja) 分散共有リソース管理方法ならびに並列処理環境提供システム、及び同方法がプログラムされ記録される記録媒体
Gheorghe et al. Memory Mapped Files on MINIX
Marks Notes to students

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060509

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060516

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20060606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060814

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070125

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070302

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: 20070904

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20070904

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070907

R150 Certificate of patent or registration of utility model

Ref document number: 4012517

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110914

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120914

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130914

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees