JPH0743665B2 - コンピユータ・システム資源管理方法 - Google Patents
コンピユータ・システム資源管理方法Info
- Publication number
- JPH0743665B2 JPH0743665B2 JP2165868A JP16586890A JPH0743665B2 JP H0743665 B2 JPH0743665 B2 JP H0743665B2 JP 2165868 A JP2165868 A JP 2165868A JP 16586890 A JP16586890 A JP 16586890A JP H0743665 B2 JPH0743665 B2 JP H0743665B2
- Authority
- JP
- Japan
- Prior art keywords
- pool
- buffer
- list
- master
- free
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明は、計算機利用のデータ処理に関し、特に、多重
プロセスが、同時に実行されるシステム内のバッファな
どのコンピュータ・システム資源の管理に関する。
プロセスが、同時に実行されるシステム内のバッファな
どのコンピュータ・システム資源の管理に関する。
B.従来の技術 マルチプロセッシング:コンピュータ・プログラムは、
コンピュータ命令シーケンスから構成され、命令の単一
順序、または「プロセス」と呼ぶ命令の独立シーケンス
・セットとして実行可能である。コンピュータ資源利用
を獲得するために、プログラムは、普通、コンピュータ
の「オペレーティング・システム」に対し、「システム
・コール」と呼ぶ命令を発する。オペレーティング・シ
ステムは、コンピュータ・メモリ、あるいは、ハードウ
ェア装置などのコンピュータ資源利用を管理するプログ
ラムである。プログラムによって要求される資源は、そ
の排他的利用のために予約され、各々が、オペレーティ
ング・システムの制御に戻る(「解放される」)まで、
再利用のために使用できない。システム資源は制限さ
れ、システム・コールは実行するには比較的高価である
から、プログラム(特に、高容量あるいは高性能プログ
ラム)は、それらを制御された方法で使用する。
コンピュータ命令シーケンスから構成され、命令の単一
順序、または「プロセス」と呼ぶ命令の独立シーケンス
・セットとして実行可能である。コンピュータ資源利用
を獲得するために、プログラムは、普通、コンピュータ
の「オペレーティング・システム」に対し、「システム
・コール」と呼ぶ命令を発する。オペレーティング・シ
ステムは、コンピュータ・メモリ、あるいは、ハードウ
ェア装置などのコンピュータ資源利用を管理するプログ
ラムである。プログラムによって要求される資源は、そ
の排他的利用のために予約され、各々が、オペレーティ
ング・システムの制御に戻る(「解放される」)まで、
再利用のために使用できない。システム資源は制限さ
れ、システム・コールは実行するには比較的高価である
から、プログラム(特に、高容量あるいは高性能プログ
ラム)は、それらを制御された方法で使用する。
プログラム及びプロセスは、多くのコンピュータ環境で
動作する。「多重プログラミング」環境では、2つある
いは複数のプログラムあるいはプロセスの実行は、プロ
セッサ上でインタリーブされる。その場合、実行されて
いるプロセスは、「割り込まれ」てもよい。つまり、コ
ンピュータはプロセスの実行を停止し、他のプロセスを
実行するなど、他のワークを実行する。割り込まれたプ
ロセスにおける次の命令が実行される前に、いくらか時
間があってもよい。この環境におけるいくつかのプロセ
スは、割込みに対して「使用禁止」されることができ
る。このようなプロセスは割り込まれず、シーケンスと
して最初から最後まで実行することになる。
動作する。「多重プログラミング」環境では、2つある
いは複数のプログラムあるいはプロセスの実行は、プロ
セッサ上でインタリーブされる。その場合、実行されて
いるプロセスは、「割り込まれ」てもよい。つまり、コ
ンピュータはプロセスの実行を停止し、他のプロセスを
実行するなど、他のワークを実行する。割り込まれたプ
ロセスにおける次の命令が実行される前に、いくらか時
間があってもよい。この環境におけるいくつかのプロセ
スは、割込みに対して「使用禁止」されることができ
る。このようなプロセスは割り込まれず、シーケンスと
して最初から最後まで実行することになる。
「マルチプロセッシング」環境では、コンピュータは複
数のプロセッサから構成され、各プロセッサは、並行で
プログラムあるいはプロセスを実行することができる。
たとえば、プログラムが2つのプロセスを有する場合、
両者とも、マルチプロセッシング環境で同時に実行でき
る。マルチプロセッサ内の各プロセッサもマルチプログ
ラミングできる。
数のプロセッサから構成され、各プロセッサは、並行で
プログラムあるいはプロセスを実行することができる。
たとえば、プログラムが2つのプロセスを有する場合、
両者とも、マルチプロセッシング環境で同時に実行でき
る。マルチプロセッサ内の各プロセッサもマルチプログ
ラミングできる。
したがって、マルチプロセッシング環境では、プロセス
の活動は、他のプロセスの活動とともにインタリーブさ
れてもよい。だから、そのプロセスは他のプロセスと
「同時に」実行していると言われる。さらに、複数のプ
ロセスが同時に正確に実行できる。異なるプロセッサで
同時に実行するプロセスは、「並行」に実行していると
言われる。
の活動は、他のプロセスの活動とともにインタリーブさ
れてもよい。だから、そのプロセスは他のプロセスと
「同時に」実行していると言われる。さらに、複数のプ
ロセスが同時に正確に実行できる。異なるプロセッサで
同時に実行するプロセスは、「並行」に実行していると
言われる。
直列化:同時に、すなわち並行に実行するプロセスは、
データを同時に、同じ記憶装置内に書き込むことができ
る。その結果、1つのプロセスは、他のプロセスが書き
込んだものを破壊することになる。この種のエラーを防
ぐため、そのようなプロセスは、プロセスを「直列」に
するために1つあるいは複数の「直列化機構」を使用し
なければならない。これらの機構は、いくつかは標準的
でかつ周知であり、シーケンスは実際には、いつでも割
込まれる可能性があるが、あたかもそれらが割り込まれ
ないシーケンスで達成されるように、プログラムが臨界
活動を完了できるようにする。また、それらは、それが
プログラムが資源へのアクセスを直列化でき、資源が一
度に唯1つのプロセスによって使われるようにすること
ができる。この目的のために、「固有の」直列化機構及
び、「外部からの」直列化機構を区別する。
データを同時に、同じ記憶装置内に書き込むことができ
る。その結果、1つのプロセスは、他のプロセスが書き
込んだものを破壊することになる。この種のエラーを防
ぐため、そのようなプロセスは、プロセスを「直列」に
するために1つあるいは複数の「直列化機構」を使用し
なければならない。これらの機構は、いくつかは標準的
でかつ周知であり、シーケンスは実際には、いつでも割
込まれる可能性があるが、あたかもそれらが割り込まれ
ないシーケンスで達成されるように、プログラムが臨界
活動を完了できるようにする。また、それらは、それが
プログラムが資源へのアクセスを直列化でき、資源が一
度に唯1つのプロセスによって使われるようにすること
ができる。この目的のために、「固有の」直列化機構及
び、「外部からの」直列化機構を区別する。
固有の直列化機構は、IBM 370 Compare-and-Swap(C
S)、あるいは、Compare-Double-and-Swap(CDS)命令
などの「極小命令」のみを含む機構である。極小命令
は、分割できないことを保証するコンピュータ・ハード
ウェア命令である。そのような命令を実行するプロセス
は、それが、他のプロセスから妨害されずに命令を完了
できることが保証されている。たとえば比較及びスワッ
プ(Compare-and-Swap)は、プロセスが記憶装置のワー
ドを安全に更新できるようにする。命令は、プログラム
が、記憶装置内のワードの期待内容に注目し、命令実行
時に、記憶装置の期待内容が現行内容と一致する場合に
のみ、記憶が変えられることを要求できるようにする。
比較(Compare)及びスワップ(Swap)は、一度1つの
プロセスが「比較」を実行してしまうと、関連「スワッ
プ」が実行されるまで、他のプロセスは変更を実行でき
ないという意味で、分割できない活動である。これらの
命令並びにサンプル・コード化適用業務の説明は、「IB
Mシステム/370オペレーション拡張アーキテクチュア原
理(IBM System/370 Extended Architecture Principle
s of Operation(出版番号SA22-7085)に見ることがで
きる。
S)、あるいは、Compare-Double-and-Swap(CDS)命令
などの「極小命令」のみを含む機構である。極小命令
は、分割できないことを保証するコンピュータ・ハード
ウェア命令である。そのような命令を実行するプロセス
は、それが、他のプロセスから妨害されずに命令を完了
できることが保証されている。たとえば比較及びスワッ
プ(Compare-and-Swap)は、プロセスが記憶装置のワー
ドを安全に更新できるようにする。命令は、プログラム
が、記憶装置内のワードの期待内容に注目し、命令実行
時に、記憶装置の期待内容が現行内容と一致する場合に
のみ、記憶が変えられることを要求できるようにする。
比較(Compare)及びスワップ(Swap)は、一度1つの
プロセスが「比較」を実行してしまうと、関連「スワッ
プ」が実行されるまで、他のプロセスは変更を実行でき
ないという意味で、分割できない活動である。これらの
命令並びにサンプル・コード化適用業務の説明は、「IB
Mシステム/370オペレーション拡張アーキテクチュア原
理(IBM System/370 Extended Architecture Principle
s of Operation(出版番号SA22-7085)に見ることがで
きる。
ラッチ:他のすべての直列化機構は「外来的」であると
言われる。その基礎的な2例は、「スピン・ラッチ」及
び「延期ラッチ」である。それらは、最初何らかの無意
味の値にセットされる単1の共用ラッチ変数を有するこ
とを含む。ラッチにより保護される活動を実行するため
に、まずプロセスはラッチ変数を非ゼロの値にうまくセ
ットすることにより、ラッチを「獲得」しなければなら
ない。ラッチ変数がすでに他のプロセスにより獲得され
ている場合は、要求プロセスは待たなければならない。
言われる。その基礎的な2例は、「スピン・ラッチ」及
び「延期ラッチ」である。それらは、最初何らかの無意
味の値にセットされる単1の共用ラッチ変数を有するこ
とを含む。ラッチにより保護される活動を実行するため
に、まずプロセスはラッチ変数を非ゼロの値にうまくセ
ットすることにより、ラッチを「獲得」しなければなら
ない。ラッチ変数がすでに他のプロセスにより獲得され
ている場合は、要求プロセスは待たなければならない。
スピン・ラッチは、要求プロセス(及びプロセッサ)
が、それがラッチが「解放される」のを待っている時、
連続的に変数をテストする原因となるラッチである。こ
のテストが行なわれる間、プロセッサは「使用待ち」に
あると呼ばれ、他に何もすることはできない。この種の
ラッチは、それがプロセッサ時間を費やす時は、一般に
避けられるべきである。
が、それがラッチが「解放される」のを待っている時、
連続的に変数をテストする原因となるラッチである。こ
のテストが行なわれる間、プロセッサは「使用待ち」に
あると呼ばれ、他に何もすることはできない。この種の
ラッチは、それがプロセッサ時間を費やす時は、一般に
避けられるべきである。
他方、中断ラッチは、それがすでに保持されている場合
は、プロセスはラッチを使用待ちすることを要求しな
い。その代わりに、プロセスは「中断」し、ラッチが使
用可能になると、プロセッサが他のプロセスによって喚
起される(「再開される」)まで、プロセッサを放棄す
る。この方法はスピン・ラッチには好ましいが、それは
要求プロセスの中断と再開のトラックの保持に付随す
る、システム・オーバヘッドがあるために、注意深く使
用される。
は、プロセスはラッチを使用待ちすることを要求しな
い。その代わりに、プロセスは「中断」し、ラッチが使
用可能になると、プロセッサが他のプロセスによって喚
起される(「再開される」)まで、プロセッサを放棄す
る。この方法はスピン・ラッチには好ましいが、それは
要求プロセスの中断と再開のトラックの保持に付随す
る、システム・オーバヘッドがあるために、注意深く使
用される。
マルチプロセッサ環境で動作する高性能プログラムにつ
いては、直列化機構の選択が重大になる可能性がある。
プログラム機能を、「メインライン」の機能とそうでな
い機能に分けることは有用である。メインラインの機能
はプログラムの本質であり、一方、非メインラインの機
能はメインライン活動を促進するか、または補足する補
助活動である。高性能プログラムでは、メインライン活
動は、典型的には繰り返して実行されるか、または時間
臨界性があり、そのため、CPU時間またはCPU資源から見
て高価な活動が避けられ、または非メインライン機能に
移動されることが必要である。一般に、メインラインの
外部直列化機構は高価であり、避けるべきである。
いては、直列化機構の選択が重大になる可能性がある。
プログラム機能を、「メインライン」の機能とそうでな
い機能に分けることは有用である。メインラインの機能
はプログラムの本質であり、一方、非メインラインの機
能はメインライン活動を促進するか、または補足する補
助活動である。高性能プログラムでは、メインライン活
動は、典型的には繰り返して実行されるか、または時間
臨界性があり、そのため、CPU時間またはCPU資源から見
て高価な活動が避けられ、または非メインライン機能に
移動されることが必要である。一般に、メインラインの
外部直列化機構は高価であり、避けるべきである。
資源とバッファ:プログラムは、代表的には1つ、また
は複数の指定された反復機能を実行し、そして資源がこ
れらの機能を実行し、またはその関連目的を表示するこ
とを要求できる。プログラムは、そのような資源のため
に記憶装置を獲得することができ、その記憶装置をとも
ない。通常「資源プール」と呼ばれる所に集める。資源
プールを作る場合、多重処理環境内のプログラムは、プ
ール内の個々の資源へのアクセスを直列化できなければ
ならない。さらに、プログラムは普通動的にプールを
「拡張し」、さらに「短縮」する必要がある。すなわ
ち、プール内の資源の数を増減させる必要がある。
は複数の指定された反復機能を実行し、そして資源がこ
れらの機能を実行し、またはその関連目的を表示するこ
とを要求できる。プログラムは、そのような資源のため
に記憶装置を獲得することができ、その記憶装置をとも
ない。通常「資源プール」と呼ばれる所に集める。資源
プールを作る場合、多重処理環境内のプログラムは、プ
ール内の個々の資源へのアクセスを直列化できなければ
ならない。さらに、プログラムは普通動的にプールを
「拡張し」、さらに「短縮」する必要がある。すなわ
ち、プール内の資源の数を増減させる必要がある。
次の議論は、特定の例における資源プーリングの必要性
を述べ、また、プールの管理の際に生じるいくつかの論
点を議論する。プログラム(「受信側」)は、他のプロ
グラム(「送信側」)により生成されるデータを得る。
受信側は、送信側からのデータを保持するために、記憶
の一部を獲得することができる。この目的に使用される
コンピュータ記憶機構の各部分は、普通「バッファ」と
呼ばれ、その用語がその中で使われる資源の一型式であ
る。
を述べ、また、プールの管理の際に生じるいくつかの論
点を議論する。プログラム(「受信側」)は、他のプロ
グラム(「送信側」)により生成されるデータを得る。
受信側は、送信側からのデータを保持するために、記憶
の一部を獲得することができる。この目的に使用される
コンピュータ記憶機構の各部分は、普通「バッファ」と
呼ばれ、その用語がその中で使われる資源の一型式であ
る。
データは、その到着時にバッファ内に置かれ、それが使
われるまでそこに保持される。受信側がバッファ内でデ
ータを使用すると、バッファは、処理用にさらにデータ
を受信できる。一度使われると、バッファは、新しいデ
ータを受信する際の再利用に役立つ。
われるまでそこに保持される。受信側がバッファ内でデ
ータを使用すると、バッファは、処理用にさらにデータ
を受信できる。一度使われると、バッファは、新しいデ
ータを受信する際の再利用に役立つ。
データが処理できるよりも速く受信される場合、多くの
バッファが意外に早く獲得されることもある。プログラ
ムは通常、バッファを「バッファ・プール」すなわち資
源プールと呼ばれる論理構造の中に構成する。マルチプ
ロセッサ環境では、バッファ・プールは、プログラムに
属する任意のプロセスによって使用可能であり、そして
プログラムは、そのプロセスがバッファ・プール内でバ
ッファを使用する方法を制御しなければならない。通
常、プログラムは、2つのプロセスが同時に同じバッフ
ァを得るような方法で、バッファ・プールからバッファ
を「得たり」そして「解放したり」するための方法を、
プロセスに提供する。
バッファが意外に早く獲得されることもある。プログラ
ムは通常、バッファを「バッファ・プール」すなわち資
源プールと呼ばれる論理構造の中に構成する。マルチプ
ロセッサ環境では、バッファ・プールは、プログラムに
属する任意のプロセスによって使用可能であり、そして
プログラムは、そのプロセスがバッファ・プール内でバ
ッファを使用する方法を制御しなければならない。通
常、プログラムは、2つのプロセスが同時に同じバッフ
ァを得るような方法で、バッファ・プールからバッファ
を「得たり」そして「解放したり」するための方法を、
プロセスに提供する。
バッファ・プール内バッファへのアクセスの制御に加え
て、またプログラムは、バッファ・プール内に含むバッ
ファの数も決定しなければならない。バッファ・プール
内にバッファがほとんど含まれていない場合は、プログ
ラムは、バッファを使い果たすことがある。プログラム
は、プログラムが使用を期待されているバッファの最大
値を決定することにより、この問題の回避を試みること
ができる。プログラムが、通常その数の僅かなパーセン
テージのみを使用する場合には、最大サイズのバッファ
・プールを割り当てることにより、プログラムは、他の
プログラムによって代わりに使用され得るコンピュータ
記憶装置を不必要に予約する。しかし、バッファ・プー
ルの最大期待サイズが非常に小さい場合は、プログラム
はバッファを使い果たす。
て、またプログラムは、バッファ・プール内に含むバッ
ファの数も決定しなければならない。バッファ・プール
内にバッファがほとんど含まれていない場合は、プログ
ラムは、バッファを使い果たすことがある。プログラム
は、プログラムが使用を期待されているバッファの最大
値を決定することにより、この問題の回避を試みること
ができる。プログラムが、通常その数の僅かなパーセン
テージのみを使用する場合には、最大サイズのバッファ
・プールを割り当てることにより、プログラムは、他の
プログラムによって代わりに使用され得るコンピュータ
記憶装置を不必要に予約する。しかし、バッファ・プー
ルの最大期待サイズが非常に小さい場合は、プログラム
はバッファを使い果たす。
そのプロセスの1つが記憶すべきデータを有する時に、
プログラムがバッファを使い果たした場合は、プロセス
は正常に機能を果たすことができず、プログラムは直ち
に活動しなければならない。たとえば、プログラムは実
行を終了することがある。この「解決法」は、プログラ
ム実行の継続が会社や他の企業の操業に対して極めて重
大である大部分の場合に、受け入れることはできない。
代りに、プログラムはプロセスのデータを無駄にするこ
ともある。しかし、データが再生不可能である場合、ま
たは企業にとって非常に重大である場合、この解決法も
受け入れられない。
プログラムがバッファを使い果たした場合は、プロセス
は正常に機能を果たすことができず、プログラムは直ち
に活動しなければならない。たとえば、プログラムは実
行を終了することがある。この「解決法」は、プログラ
ム実行の継続が会社や他の企業の操業に対して極めて重
大である大部分の場合に、受け入れることはできない。
代りに、プログラムはプロセスのデータを無駄にするこ
ともある。しかし、データが再生不可能である場合、ま
たは企業にとって非常に重大である場合、この解決法も
受け入れられない。
プログラムは、バッファが記憶用に使用可能になるまで
待つことができる。これは、他のプロセスが、記憶用バ
ッファを必要とするプロセスで、並行にバッファからデ
ータを用い、すぐに終了することが期待され、それを解
放する所で実行することができる。またこのアプローチ
がとられる場合、記憶用バッファを必要とするすべての
プロセスは、バッファからのデータを用いたプロセスが
終了するまで、待たなければならないことになる。しか
し、データを利用したこれらのプロセス自体が、記憶バ
ッファを待つプロセスによって活動を待っている場合、
プログラムは「行き詰まり」、仕事を継続できなくな
る。この理由で、他のプロセスを待って再利用のために
バッファを解放することは、受け入れられない。
待つことができる。これは、他のプロセスが、記憶用バ
ッファを必要とするプロセスで、並行にバッファからデ
ータを用い、すぐに終了することが期待され、それを解
放する所で実行することができる。またこのアプローチ
がとられる場合、記憶用バッファを必要とするすべての
プロセスは、バッファからのデータを用いたプロセスが
終了するまで、待たなければならないことになる。しか
し、データを利用したこれらのプロセス自体が、記憶バ
ッファを待つプロセスによって活動を待っている場合、
プログラムは「行き詰まり」、仕事を継続できなくな
る。この理由で、他のプロセスを待って再利用のために
バッファを解放することは、受け入れられない。
IBM出版GC28-1154、「MVS/拡張アーキテクチュア監視サ
ービス及びマクロ命令(MVS/Extended Architectures S
upervisor Services and Macro Instructions)」は、
セル・プールの生成、割当て、拡張、及び削除を説明し
ている。セル・プールの短縮は説明していない。
ービス及びマクロ命令(MVS/Extended Architectures S
upervisor Services and Macro Instructions)」は、
セル・プールの生成、割当て、拡張、及び削除を説明し
ている。セル・プールの短縮は説明していない。
1979年6月12日発行の、バローズ社(Burroughs Corpor
ation)に譲り受けられ、コール(Call)他の米国特許
第4158235号明細書、「マルチ・ポート時分割連想バッ
ファ記憶プール(Multi Port Time-shared Associative
Buffer Storage Pool)」は、バッファ・プールからの
バッファの動的割当てを記載しているが、プールの拡張
及び短縮をアドレスしていない。
ation)に譲り受けられ、コール(Call)他の米国特許
第4158235号明細書、「マルチ・ポート時分割連想バッ
ファ記憶プール(Multi Port Time-shared Associative
Buffer Storage Pool)」は、バッファ・プールからの
バッファの動的割当てを記載しているが、プールの拡張
及び短縮をアドレスしていない。
1983年12月20日発行の、IBM社に譲り受けられたサッコ
(Sacco)他の米国特許第4422145号明細書は、「LRUピ
ージング・バッファ・プールを介したデータベースの要
求アクセスにおけるスラッシングの削減(Thrashing Pe
duction in Demand Accessing of a Data Base through
an LRV Paging Buffer Pool)」は、またバッファ・プ
ールの拡張または短縮をアドレスしないで、バッファを
割り当て、さらに利用する方法を記載している。
(Sacco)他の米国特許第4422145号明細書は、「LRUピ
ージング・バッファ・プールを介したデータベースの要
求アクセスにおけるスラッシングの削減(Thrashing Pe
duction in Demand Accessing of a Data Base through
an LRV Paging Buffer Pool)」は、またバッファ・プ
ールの拡張または短縮をアドレスしないで、バッファを
割り当て、さらに利用する方法を記載している。
1988年2月23日発行の日立製作所に譲り受けられたマス
イ(Masui)他の米国特許第4727487号明細書「コンピュ
ータ・システムにおける資源割当て法(Resource Alloc
ation Method in a Computer System)」は、蓄積され
た経験的知識に基づく資源割当て法を記載している。マ
スイは、機械室内/動作環境での資源割当てを議論し、
(人間の)システム・オペレータによってのみ現在周知
のいくつかの知識を代替するための方法を、提案してい
る。第4コラム67行ないし、第5カラム2行は、そのよ
うな知識が、「数学的最適化あるいは線型プログラミン
グ用のモデルとして公式化するには、あまりに複雑で不
明瞭である」ということを述べている。
イ(Masui)他の米国特許第4727487号明細書「コンピュ
ータ・システムにおける資源割当て法(Resource Alloc
ation Method in a Computer System)」は、蓄積され
た経験的知識に基づく資源割当て法を記載している。マ
スイは、機械室内/動作環境での資源割当てを議論し、
(人間の)システム・オペレータによってのみ現在周知
のいくつかの知識を代替するための方法を、提案してい
る。第4コラム67行ないし、第5カラム2行は、そのよ
うな知識が、「数学的最適化あるいは線型プログラミン
グ用のモデルとして公式化するには、あまりに複雑で不
明瞭である」ということを述べている。
資源プール・マネジャのもう1つのクラスは外来的直列
化機構、典型的にラッチを用いて、1つのプロセスが、
一度に、資源プールが定義されているマネジャの制御領
域を参照または、修正することを保証する。この型式の
直列化は、プロセスが、他のプロセスに関係なく、制御
領域を参照できるようにし、したがって、プール短縮及
び同様な活動が、比較的簡単な方法で実行されるように
する。しかし、この代替アプローチは、外来的直列化機
構を用いたいくつかの欠点、特にスピン・ラッチによっ
てこうむるプロセッサ浪費時間、及び延期ラッチによる
追加命令オーバヘッドから被害を受ける。さらに、プロ
セスを矛盾する所では、プロセッサ命令コストは劇的に
増す。最後に、本質的に直列化(外来的及び固有の両方
共)は、コンピュータの性能を向上するためにますます
使用されつつある並行プロセッシングの利用を禁じてい
る。
化機構、典型的にラッチを用いて、1つのプロセスが、
一度に、資源プールが定義されているマネジャの制御領
域を参照または、修正することを保証する。この型式の
直列化は、プロセスが、他のプロセスに関係なく、制御
領域を参照できるようにし、したがって、プール短縮及
び同様な活動が、比較的簡単な方法で実行されるように
する。しかし、この代替アプローチは、外来的直列化機
構を用いたいくつかの欠点、特にスピン・ラッチによっ
てこうむるプロセッサ浪費時間、及び延期ラッチによる
追加命令オーバヘッドから被害を受ける。さらに、プロ
セスを矛盾する所では、プロセッサ命令コストは劇的に
増す。最後に、本質的に直列化(外来的及び固有の両方
共)は、コンピュータの性能を向上するためにますます
使用されつつある並行プロセッシングの利用を禁じてい
る。
C.発明が解決しようとする課題 したがって、資源プールを劇的に拡張し、さらに短縮す
るための方法を必要とする。この方法は、多重処理シス
テム内で同時に実行するプロセスの資源の要件に合致し
なればならず、さらに直列化の利用を最小限にしなけれ
ばならない。
るための方法を必要とする。この方法は、多重処理シス
テム内で同時に実行するプロセスの資源の要件に合致し
なればならず、さらに直列化の利用を最小限にしなけれ
ばならない。
D.課題を解決するための手段 資源プールを動的に、すなわち資源に対する要求に応じ
て、拡張及び短縮するための方法が開示されている。資
源は、1つのマスタ・プール22から使用するために割り
当てられる。利用可能な資源のすべてのプールは、拡張
プールを生成することにより、さらにその資源をマスタ
・プールに追加することにより拡張される。マスタ・プ
ールは、システム内で利用可能な資源の数の限界まで理
論的に拡張することができる。
て、拡張及び短縮するための方法が開示されている。資
源は、1つのマスタ・プール22から使用するために割り
当てられる。利用可能な資源のすべてのプールは、拡張
プールを生成することにより、さらにその資源をマスタ
・プールに追加することにより拡張される。マスタ・プ
ールは、システム内で利用可能な資源の数の限界まで理
論的に拡張することができる。
プールを動的に短縮するために、まず拡張プールの1つ
を選んで解放する(FREE POOL 66)。解放プールが所有
するが、まだマスタ・プールにある(すなわち使用中で
ない)これらの資源は、拡張プール移動され、それらの
再利用を防ぐ。解放プールが所有する使用中の資源は、
それらが、マスタ・プールへの代わりに、拡張プールへ
戻るように、それらのホーム・アドレス52を変えてラベ
ル付けされる。一度そのようなすべての資源が解放拡張
プールに戻されると、それは削除され、それによって、
資源のすべてのプールを短縮する。
を選んで解放する(FREE POOL 66)。解放プールが所有
するが、まだマスタ・プールにある(すなわち使用中で
ない)これらの資源は、拡張プール移動され、それらの
再利用を防ぐ。解放プールが所有する使用中の資源は、
それらが、マスタ・プールへの代わりに、拡張プールへ
戻るように、それらのホーム・アドレス52を変えてラベ
ル付けされる。一度そのようなすべての資源が解放拡張
プールに戻されると、それは削除され、それによって、
資源のすべてのプールを短縮する。
記憶バッファ及びバッファ・プールを操作するための手
順の擬似コード実施例が含まれる。
順の擬似コード実施例が含まれる。
E.実施例 本発明は、コンピュータ利用データ処理システムにおけ
る離散的資源のマスタ・プールを拡張・短縮するための
コンピュータ実施方法を含む。マスタ・プールは少なく
とも1つの追加資源を含む拡張プールを作成し、さら
に、マスタ・プールに拡張プール資源を追加することに
より拡張される。マスタ・プールは、拡張プールで生ず
る任意の本割当て資源をマスタ・プールから、拡張プー
ルへまず転送することにより短縮される。次に拡張プー
ル内で生ずる資源は、(それらがもはや使用されていな
い時のように)割当て解除されると、これらの資源は、
拡張プールに転送される。拡張プールが、その中で生じ
る資源のすべてを含む時、すなわち、その資源のどれも
割り当てられないままか、使用されていない時、それは
削除できる。資源プールの短縮は、外来的または他の直
列化を用いる方法が効果的に使用できても、極小命令に
よるように、固有に直列化されることが好ましい。
る離散的資源のマスタ・プールを拡張・短縮するための
コンピュータ実施方法を含む。マスタ・プールは少なく
とも1つの追加資源を含む拡張プールを作成し、さら
に、マスタ・プールに拡張プール資源を追加することに
より拡張される。マスタ・プールは、拡張プールで生ず
る任意の本割当て資源をマスタ・プールから、拡張プー
ルへまず転送することにより短縮される。次に拡張プー
ル内で生ずる資源は、(それらがもはや使用されていな
い時のように)割当て解除されると、これらの資源は、
拡張プールに転送される。拡張プールが、その中で生じ
る資源のすべてを含む時、すなわち、その資源のどれも
割り当てられないままか、使用されていない時、それは
削除できる。資源プールの短縮は、外来的または他の直
列化を用いる方法が効果的に使用できても、極小命令に
よるように、固有に直列化されることが好ましい。
概観 本発明の好ましい実施例は、マルチプログラミングまた
はマルチプロセッシング環境で資源のプールを処理する
ための、プログラムにより使用される方法である。これ
は、資源のメインライン使用を非能率にすることなく、
さらに他のラッチ、またはメインライン内の他の外来的
直列化機構の使用を必要とすることなく、資源プールを
拡大・短縮する。したがって、この方法は、能率的に操
作できるべき高性能プログラムによって、さらに割込み
禁止のモードで実行中(すなわち、それらが割り込まれ
ない時)に資源を得て、解放できるべきプログラムによ
って、使用可能である。
はマルチプロセッシング環境で資源のプールを処理する
ための、プログラムにより使用される方法である。これ
は、資源のメインライン使用を非能率にすることなく、
さらに他のラッチ、またはメインライン内の他の外来的
直列化機構の使用を必要とすることなく、資源プールを
拡大・短縮する。したがって、この方法は、能率的に操
作できるべき高性能プログラムによって、さらに割込み
禁止のモードで実行中(すなわち、それらが割り込まれ
ない時)に資源を得て、解放できるべきプログラムによ
って、使用可能である。
資源がバッファである所では、ほとんどのプログラム
は、大きな記憶装置をとり、それをバッファに細別する
ことにより、バッファ・プールの記憶装置を獲得するコ
ストを(実行される時間と実行される命令の数に関し
て)低減させる。これは、バッファ・プール中の各バッ
ファに対して個別システム・コールを行なうより安価で
あり、バッファ・プールを初めに作成するためと、プー
ルを後で拡張するための両方に使用される。
は、大きな記憶装置をとり、それをバッファに細別する
ことにより、バッファ・プールの記憶装置を獲得するコ
ストを(実行される時間と実行される命令の数に関し
て)低減させる。これは、バッファ・プール中の各バッ
ファに対して個別システム・コールを行なうより安価で
あり、バッファ・プールを初めに作成するためと、プー
ルを後で拡張するための両方に使用される。
プログラムがシステムから記憶の1部分を得る場合、部
分的な記憶の解放、実行される時間と、命令の両方で高
価になるため、その部分全部を一度に戻すべきである。
さらに、少しずつの記憶の解放は、システムの記憶が断
片的になる原因となる。
分的な記憶の解放、実行される時間と、命令の両方で高
価になるため、その部分全部を一度に戻すべきである。
さらに、少しずつの記憶の解放は、システムの記憶が断
片的になる原因となる。
最後に、プログラムは、プロセスがその記憶装置内のど
のバッファも使っていない場合だけ、バッファ記憶を解
放することに注意しなければならない。これは、すべて
に解放された記憶を使用するためのプロセスによる試み
が、プロセスを異常に終わらせたり、エラー状態をひき
起こす可能性があるからである。
のバッファも使っていない場合だけ、バッファ記憶を解
放することに注意しなければならない。これは、すべて
に解放された記憶を使用するためのプロセスによる試み
が、プロセスを異常に終わらせたり、エラー状態をひき
起こす可能性があるからである。
第1図に示すように、バッファ・プール20は、マスタ・
プール22、及びいつでもマスタ・プールに追加できる拡
張プールのセット24の中に準備される。マスタ・プール
22は、ラベル付きボックスのセット(バッファなどの資
源)を含むトレイとして考えてよい。各拡張プール24
は、ラベル付きボックスの追加トレイとして考えてよ
い。資源プールは、拡張トレイを作成しマスタ・トレイ
上にそのすべての箱を積み重ねることにより拡張され
る。
プール22、及びいつでもマスタ・プールに追加できる拡
張プールのセット24の中に準備される。マスタ・プール
22は、ラベル付きボックスのセット(バッファなどの資
源)を含むトレイとして考えてよい。各拡張プール24
は、ラベル付きボックスの追加トレイとして考えてよ
い。資源プールは、拡張トレイを作成しマスタ・トレイ
上にそのすべての箱を積み重ねることにより拡張され
る。
各ボックスは、それをどのトレイが所有し、そしてその
使用が終わった後、マスタ・トレイに戻されるべきこと
を示すために、ラベル付けされる。すべてのボックス
は、マスタ・トレイ内にきちんと積み重ねられ、そこで
主プログラムのプロセスはそれらを取り、使用すること
ができる。マスタ・トレイ内のボックスは、追加に適応
するのに必要な高さまで積み重ねることができる。
使用が終わった後、マスタ・トレイに戻されるべきこと
を示すために、ラベル付けされる。すべてのボックス
は、マスタ・トレイ内にきちんと積み重ねられ、そこで
主プログラムのプロセスはそれらを取り、使用すること
ができる。マスタ・トレイ内のボックスは、追加に適応
するのに必要な高さまで積み重ねることができる。
ボックスを必要とするプロセスは、マスタ・トレイから
それを得て、直ちにそれを使用できる。
それを得て、直ちにそれを使用できる。
ボックスは、他のプロセスがそれらを再使用できる前
に、(空いた)マスタ・トレイに戻されなければならな
い。このために、ボックスを使用していたプロセスは、
ボックスの上のラベルを読み、ラベルが何を表すかに基
づいて、ボックスをその正しいトレイに戻す。
に、(空いた)マスタ・トレイに戻されなければならな
い。このために、ボックスを使用していたプロセスは、
ボックスの上のラベルを読み、ラベルが何を表すかに基
づいて、ボックスをその正しいトレイに戻す。
マスタ・トレイが、主プログラムのプロセスが必要とす
るより多くのボックスを保持する時は、資源プールは、
除去(解除)のために、拡張トレイの1つを選択するこ
とにより、(その瞬間に)動的に減少(短縮)される。
そのトレイが所有するすべてのボックスは、たとえそれ
らのいくつかが使用されていても、再びラベル付けされ
る。それからマスタ・トレイは、除去(解放)されてい
る拡張トレイが所有するボックスのために探査され、そ
してどれかが見つかった場合は、それらは拡張トレイの
上に積み重ねられる。そのトレイのボックスのどれかが
まだ使用されている場合は、それらの新しいラベルは、
それらが終える時、それらを拡張トレイに戻すよう該当
プロセスに知らせることになる。
るより多くのボックスを保持する時は、資源プールは、
除去(解除)のために、拡張トレイの1つを選択するこ
とにより、(その瞬間に)動的に減少(短縮)される。
そのトレイが所有するすべてのボックスは、たとえそれ
らのいくつかが使用されていても、再びラベル付けされ
る。それからマスタ・トレイは、除去(解放)されてい
る拡張トレイが所有するボックスのために探査され、そ
してどれかが見つかった場合は、それらは拡張トレイの
上に積み重ねられる。そのトレイのボックスのどれかが
まだ使用されている場合は、それらの新しいラベルは、
それらが終える時、それらを拡張トレイに戻すよう該当
プロセスに知らせることになる。
除去のために選択された拡張トレイが、一度そのボック
スのすべてを含むと、それとすべてのそのボックスは削
除され、それによって資源プール内のボックス(資源)
の数を減ずる。
スのすべてを含むと、それとすべてのそのボックスは削
除され、それによって資源プール内のボックス(資源)
の数を減ずる。
資源プールを力学的に拡大、短縮するための操作が準備
されるので本方法は、資源プールのサイズを変更するた
めに、主プログラムが停止されたりリセットされること
を要求する他の資源管理技術の限界と非能率性を防ぐ。
本方法は、期待される、あるいは普通の処理要件に基づ
く初期の資源プール・サイズを割り当て、さらに追加資
源を動的に割当て、不要の資源を割当て解除することに
より、条件変更に適合する。
されるので本方法は、資源プールのサイズを変更するた
めに、主プログラムが停止されたりリセットされること
を要求する他の資源管理技術の限界と非能率性を防ぐ。
本方法は、期待される、あるいは普通の処理要件に基づ
く初期の資源プール・サイズを割り当て、さらに追加資
源を動的に割当て、不要の資源を割当て解除することに
より、条件変更に適合する。
最も重要なことは、本方法は、メインライン処理に影響
することなく、マルチプログラミング及びマルチプロセ
ッシング環境内で資源プールを短縮することである。こ
れは取得及び解放操作時に、外来的直列化機構を避ける
ことにより実行され、それによって、メインライン論理
通路内の使用中待ち及び延期の費用を避ける。この結
果、本方法は非常に能率的であり、割込み禁止されたプ
ロセスで使用することもできる。
することなく、マルチプログラミング及びマルチプロセ
ッシング環境内で資源プールを短縮することである。こ
れは取得及び解放操作時に、外来的直列化機構を避ける
ことにより実行され、それによって、メインライン論理
通路内の使用中待ち及び延期の費用を避ける。この結
果、本方法は非常に能率的であり、割込み禁止されたプ
ロセスで使用することもできる。
また、本方法を用いたプログラムが資源を使い果すこと
もある。たとえば、それは、コンピュータで使用できる
よりも多くの資源を用いることがあり、またどれだけの
追加資源が必要であるかを誤算することもある。そのよ
うな状態は例外として取り扱うべきで、本方法の範囲外
である。
もある。たとえば、それは、コンピュータで使用できる
よりも多くの資源を用いることがあり、またどれだけの
追加資源が必要であるかを誤算することもある。そのよ
うな状態は例外として取り扱うべきで、本方法の範囲外
である。
さらに、本方法は、共用設備の不公平な利用により生じ
る資源不足の問題を提出しない。たとえば、データを他
のプログラムに送るプログラムは、レシーバのバッファ
・プールをオーバーランすることもある。そのような状
態は、過剰制御方法を用いて処理されなければならず、
これも本発明の範囲外にある。
る資源不足の問題を提出しない。たとえば、データを他
のプログラムに送るプログラムは、レシーバのバッファ
・プールをオーバーランすることもある。そのような状
態は、過剰制御方法を用いて処理されなければならず、
これも本発明の範囲外にある。
バッファ、及び、バッファ・プールにおける基礎的動作 本発明の好ましい実施例は、バッファプール及び個々の
バッファを操作するための動作を提供する。しかし本発
明は、均一な資源のどんなセットにも適用できることを
理解されたい。
バッファを操作するための動作を提供する。しかし本発
明は、均一な資源のどんなセットにも適用できることを
理解されたい。
次の第1項は、バッファ・プールのための適当な構成を
述べている。これは、バッファとプールにおける動作を
説明する項目が続く。BUILD POOLは、システムから物理
的資源を獲得することにより、バッファの拡張プールを
作成し、それによって、資源プール全体を拡張する。GE
T BUFFERは、要求するプロセスにより使用するために、
プールから単一のバッファを要求する。FREE BUFFER
は、前のGET BUFFER要求で得られた単一の特定バッファ
をバッファ・プールに戻す。FREE POOLは、バッファの
拡張プールを解放し、それらのいくつかはまだ、使用中
の場合もある。DELETE POOLは、一度そのバッファのす
べてが解放され、そのプールに戻されると、一度解放さ
れた拡張プールを削除し、それによって資源プール全体
を短縮する。
述べている。これは、バッファとプールにおける動作を
説明する項目が続く。BUILD POOLは、システムから物理
的資源を獲得することにより、バッファの拡張プールを
作成し、それによって、資源プール全体を拡張する。GE
T BUFFERは、要求するプロセスにより使用するために、
プールから単一のバッファを要求する。FREE BUFFER
は、前のGET BUFFER要求で得られた単一の特定バッファ
をバッファ・プールに戻す。FREE POOLは、バッファの
拡張プールを解放し、それらのいくつかはまだ、使用中
の場合もある。DELETE POOLは、一度そのバッファのす
べてが解放され、そのプールに戻されると、一度解放さ
れた拡張プールを削除し、それによって資源プール全体
を短縮する。
個々のバッファを獲得したり、解放したりするGET BUFF
ER及びFREE BUFFERの動作は、メインライン動作であ
る。すべてがバッファ・プール上で動作する残りの動作
は、メインラインではない。
ER及びFREE BUFFERの動作は、メインライン動作であ
る。すべてがバッファ・プール上で動作する残りの動作
は、メインラインではない。
バッファ・プールの編成 バッファ・プールには2つの型式がある。すなわち、マ
スタ・プール22と拡張プール24である。型式に関係な
く、各バッファ・プールは3つの要素を有する。すなわ
ち、プール制御要素、1つまたは複数のバッファ、及び
各バッファ用のバッファ制御要素である。1つのバッフ
ァは、一度に2つのバッファ・プールつまりその所有者
のプール及びそのホーム・プールに関連し、そして2つ
の状態つまり使用中及び解放中であることができる。
スタ・プール22と拡張プール24である。型式に関係な
く、各バッファ・プールは3つの要素を有する。すなわ
ち、プール制御要素、1つまたは複数のバッファ、及び
各バッファ用のバッファ制御要素である。1つのバッフ
ァは、一度に2つのバッファ・プールつまりその所有者
のプール及びそのホーム・プールに関連し、そして2つ
の状態つまり使用中及び解放中であることができる。
第2図に示すように、各バッファ・プール26は、型式に
関係なく、3つの要素、すなわち1つの「プール制御要
素」28、1つまたは複数のバッファ30、及び各バッファ
用の「バッファ制御要素」32を有する。バッファ30の
数、つまりバッファ制御要素32の数は、バッファ・プー
ル26が割り当てられる時、特定される。各バッファ30
は、そのプールのプール制御要素28により「所有され
る」と言われる。所与のプール26が所有するすべてのバ
ッファ制御要素32は、一連の「所有されたバッファ・リ
スト」34上にリストされている。したがって、プールの
バッファ制御要素32は、常にそのプール制御要素28から
位置決めできる。後で分かるように、各バッファ制御要
素32は、「ホーム」と呼ぶあるプール制御要素28のアド
レスも含む。バッファ用のこのホーム・アドレスは、そ
の所有バッファ・プール26である場合もあり、ない場合
もある。
関係なく、3つの要素、すなわち1つの「プール制御要
素」28、1つまたは複数のバッファ30、及び各バッファ
用の「バッファ制御要素」32を有する。バッファ30の
数、つまりバッファ制御要素32の数は、バッファ・プー
ル26が割り当てられる時、特定される。各バッファ30
は、そのプールのプール制御要素28により「所有され
る」と言われる。所与のプール26が所有するすべてのバ
ッファ制御要素32は、一連の「所有されたバッファ・リ
スト」34上にリストされている。したがって、プールの
バッファ制御要素32は、常にそのプール制御要素28から
位置決めできる。後で分かるように、各バッファ制御要
素32は、「ホーム」と呼ぶあるプール制御要素28のアド
レスも含む。バッファ用のこのホーム・アドレスは、そ
の所有バッファ・プール26である場合もあり、ない場合
もある。
作成された第1バッファ・プール26は、マスタ・バッフ
ァ・プール22であり、そのプール制御要素28は、「マス
タ・プール制御要素」36として周知である。主プログラ
ムが、追加バッファを必要とする場合は、それはBUILD
POOL動作を実行することにより「拡張バッファ・プー
ル」を作成できる。拡張バッファ・プール24のプール制
御要素28は、マスタ・プール制御要素36上に固定された
一連の「拡張プール・リスト」38の中に編成される。
ァ・プール22であり、そのプール制御要素28は、「マス
タ・プール制御要素」36として周知である。主プログラ
ムが、追加バッファを必要とする場合は、それはBUILD
POOL動作を実行することにより「拡張バッファ・プー
ル」を作成できる。拡張バッファ・プール24のプール制
御要素28は、マスタ・プール制御要素36上に固定された
一連の「拡張プール・リスト」38の中に編成される。
拡張バッファ用のホームは、通常はマスタ・バッファ・
プール22である。これは、マスタ・プール22内で利用可
能なバッファ30の数を増加させることにより、バッファ
・プール20を拡張する効果があり、マスタ・プール22か
らバッファがそれらを使う必要のあるプロセスにより取
られ、戻される。拡張プール24が解放される時、そのバ
ッファ30のホーム・アドレスは、マスタ・プール22から
解放された拡張プール24へ、すなわちバッファ所有のバ
ッファ・プールへ変更される。
プール22である。これは、マスタ・プール22内で利用可
能なバッファ30の数を増加させることにより、バッファ
・プール20を拡張する効果があり、マスタ・プール22か
らバッファがそれらを使う必要のあるプロセスにより取
られ、戻される。拡張プール24が解放される時、そのバ
ッファ30のホーム・アドレスは、マスタ・プール22から
解放された拡張プール24へ、すなわちバッファ所有のバ
ッファ・プールへ変更される。
プロセスにより使用されていないバッファ30は、マスタ
・プール22内に保持され、「解放」状態にあると考えら
れる。これらの解放バッファは、マスタ・プール22また
は拡張プール24のどちらかによって所有されるが、すべ
てはマスタ・プールをそれらのホーム・アドレスとして
維持する。解放バッファの制御要素32は、マスタ・プー
ル制御要素36上にある一連の解放バッファ・リスト40内
に保持される。各拡張プール24は、同様に、連なった解
放バッファ・リスト42を有するが、それは空でありプー
ルがFREE POOL動作により解放されるまで、そのまま留
まる。
・プール22内に保持され、「解放」状態にあると考えら
れる。これらの解放バッファは、マスタ・プール22また
は拡張プール24のどちらかによって所有されるが、すべ
てはマスタ・プールをそれらのホーム・アドレスとして
維持する。解放バッファの制御要素32は、マスタ・プー
ル制御要素36上にある一連の解放バッファ・リスト40内
に保持される。各拡張プール24は、同様に、連なった解
放バッファ・リスト42を有するが、それは空でありプー
ルがFREE POOL動作により解放されるまで、そのまま留
まる。
プロセスがバッファ30を必要とする時、それはGEL BUFF
ER動作60を実行し、GET BUFFER動作60は、第1バッファ
制御要素32を、マスタ・プールの解放バッファ・リスト
40から除去し、関連バッファ30を要求プロセスに利用可
能にする。したがって関連バッファは「使用中」と言わ
れる。
ER動作60を実行し、GET BUFFER動作60は、第1バッファ
制御要素32を、マスタ・プールの解放バッファ・リスト
40から除去し、関連バッファ30を要求プロセスに利用可
能にする。したがって関連バッファは「使用中」と言わ
れる。
プロセスがバッファ30で終了される時、FREE BUFFER動
作64は、関連したバッファ制御要素32を、バッファのホ
ーム・プールに属する解放バッファ・リスト上に再待合
せするために使用される。通常、バッファはマスタの解
放バッファ・リスト40に戻される。しかしながら、バッ
ファの所有プールが、解放された拡張プール24である場
合は、バッファのホーム・アドレスは変更され、バッフ
ァはマスタ・プール22への代わりに、その解放された拡
張プール24の解放バッファ・リスト42へ戻される。した
がって、その解放された拡張プールのバッファのすべて
が、一度その自由バッファ・リスト42に戻されると、プ
ール24は、物理的にDELETE POOL動作によって解放する
ことができ、それによってバッファ・プール20全体を短
縮する。
作64は、関連したバッファ制御要素32を、バッファのホ
ーム・プールに属する解放バッファ・リスト上に再待合
せするために使用される。通常、バッファはマスタの解
放バッファ・リスト40に戻される。しかしながら、バッ
ファの所有プールが、解放された拡張プール24である場
合は、バッファのホーム・アドレスは変更され、バッフ
ァはマスタ・プール22への代わりに、その解放された拡
張プール24の解放バッファ・リスト42へ戻される。した
がって、その解放された拡張プールのバッファのすべて
が、一度その自由バッファ・リスト42に戻されると、プ
ール24は、物理的にDELETE POOL動作によって解放する
ことができ、それによってバッファ・プール20全体を短
縮する。
第3図は、プール制御要素28及びバッファ制御要素32の
データ構造を示す。これは、本発明を使用にするために
は必要ないが、マスタ・プール22及び拡張プール24の両
方のプール制御要素に、同じフォーマットが使用され
る。
データ構造を示す。これは、本発明を使用にするために
は必要ないが、マスタ・プール22及び拡張プール24の両
方のプール制御要素に、同じフォーマットが使用され
る。
本方法のバッファの編成及びデータ構造を述べたが、次
の項では、これらの構造について実行された動作を詳細
にそして本方法のメインライン動作内でラッチを必要と
せずに、動的にいかに実行できるかについて、言及す
る。
の項では、これらの構造について実行された動作を詳細
にそして本方法のメインライン動作内でラッチを必要と
せずに、動的にいかに実行できるかについて、言及す
る。
バッファ・プールの作成−BUILD POOL58a、58b バッファ・プールは、BUILD POOL動作58a、58bにより、
作成(構成)され、その動作は、どのバッファが使用さ
れる前でも、主プログラムにより要求されなければなら
ない。同じ動作(BUILD POOL)が、マスタ・プール22及
び拡張プール24の両方を作成するために使用され、それ
らの構造のわずかの違いは、BUILD POOL内で処理され
る。BUILD POOL58a、58b、及びFREE POOL66の両方は、
まれな動作であると想定され、したがってメインライン
機能ではない。
作成(構成)され、その動作は、どのバッファが使用さ
れる前でも、主プログラムにより要求されなければなら
ない。同じ動作(BUILD POOL)が、マスタ・プール22及
び拡張プール24の両方を作成するために使用され、それ
らの構造のわずかの違いは、BUILD POOL内で処理され
る。BUILD POOL58a、58b、及びFREE POOL66の両方は、
まれな動作であると想定され、したがってメインライン
機能ではない。
マスタ・プール22は、任意の拡張プール24が作成される
前にも作成される。それは、BUILD POOL要求内で識別さ
れなければならず、一度作成されると、FREE POOL動作
によっては決して除去されない。マスタ・プール22は、
すべてのバッファ及びバッファ・プール処理のためのア
ンカーとして役立つ。
前にも作成される。それは、BUILD POOL要求内で識別さ
れなければならず、一度作成されると、FREE POOL動作
によっては決して除去されない。マスタ・プール22は、
すべてのバッファ及びバッファ・プール処理のためのア
ンカーとして役立つ。
マスタ・プール22が作成される時、記憶機構が割り当て
られ、マスタ・プール制御要素POOL CTL36、バッファ制
御要素BUF CTL32、及びバッファ30のためにフォーマッ
トされる。個々のバッファ制御要素DUF CTL32は、各バ
ッファ制御要素BUF CTL32のNEXT FREEフィールド44を用
いたマスタ解放バッファ・リスト40の中に共に連鎖され
ている。このリスト40のヘッドは、マスタ・プール制御
要素36のFREE・FIRST FREEフィールド46内に記憶され
る。初期にはゼロである使用中バッファの数は、マスタ
・プール制御要素36のFREE.BUSY CTフィールド内に記憶
される。
られ、マスタ・プール制御要素POOL CTL36、バッファ制
御要素BUF CTL32、及びバッファ30のためにフォーマッ
トされる。個々のバッファ制御要素DUF CTL32は、各バ
ッファ制御要素BUF CTL32のNEXT FREEフィールド44を用
いたマスタ解放バッファ・リスト40の中に共に連鎖され
ている。このリスト40のヘッドは、マスタ・プール制御
要素36のFREE・FIRST FREEフィールド46内に記憶され
る。初期にはゼロである使用中バッファの数は、マスタ
・プール制御要素36のFREE.BUSY CTフィールド内に記憶
される。
マスタ・プール22が所有するバッファのリストは、マス
タ・プール解放バッファ・リスト40に対し、同様に作成
される。所有されたバッファ・リスト34は、マスタ・プ
ール制御要素36のFIRST OWNEDフィールド50内に記憶さ
れているリスト・ヘッドで、プールのバッファ制御要素
BUF CTL32のNEXT OWNEDフィールド48を用いて連鎖され
ている。
タ・プール解放バッファ・リスト40に対し、同様に作成
される。所有されたバッファ・リスト34は、マスタ・プ
ール制御要素36のFIRST OWNEDフィールド50内に記憶さ
れているリスト・ヘッドで、プールのバッファ制御要素
BUF CTL32のNEXT OWNEDフィールド48を用いて連鎖され
ている。
各バッファのホーム・アドレスは、バッファの制御要素
BUF CTL32のHOME POOLフィールド52内に記憶され、前記
のように、初期にはマスタ・プール制御要素36のアドレ
スにセットされる。各バッファ制御要素32のBUFFER ADD
Rフィールド54は、要素の関連バッファ30のアドレスに
セットされる。
BUF CTL32のHOME POOLフィールド52内に記憶され、前記
のように、初期にはマスタ・プール制御要素36のアドレ
スにセットされる。各バッファ制御要素32のBUFFER ADD
Rフィールド54は、要素の関連バッファ30のアドレスに
セットされる。
最後に、マスタ・プール制御要素36のアドレスは、バッ
ファ・プールまたは、バッファ上の操作によって使用す
るために、ANCHOR.MASTERフィールド内に記憶される。
ファ・プールまたは、バッファ上の操作によって使用す
るために、ANCHOR.MASTERフィールド内に記憶される。
BUILD POOLが拡張バッファ・プールを作成するために要
求されると、データ構造は、マスタ・プール制御要素36
について述べたものと同様に作成される。しかし、バッ
ファ制御要素32が、プールの解放バッファ・リスト42を
形成するために連結された後で、そのリストは単一の極
小操作で、Compare-Double-and-Swap命令を用いたマス
タ・プール制御要素の解放バッファ・リスト40に転送さ
れる。
求されると、データ構造は、マスタ・プール制御要素36
について述べたものと同様に作成される。しかし、バッ
ファ制御要素32が、プールの解放バッファ・リスト42を
形成するために連結された後で、そのリストは単一の極
小操作で、Compare-Double-and-Swap命令を用いたマス
タ・プール制御要素の解放バッファ・リスト40に転送さ
れる。
バッファ制御要素32のHOME POOLフィールド内に再び記
憶されたこれらの拡張プール24のバッファに対するホー
ム・アドレスは、マスタ・プール制御要素36のアドレス
にセットされる。拡張プールの使用中カウントBUSY CT
は、プール内のバッファの数にセットされ、プールのバ
ッファのどれも解放されていないことを表示する(前述
の拡張プールの再解放及び削除参照)。
憶されたこれらの拡張プール24のバッファに対するホー
ム・アドレスは、マスタ・プール制御要素36のアドレス
にセットされる。拡張プールの使用中カウントBUSY CT
は、プール内のバッファの数にセットされ、プールのバ
ッファのどれも解放されていないことを表示する(前述
の拡張プールの再解放及び削除参照)。
拡張プール制御要素28は、拡張プール・リスト38のヘッ
ドに追加される。このリストは、拡張プール制御要素28
のNEXT POOLフィールド56を介して連鎖され、そのヘッ
ドは、マスタ・プール制御要素36のNEXT POOL内に配置
される。
ドに追加される。このリストは、拡張プール制御要素28
のNEXT POOLフィールド56を介して連鎖され、そのヘッ
ドは、マスタ・プール制御要素36のNEXT POOL内に配置
される。
BUILD POOL動作は、極小命令を用いて、それを他の並行
(同時)BUILD POOL及びFREE POOLプロセスから保護す
るために直列化されてもよい。これらの操作は稀で、非
メインラインであるから、ラッチのような外来的直列化
のどんな型式でも使用することができ、また使用される
型式は、設計選択の問題である。
(同時)BUILD POOL及びFREE POOLプロセスから保護す
るために直列化されてもよい。これらの操作は稀で、非
メインラインであるから、ラッチのような外来的直列化
のどんな型式でも使用することができ、また使用される
型式は、設計選択の問題である。
拡張所有のバッファ・リストは、マスタ・プール22のバ
ッファのために、前記のように作成される。これは、た
とえバッファのいくつかがマスタの解放バッファ・リス
ト22から除去されても、拡張プールの構成要素のすべて
を、そのプール制御要素28から直接位置決めする方法を
提供する。
ッファのために、前記のように作成される。これは、た
とえバッファのいくつかがマスタの解放バッファ・リス
ト22から除去されても、拡張プールの構成要素のすべて
を、そのプール制御要素28から直接位置決めする方法を
提供する。
要するに、BUILD POOL動作は、マスタ・プール制御要素
36がプール処理用の固定具として役立つ、バッファ・プ
ール26を作成する。マスタ・プール制御要素36は、バッ
ファ・サービスがプログラムによって必要とされる限
り、削除されない。バッファ・サービスを使用するプロ
セスは、そのようなプロセスが拡張プールを直接引用し
ないので、同時に削除されているバッファ・プールをア
ドレスする試みに関係する必要は決してない。
36がプール処理用の固定具として役立つ、バッファ・プ
ール26を作成する。マスタ・プール制御要素36は、バッ
ファ・サービスがプログラムによって必要とされる限
り、削除されない。バッファ・サービスを使用するプロ
セスは、そのようなプロセスが拡張プールを直接引用し
ないので、同時に削除されているバッファ・プールをア
ドレスする試みに関係する必要は決してない。
BULID POOL58a、58b用の擬似コード: 第2A表及び第2B表は、BUILD POOL手段58a、58bの実施を
従来の擬似コードで示す。
従来の擬似コードで示す。
400-404行で、記憶はシステムから獲得され、副次的に
割り当てられる。これらの記憶領域は、2進法の0に初
期化されると仮定する。それから、各バッファ制御要素
BUF CTL32が、フォーマットされる(405-416行)。
割り当てられる。これらの記憶領域は、2進法の0に初
期化されると仮定する。それから、各バッファ制御要素
BUF CTL32が、フォーマットされる(405-416行)。
バッファは各BUF CTL要素(407行)に割り当てられ、各
BUF CTL要素用のホーム・プールはマスタ・プール制御
要素POOL CTL36にセットされる。(407-410行)。411-4
15行で、プール所有のバッファ・リスト34及び解放バッ
ファ・リスト42が形成される。417行で、所有のバッフ
ァ・リスト34は、POOL CTL要素に連鎖される。
BUF CTL要素用のホーム・プールはマスタ・プール制御
要素POOL CTL36にセットされる。(407-410行)。411-4
15行で、プール所有のバッファ・リスト34及び解放バッ
ファ・リスト42が形成される。417行で、所有のバッフ
ァ・リスト34は、POOL CTL要素に連鎖される。
マスタ・プール22が、(拡張プールではなく)BUILD PO
OL動作を要求された場合は、418-427行が実行される。
まず、新しいプール解放バッファ・リスト42が、420行
によりマスタの解放バッファ・リスト40に追加される。
これは、他のプロセスがプール構造にまだアクセスして
いないので、非極小的に実施される。そしてマスタ・プ
ール制御要素POOL CTL36の位置は、すべてのバッファ・
プール構造を固定するANCHOR.MASTERフィールド内に極
小的に置かれる。動作が成功した場合、バッファは、バ
ッファ・サービスを必要とする他のプロセスに利用可能
である。BUILD POOL要求は、他の同時すなわち並列のプ
ロセスが、すでにアンカー内のそのマスタ・プール制御
要素POOL CTL36の位置(422-426行)をとった場合は、
失敗である。この極小動作は、IBM 370 Compare-and-Sw
ap命令などの極小命令を用いて完了することができる。
この命令の説明並びにコード化適用業務の例は、IBMシ
ステム 370オペレーション拡張アーキテクチュア原理
(出版番号SA22-7085)内に見ることができる。
OL動作を要求された場合は、418-427行が実行される。
まず、新しいプール解放バッファ・リスト42が、420行
によりマスタの解放バッファ・リスト40に追加される。
これは、他のプロセスがプール構造にまだアクセスして
いないので、非極小的に実施される。そしてマスタ・プ
ール制御要素POOL CTL36の位置は、すべてのバッファ・
プール構造を固定するANCHOR.MASTERフィールド内に極
小的に置かれる。動作が成功した場合、バッファは、バ
ッファ・サービスを必要とする他のプロセスに利用可能
である。BUILD POOL要求は、他の同時すなわち並列のプ
ロセスが、すでにアンカー内のそのマスタ・プール制御
要素POOL CTL36の位置(422-426行)をとった場合は、
失敗である。この極小動作は、IBM 370 Compare-and-Sw
ap命令などの極小命令を用いて完了することができる。
この命令の説明並びにコード化適用業務の例は、IBMシ
ステム 370オペレーション拡張アーキテクチュア原理
(出版番号SA22-7085)内に見ることができる。
拡張プールが要求された場合、428-433行は、418-427行
の代りに実行される。まず、拡張の全解放バッファ・リ
スト42は、マスタ・プールの解放バッファ・リスト40
(430行;後の第11a表を参照(1321行)に極小的に追加
され、拡張の解放バッファ・リスト42を空にする(431
行)。この動作は、拡張のバッファを他のプロセスに利
用可能にする。拡張プール制御要素28のBUSY CYフィー
ルドは、拡張プールが静止される時、すなわちそのバッ
ファのすべてが解放されて、プールが削除できるように
なる時を決定するために、FREE POOL動作(後記の第5
表)により使用される。最後に、拡張プールは、マスタ
の拡張プール・リスト(432行)に極小的に追加され
る。この極小動作は、第8表(1005行)で説明される。
434行は、成功した完了状態をBUILD POOL手順58を始め
たリクエスタに戻す。
の代りに実行される。まず、拡張の全解放バッファ・リ
スト42は、マスタ・プールの解放バッファ・リスト40
(430行;後の第11a表を参照(1321行)に極小的に追加
され、拡張の解放バッファ・リスト42を空にする(431
行)。この動作は、拡張のバッファを他のプロセスに利
用可能にする。拡張プール制御要素28のBUSY CYフィー
ルドは、拡張プールが静止される時、すなわちそのバッ
ファのすべてが解放されて、プールが削除できるように
なる時を決定するために、FREE POOL動作(後記の第5
表)により使用される。最後に、拡張プールは、マスタ
の拡張プール・リスト(432行)に極小的に追加され
る。この極小動作は、第8表(1005行)で説明される。
434行は、成功した完了状態をBUILD POOL手順58を始め
たリクエスタに戻す。
バッファの獲得と解放−GET BUFFER60、及びFREE BUFFE
R64 2つのメインライン動作は、GET BUFFER60及びFREE BUF
FER64である。本発明で、これらの動作は、延期、使用
中待ち、あるいは、デッドロックを生ずるラッチなどの
より高価な外来的直列化機構に依らないで、極小命令を
用いて直列化できる。
R64 2つのメインライン動作は、GET BUFFER60及びFREE BUF
FER64である。本発明で、これらの動作は、延期、使用
中待ち、あるいは、デッドロックを生ずるラッチなどの
より高価な外来的直列化機構に依らないで、極小命令を
用いて直列化できる。
プロセスがバッファを要求する時、それは、GET BUFFER
手順60を実行するための要求を発する。GET BUFFERは、
マスタ解放バッファ・リスト40のヘッドでバッファ制御
要素BUF CTL32を選択する。すなわち、そのアドレス
は、マスタ・プール制御要素36のFREE.FIRST FREEフィ
ールド46内に記憶される。バッファ制御要素32は、リス
トから除かれ、リストの使用中カウント、POOL CTL.FRE
E.BUSY CTは、1だけ増分される。
手順60を実行するための要求を発する。GET BUFFERは、
マスタ解放バッファ・リスト40のヘッドでバッファ制御
要素BUF CTL32を選択する。すなわち、そのアドレス
は、マスタ・プール制御要素36のFREE.FIRST FREEフィ
ールド46内に記憶される。バッファ制御要素32は、リス
トから除かれ、リストの使用中カウント、POOL CTL.FRE
E.BUSY CTは、1だけ増分される。
GET BUFFER手順60が完了すると、要求プロセスは、バッ
ファ30に対するバッファ制御要素BUF CTL32のアドレス
である「トークン」を与えられる。要求プロセスは、こ
のトークンによって、バッファ制御要素BUF CTL32のBUF
FER ADDRフィールド内で識別されるバッファ30へのアク
セスを得る。
ファ30に対するバッファ制御要素BUF CTL32のアドレス
である「トークン」を与えられる。要求プロセスは、こ
のトークンによって、バッファ制御要素BUF CTL32のBUF
FER ADDRフィールド内で識別されるバッファ30へのアク
セスを得る。
多重プロセスの直列化に使用され、禁止された割込みに
よるその実行を含み、並行してバッファを得るために探
索するラッチはない。代わりに、マスタ解放バッファ・
リスト40に関する単一Compare-Double-and-Swap動作
は、マスタ・プール制御要素のFREE.FIRST FREEフィー
ルド46内で識別されるヘッド要素を、安全に除去される
ようにするには十分である。
よるその実行を含み、並行してバッファを得るために探
索するラッチはない。代わりに、マスタ解放バッファ・
リスト40に関する単一Compare-Double-and-Swap動作
は、マスタ・プール制御要素のFREE.FIRST FREEフィー
ルド46内で識別されるヘッド要素を、安全に除去される
ようにするには十分である。
バッファの「ストップオーバ・リスト」も、GET BUFFER
64がバッファ超過エラー・メッセージを要求プロセスに
戻す前に、チェックされる。これは、FREE POOL動作66
(後で詳述する)がGET BUFFER要求で同時に進行中であ
るため、バッファ・プール20自体は空ではないが、マス
タ解放バッファ・リスト40が空になるからである。スト
ップオーバ・リストは、マスタ・プール制御要素36のST
OPOVERフィールド62内に固定された(前記解放バッファ
・リスト40、42のような)連鎖リストである。FREE POO
Lプロセスは、マスタの解放リストから拡張のバッファ
のすべてを除去しようとし、ストップオーバ・リスト
は、このプロセス中に除去される他のバッファのための
保持領域である。このリストはGET BUFFER機能に利用可
能であるから、ストップオーバ・リストは、FREE POOL
処理が原因で、誤ったバッファ超過条件を報告する可能
性を事実上排除する装置である。(実際に、このケース
は、解放リスト上に1つのバッファが確かに残っている
場合に発生し、GET BUFFER要求は、それが1つのリスト
から除去された後、そしてそれがストップオーバ・リス
ト上に置かれる前に、解放バッファをチェックする。)
マスタ解放バッファ・リスト40が空の場合は、GET BUFF
ERは、STOPOVERフィールド62をチェックする。ストップ
オーバ62が空でない場合(ストップオーバ・リスト内に
バッファがあることを表示する)は、GET BUFFERは、ス
トップオーバ・リスト上の第1バッファを除去し、その
トークンを要求プロセスに戻す。また、マスタ解放バッ
ファ・リスト40及びストップオーバ・リストの両方が空
の場合は、バッファ・プール20は、実際バッファ30の外
にあり、「バッファ超過」エラー条件の信号を発する。
GET BUFFERが、バッファ・プール20がバッファの外にあ
ることを誤って報告することはあり得るが、極めて稀で
ある。
64がバッファ超過エラー・メッセージを要求プロセスに
戻す前に、チェックされる。これは、FREE POOL動作66
(後で詳述する)がGET BUFFER要求で同時に進行中であ
るため、バッファ・プール20自体は空ではないが、マス
タ解放バッファ・リスト40が空になるからである。スト
ップオーバ・リストは、マスタ・プール制御要素36のST
OPOVERフィールド62内に固定された(前記解放バッファ
・リスト40、42のような)連鎖リストである。FREE POO
Lプロセスは、マスタの解放リストから拡張のバッファ
のすべてを除去しようとし、ストップオーバ・リスト
は、このプロセス中に除去される他のバッファのための
保持領域である。このリストはGET BUFFER機能に利用可
能であるから、ストップオーバ・リストは、FREE POOL
処理が原因で、誤ったバッファ超過条件を報告する可能
性を事実上排除する装置である。(実際に、このケース
は、解放リスト上に1つのバッファが確かに残っている
場合に発生し、GET BUFFER要求は、それが1つのリスト
から除去された後、そしてそれがストップオーバ・リス
ト上に置かれる前に、解放バッファをチェックする。)
マスタ解放バッファ・リスト40が空の場合は、GET BUFF
ERは、STOPOVERフィールド62をチェックする。ストップ
オーバ62が空でない場合(ストップオーバ・リスト内に
バッファがあることを表示する)は、GET BUFFERは、ス
トップオーバ・リスト上の第1バッファを除去し、その
トークンを要求プロセスに戻す。また、マスタ解放バッ
ファ・リスト40及びストップオーバ・リストの両方が空
の場合は、バッファ・プール20は、実際バッファ30の外
にあり、「バッファ超過」エラー条件の信号を発する。
GET BUFFERが、バッファ・プール20がバッファの外にあ
ることを誤って報告することはあり得るが、極めて稀で
ある。
プロセスが、バッファ30がバッファ・プール20に戻るこ
とを望むと、FREE BUFFER手順64を実行し、バッファに
関したトークン(前記の)を指定しなければならない。
FREE BUFFERは、バッファ制御要素32をバッファのホー
ム・プールの解放バッファ・リストのヘッドに追加し、
プールの解放バッファ使用中カウントFREE.BUSY CTを1
だけ減分する。特に、トークンにより識別されたバッフ
ァ制御要素BUF CTL32のアドレスは、バッファ制御要素
のHOME POOLフィールド52により指定されるプール(マ
スタ22あるいは拡張24)のプール制御要素28のFREE.FIR
ST FREEフィールド46内に置かれる。
とを望むと、FREE BUFFER手順64を実行し、バッファに
関したトークン(前記の)を指定しなければならない。
FREE BUFFERは、バッファ制御要素32をバッファのホー
ム・プールの解放バッファ・リストのヘッドに追加し、
プールの解放バッファ使用中カウントFREE.BUSY CTを1
だけ減分する。特に、トークンにより識別されたバッフ
ァ制御要素BUF CTL32のアドレスは、バッファ制御要素
のHOME POOLフィールド52により指定されるプール(マ
スタ22あるいは拡張24)のプール制御要素28のFREE.FIR
ST FREEフィールド46内に置かれる。
Compare-Double-and-Swapなどの単一の極小動作は、GET
BUFFER手順60に対し、前記のように、このメインライ
ンFREE BUFFER手順64を直列化するのに十分である。ラ
ッチのような外来的直列化は、必要とされない。このCo
mpare-Double-and-Swap固有直列化は、メインラインGET
BUFFER及びFREE BUFFER動作を速め、能率的にする。さ
らに、GET BUFFER及びFREE BUFFERは、ラッチなしで動
的バッファ・プール拡張及び短縮を支援し、この能力の
ための唯一のコストは、マスタ解放バッファ・リスト40
が空のように見える時、ストップオーバ・リストのSTOP
OVERフィールド62をチェックすることである。ほとんど
の場合、この方法は、追加命令をバッファ・サービスを
用いるメインライン・プロセスに加えない。
BUFFER手順60に対し、前記のように、このメインライ
ンFREE BUFFER手順64を直列化するのに十分である。ラ
ッチのような外来的直列化は、必要とされない。このCo
mpare-Double-and-Swap固有直列化は、メインラインGET
BUFFER及びFREE BUFFER動作を速め、能率的にする。さ
らに、GET BUFFER及びFREE BUFFERは、ラッチなしで動
的バッファ・プール拡張及び短縮を支援し、この能力の
ための唯一のコストは、マスタ解放バッファ・リスト40
が空のように見える時、ストップオーバ・リストのSTOP
OVERフィールド62をチェックすることである。ほとんど
の場合、この方法は、追加命令をバッファ・サービスを
用いるメインライン・プロセスに加えない。
GET BUFFER60用の擬似コード: 第3表は、従来の擬似コード内のGET BUFFER手順60の実
施例を示す。
施例を示す。
500行で、マスタ・プール22のアドレスが得られる。マ
スタ・プールは、いくつかのプロセスがバッファ・サー
ビスを必要とする限り、決して削除されないのでこれは
安全な基準である。
スタ・プールは、いくつかのプロセスがバッファ・サー
ビスを必要とする限り、決して削除されないのでこれは
安全な基準である。
マスタ解放バッファ・リスト40の第1バッファ制御要素
BUF CTL32が極小的に除去され、使用中カウントが501行
で増分され、それは第12A表及び第12B表に示すRE-MOVE
BUFFER AND COUNT手順を呼び出す。正規には、バッファ
はマスタ解放バッファ・リスト40上にあるべきであるか
ら、501行は、GET BUFFER手順60の標準実行経路と考え
られる。成功した完了状態は、割り当てられるバッファ
の制御要素BUF CTL32(503行)の位置決め(トークン)
と共に要求プロセスに戻される。
BUF CTL32が極小的に除去され、使用中カウントが501行
で増分され、それは第12A表及び第12B表に示すRE-MOVE
BUFFER AND COUNT手順を呼び出す。正規には、バッファ
はマスタ解放バッファ・リスト40上にあるべきであるか
ら、501行は、GET BUFFER手順60の標準実行経路と考え
られる。成功した完了状態は、割り当てられるバッファ
の制御要素BUF CTL32(503行)の位置決め(トークン)
と共に要求プロセスに戻される。
マスタ解放バッファ・リスト40が空である場合(504
行)、GET BUFFERは、ストップオーバ・リスト(506
行)のSTOPOVERフィールド62からバッファ制御要素BUF
CTL32を除去することを試み、再び、第12A表及び第12B
表のRE-MOVE BUFFER AND COUNT手順66を用いる。これ
は、バッファ・プール20が真にバッファの外にある時、
あるいは、FREE POOL動作が、すべてバッファをストッ
プオーバ・リストにフラッシュした時にのみまれに起こ
る。FREE POOL動作が進行中で、バッファがストップオ
ーバ・リストから要求プロセスに割当て可能である場
合、そのバッファの制御要素BUF CTL32に対するトーク
ン、及び成功した完了状態コードは、リクエスタ(508
行)に戻される。
行)、GET BUFFERは、ストップオーバ・リスト(506
行)のSTOPOVERフィールド62からバッファ制御要素BUF
CTL32を除去することを試み、再び、第12A表及び第12B
表のRE-MOVE BUFFER AND COUNT手順66を用いる。これ
は、バッファ・プール20が真にバッファの外にある時、
あるいは、FREE POOL動作が、すべてバッファをストッ
プオーバ・リストにフラッシュした時にのみまれに起こ
る。FREE POOL動作が進行中で、バッファがストップオ
ーバ・リストから要求プロセスに割当て可能である場
合、そのバッファの制御要素BUF CTL32に対するトーク
ン、及び成功した完了状態コードは、リクエスタ(508
行)に戻される。
またストップオーバ・リストが空の場合(509行)、GET
BUFFERは要求プロセスに、バッファは現在利用できな
い(510行)ことを表示する。
BUFFERは要求プロセスに、バッファは現在利用できな
い(510行)ことを表示する。
FREE BUFFER64用の擬似コード: 第4表は、従来の擬似コード内のFREE BUFFER手順64の
実施例を示す。
実施例を示す。
600行で、解放されているバッファ30のホーム・プール
のプール制御要素POOL CTL28は、バッファ制御要素BUF
CTL32のHOME POOLフィールド52から得られる。バッファ
30が、FREE POOL動作66で解放されているプロセス中に
ある拡張プール24に関連する場合、600行によって得ら
れるPOOL CTL要素28はバッファを有する拡張プールの要
素である。バッファ所有のプールが解放されていない場
合、そのホーム・プールはマスタ・プール22であり、マ
スタ・プール制御要素POOL CTL36は600行により得られ
る。
のプール制御要素POOL CTL28は、バッファ制御要素BUF
CTL32のHOME POOLフィールド52から得られる。バッファ
30が、FREE POOL動作66で解放されているプロセス中に
ある拡張プール24に関連する場合、600行によって得ら
れるPOOL CTL要素28はバッファを有する拡張プールの要
素である。バッファ所有のプールが解放されていない場
合、そのホーム・プールはマスタ・プール22であり、マ
スタ・プール制御要素POOL CTL36は600行により得られ
る。
601行で、BUF CTL要素32は、バッファのホーム・プール
の解放バッファ・リストのヘッド(FREE.FIRST FREE4
6)に極小的に置かれ、ホーム・プールの解放バッファ
使用中カウントFREE.BUSY CYは、1だけ減分される。こ
の処理は、第11A表及び第11B表に示すADD BUFFER AND C
OUNTにより行なわれ、後述する。
の解放バッファ・リストのヘッド(FREE.FIRST FREE4
6)に極小的に置かれ、ホーム・プールの解放バッファ
使用中カウントFREE.BUSY CYは、1だけ減分される。こ
の処理は、第11A表及び第11B表に示すADD BUFFER AND C
OUNTにより行なわれ、後述する。
解放された拡張プール24が所有するバッファ30は、拡張
の代わりにマスタ・プール22に戻されてもよい。これ
は、バッファが戻されるPOOL CTL要素28、36に決定した
後、FREE BUFFER動作64が割り込まれる(一時的に延期
される)場合、発生可能である。次にFREE POOL動作66
が実行される場合、FREE POOLはPOOL CTL要素を解放す
る。次に、FREE BUFFER動作が再開される時、それはバ
ッファをマスタ解放バッファ・リスト40に戻す。そのバ
ッファがマスタ・リスト40から除去されない場合、それ
は、それを所有した解除された拡張プール24が削除され
るのを防ぐ。このありそうもない発生は、第7表のDELE
TE POOL手順の916-920行により処理される。
の代わりにマスタ・プール22に戻されてもよい。これ
は、バッファが戻されるPOOL CTL要素28、36に決定した
後、FREE BUFFER動作64が割り込まれる(一時的に延期
される)場合、発生可能である。次にFREE POOL動作66
が実行される場合、FREE POOLはPOOL CTL要素を解放す
る。次に、FREE BUFFER動作が再開される時、それはバ
ッファをマスタ解放バッファ・リスト40に戻す。そのバ
ッファがマスタ・リスト40から除去されない場合、それ
は、それを所有した解除された拡張プール24が削除され
るのを防ぐ。このありそうもない発生は、第7表のDELE
TE POOL手順の916-920行により処理される。
Buffer Poolの解放−FREE POOL66 プログラムが、動的に拡張されたバッファ・プール20に
追加されたバッファのいくつかの使用をもはや要求しな
い場合、それはプールを短縮するためにFREE POOL手順6
6を用いる。FREE POOL動作66は、そのプールが所有する
バッファ30が、要求が出された時に他のプロセスによっ
て使用中であっても、拡張バッファ・プール24の削除を
生じる結果となる潜在的な2つの段階のプロセスを開始
する。
追加されたバッファのいくつかの使用をもはや要求しな
い場合、それはプールを短縮するためにFREE POOL手順6
6を用いる。FREE POOL動作66は、そのプールが所有する
バッファ30が、要求が出された時に他のプロセスによっ
て使用中であっても、拡張バッファ・プール24の削除を
生じる結果となる潜在的な2つの段階のプロセスを開始
する。
動的バッファ・プール短縮の第1段階で、FREE POOL手
順66は、最も最近作成された拡張プール24を選択し、そ
のバッファ30をさらにGET BUFFER要求に対して利用でき
なくする。解放されたバッファ・プールに属するバッフ
ァが他のプロセスによって使用中でない場合は、プール
は直ちに削除される。さもなければ、FREE POOL動作66
は終了し、解放された拡張プール24の削除を第2段階に
残す。
順66は、最も最近作成された拡張プール24を選択し、そ
のバッファ30をさらにGET BUFFER要求に対して利用でき
なくする。解放されたバッファ・プールに属するバッフ
ァが他のプロセスによって使用中でない場合は、プール
は直ちに削除される。さもなければ、FREE POOL動作66
は終了し、解放された拡張プール24の削除を第2段階に
残す。
第2段階では、一度そのバッファ30のすべてがそれらを
使っていたプロセスにより解放されると、DELETE POOL
手順68は解放された拡張プール24を削除する。DELETE P
OOLは、第7表を参照して後述する。
使っていたプロセスにより解放されると、DELETE POOL
手順68は解放された拡張プール24を削除する。DELETE P
OOLは、第7表を参照して後述する。
FREE POOL68は、マスタ拡張プール・リスト38から第1
拡張プール24を除去する。その拡張プールは、マスタ・
プール制御要素POOL CTL36のNEXT POOLフィールド56で
識別される。解放されているプール24の個々のバッファ
制御要素BUF CTL32は、プール所有のバッファリスト34
を用いて識別され、そのリストはプールの制御要素POOL
CTL36のFIRST OWNEDフィールド50内に固定される。
拡張プール24を除去する。その拡張プールは、マスタ・
プール制御要素POOL CTL36のNEXT POOLフィールド56で
識別される。解放されているプール24の個々のバッファ
制御要素BUF CTL32は、プール所有のバッファリスト34
を用いて識別され、そのリストはプールの制御要素POOL
CTL36のFIRST OWNEDフィールド50内に固定される。
各バッファ制御要素BUF CTL32のホーム・プール、HOME
POOL52のアドレスは、マスタ・プール制御要素36から解
放される拡張プールのプール制御要素POOL CTL28に変更
される。FREE BUFFER要求により解放されたバッファ
は、拡張プールの解放バッファ・リスト42に戻されるこ
とになり(第4表の600行参照)、一度そこに置かれる
と、それらはもはやGET BUFFER要求にアクセスできな
い。そのバッファのすべてが、その解放バッファ・リス
ト42に戻されると、拡張プール24は、それ自身「静止」
していると言われ、同時実行のプロセスに影響すること
なく、安全に削除できる。この削除は、FREE POOL66の7
07-709a行により、あるいはDELETE POOL手順68により直
ちに行なわれる。
POOL52のアドレスは、マスタ・プール制御要素36から解
放される拡張プールのプール制御要素POOL CTL28に変更
される。FREE BUFFER要求により解放されたバッファ
は、拡張プールの解放バッファ・リスト42に戻されるこ
とになり(第4表の600行参照)、一度そこに置かれる
と、それらはもはやGET BUFFER要求にアクセスできな
い。そのバッファのすべてが、その解放バッファ・リス
ト42に戻されると、拡張プール24は、それ自身「静止」
していると言われ、同時実行のプロセスに影響すること
なく、安全に削除できる。この削除は、FREE POOL66の7
07-709a行により、あるいはDELETE POOL手順68により直
ちに行なわれる。
解放されたプール24が所有するバッファ30のいくつか
は、FREE POOL操作66が実行される時、プロセスによっ
て使用中であることができる。これらのバッファは、そ
れらがFREE BUFFER手順により解放される時(第4表の6
01行)、拡張プール24に戻される。拡張の残りのバッフ
ァはマスタ解放バッファ・リスト40上にあり、正規に
は、それらが他のプロセスにより取られ、使用され、解
放されるまで、解放されたtaプール24に戻されない。
は、FREE POOL操作66が実行される時、プロセスによっ
て使用中であることができる。これらのバッファは、そ
れらがFREE BUFFER手順により解放される時(第4表の6
01行)、拡張プール24に戻される。拡張の残りのバッフ
ァはマスタ解放バッファ・リスト40上にあり、正規に
は、それらが他のプロセスにより取られ、使用され、解
放されるまで、解放されたtaプール24に戻されない。
それらの正規の処理のコースで、これらの残りのバッフ
ァを取ったり解放したりするために、他のプロセスに頼
るよりもむしろ、FLUSH MASTER POOL手順70a、70bは、
解放されたプール24が、マスタ・プールの未使用バッフ
ァを「フラッシュ」することにより静止することを確証
する。FLUSH MASTER POOL70a、70bは、バッファをマス
タ解放バッファ・リスト40からマスタのストップオーバ
・リスト上に転送し、そこから、解放されたプールの解
放バッファ・リスト42、またはマスタ解放バッファ・リ
スト40に戻す。FLUSH MASTER POOL70a、70bは、Compare
-Double-and-Swap命令のみを用い、外来的直列化を避け
る。
ァを取ったり解放したりするために、他のプロセスに頼
るよりもむしろ、FLUSH MASTER POOL手順70a、70bは、
解放されたプール24が、マスタ・プールの未使用バッフ
ァを「フラッシュ」することにより静止することを確証
する。FLUSH MASTER POOL70a、70bは、バッファをマス
タ解放バッファ・リスト40からマスタのストップオーバ
・リスト上に転送し、そこから、解放されたプールの解
放バッファ・リスト42、またはマスタ解放バッファ・リ
スト40に戻す。FLUSH MASTER POOL70a、70bは、Compare
-Double-and-Swap命令のみを用い、外来的直列化を避け
る。
マスタ・プール22のフラッシュにおける第1段階は、Co
mpare-Double-and-Swap論理回路を用いて、マスタ解放
バッファ・リスト40のヘッドにてバッファ制御要素UF C
TL32を除去し、さらにマスタ・プールの使用中カウン
ト、FREE.BUSY CTを1だけ増分する。第2に、バッファ
のホーム・プールが解放されている拡張プール24である
場合、バッファ制御要素BUF CTL32は、解放された拡張
の解放バッファ・リスト42のヘッドに(再びCompare-Do
uble-and-Swapを用いて)加えられ、その拡張プールの
使用中カウント、FREE.BUSY CTは、1だけ減分される。
しかし、そのバッファのホームがマスタ・プール22であ
る場合、そのバッファ制御要素BUF CTL32は、STOPOVER.
BUSY CTを変えることなく、Compare-Double-and-Swapを
用いたマスタ・プールのストップオーバ・リストのヘッ
ドに(すなわちSTOPOVER.FIRST FREEフィールド62に)
加えられる。
mpare-Double-and-Swap論理回路を用いて、マスタ解放
バッファ・リスト40のヘッドにてバッファ制御要素UF C
TL32を除去し、さらにマスタ・プールの使用中カウン
ト、FREE.BUSY CTを1だけ増分する。第2に、バッファ
のホーム・プールが解放されている拡張プール24である
場合、バッファ制御要素BUF CTL32は、解放された拡張
の解放バッファ・リスト42のヘッドに(再びCompare-Do
uble-and-Swapを用いて)加えられ、その拡張プールの
使用中カウント、FREE.BUSY CTは、1だけ減分される。
しかし、そのバッファのホームがマスタ・プール22であ
る場合、そのバッファ制御要素BUF CTL32は、STOPOVER.
BUSY CTを変えることなく、Compare-Double-and-Swapを
用いたマスタ・プールのストップオーバ・リストのヘッ
ドに(すなわちSTOPOVER.FIRST FREEフィールド62に)
加えられる。
これらの3つの段階は、解放された拡張プールの使用中
カウントがゼロ(0)になるまで、あるいは、マスタ解
放バッファ・リスト40が空になるまで繰り返される。次
に、マスタのストップオーバ・リスト上のバッファはマ
スタ解放バッファ・リスト40に戻され、それらは使用の
ためにプロセスに割当て可能である。しかし、リスト全
体を除去することは短い間隔(ウィンドウ)を作ること
になり、この間にバッファ・プール20が、本当は空では
ない時に空のように見えることがあるため、ストップオ
ーバ・リスト上のバッファを一度に全部戻すことはでき
ない。その代わり、ストップオーバ・リストのバッファ
は、一度に1つ戻されCompare-Double-and-Swap論理回
路により直列化される。また、ある追加の簿記が、マス
タ・プールの使用中カウントBUSY CTがプロセスに割り
当てられたバッファの数を正確に反映することを確証す
る必要がある。
カウントがゼロ(0)になるまで、あるいは、マスタ解
放バッファ・リスト40が空になるまで繰り返される。次
に、マスタのストップオーバ・リスト上のバッファはマ
スタ解放バッファ・リスト40に戻され、それらは使用の
ためにプロセスに割当て可能である。しかし、リスト全
体を除去することは短い間隔(ウィンドウ)を作ること
になり、この間にバッファ・プール20が、本当は空では
ない時に空のように見えることがあるため、ストップオ
ーバ・リスト上のバッファを一度に全部戻すことはでき
ない。その代わり、ストップオーバ・リストのバッファ
は、一度に1つ戻されCompare-Double-and-Swap論理回
路により直列化される。また、ある追加の簿記が、マス
タ・プールの使用中カウントBUSY CTがプロセスに割り
当てられたバッファの数を正確に反映することを確証す
る必要がある。
そのバッファ30がすべて戻された場合には、解放された
拡張プール24は、動的短縮の第1段階中にFREE POOL66
により直ちに削除され、第2段階は必要ではない。そう
でなければ、解放されたプールの制御要素POOL CTL28
は、解放されたプール・リスト72のヘッド(固定構造内
のFREEDフィールド74)に追加され、プール24は静止で
きる。先に解放されたプールのための他のFREE POOLプ
ロセスまたは、並行のDELETE POOLプロセスが進行中で
あるので、プール制御要素POOL CTL28の解放されたプー
ル・リスト72への追加は、(つまり極小命令によって)
直列化されなければならない。
拡張プール24は、動的短縮の第1段階中にFREE POOL66
により直ちに削除され、第2段階は必要ではない。そう
でなければ、解放されたプールの制御要素POOL CTL28
は、解放されたプール・リスト72のヘッド(固定構造内
のFREEDフィールド74)に追加され、プール24は静止で
きる。先に解放されたプールのための他のFREE POOLプ
ロセスまたは、並行のDELETE POOLプロセスが進行中で
あるので、プール制御要素POOL CTL28の解放されたプー
ル・リスト72への追加は、(つまり極小命令によって)
直列化されなければならない。
解放されたプール・リスト72は、まだ物理的に削除でき
ない解放された拡大プール24のトラックを保持し、FREE
POOL操作66がいつでも実行できるようにする。解放さ
れたプール24からのバッファ30をすでに使用しているプ
ロセスは、そのバッファのプールに関連した物理的記憶
装置が、プール関連のすべてのバッファが解放されるま
で解放することはできないので、妨害されないでそれを
続けることができる。
ない解放された拡大プール24のトラックを保持し、FREE
POOL操作66がいつでも実行できるようにする。解放さ
れたプール24からのバッファ30をすでに使用しているプ
ロセスは、そのバッファのプールに関連した物理的記憶
装置が、プール関連のすべてのバッファが解放されるま
で解放することはできないので、妨害されないでそれを
続けることができる。
FLUSH MASTER POOL70a、70b操作は、それが2つの並行
なプロセスにより同時に実行されることを防ぐために直
列化される。これが行なわれない場合、1つのFLUSH MA
STER POOLプロセスは、マスタ解放バッファ・リスト40
からバッファを除去し、ストップオーバ・リスト上にそ
れらを置くことができ、一方で、他のFREE BUFFERプロ
セスは、他の方向に(ストップオーバ・リストから、マ
スタ解放バッファ・リスト40へ)バッファを戻す。この
発生の見込みは非常に少ないが、それは、2つのプロセ
スが命令の永久のシーケンス、すなわち「無限のルー
プ」にインターロックされる原因となる。本方法では、
この可能性は、ラッチ(FREE POOLラッチ)を用いて、
バッファをマスタ・プールの解放バッファ・リスト40と
ストップオーバ・リストの間で移動する論理回路を保護
することにより除去される。
なプロセスにより同時に実行されることを防ぐために直
列化される。これが行なわれない場合、1つのFLUSH MA
STER POOLプロセスは、マスタ解放バッファ・リスト40
からバッファを除去し、ストップオーバ・リスト上にそ
れらを置くことができ、一方で、他のFREE BUFFERプロ
セスは、他の方向に(ストップオーバ・リストから、マ
スタ解放バッファ・リスト40へ)バッファを戻す。この
発生の見込みは非常に少ないが、それは、2つのプロセ
スが命令の永久のシーケンス、すなわち「無限のルー
プ」にインターロックされる原因となる。本方法では、
この可能性は、ラッチ(FREE POOLラッチ)を用いて、
バッファをマスタ・プールの解放バッファ・リスト40と
ストップオーバ・リストの間で移動する論理回路を保護
することにより除去される。
FREE POOL66用の擬似コード: 第5表は、従来の擬似コード内のFREE POOL手順66の実
施例を示す。
施例を示す。
700行で、第1拡張プール制御要素POOL CTL28は、マス
タ・プールの拡張プールリスト38(NEXT EXT)から除去
される。同時BUILD POOLまたは、FREE POOL動作が、拡
張プール・リスト38を処理することができるので、これ
は、第9表に示すREMOVE POOL手順75により極小的に行
なわれる。
タ・プールの拡張プールリスト38(NEXT EXT)から除去
される。同時BUILD POOLまたは、FREE POOL動作が、拡
張プール・リスト38を処理することができるので、これ
は、第9表に示すREMOVE POOL手順75により極小的に行
なわれる。
プール制御要素POOL CTL28が除去された場合(701行)
には、関連した拡張プール24は解放される。まず、プー
ル所有のバッファ・リスト34が走査されて、HOME POOL
フィールド52(703-705行)内に記憶された各拡張バッ
ファのホーム・プールをリセットする。次に拡張バッフ
ァは、第6A表及び第6B表のFLUSH MASTER POOL70a、70b
手順を用いたマスタ解放バッファ・リスト40(706行)
から除去される。
には、関連した拡張プール24は解放される。まず、プー
ル所有のバッファ・リスト34が走査されて、HOME POOL
フィールド52(703-705行)内に記憶された各拡張バッ
ファのホーム・プールをリセットする。次に拡張バッフ
ァは、第6A表及び第6B表のFLUSH MASTER POOL70a、70b
手順を用いたマスタ解放バッファ・リスト40(706行)
から除去される。
拡張プール24が静止される場合(707-709a行)は、プー
ル・バッファ30は解放され、物理的にそれらを削除し、
それによってバッファ・プール20を短縮する。この場
合、マスタ・プールの使用中カウントBUSY CTは、ユー
ザ・プロセスがマスタ解放バッファ・リスト40から除去
したが、解放拡張プールの解放バッファ・リスト42に戻
されたバッファの数だけ減少される。
ル・バッファ30は解放され、物理的にそれらを削除し、
それによってバッファ・プール20を短縮する。この場
合、マスタ・プールの使用中カウントBUSY CTは、ユー
ザ・プロセスがマスタ解放バッファ・リスト40から除去
したが、解放拡張プールの解放バッファ・リスト42に戻
されたバッファの数だけ減少される。
解放プール24が静止されていない場合(710-711行)
は、そのPOOL CTL要素28は、第8表を参照して後述する
ADD POOL手順76を用いて解放プール・リスト72上で待ち
行列に入れられる。ADD POOLは極小動作を用いて、同時
DELETE POOL及びFREE POOLプロセスに対し直列化する。
は、そのPOOL CTL要素28は、第8表を参照して後述する
ADD POOL手順76を用いて解放プール・リスト72上で待ち
行列に入れられる。ADD POOLは極小動作を用いて、同時
DELETE POOL及びFREE POOLプロセスに対し直列化する。
FLUSH MASTER POOL70a、70b用の擬似コード:第6A表及
び第6B表は、従来の擬似コード内のFLUSH MASTER POOL
手順70a、70bの実施例を示す。FLUSH MASTER POOLは、F
REE POOL及びDELETE POOL手順により用いられ、マスタ
解放バッファ・リスト40から解放された拡張プール・バ
ッファのすべてを除去する。
び第6B表は、従来の擬似コード内のFLUSH MASTER POOL
手順70a、70bの実施例を示す。FLUSH MASTER POOLは、F
REE POOL及びDELETE POOL手順により用いられ、マスタ
解放バッファ・リスト40から解放された拡張プール・バ
ッファのすべてを除去する。
ラッチが獲得されて(801行)、同時FREE POOL及びDELE
TE POOL動作に対しFLUSH MASTER POOL手順70a、70bを直
列化する。そうでなければ、除去ループ(802-817行)
を実行する1つのFREE POOLプロセスは、戻りループ(8
18-825行)を実行する他のFREE POOLプロセスを妨害す
ることがある。これはありそうもないが、ラッチは永久
ループに対して動作を保護する。
TE POOL動作に対しFLUSH MASTER POOL手順70a、70bを直
列化する。そうでなければ、除去ループ(802-817行)
を実行する1つのFREE POOLプロセスは、戻りループ(8
18-825行)を実行する他のFREE POOLプロセスを妨害す
ることがある。これはありそうもないが、ラッチは永久
ループに対して動作を保護する。
除去ループ(802-817行)は、マスタ解放バッファ・リ
スト40(804行)からバッファを極小的に除去し、解放
された拡張プールの解放バッファ・リスト(808行)、
またはマスタ・プールのストップオーバ・リスト(810
行)のどちらかに、それらを戻す。マスタ解放バッファ
・リスト40内にもうバッファがない時、除去ループ(80
2-817行)は終わる。
スト40(804行)からバッファを極小的に除去し、解放
された拡張プールの解放バッファ・リスト(808行)、
またはマスタ・プールのストップオーバ・リスト(810
行)のどちらかに、それらを戻す。マスタ解放バッファ
・リスト40内にもうバッファがない時、除去ループ(80
2-817行)は終わる。
プール制御要素POOL CTL28が、FLUSH MASTER POOL手順
に消される場合は、ゼロ値が、特定の制御要素の拡張プ
ール24が静止されていることを示すので、除去ループ
(802-817行)は、所与のPOOL CTL要素のBUSY CTがゼロ
(814-816行)の場合も、終了する。
に消される場合は、ゼロ値が、特定の制御要素の拡張プ
ール24が静止されていることを示すので、除去ループ
(802-817行)は、所与のPOOL CTL要素のBUSY CTがゼロ
(814-816行)の場合も、終了する。
除去ループは、第12A表及び第12B表のREMOVE BUFFER AN
D COUNT手順78a、78bを用いて、マスタ解放バッファ・
リスト40からバッファを極小的に除去し、そして除去さ
れた各バッファについて(804行)、マスタ・プールの
使用中カウントBUSY CTを1だけ増分する。808行は、第
11A表のADD BUFFER AND COUNT手順80aを用いて、バッフ
ァを拡張の解放バッファ・リスト42に極小的に戻し、拡
張プールの使用中カウントBUSY CTを1だけ減分するの
で、プールが静止すると、その使用中カウントはゼロ
(0)に等しくなる。810行は、第11表AのADD BUFFER
手順82を用いて、バッファをマスタ・プールのストップ
オーバ・リストに極小的に加える。ストップオーバ使用
中カウントは、それが有意の数を含まないので、ADD BU
FFERにより更新されない。
D COUNT手順78a、78bを用いて、マスタ解放バッファ・
リスト40からバッファを極小的に除去し、そして除去さ
れた各バッファについて(804行)、マスタ・プールの
使用中カウントBUSY CTを1だけ増分する。808行は、第
11A表のADD BUFFER AND COUNT手順80aを用いて、バッフ
ァを拡張の解放バッファ・リスト42に極小的に戻し、拡
張プールの使用中カウントBUSY CTを1だけ減分するの
で、プールが静止すると、その使用中カウントはゼロ
(0)に等しくなる。810行は、第11表AのADD BUFFER
手順82を用いて、バッファをマスタ・プールのストップ
オーバ・リストに極小的に加える。ストップオーバ使用
中カウントは、それが有意の数を含まないので、ADD BU
FFERにより更新されない。
802-817行の除去ループが完了した後、マスタ・プール
のストップオーバ・リスト上のバッファは、818-825行
によりマスタ解放バッファ・リスト40に戻される。第12
A表のREMOVE BUFFER手順86は、使用中カウント(820
行)を更新せずに、極小的にストップオーバ・リストか
らバッファを除去し、ADD BUFFER AND COUNT手順80は、
これらのバッファをマスタ解放バッファ・リスト40に加
える。ストップオーバ・リストが空になると、戻りルー
プは終了する(824行)。801行で得られるラッチは、除
去ループが実行されると直ちに、826行で解放される。
のストップオーバ・リスト上のバッファは、818-825行
によりマスタ解放バッファ・リスト40に戻される。第12
A表のREMOVE BUFFER手順86は、使用中カウント(820
行)を更新せずに、極小的にストップオーバ・リストか
らバッファを除去し、ADD BUFFER AND COUNT手順80は、
これらのバッファをマスタ解放バッファ・リスト40に加
える。ストップオーバ・リストが空になると、戻りルー
プは終了する(824行)。801行で得られるラッチは、除
去ループが実行されると直ちに、826行で解放される。
マスタ・プールの使用中カウントBUSY CTが正確である
ことを確証するために、FLUSH MASTER POOLの除去ルー
プにより、マスタ解放バッファ・リスト40から極小的に
除去されるバッファの数は、827行によりマスタ・プー
ルの使用中カウントBUSY CTから減算される。直列化の
ためのCompare-and-Swap命令を用いるのが好ましい。マ
スタ解放リストから除去される拡張バッファの数は、拡
張POOL CTL.FLUSH CTに追加され、解放プール及び削除
プールにより使用される。
ことを確証するために、FLUSH MASTER POOLの除去ルー
プにより、マスタ解放バッファ・リスト40から極小的に
除去されるバッファの数は、827行によりマスタ・プー
ルの使用中カウントBUSY CTから減算される。直列化の
ためのCompare-and-Swap命令を用いるのが好ましい。マ
スタ解放リストから除去される拡張バッファの数は、拡
張POOL CTL.FLUSH CTに追加され、解放プール及び削除
プールにより使用される。
バッファ・プールの削除−DELETE POOL68 DELETE POOL68は、FREE POOL動作66の時に削除できなか
った解放された拡張プール24のために、バッファ・プー
ル20の動的短縮の第2段階を実行する。単一タイマ駆動
プロセスは、そのようなプールを解放されたプール・リ
スト72から独立して除去し、それらの関連バッファのす
べてが解放されてしまうと、それらの記憶装置を解放す
る。
った解放された拡張プール24のために、バッファ・プー
ル20の動的短縮の第2段階を実行する。単一タイマ駆動
プロセスは、そのようなプールを解放されたプール・リ
スト72から独立して除去し、それらの関連バッファのす
べてが解放されてしまうと、それらの記憶装置を解放す
る。
DELETE POOL68は、解放プール24を監視し、静止された
解放プールを検出する責任がある。各タイマ間隔で、DE
LETE POOLは、使用中カウントBUSY CTがゼロ(0)であ
るプールのために、解放されたプール・リスト72を走査
する。そのようなものが1つリスト内のどこかで発見さ
れた場合には、DELETE POOLは、それをCompare-and-Swa
p論理回路を用いて除去し、バッファ・プール20を短縮
するように、プールに関連する物理的記憶を解放する。
解放プールを検出する責任がある。各タイマ間隔で、DE
LETE POOLは、使用中カウントBUSY CTがゼロ(0)であ
るプールのために、解放されたプール・リスト72を走査
する。そのようなものが1つリスト内のどこかで発見さ
れた場合には、DELETE POOLは、それをCompare-and-Swa
p論理回路を用いて除去し、バッファ・プール20を短縮
するように、プールに関連する物理的記憶を解放する。
FREEフィールド74内に固定された解放プール・リスト72
へのアクセスは、極小命令を注意深く使用することによ
り固有に直列化される。複数のFREE POOLプロセスが拡
張プールをリストのヘッドに追加できる間に、唯1つの
DELETE POOLプロセスがそれらを除去できる。DELETE PO
OLプロセスは1つしかないので、極小命令は、リスト内
のどこでもプール制御要素28を除去するために使うこと
ができる。さらに、DELETE POOL動作68は、その動作
が、解放プール24が完全に静止されている場合のみ実施
されるので、主プログラムのメインライン・プロセスと
矛盾しない。
へのアクセスは、極小命令を注意深く使用することによ
り固有に直列化される。複数のFREE POOLプロセスが拡
張プールをリストのヘッドに追加できる間に、唯1つの
DELETE POOLプロセスがそれらを除去できる。DELETE PO
OLプロセスは1つしかないので、極小命令は、リスト内
のどこでもプール制御要素28を除去するために使うこと
ができる。さらに、DELETE POOL動作68は、その動作
が、解放プール24が完全に静止されている場合のみ実施
されるので、主プログラムのメインライン・プロセスと
矛盾しない。
DELETE POOL操作68は、解放されたが折よい仕方で静止
しなかった拡張プール24を検査する。通常これは、ユー
サ・プロセスが、バッファ30を得、それをまだ戻して
(解放して)いない時に発生する。しかしまれには、こ
れは、解放拡張に属するバッファが、拡張の解放バッフ
ァ・リスト42の代わりに、マスタ・プールの解放バッフ
ァ・リスト40に戻ったために発生することがある。前記
のように、これは、FREE BUFFER動作64がバッファをマ
スタ解放バッファ・リスト40に戻すことを決めた後、そ
れが妨害される場合にのみ発生する。FREE POOL操作66
が、その点で実行される場合、プールは解放され、別に
されて静止する。その間、FREE BUFFER動作は、回復さ
れた時、バッファをマスタ解放バッファ・リスト40に戻
す。バッファがユーザ・プロセスまたは他のFREE POOL
動作により続いて除去されない場合、解放されたプール
は決して静止しない。DELETE POOL68は、そのようなバ
ッファをマスタ解放リスト40から周期的にフラッシュす
ることにより、この状態を取り扱う。
しなかった拡張プール24を検査する。通常これは、ユー
サ・プロセスが、バッファ30を得、それをまだ戻して
(解放して)いない時に発生する。しかしまれには、こ
れは、解放拡張に属するバッファが、拡張の解放バッフ
ァ・リスト42の代わりに、マスタ・プールの解放バッフ
ァ・リスト40に戻ったために発生することがある。前記
のように、これは、FREE BUFFER動作64がバッファをマ
スタ解放バッファ・リスト40に戻すことを決めた後、そ
れが妨害される場合にのみ発生する。FREE POOL操作66
が、その点で実行される場合、プールは解放され、別に
されて静止する。その間、FREE BUFFER動作は、回復さ
れた時、バッファをマスタ解放バッファ・リスト40に戻
す。バッファがユーザ・プロセスまたは他のFREE POOL
動作により続いて除去されない場合、解放されたプール
は決して静止しない。DELETE POOL68は、そのようなバ
ッファをマスタ解放リスト40から周期的にフラッシュす
ることにより、この状態を取り扱う。
DELETE POOL68用の擬似コード: 第7表は、従来の擬似コード内のDELETE POOL手順68の
実施例を示す。
実施例を示す。
DELETE POOL68の901行は、動作がタイマを用いて周期的
に実行されるようにする。902行は、静止されたプール
のために、すべての解放されたプール・リスト72を走査
する。
に実行されるようにする。902行は、静止されたプール
のために、すべての解放されたプール・リスト72を走査
する。
DELETE POOL68は、解放された拡張リスト72からPOOL CT
L要素を除去する唯一のプロセスであるから、待ち行列
を処理する標準的技術を、そのような要素のリストから
解放された拡張プール制御要素POOL CTL28のどこでも除
去するために使うことができる。
L要素を除去する唯一のプロセスであるから、待ち行列
を処理する標準的技術を、そのような要素のリストから
解放された拡張プール制御要素POOL CTL28のどこでも除
去するために使うことができる。
解放プール・リスト72のPOOL CTL要素28に関連した拡張
プール24が静止している場合は、そのPOOL CTL要素は、
そのリスト(906-909行)から極小的に除去(解放)で
きる。プールの資源は解放され(912行)、マスタ・プ
ールの使用中カウントは、ユーザ・プロセスがマスタ解
放バッファ・リスト40から除去したが、解放された拡張
プールの解放バッファ・リスト42(913行)に戻したバ
ッファの数により調整される。この調整は、ユーザ・プ
ロセスがバッファをマスタまたは拡張解放バッファ・リ
ストに戻すか否かが、それが実際にバッファに戻るまで
分からないので、プールが静止するまで行なうことがで
きない。
プール24が静止している場合は、そのPOOL CTL要素は、
そのリスト(906-909行)から極小的に除去(解放)で
きる。プールの資源は解放され(912行)、マスタ・プ
ールの使用中カウントは、ユーザ・プロセスがマスタ解
放バッファ・リスト40から除去したが、解放された拡張
プールの解放バッファ・リスト42(913行)に戻したバ
ッファの数により調整される。この調整は、ユーザ・プ
ロセスがバッファをマスタまたは拡張解放バッファ・リ
ストに戻すか否かが、それが実際にバッファに戻るまで
分からないので、プールが静止するまで行なうことがで
きない。
907行または909行のUNCHAIN POOL極小操作が(910行で
テストされて)失敗した場合は、待ち行列全体は、DELE
TE POOL手順を再び902行から始めることにより再走査さ
れる(911行)。これは、連鎖されないで、削除された
解放プールのプール制御要素POOL CTL28が解放されるプ
ール・リスト72のヘッドに置かれ、同時に実行するFREE
POOLプロセスが他のPOOL CTL要素をリストのヘッドに
追加する場合に、起こりうる。
テストされて)失敗した場合は、待ち行列全体は、DELE
TE POOL手順を再び902行から始めることにより再走査さ
れる(911行)。これは、連鎖されないで、削除された
解放プールのプール制御要素POOL CTL28が解放されるプ
ール・リスト72のヘッドに置かれ、同時に実行するFREE
POOLプロセスが他のPOOL CTL要素をリストのヘッドに
追加する場合に、起こりうる。
POOL CTL要素の解放されたプール24が静止されない場合
は、903-915行のDELETE POOLの走査ループ内のプールに
関しては活動はない。
は、903-915行のDELETE POOLの走査ループ内のプールに
関しては活動はない。
前記のように、マスタ解放バッファ・リスト全体40が、
FLUSH MASTER POOL走査70a、70bを用いて時々フラッシ
ュされ、見捨てられたバッファを除去する。このプロセ
スは、DELETE POOL68の916-920行によりトリガされる
が、各タイマ間隔中実行される必要はない。色々な概略
図のどれも、それが実行される周波数を限定するのに使
うことができる。好ましい実施例では、マスタ解放バッ
ファ・リスト40は、選択された数のタイマ間隔が経過し
た後にのみ、フラッシュされる。代わりに、静止プール
は老朽化する可能性があり、マスタ解放バッファ・リス
トは、「老朽化した」いずれかのプールが現われた場合
にのみフラッシュされる。
FLUSH MASTER POOL走査70a、70bを用いて時々フラッシ
ュされ、見捨てられたバッファを除去する。このプロセ
スは、DELETE POOL68の916-920行によりトリガされる
が、各タイマ間隔中実行される必要はない。色々な概略
図のどれも、それが実行される周波数を限定するのに使
うことができる。好ましい実施例では、マスタ解放バッ
ファ・リスト40は、選択された数のタイマ間隔が経過し
た後にのみ、フラッシュされる。代わりに、静止プール
は老朽化する可能性があり、マスタ解放バッファ・リス
トは、「老朽化した」いずれかのプールが現われた場合
にのみフラッシュされる。
極小的動作 前記の手順は多くの極小的動作に依存する。これらは、
プール制御要素POOL CTL28上のADD POOL、REMOVE POO
L、UNCHAIN POOL動作、及びバッファ制御要素BUF CTL32
上のADD BUFFER AND COUNT、ADD BUFFER、ADD BUFFER L
IST、REMOVE BUFFER、及びREMOVE、BUFFER AND COUNT動
作である。これらの極小動作のすべては、IBM/370 Comp
are-and-Swap及び、Compare-Double-and-Swap命令のよ
うな極小命令を用いて固有に直列化される。
プール制御要素POOL CTL28上のADD POOL、REMOVE POO
L、UNCHAIN POOL動作、及びバッファ制御要素BUF CTL32
上のADD BUFFER AND COUNT、ADD BUFFER、ADD BUFFER L
IST、REMOVE BUFFER、及びREMOVE、BUFFER AND COUNT動
作である。これらの極小動作のすべては、IBM/370 Comp
are-and-Swap及び、Compare-Double-and-Swap命令のよ
うな極小命令を用いて固有に直列化される。
ADD POOL76用の擬似コード: 第8表は、従来の擬似コード内のADD POOL手順76の実施
例を示す。
例を示す。
ADD POOL76は、プール制御要素POOL CTL28をそのような
要素のリストに追加する。そのリストは、プール制御要
素のNEXT POOLフィールド56を通って連鎖される。所与
のPOOL CTL要素28、及び所与のリストに対し、ADD POOL
は、要素をリストのヘッドに追加する。先にリストのヘ
ッドにあった要素は新しい要素(1003行)に連鎖され、
新しい要素はリストのヘッド(1005行)に置かれる。
要素のリストに追加する。そのリストは、プール制御要
素のNEXT POOLフィールド56を通って連鎖される。所与
のPOOL CTL要素28、及び所与のリストに対し、ADD POOL
は、要素をリストのヘッドに追加する。先にリストのヘ
ッドにあった要素は新しい要素(1003行)に連鎖され、
新しい要素はリストのヘッド(1005行)に置かれる。
新しい要素は、現在リスト・ヘッダが並行プロセスによ
り変えられていない場合のみ、リストに追加される。こ
の極小動作は、IBM 370 Compare-and-Swap命令などの極
小的命令を用いて達成できる。極小動作が失敗した場合
は、ADD POOLは、1002行から再試行することにより、新
しいリストのヘッドに要素を追加する試みを繰り返す
(1007行)。
り変えられていない場合のみ、リストに追加される。こ
の極小動作は、IBM 370 Compare-and-Swap命令などの極
小的命令を用いて達成できる。極小動作が失敗した場合
は、ADD POOLは、1002行から再試行することにより、新
しいリストのヘッドに要素を追加する試みを繰り返す
(1007行)。
REMOVE POOL75用の擬似コード: 第9表は、従来の擬似コード内のREMOVE POOL手順75の
実施例を示す。
実施例を示す。
REMOVE POOLは、そのような要素のリストから、プール
制御要素POOL CTL28を極小的に除去する。
制御要素POOL CTL28を極小的に除去する。
1100-1105行は、リスト・ヘッダに対し、インデックス
(1102行)とポインタ(1103行)から構成される倍長語
構造として、POOLCHAINデータ・タイプを定義する。そ
れはPOOL CTL要素のリスト用のアンカーとして使われ
る。POOLCHAINインデックスは、複数のプロセスが一度
にリストからPOOL CTL要素(すなわち、マスタプールの
拡張プール・リストからFREE POOLにより除去可能な要
素)を極小的に除去できるようにする。一度に1つのプ
ロセスだけがリストから要素を除去できた場合は、ポイ
ンタはリスト・アンカーとして適切である。しかし、こ
の擬似コードは、FREE POOL66及びDELETE POOL68の両方
で使われ、プール制御要素POOL CTL28のすべてのリスト
に対し、アンカーとしてPOOL-CHAINデータ・タイプを用
いることは好都合である。そのようなアンカーを解放さ
れたプール・リスト72に用いることは悪くない。要する
にそれは必要ではない。
(1102行)とポインタ(1103行)から構成される倍長語
構造として、POOLCHAINデータ・タイプを定義する。そ
れはPOOL CTL要素のリスト用のアンカーとして使われ
る。POOLCHAINインデックスは、複数のプロセスが一度
にリストからPOOL CTL要素(すなわち、マスタプールの
拡張プール・リストからFREE POOLにより除去可能な要
素)を極小的に除去できるようにする。一度に1つのプ
ロセスだけがリストから要素を除去できた場合は、ポイ
ンタはリスト・アンカーとして適切である。しかし、こ
の擬似コードは、FREE POOL66及びDELETE POOL68の両方
で使われ、プール制御要素POOL CTL28のすべてのリスト
に対し、アンカーとしてPOOL-CHAINデータ・タイプを用
いることは好都合である。そのようなアンカーを解放さ
れたプール・リスト72に用いることは悪くない。要する
にそれは必要ではない。
所与のリスト・アンカーについて、REMOVE POOL75は、
第10表のUNCHAIN POOL動作88を用いて、リスト(1108
行)上の第1プール制御要素POOL CTL28の除去を試み
る。それが成功した場合は、REMOVE POOLは、新たな解
放された要素を要求プロセス(1112行)に戻す。このリ
スト内に要素がない場合は、空のPOOL CTL要素は戻され
る。
第10表のUNCHAIN POOL動作88を用いて、リスト(1108
行)上の第1プール制御要素POOL CTL28の除去を試み
る。それが成功した場合は、REMOVE POOLは、新たな解
放された要素を要求プロセス(1112行)に戻す。このリ
スト内に要素がない場合は、空のPOOL CTL要素は戻され
る。
極小UNCHAIN POOL動作88が失敗し(1109行)、1つある
いは複数の同時プロセスがリストを変えたことを表示す
る場合は、REMOVE POOL75は、動作を再試行することに
より(1110行)、現行リスト・ヘッダを除去し、そして
戻す試みを繰り返す。
いは複数の同時プロセスがリストを変えたことを表示す
る場合は、REMOVE POOL75は、動作を再試行することに
より(1110行)、現行リスト・ヘッダを除去し、そして
戻す試みを繰り返す。
UNCHAIN POOL88用の擬似コード: 第10表は、従来の擬似コードのUNCHAIN POOL手順88の実
施例を示す。
施例を示す。
UNCHAIN POOL88は、REMOVE POOL75によって使用され、
リストのヘッドから要素を除去し、さらにDELETE POOL6
8によって使用され、リスト上のどこからも要素を除去
する。この理由で、連鎖域は常にデータ・タイプPOOLCH
AINであり、このためREMOVE POOL論理は、一度に複数の
プロセスにより、リストからの要素の除去に適応でき
る。しかし、ただ1つのプロセスが一度にそのリストか
ら要素を除去できるようにされる場合は、1つの簡単な
ポインタがリストの連鎖域とアンカーを表示するために
適切になる。
リストのヘッドから要素を除去し、さらにDELETE POOL6
8によって使用され、リスト上のどこからも要素を除去
する。この理由で、連鎖域は常にデータ・タイプPOOLCH
AINであり、このためREMOVE POOL論理は、一度に複数の
プロセスにより、リストからの要素の除去に適応でき
る。しかし、ただ1つのプロセスが一度にそのリストか
ら要素を除去できるようにされる場合は、1つの簡単な
ポインタがリストの連鎖域とアンカーを表示するために
適切になる。
特定のプール制御「要素」POOL CTL28を含む特定のリス
ト「プールチェイン」に対して、UNCHAIN POOLが連鎖を
リスト内の次の要素に極小的に接続し、リストからPOOL
CTL要素(1210行)を除去する。連鎖域に連鎖された要
素がない場合には、空のPOOL CTL要素は戻される(1204
-1205行)。連鎖域が並行プロセスにより変えられてい
ない場合にのみ、要素28は除去される。この極小動作は
IBM 370 Compare-Double-and-Swap命令を用いて完了さ
れる。極小動作が失敗した場合は、UNCHAIN POOLは失敗
を示し(1216行)、この表示をリクエスタに戻す。
ト「プールチェイン」に対して、UNCHAIN POOLが連鎖を
リスト内の次の要素に極小的に接続し、リストからPOOL
CTL要素(1210行)を除去する。連鎖域に連鎖された要
素がない場合には、空のPOOL CTL要素は戻される(1204
-1205行)。連鎖域が並行プロセスにより変えられてい
ない場合にのみ、要素28は除去される。この極小動作は
IBM 370 Compare-Double-and-Swap命令を用いて完了さ
れる。極小動作が失敗した場合は、UNCHAIN POOLは失敗
を示し(1216行)、この表示をリクエスタに戻す。
ADD BUFFER AND COUNT、ADD BUFFER及びADD BUFFER LIS
Tのための擬似コード:第11A表、及び第12B表は、それ
ぞれADD BUFFER AND COUNT、ADD BUFFER及びADD BUFFER
LIST手順80、82、及び84a、84bの従来の擬似コードに
おける実施例を示す。これらの動作は、1つまたは複数
のバッファ制御要素BUF CTL32をそのような要素の1つ
のリストに極小的に追加する。ADD BUFFER、ADD COUNT
及びADD BUFFER手順80、82は、共にADD BUFFER LIST手
順84a、84bに依存する。これらの動作により使われるリ
ストは、バッファ制御要素BUF CTL32のNEXT FREEフィー
ルド44を通して連鎖される。
Tのための擬似コード:第11A表、及び第12B表は、それ
ぞれADD BUFFER AND COUNT、ADD BUFFER及びADD BUFFER
LIST手順80、82、及び84a、84bの従来の擬似コードに
おける実施例を示す。これらの動作は、1つまたは複数
のバッファ制御要素BUF CTL32をそのような要素の1つ
のリストに極小的に追加する。ADD BUFFER、ADD COUNT
及びADD BUFFER手順80、82は、共にADD BUFFER LIST手
順84a、84bに依存する。これらの動作により使われるリ
ストは、バッファ制御要素BUF CTL32のNEXT FREEフィー
ルド44を通して連鎖される。
第11A表の1300-1306行は、BUFHEADERデータ・タイプを
定義し、それはBUF CTL要素のリスト用のアンカーとし
て使用される。これは、使用中カウント「カウンタ」
(1304行)、インデックス(1303行)、及びリスト・ヘ
ッダ(1305行)から構成される倍長語構造である。BUF
CTL要素は、多重プロセスによりバッファ・リストから
追加または除去されるが、使用中カウント「カウンタ」
は、要素を追加または除去する同じ極小動作で更新され
なければならない。また同じ動作で、インデックスは増
分され、同時プロセスが同時にリストからBUF CTL要素
を除去している時に、干渉に対して保護しなければなら
ない。
定義し、それはBUF CTL要素のリスト用のアンカーとし
て使用される。これは、使用中カウント「カウンタ」
(1304行)、インデックス(1303行)、及びリスト・ヘ
ッダ(1305行)から構成される倍長語構造である。BUF
CTL要素は、多重プロセスによりバッファ・リストから
追加または除去されるが、使用中カウント「カウンタ」
は、要素を追加または除去する同じ極小動作で更新され
なければならない。また同じ動作で、インデックスは増
分され、同時プロセスが同時にリストからBUF CTL要素
を除去している時に、干渉に対して保護しなければなら
ない。
ADD BUFFER AND COUNT(1307-1309行)は、1つの要素
(すなわち1要素リスト)を、リストのヘッドに極小的
に追加し、さらにBUSY CTを1だけ減分するADD BUFFER
AND COUNTは、単に1308行に示すようないくつかのパラ
メータをもつADD BUFFER LIST動作を呼ぶ。
(すなわち1要素リスト)を、リストのヘッドに極小的
に追加し、さらにBUSY CTを1だけ減分するADD BUFFER
AND COUNTは、単に1308行に示すようないくつかのパラ
メータをもつADD BUFFER LIST動作を呼ぶ。
ADD BUFFER(1310-1312行)は、極小的に1つの要素
(すなわち1要素リスト)をリストのヘッドに追加する
が、BUSY CTを更新しない(0だけ減分する)。ADD BUF
FERは、それがADD BUFFER AND COUNTにより渡される値
1の代わりに整数“n"に対する値0を渡すことを除い
て、ADD BUFFER AND COUNT(1311行)と同じパラメータ
をもつADD BUFFER LISTを呼ぶ。
(すなわち1要素リスト)をリストのヘッドに追加する
が、BUSY CTを更新しない(0だけ減分する)。ADD BUF
FERは、それがADD BUFFER AND COUNTにより渡される値
1の代わりに整数“n"に対する値0を渡すことを除い
て、ADD BUFFER AND COUNT(1311行)と同じパラメータ
をもつADD BUFFER LISTを呼ぶ。
ADD BUFFER LIST(1313-1324行)は、連鎖BUF CTL要素
の新しいリストを現存リストのヘッドに追加する。新し
いリストの最初及び最後の要素は、パラメータとしてAD
D BUFFER LISTに渡される。その機能は、現存リスト(1
319、1321行)を新しいヘッドとして新しいリストの第
1要素を置く。同時に現存リストの先のヘッド要素は、
新しいリスト内の最後の要素に連鎖される(1320行)。
の新しいリストを現存リストのヘッドに追加する。新し
いリストの最初及び最後の要素は、パラメータとしてAD
D BUFFER LISTに渡される。その機能は、現存リスト(1
319、1321行)を新しいヘッドとして新しいリストの第
1要素を置く。同時に現存リストの先のヘッド要素は、
新しいリスト内の最後の要素に連鎖される(1320行)。
新しいリストは、現存リストの現行ヘッダが並行プロセ
ス(第11B表の1322行)によって変えられなかった場合
にのみ、現在のリストに追加される。これは、極小IBM
370 Compare-and-Swap命令を用いて直列化される。同じ
極小動作が、入力カウントN(1318行)により使用中カ
ウントBUSY CTを減分するために使用される。さらに、
複数のプロセスは、リストから要素を除去できるので、
INDEXカウントは、また同じ操作(1317、1321行)で増
分される。もし、極小動作が失敗し、他のプロセスが現
存リストのヘッダを変えたことを表示した場合は、ADD
BUFFER LISTは、新しいリストを現存リスト(1323行)
に追加する試みを繰り返す。
ス(第11B表の1322行)によって変えられなかった場合
にのみ、現在のリストに追加される。これは、極小IBM
370 Compare-and-Swap命令を用いて直列化される。同じ
極小動作が、入力カウントN(1318行)により使用中カ
ウントBUSY CTを減分するために使用される。さらに、
複数のプロセスは、リストから要素を除去できるので、
INDEXカウントは、また同じ操作(1317、1321行)で増
分される。もし、極小動作が失敗し、他のプロセスが現
存リストのヘッダを変えたことを表示した場合は、ADD
BUFFER LISTは、新しいリストを現存リスト(1323行)
に追加する試みを繰り返す。
REMOVE BUFFER AND COUNT及びREMOVE BUFFER用の擬似コ
ード:第12A表及び第12B表はそれぞれ、REMOVE BUFFER
AND COUNT及びREMOVE BUFFER手順86、及び78a、78bの従
来の擬似コードの実施例を示す。これらの動作は、その
ような要素のリストから、第1のバッファ制御要素BUF
CTL32を極小的に除去する。
ード:第12A表及び第12B表はそれぞれ、REMOVE BUFFER
AND COUNT及びREMOVE BUFFER手順86、及び78a、78bの従
来の擬似コードの実施例を示す。これらの動作は、その
ような要素のリストから、第1のバッファ制御要素BUF
CTL32を極小的に除去する。
REMOVE BUFFER86は、特定のリスト内の第1要素を極小
的に除去するが、しかし、BUSY CTを更新しない(0だ
け増分する)機能である。REMOVE BUFFER(1400-1402
行)は、1401行で示すようないくつかのパラメータを有
するREMOVE BUFFER AND COUNT手順動作を呼ぶ。
的に除去するが、しかし、BUSY CTを更新しない(0だ
け増分する)機能である。REMOVE BUFFER(1400-1402
行)は、1401行で示すようないくつかのパラメータを有
するREMOVE BUFFER AND COUNT手順動作を呼ぶ。
REMOVE BUFFER AND COUNT(1403-1421行)は、POOL CTL
要素のリストから第1BUF CTL要素を極小的に除去する。
それに渡される所与のリスト・ヘッダ「アンカー」につ
いては、REMOVE BUFFER AND COUNTは、リスト内に次の
要素を新しいリスト・ヘッダ(1413行)にすることによ
り、リスト上の第1(ヘッダ)要素を除去することを試
みる。古いヘッダ要素は、現在のリスト・ヘッダが並列
プロセスにより変えられない場合にのみ、リストから除
去される。これはIBM 370 Compare-Double-and-Swap命
令により直列化される。
要素のリストから第1BUF CTL要素を極小的に除去する。
それに渡される所与のリスト・ヘッダ「アンカー」につ
いては、REMOVE BUFFER AND COUNTは、リスト内に次の
要素を新しいリスト・ヘッダ(1413行)にすることによ
り、リスト上の第1(ヘッダ)要素を除去することを試
みる。古いヘッダ要素は、現在のリスト・ヘッダが並列
プロセスにより変えられない場合にのみ、リストから除
去される。これはIBM 370 Compare-Double-and-Swap命
令により直列化される。
使用中カウントBUSY CTが、同じ極小動作で入力カウン
トN(1411行)だけ増分され、そして複数のプロセスが
リストから要素を除去できるので、INDEXカウントも同
じ動作で(1412行)増分される。
トN(1411行)だけ増分され、そして複数のプロセスが
リストから要素を除去できるので、INDEXカウントも同
じ動作で(1412行)増分される。
極小動作が失敗した場合(1417行)は、REMOVE BUFFE
R、AND COUNTは、その手順を再試行することにより(14
18行)リストから第1要素を除去する試みを繰り返す。
R、AND COUNTは、その手順を再試行することにより(14
18行)リストから第1要素を除去する試みを繰り返す。
リスト内に要素がない場合は、空のBUF CTL要素が戻さ
れる(1407-1408行)。さもなければ、除去された要素
が戻される(1420行)。
れる(1407-1408行)。さもなければ、除去された要素
が戻される(1420行)。
F.発明の効果 以上説明したように、この発明によれば、コンピュータ
・システムにおいて資源プールの拡張がはかられる。
・システムにおいて資源プールの拡張がはかられる。
第1図は、本発明の好ましい実施例によるマスタ・プー
ル、使用中の活動拡張プール、及び削除を待っている解
放拡張プールを有するバッファ・プール連鎖を示すブロ
ック図である。 第2図は、第1図のバッファ・プールの代表的な1つを
示すブロック図である。
ル、使用中の活動拡張プール、及び削除を待っている解
放拡張プールを有するバッファ・プール連鎖を示すブロ
ック図である。 第2図は、第1図のバッファ・プールの代表的な1つを
示すブロック図である。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭60−5358(JP,A) 特開 昭62−274348(JP,A) 特開 昭63−208957(JP,A)
Claims (2)
- 【請求項1】コンピュータ化されたデータ処理システム
において使用のため割り当て可能なコンピュータ資源の
マスター・プールを、該データ処理システムの処理によ
って縮小または拡大するための方法であって、 (a)(i) 少なくとも1つの追加的なコンピュータ
資源を含む拡張プールを作成し、 (ii) 上記マスター・プールに対し、該拡張プールの
コンピュータ資源を追加することによって上記マスター
・プールを拡張する段階と、 (b)(i) 上記マスター・プールから上記拡張プー
ルへ、上記拡張プールに由来する非割り当てコンピュー
タ資源を転送し、 (ii) 上記拡張プールに由来するコンピュータ資源の
割り当て解除時に、該拡張プールに由来するコンピュー
タ資源を上記拡張プールに転送し、 (iii) 上記拡張プールが、上記拡張プールに由来す
る全てのコンピュータ資源を含むときに、上記拡張プー
ルを削除することによって上記マスター・プールを縮小
する段階とを有する、 コンピュータ・システム資源管理方法。 - 【請求項2】コンピュータ化されたデータ処理システム
において使用のため割り当て可能なコンピュータ資源の
マスター・プールを、該データ処理システムの処理によ
って管理するための方法であって、 (a) 少なくとも1つの追加的なコンピュータ資源を
含む拡張プールを作成する段階と、 (b) 上記拡張プールのコンピュータ資源を、上記マ
スター・プールに連鎖させる段階と、 (c) 上記データ処理システムで実行中の処理によっ
て使用するために、上記マスター・プールから上記コン
ピュータ資源を割り当てる段階と、 (d) 上記処理によって上記コンピュータ資源を開放
する段階と、 (e) 活動拡張プールに属する上記開放されたコンピ
ュータ資源を上記マスター・プールに戻す段階と、 (f) 開放拡張プールに属する上記上記開放されたコ
ンピュータ資源を上記拡張プールに戻す段階と、 (g) 開放拡張プールに属する非割り当てコンピュー
タ資源を、上記マスター・プールから上記拡張プールに
転送する段階と、 (h) 開放拡張プールが、該開放拡張プールに属する
全ての資源を含むときに、該開放拡張プールを削除する
段階を有する、 コンピュータ・システム資源管理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/371,563 US5093912A (en) | 1989-06-26 | 1989-06-26 | Dynamic resource pool expansion and contraction in multiprocessing environments |
US371563 | 1989-06-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0336642A JPH0336642A (ja) | 1991-02-18 |
JPH0743665B2 true JPH0743665B2 (ja) | 1995-05-15 |
Family
ID=23464482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2165868A Expired - Lifetime JPH0743665B2 (ja) | 1989-06-26 | 1990-06-26 | コンピユータ・システム資源管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5093912A (ja) |
EP (1) | EP0405724A3 (ja) |
JP (1) | JPH0743665B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007328813A (ja) * | 1998-05-08 | 2007-12-20 | Fujitsu Ltd | ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ |
Families Citing this family (469)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5325525A (en) * | 1991-04-04 | 1994-06-28 | Hewlett-Packard Company | Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time |
JPH04370849A (ja) * | 1991-06-19 | 1992-12-24 | Nec Corp | 共有メモリエリアサイズ変更方式 |
US5353343A (en) * | 1992-04-30 | 1994-10-04 | Rockwell International Corporation | Telephonic switching system with a user controlled data memory access system and method |
JP2842738B2 (ja) * | 1992-08-25 | 1999-01-06 | 富士通株式会社 | オンライン処理システム |
US5440692A (en) * | 1992-10-27 | 1995-08-08 | Bmc Software, Inc. | Method of dynamically expanding or contracting a DB2 buffer pool |
US5410722A (en) * | 1993-01-21 | 1995-04-25 | Conner Peripherals, Inc. | Queue system for dynamically allocating and moving memory registers between a plurality of pseudo queues |
FR2706651B1 (fr) * | 1993-06-17 | 1995-08-18 | Alsthom Cge Alcatel | Procédé de gestion des accès concurrents à une mémoire par plusieurs utilisateurs. |
US6298371B1 (en) * | 1993-07-08 | 2001-10-02 | Bmc Software, Inc. | Method of dynamically adjusting NCP program memory allocation of SNA network |
US5535365A (en) * | 1993-10-22 | 1996-07-09 | Cray Research, Inc. | Method and apparatus for locking shared memory locations in multiprocessing systems |
JP2833633B2 (ja) * | 1993-12-30 | 1998-12-09 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | データ処理システム及び待ち行列管理方法 |
JPH07262079A (ja) * | 1994-03-16 | 1995-10-13 | Fujitsu Ltd | バッファ再割当システム |
US5802301A (en) * | 1994-05-11 | 1998-09-01 | International Business Machines Corporation | System for load balancing by replicating portion of file while being read by first stream onto second device and reading portion with stream capable of accessing |
US5675797A (en) * | 1994-05-24 | 1997-10-07 | International Business Machines Corporation | Goal-oriented resource allocation manager and performance index technique for servers |
US5519863A (en) * | 1994-09-21 | 1996-05-21 | International Business Machines Corporation | Notification forwarding discriminator |
DE69524916T2 (de) * | 1994-10-11 | 2002-11-14 | Sun Microsystems Inc | Verfahren und Vorrichtung zur Datenübertragung im Bereich der Rechnersysteme |
US5867734A (en) * | 1994-11-21 | 1999-02-02 | Intel Corporation | Multiple-reader multiple-writer queue for a computer system |
US6363410B1 (en) * | 1994-12-13 | 2002-03-26 | Microsoft Corporation | Method and system for threaded resource allocation and reclamation |
US5797042A (en) * | 1995-03-16 | 1998-08-18 | Intel Corporation | Method and apparatus for adjusting the buffering characteristic in the pipeline of a data transfer system |
JPH11511303A (ja) * | 1995-07-19 | 1999-09-28 | フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド | リンクバッファを共用する方法及び装置 |
US6141346A (en) * | 1995-07-19 | 2000-10-31 | Fujitsu Network Communications, Inc. | Point-to-multipoint transmission using subqueues |
AU6502096A (en) * | 1995-07-19 | 1997-02-18 | Ascom Nexion Inc. | Minimum guaranteed cell rate method and apparatus |
JPH11512583A (ja) * | 1995-09-14 | 1999-10-26 | フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド | 広域atm網内のバッファ割付用送信側制御式フロー制御 |
US5784698A (en) * | 1995-12-05 | 1998-07-21 | International Business Machines Corporation | Dynamic memory allocation that enalbes efficient use of buffer pool memory segments |
JP2000517488A (ja) * | 1996-01-16 | 2000-12-26 | フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド | Atm網用の信頼性と柔軟性のあるマルチキャスト機構 |
US5907717A (en) * | 1996-02-23 | 1999-05-25 | Lsi Logic Corporation | Cross-connected memory system for allocating pool buffers in each frame buffer and providing addresses thereof |
EP0848334A4 (en) * | 1996-07-01 | 2007-08-29 | Fujitsu Ltd | METHOD AND DEVICE FOR MANAGING THE USE OF SHARED RESOURCES BY SEVERAL GROUPS |
US5748905A (en) * | 1996-08-30 | 1998-05-05 | Fujitsu Network Communications, Inc. | Frame classification using classification keys |
EP1008044B1 (en) * | 1997-02-14 | 2002-10-30 | BRITISH TELECOMMUNICATIONS public limited company | Information processing |
US5905889A (en) * | 1997-03-20 | 1999-05-18 | International Business Machines Corporation | Resource management system using next available integer from an integer pool and returning the integer thereto as the next available integer upon completion of use |
US5940466A (en) * | 1997-10-29 | 1999-08-17 | Micron Electronics, Inc. | Apparatus for counting parts in a tray |
US7581077B2 (en) * | 1997-10-30 | 2009-08-25 | Commvault Systems, Inc. | Method and system for transferring data in a storage operation |
US7209972B1 (en) | 1997-10-30 | 2007-04-24 | Commvault Systems, Inc. | High speed data transfer mechanism |
US6418478B1 (en) | 1997-10-30 | 2002-07-09 | Commvault Systems, Inc. | Pipelined high speed data transfer mechanism |
US6178429B1 (en) * | 1997-11-26 | 2001-01-23 | Cisco Technology, Inc. | Mechanism for ensuring SCM database consistency on multi-part operation boundaries |
US7739381B2 (en) * | 1998-03-11 | 2010-06-15 | Commvault Systems, Inc. | System and method for providing encryption in storage operations in a storage network, such as for use by application service providers that provide data storage services |
US7277941B2 (en) | 1998-03-11 | 2007-10-02 | Commvault Systems, Inc. | System and method for providing encryption in a storage network by storing a secured encryption key with encrypted archive data in an archive storage device |
US6070202A (en) * | 1998-05-11 | 2000-05-30 | Motorola, Inc. | Reallocation of pools of fixed size buffers based on metrics collected for maximum number of concurrent requests for each distinct memory size |
US6947987B2 (en) * | 1998-05-29 | 2005-09-20 | Ncr Corporation | Method and apparatus for allocating network resources and changing the allocation based on dynamic workload changes |
US6976093B2 (en) * | 1998-05-29 | 2005-12-13 | Yahoo! Inc. | Web server content replication |
US6105039A (en) * | 1998-06-23 | 2000-08-15 | Microsoft Corporation | Generation and validation of reference handles |
US6282589B1 (en) | 1998-07-30 | 2001-08-28 | Micron Technology, Inc. | System for sharing data buffers from a buffer pool |
US6161153A (en) * | 1998-07-30 | 2000-12-12 | Micron Technology, Inc. | Method for sharing data buffers from a buffer pool |
US6173307B1 (en) | 1998-08-20 | 2001-01-09 | Intel Corporation | Multiple-reader multiple-writer queue for a computer system |
US7165122B1 (en) | 1998-11-12 | 2007-01-16 | Cisco Technology, Inc. | Dynamic IP addressing and quality of service assurance |
US6427174B1 (en) | 1998-11-12 | 2002-07-30 | Cisco Technology, Inc. | Dynamic IP addressing and quality of service assurance |
US6539431B1 (en) | 1998-11-12 | 2003-03-25 | Cisco Technology, Inc. | Support IP pool-based configuration |
US6223335B1 (en) * | 1998-12-09 | 2001-04-24 | Sun Microsystems, Inc. | Platform independent double compare and swap operation |
US6345327B1 (en) * | 1999-02-19 | 2002-02-05 | International Business Machines Corporation | Queuing method and apparatus for providing direct data processing access using a queued direct input-output device |
US7035880B1 (en) | 1999-07-14 | 2006-04-25 | Commvault Systems, Inc. | Modular backup and retrieval system used in conjunction with a storage area network |
US7395282B1 (en) * | 1999-07-15 | 2008-07-01 | Commvault Systems, Inc. | Hierarchical backup and retrieval system |
US7389311B1 (en) | 1999-07-15 | 2008-06-17 | Commvault Systems, Inc. | Modular backup and retrieval system |
NO994240L (no) | 1999-09-01 | 2001-03-02 | Ericsson Telefon Ab L M | Distribusjon av IP-adresser i GPRS-nett |
US6484224B1 (en) | 1999-11-29 | 2002-11-19 | Cisco Technology Inc. | Multi-interface symmetric multiprocessor |
US7003641B2 (en) | 2000-01-31 | 2006-02-21 | Commvault Systems, Inc. | Logical view with granular access to exchange data managed by a modular data and storage management system |
US7155481B2 (en) | 2000-01-31 | 2006-12-26 | Commvault Systems, Inc. | Email attachment management in a computer system |
US6658436B2 (en) * | 2000-01-31 | 2003-12-02 | Commvault Systems, Inc. | Logical view and access to data managed by a modular data and storage management system |
US7434219B2 (en) * | 2000-01-31 | 2008-10-07 | Commvault Systems, Inc. | Storage of application specific profiles correlating to document versions |
US6772411B2 (en) | 2000-12-01 | 2004-08-03 | Bmc Software, Inc. | Software performance and management system |
US7162718B1 (en) | 2000-12-12 | 2007-01-09 | International Business Machines Corporation | Language extension for light weight threading in a JVM |
US7065764B1 (en) | 2001-07-20 | 2006-06-20 | Netrendered, Inc. | Dynamically allocated cluster system |
US7107298B2 (en) * | 2001-09-28 | 2006-09-12 | Commvault Systems, Inc. | System and method for archiving objects in an information store |
US7346623B2 (en) * | 2001-09-28 | 2008-03-18 | Commvault Systems, Inc. | System and method for generating and managing quick recovery volumes |
US20030101155A1 (en) * | 2001-11-23 | 2003-05-29 | Parag Gokhale | Method and system for scheduling media exports |
US7596586B2 (en) * | 2003-04-03 | 2009-09-29 | Commvault Systems, Inc. | System and method for extended media retention |
US7603518B2 (en) * | 2005-12-19 | 2009-10-13 | Commvault Systems, Inc. | System and method for improved media identification in a storage device |
US20050033913A1 (en) * | 2003-04-03 | 2005-02-10 | Rajiv Kottomtharayil | Method and system for controlling a robotic arm in a storage device |
WO2003046721A1 (en) * | 2001-11-23 | 2003-06-05 | Commvault Systems, Inc. | Selective data replication system and method |
US8346733B2 (en) | 2006-12-22 | 2013-01-01 | Commvault Systems, Inc. | Systems and methods of media management, such as management of media to and from a media storage library |
US7584227B2 (en) * | 2005-12-19 | 2009-09-01 | Commvault Systems, Inc. | System and method for containerized data storage and tracking |
US7240089B2 (en) * | 2001-12-10 | 2007-07-03 | International Business Machines Corporation | Message queuing method, system, and program product with reusable pooling component |
US6941436B2 (en) | 2002-05-09 | 2005-09-06 | International Business Machines Corporation | Method and apparatus for managing memory blocks in a logical partitioned data processing system |
US7480911B2 (en) * | 2002-05-09 | 2009-01-20 | International Business Machines Corporation | Method and apparatus for dynamically allocating and deallocating processors in a logical partitioned data processing system |
GB2410106B (en) | 2002-09-09 | 2006-09-13 | Commvault Systems Inc | Dynamic storage device pooling in a computer system |
GB2409553B (en) | 2002-09-16 | 2007-04-04 | Commvault Systems Inc | System and method for optimizing storage operations |
WO2004025423A2 (en) * | 2002-09-16 | 2004-03-25 | Commvault Systems, Inc. | System and method for blind media support |
EP1579331A4 (en) | 2002-10-07 | 2007-05-23 | Commvault Systems Inc | SYSTEM AND METHOD FOR MANAGING SAVED DATA |
CA2408481C (en) * | 2002-10-17 | 2009-10-06 | Ibm Canada Limited-Ibm Canada Limitee | Autonomic reallocation of memory among buffer pools |
US6938054B2 (en) * | 2002-11-25 | 2005-08-30 | International Business Machines Corporation | Systems, methods, and computer program products to optimize serialization when porting code to IBM S/390 UNIX system services from a UNIX system |
CA2520498C (en) | 2003-04-03 | 2012-09-25 | Commvault Systems, Inc. | System and method for dynamically performing storage operations in a computer network |
WO2004090676A2 (en) * | 2003-04-03 | 2004-10-21 | Commvault Systems, Inc. | Remote disaster data recovery system and method |
US7631351B2 (en) * | 2003-04-03 | 2009-12-08 | Commvault Systems, Inc. | System and method for performing storage operations through a firewall |
US7454569B2 (en) * | 2003-06-25 | 2008-11-18 | Commvault Systems, Inc. | Hierarchical system and method for performing storage operations in a computer network |
GB2424297B (en) * | 2003-11-13 | 2007-06-27 | Commvault Systems Inc | System and method for data storage and tracking |
US7546324B2 (en) | 2003-11-13 | 2009-06-09 | Commvault Systems, Inc. | Systems and methods for performing storage operations using network attached storage |
US7440982B2 (en) * | 2003-11-13 | 2008-10-21 | Commvault Systems, Inc. | System and method for stored data archive verification |
CA2548542C (en) | 2003-11-13 | 2011-08-09 | Commvault Systems, Inc. | System and method for performing a snapshot and for restoring data |
US7613748B2 (en) | 2003-11-13 | 2009-11-03 | Commvault Systems, Inc. | Stored data reverification management system and method |
GB2423850B (en) * | 2003-11-13 | 2009-05-20 | Commvault Systems Inc | System and method for performing integrated storage operations |
CA2544063C (en) * | 2003-11-13 | 2013-09-10 | Commvault Systems, Inc. | System and method for combining data streams in pilelined storage operations in a storage network |
US8041821B2 (en) * | 2003-11-26 | 2011-10-18 | International Business Machines Corporation | Connection pool management |
US7343459B2 (en) | 2004-04-30 | 2008-03-11 | Commvault Systems, Inc. | Systems and methods for detecting & mitigating storage risks |
US8266406B2 (en) | 2004-04-30 | 2012-09-11 | Commvault Systems, Inc. | System and method for allocation of organizational resources |
US7975061B1 (en) | 2004-11-05 | 2011-07-05 | Commvault Systems, Inc. | System and method for performing multistream storage operations |
US7536291B1 (en) | 2004-11-08 | 2009-05-19 | Commvault Systems, Inc. | System and method to support simulated storage operations |
US8959299B2 (en) | 2004-11-15 | 2015-02-17 | Commvault Systems, Inc. | Using a snapshot as a data source |
US8140786B2 (en) | 2006-12-04 | 2012-03-20 | Commvault Systems, Inc. | Systems and methods for creating copies of data, such as archive copies |
US8832706B2 (en) * | 2006-12-22 | 2014-09-09 | Commvault Systems, Inc. | Systems and methods of data storage management, such as dynamic data stream allocation |
US8775823B2 (en) | 2006-12-29 | 2014-07-08 | Commvault Systems, Inc. | System and method for encrypting secondary copies of data |
US8316130B2 (en) | 2004-12-22 | 2012-11-20 | International Business Machines Corporation | System, method and computer program product for provisioning of resources and service environments |
US8112605B2 (en) * | 2005-05-02 | 2012-02-07 | Commvault Systems, Inc. | System and method for allocation of organizational resources |
US7602906B2 (en) * | 2005-08-25 | 2009-10-13 | Microsoft Corporation | Cipher for disk encryption |
US7801864B2 (en) * | 2005-11-28 | 2010-09-21 | Commvault Systems, Inc. | Systems and methods for using metadata to enhance data identification operations |
US7822749B2 (en) * | 2005-11-28 | 2010-10-26 | Commvault Systems, Inc. | Systems and methods for classifying and transferring information in a storage network |
US20070166674A1 (en) * | 2005-12-19 | 2007-07-19 | Kochunni Jaidev O | Systems and methods for generating configuration metrics in a storage network |
US7457790B2 (en) * | 2005-12-19 | 2008-11-25 | Commvault Systems, Inc. | Extensible configuration engine system and method |
US8572330B2 (en) | 2005-12-19 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for granular resource management in a storage network |
US7620710B2 (en) | 2005-12-19 | 2009-11-17 | Commvault Systems, Inc. | System and method for performing multi-path storage operations |
US7617262B2 (en) | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Systems and methods for monitoring application data in a data replication system |
US20110010518A1 (en) | 2005-12-19 | 2011-01-13 | Srinivas Kavuri | Systems and Methods for Migrating Components in a Hierarchical Storage Network |
US8661216B2 (en) * | 2005-12-19 | 2014-02-25 | Commvault Systems, Inc. | Systems and methods for migrating components in a hierarchical storage network |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
US7962709B2 (en) * | 2005-12-19 | 2011-06-14 | Commvault Systems, Inc. | Network redirector systems and methods for performing data replication |
US8930496B2 (en) | 2005-12-19 | 2015-01-06 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
EP1974490A4 (en) * | 2005-12-19 | 2012-01-18 | Commvault Systems Inc | SYSTEM AND METHOD FOR APPLYING DIGITAL CONTENT A FLEXIBLE LICENSE ASSIGNMENT PROCEDURE |
US20200257596A1 (en) | 2005-12-19 | 2020-08-13 | Commvault Systems, Inc. | Systems and methods of unified reconstruction in storage systems |
CA2632935C (en) | 2005-12-19 | 2014-02-04 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US7543125B2 (en) * | 2005-12-19 | 2009-06-02 | Commvault Systems, Inc. | System and method for performing time-flexible calendric storage operations |
US7636743B2 (en) * | 2005-12-19 | 2009-12-22 | Commvault Systems, Inc. | Pathname translation in a data replication system |
US7651593B2 (en) * | 2005-12-19 | 2010-01-26 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US8122450B2 (en) * | 2006-03-30 | 2012-02-21 | International Business Machines Corporation | Method and apparatus for distributing memory in a data processing system |
US8726242B2 (en) | 2006-07-27 | 2014-05-13 | Commvault Systems, Inc. | Systems and methods for continuous data replication |
US7516284B2 (en) * | 2006-08-31 | 2009-04-07 | International Business Machines Corporation | Method for removing alias addresses from an alias address pool |
US7539783B2 (en) * | 2006-09-22 | 2009-05-26 | Commvault Systems, Inc. | Systems and methods of media management, such as management of media to and from a media storage library, including removable media |
US7882077B2 (en) | 2006-10-17 | 2011-02-01 | Commvault Systems, Inc. | Method and system for offline indexing of content and classifying stored data |
CN101529419B (zh) | 2006-10-17 | 2013-05-01 | 慷孚系统公司 | 用于对内容进行离线索引和对存储的数据进行分类的方法和系统 |
US8655914B2 (en) * | 2006-10-17 | 2014-02-18 | Commvault Systems, Inc. | System and method for storage operation access security |
US8370442B2 (en) | 2008-08-29 | 2013-02-05 | Commvault Systems, Inc. | Method and system for leveraging identified changes to a mail server |
US20080147878A1 (en) * | 2006-12-15 | 2008-06-19 | Rajiv Kottomtharayil | System and methods for granular resource management in a storage network |
US8677091B2 (en) | 2006-12-18 | 2014-03-18 | Commvault Systems, Inc. | Writing data and storage system specific metadata to network attached storage device |
US8719809B2 (en) * | 2006-12-22 | 2014-05-06 | Commvault Systems, Inc. | Point in time rollback and un-installation of software |
US8312323B2 (en) | 2006-12-22 | 2012-11-13 | Commvault Systems, Inc. | Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved |
US20080228771A1 (en) * | 2006-12-22 | 2008-09-18 | Commvault Systems, Inc. | Method and system for searching stored data |
US7831566B2 (en) | 2006-12-22 | 2010-11-09 | Commvault Systems, Inc. | Systems and methods of hierarchical storage management, such as global management of storage operations |
US7840537B2 (en) | 2006-12-22 | 2010-11-23 | Commvault Systems, Inc. | System and method for storing redundant information |
US20080155205A1 (en) * | 2006-12-22 | 2008-06-26 | Parag Gokhale | Systems and methods of data storage management, such as dynamic data stream allocation |
US7734669B2 (en) | 2006-12-22 | 2010-06-08 | Commvault Systems, Inc. | Managing copies of data |
US8209417B2 (en) * | 2007-03-08 | 2012-06-26 | Oracle International Corporation | Dynamic resource profiles for clusterware-managed resources |
US8290808B2 (en) | 2007-03-09 | 2012-10-16 | Commvault Systems, Inc. | System and method for automating customer-validated statement of work for a data storage environment |
CN103123702B (zh) * | 2007-08-28 | 2017-11-28 | Commvault系统公司 | 如数据存储操作的自适应能耗管理的数据处理资源的能耗管理 |
US8706976B2 (en) | 2007-08-30 | 2014-04-22 | Commvault Systems, Inc. | Parallel access virtual tape library and drives |
US8396838B2 (en) * | 2007-10-17 | 2013-03-12 | Commvault Systems, Inc. | Legal compliance, electronic discovery and electronic document handling of online and offline copies of data |
EP2075698A1 (en) | 2007-12-28 | 2009-07-01 | Software AG | Method and system for allocating memory in a broker system |
US7836174B2 (en) * | 2008-01-30 | 2010-11-16 | Commvault Systems, Inc. | Systems and methods for grid-based data scanning |
US8296301B2 (en) | 2008-01-30 | 2012-10-23 | Commvault Systems, Inc. | Systems and methods for probabilistic data classification |
US8046543B2 (en) * | 2008-06-18 | 2011-10-25 | International Business Machines Corporation | Selectively retaining a topmost subpool expansion to prevent thrashing |
US8769048B2 (en) | 2008-06-18 | 2014-07-01 | Commvault Systems, Inc. | Data protection scheduling, such as providing a flexible backup window in a data protection system |
US9128883B2 (en) * | 2008-06-19 | 2015-09-08 | Commvault Systems, Inc | Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail |
US8352954B2 (en) * | 2008-06-19 | 2013-01-08 | Commvault Systems, Inc. | Data storage resource allocation by employing dynamic methods and blacklisting resource request pools |
US9098495B2 (en) | 2008-06-24 | 2015-08-04 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US8219524B2 (en) * | 2008-06-24 | 2012-07-10 | Commvault Systems, Inc. | Application-aware and remote single instance data management |
US8484162B2 (en) | 2008-06-24 | 2013-07-09 | Commvault Systems, Inc. | De-duplication systems and methods for application-specific data |
US8335776B2 (en) * | 2008-07-02 | 2012-12-18 | Commvault Systems, Inc. | Distributed indexing system for data storage |
US8166263B2 (en) * | 2008-07-03 | 2012-04-24 | Commvault Systems, Inc. | Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices |
US8307177B2 (en) | 2008-09-05 | 2012-11-06 | Commvault Systems, Inc. | Systems and methods for management of virtualization data |
US8725688B2 (en) | 2008-09-05 | 2014-05-13 | Commvault Systems, Inc. | Image level copy or restore, such as image level restore without knowledge of data object metadata |
US20100070474A1 (en) | 2008-09-12 | 2010-03-18 | Lad Kamleshkumar K | Transferring or migrating portions of data objects, such as block-level data migration or chunk-based data migration |
US20100070466A1 (en) * | 2008-09-15 | 2010-03-18 | Anand Prahlad | Data transfer techniques within data storage devices, such as network attached storage performing data migration |
CA2729078C (en) | 2008-09-26 | 2016-05-24 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US9015181B2 (en) | 2008-09-26 | 2015-04-21 | Commvault Systems, Inc. | Systems and methods for managing single instancing data |
US9178842B2 (en) | 2008-11-05 | 2015-11-03 | Commvault Systems, Inc. | Systems and methods for monitoring messaging applications for compliance with a policy |
US8412677B2 (en) * | 2008-11-26 | 2013-04-02 | Commvault Systems, Inc. | Systems and methods for byte-level or quasi byte-level single instancing |
US9495382B2 (en) * | 2008-12-10 | 2016-11-15 | Commvault Systems, Inc. | Systems and methods for performing discrete data replication |
US8943183B2 (en) * | 2008-12-10 | 2015-01-27 | Commvault Systems, Inc. | Decoupled installation of data management systems |
US8204859B2 (en) | 2008-12-10 | 2012-06-19 | Commvault Systems, Inc. | Systems and methods for managing replicated database data |
US8434131B2 (en) | 2009-03-20 | 2013-04-30 | Commvault Systems, Inc. | Managing connections in a data storage system |
US8401996B2 (en) | 2009-03-30 | 2013-03-19 | Commvault Systems, Inc. | Storing a variable number of instances of data objects |
US8209307B2 (en) * | 2009-03-31 | 2012-06-26 | Commvault Systems, Inc. | Systems and methods for data migration in a clustered file system |
US8352432B2 (en) * | 2009-03-31 | 2013-01-08 | Commvault Systems, Inc. | Systems and methods for normalizing data of heterogeneous data sources |
CN101551736B (zh) * | 2009-05-20 | 2010-11-03 | 杭州华三通信技术有限公司 | 基于地址指针链表的缓存管理装置和方法 |
US8578120B2 (en) | 2009-05-22 | 2013-11-05 | Commvault Systems, Inc. | Block-level single instancing |
US20100332401A1 (en) | 2009-06-30 | 2010-12-30 | Anand Prahlad | Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites |
US8930306B1 (en) | 2009-07-08 | 2015-01-06 | Commvault Systems, Inc. | Synchronized data deduplication |
US8706867B2 (en) | 2011-03-31 | 2014-04-22 | Commvault Systems, Inc. | Realtime streaming of multimedia content from secondary storage devices |
US9092500B2 (en) | 2009-09-03 | 2015-07-28 | Commvault Systems, Inc. | Utilizing snapshots for access to databases and other applications |
US8719767B2 (en) | 2011-03-31 | 2014-05-06 | Commvault Systems, Inc. | Utilizing snapshots to provide builds to developer computing devices |
US8595191B2 (en) * | 2009-12-31 | 2013-11-26 | Commvault Systems, Inc. | Systems and methods for performing data management operations using snapshots |
WO2011082132A1 (en) | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Systems and methods for analyzing snapshots |
WO2011082113A1 (en) * | 2009-12-31 | 2011-07-07 | Commvault Systems, Inc. | Asynchronous methods of data classification using change journals and other data structures |
US8202205B2 (en) * | 2010-02-09 | 2012-06-19 | GoBe Healthy, LLC | Omni-directional exercise device |
US8504517B2 (en) * | 2010-03-29 | 2013-08-06 | Commvault Systems, Inc. | Systems and methods for selective data replication |
US8725698B2 (en) | 2010-03-30 | 2014-05-13 | Commvault Systems, Inc. | Stub file prioritization in a data replication system |
US8352422B2 (en) | 2010-03-30 | 2013-01-08 | Commvault Systems, Inc. | Data restore systems and methods in a replication environment |
US8504515B2 (en) | 2010-03-30 | 2013-08-06 | Commvault Systems, Inc. | Stubbing systems and methods in a data replication environment |
US8572038B2 (en) | 2010-05-28 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US8572719B2 (en) | 2010-05-28 | 2013-10-29 | Commvault Systems, Inc. | Firewall proxy systems and methods in a backup environment |
US8504526B2 (en) | 2010-06-04 | 2013-08-06 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations |
US11449394B2 (en) | 2010-06-04 | 2022-09-20 | Commvault Systems, Inc. | Failover systems and methods for performing backup operations, including heterogeneous indexing and load balancing of backup and indexing resources |
US8495420B2 (en) | 2010-07-16 | 2013-07-23 | Commvault Systems, Inc. | Registry key federation systems and methods |
US8504869B2 (en) | 2010-07-16 | 2013-08-06 | Commvault Systems, Inc. | Kernel swapping systems and methods for recovering a network device |
US8935492B2 (en) | 2010-09-30 | 2015-01-13 | Commvault Systems, Inc. | Archiving data objects using secondary copies |
US8364652B2 (en) | 2010-09-30 | 2013-01-29 | Commvault Systems, Inc. | Content aligned block-based deduplication |
WO2012045021A2 (en) | 2010-09-30 | 2012-04-05 | Commvault Systems, Inc. | Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system |
US8572340B2 (en) | 2010-09-30 | 2013-10-29 | Commvault Systems, Inc. | Systems and methods for retaining and using data block signatures in data protection operations |
US9244779B2 (en) | 2010-09-30 | 2016-01-26 | Commvault Systems, Inc. | Data recovery operations, such as recovery from modified network data management protocol data |
US8954446B2 (en) | 2010-12-14 | 2015-02-10 | Comm Vault Systems, Inc. | Client-side repository in a networked deduplicated storage system |
US9020900B2 (en) | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US9021198B1 (en) | 2011-01-20 | 2015-04-28 | Commvault Systems, Inc. | System and method for sharing SAN storage |
US8849762B2 (en) | 2011-03-31 | 2014-09-30 | Commvault Systems, Inc. | Restoring computing environments, such as autorecovery of file systems at certain points in time |
US8719264B2 (en) | 2011-03-31 | 2014-05-06 | Commvault Systems, Inc. | Creating secondary copies of data based on searches for content |
US9323466B2 (en) | 2011-04-27 | 2016-04-26 | Commvault Systems, Inc. | System and method for client policy assignment in a data storage system |
US8954586B2 (en) | 2011-07-13 | 2015-02-10 | International Business Machines Corporation | Pre-provisioning virtual machines in a networked computing environment |
US8825862B2 (en) | 2011-08-01 | 2014-09-02 | International Business Machines Corporation | Optimization of resource provisioning in a networked computing environment |
US9189259B2 (en) | 2011-08-22 | 2015-11-17 | International Business Machines Corporation | Provisioning of virtual machine pools based on historical data in a networked computing environment |
US9250944B2 (en) | 2011-08-30 | 2016-02-02 | International Business Machines Corporation | Selection of virtual machines from pools of pre-provisioned virtual machines in a networked computing environment |
US9038063B2 (en) | 2011-09-07 | 2015-05-19 | International Business Machines Corporation | Determining virtual machine image pattern distributions in a networked computing environment |
US9116633B2 (en) | 2011-09-30 | 2015-08-25 | Commvault Systems, Inc. | Information management of virtual machines having mapped storage devices |
US9372827B2 (en) | 2011-09-30 | 2016-06-21 | Commvault Systems, Inc. | Migration of an existing computing system to new hardware |
US9461881B2 (en) | 2011-09-30 | 2016-10-04 | Commvault Systems, Inc. | Migration of existing computing systems to cloud computing sites or virtual machines |
US20130227352A1 (en) | 2012-02-24 | 2013-08-29 | Commvault Systems, Inc. | Log monitoring |
US9471578B2 (en) | 2012-03-07 | 2016-10-18 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US9298715B2 (en) | 2012-03-07 | 2016-03-29 | Commvault Systems, Inc. | Data storage system utilizing proxy device for storage operations |
US10353738B2 (en) | 2012-03-21 | 2019-07-16 | International Business Machines Corporation | Resource allocation based on social networking trends in a networked computing environment |
US9292815B2 (en) | 2012-03-23 | 2016-03-22 | Commvault Systems, Inc. | Automation of data storage activities |
US9063938B2 (en) | 2012-03-30 | 2015-06-23 | Commvault Systems, Inc. | Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files |
US9020890B2 (en) | 2012-03-30 | 2015-04-28 | Commvault Systems, Inc. | Smart archiving and data previewing for mobile devices |
US10157184B2 (en) | 2012-03-30 | 2018-12-18 | Commvault Systems, Inc. | Data previewing before recalling large data files |
US9529871B2 (en) | 2012-03-30 | 2016-12-27 | Commvault Systems, Inc. | Information management of mobile device data |
US8950009B2 (en) | 2012-03-30 | 2015-02-03 | Commvault Systems, Inc. | Information management of data associated with multiple cloud services |
US9286327B2 (en) | 2012-03-30 | 2016-03-15 | Commvault Systems, Inc. | Data storage recovery automation |
US9639297B2 (en) | 2012-03-30 | 2017-05-02 | Commvault Systems, Inc | Shared network-available storage that permits concurrent data access |
US9262496B2 (en) | 2012-03-30 | 2016-02-16 | Commvault Systems, Inc. | Unified access to personal data |
US9317337B2 (en) | 2012-04-13 | 2016-04-19 | International Business Machines Corporation | Utilizing software component metadata to provision virtual machines in a networked computing environment |
US9342537B2 (en) | 2012-04-23 | 2016-05-17 | Commvault Systems, Inc. | Integrated snapshot interface for a data storage system |
US9189167B2 (en) | 2012-05-31 | 2015-11-17 | Commvault Systems, Inc. | Shared library in a data storage system |
US20130326053A1 (en) * | 2012-06-04 | 2013-12-05 | Alcatel-Lucent Usa Inc. | Method And Apparatus For Single Point Of Failure Elimination For Cloud-Based Applications |
US8977672B2 (en) | 2012-06-08 | 2015-03-10 | Commvault Systems, Inc. | Intelligent scheduling for remote computers |
US8892523B2 (en) | 2012-06-08 | 2014-11-18 | Commvault Systems, Inc. | Auto summarization of content |
US9189170B2 (en) | 2012-06-12 | 2015-11-17 | Commvault Systems, Inc. | External storage manager for a data storage cell |
US9218374B2 (en) | 2012-06-13 | 2015-12-22 | Commvault Systems, Inc. | Collaborative restore in a networked storage system |
US20140025796A1 (en) | 2012-07-19 | 2014-01-23 | Commvault Systems, Inc. | Automated grouping of computing devices in a networked data storage system |
US9275086B2 (en) | 2012-07-20 | 2016-03-01 | Commvault Systems, Inc. | Systems and methods for database archiving |
US20140040580A1 (en) | 2012-07-31 | 2014-02-06 | Commvault Systems, Inc. | Administering a shared, on-line pool of data storage resources for performing data storage operations |
US8938481B2 (en) | 2012-08-13 | 2015-01-20 | Commvault Systems, Inc. | Generic file level restore from a block-level secondary copy |
US9026498B2 (en) | 2012-08-13 | 2015-05-05 | Commvault Systems, Inc. | Lightweight mounting of a secondary copy of file system data |
US9153049B2 (en) | 2012-08-24 | 2015-10-06 | International Business Machines Corporation | Resource provisioning using predictive modeling in a networked computing environment |
US9256622B2 (en) | 2012-12-21 | 2016-02-09 | Commvault Systems, Inc. | Systems and methods to confirm replication data accuracy for data backup in data storage systems |
US9390109B2 (en) | 2012-12-21 | 2016-07-12 | Commvault Systems, Inc. | Systems and methods to detect deleted files |
US20140181443A1 (en) | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Archiving using data obtained during backup of primary storage |
US20140181085A1 (en) | 2012-12-21 | 2014-06-26 | Commvault Systems, Inc. | Data storage system for analysis of data across heterogeneous information management systems |
US9223597B2 (en) | 2012-12-21 | 2015-12-29 | Commvault Systems, Inc. | Archiving virtual machines in a data storage system |
US9740702B2 (en) | 2012-12-21 | 2017-08-22 | Commvault Systems, Inc. | Systems and methods to identify unprotected virtual machines |
US10379988B2 (en) | 2012-12-21 | 2019-08-13 | Commvault Systems, Inc. | Systems and methods for performance monitoring |
US9633216B2 (en) | 2012-12-27 | 2017-04-25 | Commvault Systems, Inc. | Application of information management policies based on operation with a geographic entity |
US9069799B2 (en) | 2012-12-27 | 2015-06-30 | Commvault Systems, Inc. | Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system |
US9021452B2 (en) | 2012-12-27 | 2015-04-28 | Commvault Systems, Inc. | Automatic identification of storage requirements, such as for use in selling data storage management solutions |
US9633022B2 (en) | 2012-12-28 | 2017-04-25 | Commvault Systems, Inc. | Backup and restoration for a deduplicated file system |
US10346259B2 (en) | 2012-12-28 | 2019-07-09 | Commvault Systems, Inc. | Data recovery using a cloud-based remote data recovery center |
US9378035B2 (en) | 2012-12-28 | 2016-06-28 | Commvault Systems, Inc. | Systems and methods for repurposing virtual machines |
US20140196039A1 (en) | 2013-01-08 | 2014-07-10 | Commvault Systems, Inc. | Virtual machine categorization system and method |
US9336226B2 (en) | 2013-01-11 | 2016-05-10 | Commvault Systems, Inc. | Criteria-based data synchronization management |
US9760444B2 (en) | 2013-01-11 | 2017-09-12 | Commvault Systems, Inc. | Sharing of secondary storage data |
US9811423B2 (en) | 2013-01-11 | 2017-11-07 | Commvault Systems, Inc. | Partial file restore in a data storage system |
US20140201151A1 (en) | 2013-01-11 | 2014-07-17 | Commvault Systems, Inc. | Systems and methods to select files for restoration from block-level backup for virtual machines |
US9886346B2 (en) | 2013-01-11 | 2018-02-06 | Commvault Systems, Inc. | Single snapshot for multiple agents |
US9633033B2 (en) | 2013-01-11 | 2017-04-25 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
US9720787B2 (en) | 2013-01-11 | 2017-08-01 | Commvault Systems, Inc. | Table level database restore in a data storage system |
US9483489B2 (en) | 2013-01-14 | 2016-11-01 | Commvault Systems, Inc. | Partial sharing of secondary storage files in a data storage system |
US9286110B2 (en) | 2013-01-14 | 2016-03-15 | Commvault Systems, Inc. | Seamless virtual machine recall in a data storage system |
US9459968B2 (en) | 2013-03-11 | 2016-10-04 | Commvault Systems, Inc. | Single index to query multiple backup formats |
US9367702B2 (en) | 2013-03-12 | 2016-06-14 | Commvault Systems, Inc. | Automatic file encryption |
US9934103B2 (en) | 2013-04-16 | 2018-04-03 | Commvault Systems, Inc. | Managing multi-source restore operations in an information management system |
US9483361B2 (en) | 2013-05-08 | 2016-11-01 | Commvault Systems, Inc. | Information management cell with failover management capability |
US9483558B2 (en) | 2013-05-29 | 2016-11-01 | Commvault Systems, Inc. | Assessing user performance in a community of users of data storage resources |
US8949491B1 (en) * | 2013-07-11 | 2015-02-03 | Sandisk Technologies Inc. | Buffer memory reservation techniques for use with a NAND flash memory |
US20150074536A1 (en) | 2013-09-12 | 2015-03-12 | Commvault Systems, Inc. | File manager integration with virtualization in an information management system, including user control and storage management of virtual machines |
US9590886B2 (en) | 2013-11-01 | 2017-03-07 | Commvault Systems, Inc. | Systems and methods for differential health checking of an information management system |
US10949382B2 (en) | 2014-01-15 | 2021-03-16 | Commvault Systems, Inc. | User-centric interfaces for information management systems |
US9753812B2 (en) | 2014-01-24 | 2017-09-05 | Commvault Systems, Inc. | Generating mapping information for single snapshot for multiple applications |
US9639426B2 (en) | 2014-01-24 | 2017-05-02 | Commvault Systems, Inc. | Single snapshot for multiple applications |
US9495251B2 (en) | 2014-01-24 | 2016-11-15 | Commvault Systems, Inc. | Snapshot readiness checking and reporting |
US9632874B2 (en) | 2014-01-24 | 2017-04-25 | Commvault Systems, Inc. | Database application backup in single snapshot for multiple applications |
US10324897B2 (en) | 2014-01-27 | 2019-06-18 | Commvault Systems, Inc. | Techniques for serving archived electronic mail |
US10169121B2 (en) | 2014-02-27 | 2019-01-01 | Commvault Systems, Inc. | Work flow management for an information management system |
US9648100B2 (en) | 2014-03-05 | 2017-05-09 | Commvault Systems, Inc. | Cross-system storage management for transferring data across autonomous information management systems |
US9633026B2 (en) | 2014-03-13 | 2017-04-25 | Commvault Systems, Inc. | Systems and methods for protecting email data |
US10380072B2 (en) | 2014-03-17 | 2019-08-13 | Commvault Systems, Inc. | Managing deletions from a deduplication database |
US9633056B2 (en) | 2014-03-17 | 2017-04-25 | Commvault Systems, Inc. | Maintaining a deduplication database |
US9563518B2 (en) | 2014-04-02 | 2017-02-07 | Commvault Systems, Inc. | Information management by a media agent in the absence of communications with a storage manager |
US9823978B2 (en) | 2014-04-16 | 2017-11-21 | Commvault Systems, Inc. | User-level quota management of data objects stored in information management systems |
US9740574B2 (en) | 2014-05-09 | 2017-08-22 | Commvault Systems, Inc. | Load balancing across multiple data paths |
US9848045B2 (en) | 2014-05-27 | 2017-12-19 | Commvault Systems, Inc. | Offline messaging between a repository storage operation cell and remote storage operation cells via an intermediary media agent |
US9760446B2 (en) | 2014-06-11 | 2017-09-12 | Micron Technology, Inc. | Conveying value of implementing an integrated data management and protection system |
US20160004605A1 (en) | 2014-07-01 | 2016-01-07 | Commvault Systems, Inc. | Lightweight data reconstruction based on backup data |
US20160019317A1 (en) | 2014-07-16 | 2016-01-21 | Commvault Systems, Inc. | Volume or virtual machine level backup and generating placeholders for virtual machine files |
US20160019117A1 (en) | 2014-07-16 | 2016-01-21 | Commvault Systems, Inc. | Creating customized bootable image for client computing device from backup copy |
US20160019224A1 (en) | 2014-07-18 | 2016-01-21 | Commvault Systems, Inc. | File system content archiving based on third-party application archiving rules and metadata |
US10031917B2 (en) | 2014-07-29 | 2018-07-24 | Commvault Systems, Inc. | Efficient volume-level replication of data via snapshots in an information management system |
US9641388B2 (en) | 2014-07-29 | 2017-05-02 | Commvault Systems, Inc. | Customized deployment in information management systems |
US11249858B2 (en) | 2014-08-06 | 2022-02-15 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US10360110B2 (en) | 2014-08-06 | 2019-07-23 | Commvault Systems, Inc. | Point-in-time backups of a production application made accessible over fibre channel and/or iSCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host |
US9852026B2 (en) | 2014-08-06 | 2017-12-26 | Commvault Systems, Inc. | Efficient application recovery in an information management system based on a pseudo-storage-device driver |
US9774672B2 (en) | 2014-09-03 | 2017-09-26 | Commvault Systems, Inc. | Consolidated processing of storage-array commands by a snapshot-control media agent |
US10042716B2 (en) | 2014-09-03 | 2018-08-07 | Commvault Systems, Inc. | Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent |
US9405928B2 (en) | 2014-09-17 | 2016-08-02 | Commvault Systems, Inc. | Deriving encryption rules based on file content |
US9417968B2 (en) | 2014-09-22 | 2016-08-16 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9710465B2 (en) | 2014-09-22 | 2017-07-18 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9436555B2 (en) | 2014-09-22 | 2016-09-06 | Commvault Systems, Inc. | Efficient live-mount of a backed up virtual machine in a storage management system |
US10204010B2 (en) | 2014-10-03 | 2019-02-12 | Commvault Systems, Inc. | Intelligent protection of off-line mail data |
US9609058B2 (en) | 2014-10-13 | 2017-03-28 | Commvault Systems, Inc. | Storage management operations based on executable files served on demand to storage management components |
US9444811B2 (en) | 2014-10-21 | 2016-09-13 | Commvault Systems, Inc. | Using an enhanced data agent to restore backed up data across autonomous storage management systems |
US9575673B2 (en) | 2014-10-29 | 2017-02-21 | Commvault Systems, Inc. | Accessing a file system using tiered deduplication |
US10776209B2 (en) | 2014-11-10 | 2020-09-15 | Commvault Systems, Inc. | Cross-platform virtual machine backup and replication |
US9848046B2 (en) | 2014-11-13 | 2017-12-19 | Commvault Systems, Inc. | Archiving applications in information management systems |
US9648105B2 (en) | 2014-11-14 | 2017-05-09 | Commvault Systems, Inc. | Unified snapshot storage management, using an enhanced storage manager and enhanced media agents |
US9448731B2 (en) | 2014-11-14 | 2016-09-20 | Commvault Systems, Inc. | Unified snapshot storage management |
US20160142485A1 (en) | 2014-11-19 | 2016-05-19 | Commvault Systems, Inc. | Migration to cloud storage from backup |
US9983936B2 (en) | 2014-11-20 | 2018-05-29 | Commvault Systems, Inc. | Virtual machine change block tracking |
US9632713B2 (en) | 2014-12-03 | 2017-04-25 | Commvault Systems, Inc. | Secondary storage editor |
US20160162364A1 (en) | 2014-12-03 | 2016-06-09 | Commvault Systems, Inc. | Secondary storage pruning |
US9645891B2 (en) | 2014-12-04 | 2017-05-09 | Commvault Systems, Inc. | Opportunistic execution of secondary copy operations |
US9753816B2 (en) | 2014-12-05 | 2017-09-05 | Commvault Systems, Inc. | Synchronization based on filtered browsing |
US20160210306A1 (en) | 2015-01-15 | 2016-07-21 | Commvault Systems, Inc. | Managing structured data in a data storage system |
US20160210044A1 (en) * | 2015-01-15 | 2016-07-21 | Commvault Systems, Inc. | Intelligent hybrid drive caching |
US9952934B2 (en) | 2015-01-20 | 2018-04-24 | Commvault Systems, Inc. | Synchronizing selected portions of data in a storage management system |
US9588849B2 (en) | 2015-01-20 | 2017-03-07 | Commvault Systems, Inc. | Synchronizing selected portions of data in a storage management system |
US10108687B2 (en) | 2015-01-21 | 2018-10-23 | Commvault Systems, Inc. | Database protection using block-level mapping |
US9898213B2 (en) | 2015-01-23 | 2018-02-20 | Commvault Systems, Inc. | Scalable auxiliary copy processing using media agent resources |
US9904481B2 (en) | 2015-01-23 | 2018-02-27 | Commvault Systems, Inc. | Scalable auxiliary copy processing in a storage management system using media agent resources |
US10313243B2 (en) | 2015-02-24 | 2019-06-04 | Commvault Systems, Inc. | Intelligent local management of data stream throttling in secondary-copy operations |
US10956299B2 (en) | 2015-02-27 | 2021-03-23 | Commvault Systems, Inc. | Diagnosing errors in data storage and archiving in a cloud or networking environment |
US9575804B2 (en) | 2015-03-27 | 2017-02-21 | Commvault Systems, Inc. | Job management and resource allocation |
US9928144B2 (en) | 2015-03-30 | 2018-03-27 | Commvault Systems, Inc. | Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage |
US10339106B2 (en) | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US9934265B2 (en) | 2015-04-09 | 2018-04-03 | Commvault Systems, Inc. | Management of log data |
US10311150B2 (en) | 2015-04-10 | 2019-06-04 | Commvault Systems, Inc. | Using a Unix-based file system to manage and serve clones to windows-based computing clients |
US9710253B2 (en) | 2015-04-16 | 2017-07-18 | Commvault Systems, Inc. | Managing a software-patch submission queue |
US9904598B2 (en) | 2015-04-21 | 2018-02-27 | Commvault Systems, Inc. | Content-independent and database management system-independent synthetic full backup of a database based on snapshot technology |
US9639286B2 (en) | 2015-05-14 | 2017-05-02 | Commvault Systems, Inc. | Restore of secondary data using thread pooling |
US10324914B2 (en) | 2015-05-20 | 2019-06-18 | Commvalut Systems, Inc. | Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files |
US20160350391A1 (en) | 2015-05-26 | 2016-12-01 | Commvault Systems, Inc. | Replication using deduplicated secondary copy data |
US9563514B2 (en) | 2015-06-19 | 2017-02-07 | Commvault Systems, Inc. | Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs |
US10084873B2 (en) | 2015-06-19 | 2018-09-25 | Commvault Systems, Inc. | Assignment of data agent proxies for executing virtual-machine secondary copy operations including streaming backup jobs |
US10275320B2 (en) | 2015-06-26 | 2019-04-30 | Commvault Systems, Inc. | Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation |
US9766825B2 (en) | 2015-07-22 | 2017-09-19 | Commvault Systems, Inc. | Browse and restore for block-level backups |
US10192065B2 (en) | 2015-08-31 | 2019-01-29 | Commvault Systems, Inc. | Automated intelligent provisioning of data storage resources in response to user requests in a data storage management system |
US10101913B2 (en) | 2015-09-02 | 2018-10-16 | Commvault Systems, Inc. | Migrating data to disk without interrupting running backup operations |
WO2017048723A1 (en) | 2015-09-18 | 2017-03-23 | Commvault Systems, Inc. | Data storage management operations in a secondary storage subsystem using image recognition and image-based criteria |
US10489249B2 (en) | 2015-09-30 | 2019-11-26 | Commvault Systems, Inc. | Dynamic triggering of block-level backups based on block change thresholds and corresponding file identities using communication pathways between co-resident data agents |
US10176036B2 (en) | 2015-10-29 | 2019-01-08 | Commvault Systems, Inc. | Monitoring, diagnosing, and repairing a management database in a data storage management system |
US10353994B2 (en) | 2015-11-03 | 2019-07-16 | Commvault Systems, Inc. | Summarization of email on a client computing device based on content contribution to an email thread using classification and word frequency considerations |
US9639389B1 (en) | 2015-11-24 | 2017-05-02 | International Business Machines Corporation | Technology for dynamic resource pool master |
US10228962B2 (en) | 2015-12-09 | 2019-03-12 | Commvault Systems, Inc. | Live synchronization and management of virtual machines across computing and virtualization platforms and using live synchronization to support disaster recovery |
US10387266B2 (en) | 2015-12-23 | 2019-08-20 | Commvault Systems, Inc. | Application-level live synchronization across computing platforms including synchronizing co-resident applications to disparate standby destinations and selectively synchronizing some applications and not others |
US20170192868A1 (en) | 2015-12-30 | 2017-07-06 | Commvault Systems, Inc. | User interface for identifying a location of a failed secondary storage device |
US10684924B2 (en) | 2016-02-18 | 2020-06-16 | Commvault Systems, Inc. | Data restoration operations based on network path information |
US10452490B2 (en) | 2016-03-09 | 2019-10-22 | Commvault Systems, Inc. | Data management and backup of distributed storage environment |
US10296368B2 (en) | 2016-03-09 | 2019-05-21 | Commvault Systems, Inc. | Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount) |
US10565067B2 (en) | 2016-03-09 | 2020-02-18 | Commvault Systems, Inc. | Virtual server cloud file system for virtual machine backup from cloud operations |
US10503753B2 (en) | 2016-03-10 | 2019-12-10 | Commvault Systems, Inc. | Snapshot replication operations based on incremental block change tracking |
US10248174B2 (en) | 2016-05-24 | 2019-04-02 | Hedvig, Inc. | Persistent reservations for virtual disk using multiple targets |
US10664447B2 (en) | 2016-07-12 | 2020-05-26 | Commvault Systems, Inc. | Dynamic management of expandable cache storage for multiple network shares configured in a file server |
US10417102B2 (en) | 2016-09-30 | 2019-09-17 | Commvault Systems, Inc. | Heartbeat monitoring of virtual machines for initiating failover operations in a data storage management system, including virtual machine distribution logic |
US10540516B2 (en) | 2016-10-13 | 2020-01-21 | Commvault Systems, Inc. | Data protection within an unsecured storage environment |
US10162528B2 (en) | 2016-10-25 | 2018-12-25 | Commvault Systems, Inc. | Targeted snapshot based on virtual machine location |
US10152251B2 (en) | 2016-10-25 | 2018-12-11 | Commvault Systems, Inc. | Targeted backup of virtual machine |
US10210048B2 (en) | 2016-10-25 | 2019-02-19 | Commvault Systems, Inc. | Selective snapshot and backup copy operations for individual virtual machines in a shared storage |
US10389810B2 (en) | 2016-11-02 | 2019-08-20 | Commvault Systems, Inc. | Multi-threaded scanning of distributed file systems |
US10922189B2 (en) | 2016-11-02 | 2021-02-16 | Commvault Systems, Inc. | Historical network data-based scanning thread generation |
US11106632B2 (en) | 2016-11-16 | 2021-08-31 | Commvault Systems, Inc. | Dynamically configuring a proxy server using containerization for concurrent and/or overlapping backup, restore, and/or test operations |
US10678758B2 (en) | 2016-11-21 | 2020-06-09 | Commvault Systems, Inc. | Cross-platform virtual machine data and memory backup and replication |
US10838821B2 (en) | 2017-02-08 | 2020-11-17 | Commvault Systems, Inc. | Migrating content and metadata from a backup system |
US10740193B2 (en) | 2017-02-27 | 2020-08-11 | Commvault Systems, Inc. | Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount |
US10459666B2 (en) | 2017-03-03 | 2019-10-29 | Commvault Systems, Inc. | Using storage managers in respective data storage management systems for license distribution, compliance, and updates |
US10949308B2 (en) | 2017-03-15 | 2021-03-16 | Commvault Systems, Inc. | Application aware backup of virtual machines |
US11032350B2 (en) | 2017-03-15 | 2021-06-08 | Commvault Systems, Inc. | Remote commands framework to control clients |
US20180276022A1 (en) | 2017-03-24 | 2018-09-27 | Commvault Systems, Inc. | Consistent virtual machine replication |
US10891069B2 (en) | 2017-03-27 | 2021-01-12 | Commvault Systems, Inc. | Creating local copies of data stored in online data repositories |
US10776329B2 (en) | 2017-03-28 | 2020-09-15 | Commvault Systems, Inc. | Migration of a database management system to cloud storage |
US11108858B2 (en) | 2017-03-28 | 2021-08-31 | Commvault Systems, Inc. | Archiving mail servers via a simple mail transfer protocol (SMTP) server |
US10613939B2 (en) | 2017-03-28 | 2020-04-07 | Commvault Systems, Inc. | Backup index generation process |
US10599527B2 (en) | 2017-03-29 | 2020-03-24 | Commvault Systems, Inc. | Information management cell health monitoring system |
US10387073B2 (en) | 2017-03-29 | 2019-08-20 | Commvault Systems, Inc. | External dynamic virtual machine synchronization |
US11074138B2 (en) | 2017-03-29 | 2021-07-27 | Commvault Systems, Inc. | Multi-streaming backup operations for mailboxes |
US10949398B2 (en) | 2017-03-29 | 2021-03-16 | Commvault Systems, Inc. | Synchronization operations for network-accessible folders |
US11074140B2 (en) | 2017-03-29 | 2021-07-27 | Commvault Systems, Inc. | Live browsing of granular mailbox data |
US10552294B2 (en) | 2017-03-31 | 2020-02-04 | Commvault Systems, Inc. | Management of internet of things devices |
US11010261B2 (en) | 2017-03-31 | 2021-05-18 | Commvault Systems, Inc. | Dynamically allocating streams during restoration of data |
US11221939B2 (en) | 2017-03-31 | 2022-01-11 | Commvault Systems, Inc. | Managing data from internet of things devices in a vehicle |
US11294786B2 (en) | 2017-03-31 | 2022-04-05 | Commvault Systems, Inc. | Management of internet of things devices |
US10853195B2 (en) | 2017-03-31 | 2020-12-01 | Commvault Systems, Inc. | Granular restoration of virtual machine application data |
US10984041B2 (en) | 2017-05-11 | 2021-04-20 | Commvault Systems, Inc. | Natural language processing integrated with database and data storage management |
US10664352B2 (en) | 2017-06-14 | 2020-05-26 | Commvault Systems, Inc. | Live browsing of backed up data residing on cloned disks |
US11263088B2 (en) | 2017-09-14 | 2022-03-01 | Commvault Systems, Inc. | Distributed architecture for tracking content indexing |
US11036592B2 (en) | 2017-09-14 | 2021-06-15 | Commvault Systems, Inc. | Distributed content indexing architecture with separately stored file previews |
US10846266B2 (en) | 2017-09-14 | 2020-11-24 | Commvault Systems, Inc. | Distributed architecture for content indexing emails |
US10846180B2 (en) | 2017-09-14 | 2020-11-24 | Commvault Systems, Inc. | Distributed framework for task splitting and task assignments in a content indexing system |
US11086834B2 (en) | 2017-09-14 | 2021-08-10 | Commvault Systems, Inc. | Distributed framework for data proximity-based task splitting in a content indexing system |
US10740300B1 (en) | 2017-12-07 | 2020-08-11 | Commvault Systems, Inc. | Synchronization of metadata in a distributed storage system |
US10635546B2 (en) | 2017-12-07 | 2020-04-28 | Commvault Systems, Inc. | Synthesizing a restore image from one or more secondary copies to facilitate data restore operations to a file server |
US10742735B2 (en) | 2017-12-12 | 2020-08-11 | Commvault Systems, Inc. | Enhanced network attached storage (NAS) services interfacing to cloud storage |
US10831591B2 (en) | 2018-01-11 | 2020-11-10 | Commvault Systems, Inc. | Remedial action based on maintaining process awareness in data storage management |
US10795927B2 (en) | 2018-02-05 | 2020-10-06 | Commvault Systems, Inc. | On-demand metadata extraction of clinical image data |
US10592145B2 (en) | 2018-02-14 | 2020-03-17 | Commvault Systems, Inc. | Machine learning-based data object storage |
US10732885B2 (en) | 2018-02-14 | 2020-08-04 | Commvault Systems, Inc. | Block-level live browsing and private writable snapshots using an ISCSI server |
US10642886B2 (en) | 2018-02-14 | 2020-05-05 | Commvault Systems, Inc. | Targeted search of backup data using facial recognition |
US10848468B1 (en) | 2018-03-05 | 2020-11-24 | Commvault Systems, Inc. | In-flight data encryption/decryption for a distributed storage platform |
US10877928B2 (en) | 2018-03-07 | 2020-12-29 | Commvault Systems, Inc. | Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations |
US10761942B2 (en) | 2018-03-12 | 2020-09-01 | Commvault Systems, Inc. | Recovery point objective (RPO) driven backup scheduling in a data storage management system using an enhanced data agent |
US10789387B2 (en) | 2018-03-13 | 2020-09-29 | Commvault Systems, Inc. | Graphical representation of an information management system |
US11321183B2 (en) | 2018-05-02 | 2022-05-03 | Commvault Systems, Inc. | Multi-tiered backup indexing |
US10673943B2 (en) | 2018-05-02 | 2020-06-02 | Commvault Systems, Inc. | Network storage backup using distributed media agents |
US11249863B2 (en) | 2018-05-02 | 2022-02-15 | Commvault Systems, Inc. | Backup-based media agent configuration |
US10893103B2 (en) | 2018-07-25 | 2021-01-12 | Commvault Systems, Inc. | Distributed and scalable storage management using a storage-microservices server |
US10891304B2 (en) | 2018-07-25 | 2021-01-12 | Commvault Systems, Inc. | Distributed and scalable client-based storage management |
US10891198B2 (en) | 2018-07-30 | 2021-01-12 | Commvault Systems, Inc. | Storing data to cloud libraries in cloud native formats |
US11159469B2 (en) | 2018-09-12 | 2021-10-26 | Commvault Systems, Inc. | Using machine learning to modify presentation of mailbox objects |
US11016696B2 (en) | 2018-09-14 | 2021-05-25 | Commvault Systems, Inc. | Redundant distributed data storage system |
US11010258B2 (en) | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
US11200124B2 (en) | 2018-12-06 | 2021-12-14 | Commvault Systems, Inc. | Assigning backup resources based on failover of partnered data storage servers in a data storage management system |
US10860443B2 (en) | 2018-12-10 | 2020-12-08 | Commvault Systems, Inc. | Evaluation and reporting of recovery readiness in a data storage management system |
US20200192572A1 (en) | 2018-12-14 | 2020-06-18 | Commvault Systems, Inc. | Disk usage growth prediction system |
US11698727B2 (en) | 2018-12-14 | 2023-07-11 | Commvault Systems, Inc. | Performing secondary copy operations based on deduplication performance |
US11012508B2 (en) | 2018-12-14 | 2021-05-18 | Commvault Systems, Inc. | Region-based distributed information management system |
US11347707B2 (en) | 2019-01-22 | 2022-05-31 | Commvault Systems, Inc. | File indexing for virtual machine backups based on using live browse features |
US10872069B2 (en) | 2019-01-22 | 2020-12-22 | Commvault Systems, Inc. | File indexing for virtual machine backups in a data storage management system |
US10996974B2 (en) | 2019-01-30 | 2021-05-04 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data, including management of cache storage for virtual machine data |
US10768971B2 (en) | 2019-01-30 | 2020-09-08 | Commvault Systems, Inc. | Cross-hypervisor live mount of backed up virtual machine data |
US11126365B2 (en) | 2019-03-11 | 2021-09-21 | Commvault Systems, Inc. | Skipping data backed up in prior backup operations |
US11269732B2 (en) | 2019-03-12 | 2022-03-08 | Commvault Systems, Inc. | Managing structured data in a data storage system |
US11321184B2 (en) | 2019-03-26 | 2022-05-03 | Commvault Systems, Inc. | Streamlined secondary copy operations for data stored on shared file storage |
US11386102B2 (en) * | 2019-04-01 | 2022-07-12 | Sap Se | Release of latches for garbage collection |
US20200327017A1 (en) | 2019-04-10 | 2020-10-15 | Commvault Systems, Inc. | Restore using deduplicated secondary copy data |
US11100064B2 (en) | 2019-04-30 | 2021-08-24 | Commvault Systems, Inc. | Automated log-based remediation of an information management system |
US11494273B2 (en) | 2019-04-30 | 2022-11-08 | Commvault Systems, Inc. | Holistically protecting serverless applications across one or more cloud computing environments |
US11442623B2 (en) | 2019-05-02 | 2022-09-13 | Commvault Systems, Inc. | Faster browse of secondary copies of block-level data volumes |
US11463264B2 (en) | 2019-05-08 | 2022-10-04 | Commvault Systems, Inc. | Use of data block signatures for monitoring in an information management system |
US11269734B2 (en) | 2019-06-17 | 2022-03-08 | Commvault Systems, Inc. | Data storage management system for multi-cloud protection, recovery, and migration of databases-as-a-service and/or serverless database management systems |
US11308034B2 (en) | 2019-06-27 | 2022-04-19 | Commvault Systems, Inc. | Continuously run log backup with minimal configuration and resource usage from the source machine |
US11561866B2 (en) | 2019-07-10 | 2023-01-24 | Commvault Systems, Inc. | Preparing containerized applications for backup using a backup services container and a backup services container-orchestration pod |
US11042318B2 (en) | 2019-07-29 | 2021-06-22 | Commvault Systems, Inc. | Block-level data replication |
US20210037112A1 (en) | 2019-07-29 | 2021-02-04 | Commvault Systems, Inc. | Data storage system with rapid restore capability |
US11263173B2 (en) | 2019-07-30 | 2022-03-01 | Commvault Systems, Inc. | Transaction log index generation in an enterprise backup system |
US11513922B2 (en) | 2019-08-14 | 2022-11-29 | Commvault Systems, Inc. | Systems and methods for change block tracking for backing up changed data |
US11218450B2 (en) | 2019-09-11 | 2022-01-04 | Commvault Systems, Inc. | Data protection component scaling in a cloud-based data storage system |
US11256673B2 (en) | 2019-09-11 | 2022-02-22 | Commvault Systems, Inc. | Anomaly detection in deduplication pruning operations |
US11237935B2 (en) | 2019-09-11 | 2022-02-01 | Commvault Systems, Inc. | Anomaly detection in data protection operations |
US11663178B2 (en) | 2019-11-04 | 2023-05-30 | Commvault Systems, Inc. | Efficient implementation of multiple deduplication databases in a heterogeneous data storage system |
US20210173811A1 (en) | 2019-12-04 | 2021-06-10 | Commvault Systems, Inc. | Optimizing the restoration of deduplicated data stored in multi-node replicated file systems |
US11237924B2 (en) | 2019-12-11 | 2022-02-01 | Commvault Systems, Inc. | Dynamic resizing and re-distribution of destination data storage resources for bare metal restore operations in a data storage management system |
US11223535B2 (en) | 2019-12-31 | 2022-01-11 | Commvault Systems, Inc. | Smart network topology systems and methods |
US11467753B2 (en) | 2020-02-14 | 2022-10-11 | Commvault Systems, Inc. | On-demand restore of virtual machine data |
US11321188B2 (en) | 2020-03-02 | 2022-05-03 | Commvault Systems, Inc. | Platform-agnostic containerized application data protection |
US11422900B2 (en) | 2020-03-02 | 2022-08-23 | Commvault Systems, Inc. | Platform-agnostic containerized application data protection |
US11334442B2 (en) | 2020-03-10 | 2022-05-17 | Commvault Systems, Inc. | Management database long-term archiving to a recovery manager |
US11005935B1 (en) | 2020-03-10 | 2021-05-11 | Commvault Systems, Inc. | Using multiple streams with network data management protocol to improve performance and granularity of backup and restore operations from/to a file server |
US11442768B2 (en) | 2020-03-12 | 2022-09-13 | Commvault Systems, Inc. | Cross-hypervisor live recovery of virtual machines |
US11099956B1 (en) | 2020-03-26 | 2021-08-24 | Commvault Systems, Inc. | Snapshot-based disaster recovery orchestration of virtual machine failover and failback operations |
US11500669B2 (en) | 2020-05-15 | 2022-11-15 | Commvault Systems, Inc. | Live recovery of virtual machines in a public cloud computing environment |
US11687424B2 (en) | 2020-05-28 | 2023-06-27 | Commvault Systems, Inc. | Automated media agent state management |
US11327663B2 (en) | 2020-06-09 | 2022-05-10 | Commvault Systems, Inc. | Ensuring the integrity of data storage volumes used in block-level live synchronization operations in a data storage management system |
US11537959B2 (en) | 2020-06-16 | 2022-12-27 | Commvault Systems, Inc. | Dynamic computing progress tracker |
US11614883B2 (en) | 2020-07-17 | 2023-03-28 | Commvault Systems, Inc. | Distributed data storage system using erasure coding on storage nodes fewer than data plus parity fragments |
US11494417B2 (en) | 2020-08-07 | 2022-11-08 | Commvault Systems, Inc. | Automated email classification in an information management system |
US11500566B2 (en) | 2020-08-25 | 2022-11-15 | Commvault Systems, Inc. | Cloud-based distributed data storage system using block-level deduplication based on backup frequencies of incoming backup copies |
US11108861B1 (en) | 2020-08-26 | 2021-08-31 | Commvault Systems, Inc. | System for managing multiple information management cells |
US11570243B2 (en) | 2020-09-22 | 2023-01-31 | Commvault Systems, Inc. | Decommissioning, re-commissioning, and commissioning new metadata nodes in a working distributed data storage system |
US11789830B2 (en) | 2020-09-22 | 2023-10-17 | Commvault Systems, Inc. | Anti-entropy-based metadata recovery in a strongly consistent distributed data storage system |
US11656951B2 (en) | 2020-10-28 | 2023-05-23 | Commvault Systems, Inc. | Data loss vulnerability detection |
US11474753B2 (en) | 2020-10-30 | 2022-10-18 | Commvault Systems, Inc. | Systems and methods for backing up to a virtual tape library |
US11323513B1 (en) | 2021-01-22 | 2022-05-03 | Commvault Systems, Inc. | Geo-location-based data replication |
US11604706B2 (en) | 2021-02-02 | 2023-03-14 | Commvault Systems, Inc. | Back up and restore related data on different cloud storage tiers |
US11645175B2 (en) | 2021-02-12 | 2023-05-09 | Commvault Systems, Inc. | Automatic failover of a storage manager |
US11886921B2 (en) | 2021-03-04 | 2024-01-30 | International Business Machines Corporation | Serverless runtime container allocation |
US11574050B2 (en) | 2021-03-12 | 2023-02-07 | Commvault Systems, Inc. | Media agent hardening against ransomware attacks |
US11561978B2 (en) | 2021-06-29 | 2023-01-24 | Commvault Systems, Inc. | Intelligent cache management for mounted snapshots based on a behavior model |
US11954513B2 (en) | 2021-07-29 | 2024-04-09 | Commvault Systems, Inc. | Scalable recovery and/or migration to cloud- based custom-made virtual machines without using failed machines' credentials |
US11615147B2 (en) | 2021-08-23 | 2023-03-28 | Commvault Systems, Inc. | Mobile storage manager control application for managing a storage manager of an information management system |
US11593223B1 (en) | 2021-09-02 | 2023-02-28 | Commvault Systems, Inc. | Using resource pool administrative entities in a data storage management system to provide shared infrastructure to tenants |
US11809285B2 (en) | 2022-02-09 | 2023-11-07 | Commvault Systems, Inc. | Protecting a management database of a data storage management system to meet a recovery point objective (RPO) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4158235A (en) * | 1977-04-18 | 1979-06-12 | Burroughs Corporation | Multi port time-shared associative buffer storage pool |
US4422145A (en) * | 1981-10-26 | 1983-12-20 | International Business Machines Corporation | Thrashing reduction in demand accessing of a data base through an LRU paging buffer pool |
US4939644A (en) * | 1983-05-19 | 1990-07-03 | Data General Corporation | Input/output controller for controlling the sequencing of the execution of input/output commands in a data processing system |
JPS605358A (ja) * | 1983-06-24 | 1985-01-11 | Fujitsu Ltd | 記憶領域のセル管理制御方式 |
JPS6140643A (ja) * | 1984-07-31 | 1986-02-26 | Hitachi Ltd | システムの資源割当て制御方式 |
US4847754A (en) * | 1985-10-15 | 1989-07-11 | International Business Machines Corporation | Extended atomic operations |
US4747130A (en) * | 1985-12-17 | 1988-05-24 | American Telephone And Telegraph Company, At&T Bell Laboratories | Resource allocation in distributed control systems |
US4720850A (en) * | 1986-03-14 | 1988-01-19 | American Telephone And Telegraph Company At&T Bell Laboratories | Communication system control arrangement |
JPS62274348A (ja) * | 1986-05-23 | 1987-11-28 | Hitachi Ltd | メモリ管理方式 |
JPS63208957A (ja) * | 1987-02-26 | 1988-08-30 | Pfu Ltd | バツフアプ−ル管理方式 |
US4807111A (en) * | 1987-06-19 | 1989-02-21 | International Business Machines Corporation | Dynamic queueing method |
US5034993A (en) * | 1989-03-15 | 1991-07-23 | Motorola, Inc. | Method for allocating communication resources among RF communications systems |
-
1989
- 1989-06-26 US US07/371,563 patent/US5093912A/en not_active Expired - Lifetime
-
1990
- 1990-04-30 EP EP19900304688 patent/EP0405724A3/en not_active Withdrawn
- 1990-06-26 JP JP2165868A patent/JPH0743665B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007328813A (ja) * | 1998-05-08 | 2007-12-20 | Fujitsu Ltd | ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ |
Also Published As
Publication number | Publication date |
---|---|
US5093912A (en) | 1992-03-03 |
EP0405724A3 (en) | 1993-02-24 |
EP0405724A2 (en) | 1991-01-02 |
JPH0336642A (ja) | 1991-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0743665B2 (ja) | コンピユータ・システム資源管理方法 | |
US7975271B2 (en) | System and method for dynamically determining a portion of a resource for which a thread is to obtain a lock | |
US7797704B2 (en) | System and method for performing work by one of plural threads using a lockable resource | |
US5349656A (en) | Task scheduling method in a multiprocessor system where task selection is determined by processor identification and evaluation information | |
US7734879B2 (en) | Efficiently boosting priority of read-copy update readers in a real-time data processing system | |
JP4042945B2 (ja) | 共用資源を非同期的に更新するためのインターフェース・システムおよび方法 | |
EP0533805B1 (en) | Method for efficient non-virtual main memory management | |
US5946711A (en) | System for locking data in a shared cache | |
US7653791B2 (en) | Realtime-safe read copy update with per-processor read/write locks | |
US8495641B2 (en) | Efficiently boosting priority of read-copy update readers while resolving races with exiting and unlocking processes | |
JPH07191944A (ja) | 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法 | |
JPH08129457A (ja) | 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置 | |
JPH10326262A (ja) | コンピュータ使用可能媒体を含む製造品 | |
EP1014264B1 (en) | A system and method for facilitating safepoint synchronization in a multithreaded computer system | |
US5222238A (en) | System and method for shared latch serialization enhancement | |
US6715059B2 (en) | Methods and systems for a shared memory unit with extendable functions | |
JPH04155465A (ja) | ファイル共用方法 | |
JP3107094B2 (ja) | 共用バッファのロック期間短縮処理方法及び装置 | |
US5797138A (en) | Buffer management method using buffer locking mechanism in storage system for supporting multi-user environment | |
EP0216170A2 (en) | Storage management method and system in a multiprocessor environment | |
JP2787107B2 (ja) | バッファ制御方式及び装置 | |
JPH10307733A (ja) | システム間データ・パイピング・システム | |
Sciore et al. | Memory Management | |
JP2535568B2 (ja) | アプリケ―ションプログラムでの動的バッファ管理方式 | |
JP2926873B2 (ja) | 計算機システム |