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
Application number
JP2165868A
Other languages
English (en)
Other versions
JPH0336642A (ja
Inventor
マーガレツト・アン・ドング
リチヤード・ケント・トライバー
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH0336642A publication Critical patent/JPH0336642A/ja
Publication of JPH0743665B2 publication Critical patent/JPH0743665B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

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つのプロセスを有する場合、
両者とも、マルチプロセッシング環境で同時に実行でき
る。マルチプロセッサ内の各プロセッサもマルチプログ
ラミングできる。
したがって、マルチプロセッシング環境では、プロセス
の活動は、他のプロセスの活動とともにインタリーブさ
れてもよい。だから、そのプロセスは他のプロセスと
「同時に」実行していると言われる。さらに、複数のプ
ロセスが同時に正確に実行できる。異なるプロセッサで
同時に実行するプロセスは、「並行」に実行していると
言われる。
直列化:同時に、すなわち並行に実行するプロセスは、
データを同時に、同じ記憶装置内に書き込むことができ
る。その結果、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)に見ることがで
きる。
ラッチ:他のすべての直列化機構は「外来的」であると
言われる。その基礎的な2例は、「スピン・ラッチ」及
び「延期ラッチ」である。それらは、最初何らかの無意
味の値にセットされる単1の共用ラッチ変数を有するこ
とを含む。ラッチにより保護される活動を実行するため
に、まずプロセスはラッチ変数を非ゼロの値にうまくセ
ットすることにより、ラッチを「獲得」しなければなら
ない。ラッチ変数がすでに他のプロセスにより獲得され
ている場合は、要求プロセスは待たなければならない。
スピン・ラッチは、要求プロセス(及びプロセッサ)
が、それがラッチが「解放される」のを待っている時、
連続的に変数をテストする原因となるラッチである。こ
のテストが行なわれる間、プロセッサは「使用待ち」に
あると呼ばれ、他に何もすることはできない。この種の
ラッチは、それがプロセッサ時間を費やす時は、一般に
避けられるべきである。
他方、中断ラッチは、それがすでに保持されている場合
は、プロセスはラッチを使用待ちすることを要求しな
い。その代わりに、プロセスは「中断」し、ラッチが使
用可能になると、プロセッサが他のプロセスによって喚
起される(「再開される」)まで、プロセッサを放棄す
る。この方法はスピン・ラッチには好ましいが、それは
要求プロセスの中断と再開のトラックの保持に付随す
る、システム・オーバヘッドがあるために、注意深く使
用される。
マルチプロセッサ環境で動作する高性能プログラムにつ
いては、直列化機構の選択が重大になる可能性がある。
プログラム機能を、「メインライン」の機能とそうでな
い機能に分けることは有用である。メインラインの機能
はプログラムの本質であり、一方、非メインラインの機
能はメインライン活動を促進するか、または補足する補
助活動である。高性能プログラムでは、メインライン活
動は、典型的には繰り返して実行されるか、または時間
臨界性があり、そのため、CPU時間またはCPU資源から見
て高価な活動が避けられ、または非メインライン機能に
移動されることが必要である。一般に、メインラインの
外部直列化機構は高価であり、避けるべきである。
資源とバッファ:プログラムは、代表的には1つ、また
は複数の指定された反復機能を実行し、そして資源がこ
れらの機能を実行し、またはその関連目的を表示するこ
とを要求できる。プログラムは、そのような資源のため
に記憶装置を獲得することができ、その記憶装置をとも
ない。通常「資源プール」と呼ばれる所に集める。資源
プールを作る場合、多重処理環境内のプログラムは、プ
ール内の個々の資源へのアクセスを直列化できなければ
ならない。さらに、プログラムは普通動的にプールを
「拡張し」、さらに「短縮」する必要がある。すなわ
ち、プール内の資源の数を増減させる必要がある。
次の議論は、特定の例における資源プーリングの必要性
を述べ、また、プールの管理の際に生じるいくつかの論
点を議論する。プログラム(「受信側」)は、他のプロ
グラム(「送信側」)により生成されるデータを得る。
受信側は、送信側からのデータを保持するために、記憶
の一部を獲得することができる。この目的に使用される
コンピュータ記憶機構の各部分は、普通「バッファ」と
呼ばれ、その用語がその中で使われる資源の一型式であ
る。
データは、その到着時にバッファ内に置かれ、それが使
われるまでそこに保持される。受信側がバッファ内でデ
ータを使用すると、バッファは、処理用にさらにデータ
を受信できる。一度使われると、バッファは、新しいデ
ータを受信する際の再利用に役立つ。
データが処理できるよりも速く受信される場合、多くの
バッファが意外に早く獲得されることもある。プログラ
ムは通常、バッファを「バッファ・プール」すなわち資
源プールと呼ばれる論理構造の中に構成する。マルチプ
ロセッサ環境では、バッファ・プールは、プログラムに
属する任意のプロセスによって使用可能であり、そして
プログラムは、そのプロセスがバッファ・プール内でバ
ッファを使用する方法を制御しなければならない。通
常、プログラムは、2つのプロセスが同時に同じバッフ
ァを得るような方法で、バッファ・プールからバッファ
を「得たり」そして「解放したり」するための方法を、
プロセスに提供する。
バッファ・プール内バッファへのアクセスの制御に加え
て、またプログラムは、バッファ・プール内に含むバッ
ファの数も決定しなければならない。バッファ・プール
内にバッファがほとんど含まれていない場合は、プログ
ラムは、バッファを使い果たすことがある。プログラム
は、プログラムが使用を期待されているバッファの最大
値を決定することにより、この問題の回避を試みること
ができる。プログラムが、通常その数の僅かなパーセン
テージのみを使用する場合には、最大サイズのバッファ
・プールを割り当てることにより、プログラムは、他の
プログラムによって代わりに使用され得るコンピュータ
記憶装置を不必要に予約する。しかし、バッファ・プー
ルの最大期待サイズが非常に小さい場合は、プログラム
はバッファを使い果たす。
そのプロセスの1つが記憶すべきデータを有する時に、
プログラムがバッファを使い果たした場合は、プロセス
は正常に機能を果たすことができず、プログラムは直ち
に活動しなければならない。たとえば、プログラムは実
行を終了することがある。この「解決法」は、プログラ
ム実行の継続が会社や他の企業の操業に対して極めて重
大である大部分の場合に、受け入れることはできない。
代りに、プログラムはプロセスのデータを無駄にするこ
ともある。しかし、データが再生不可能である場合、ま
たは企業にとって非常に重大である場合、この解決法も
受け入れられない。
プログラムは、バッファが記憶用に使用可能になるまで
待つことができる。これは、他のプロセスが、記憶用バ
ッファを必要とするプロセスで、並行にバッファからデ
ータを用い、すぐに終了することが期待され、それを解
放する所で実行することができる。またこのアプローチ
がとられる場合、記憶用バッファを必要とするすべての
プロセスは、バッファからのデータを用いたプロセスが
終了するまで、待たなければならないことになる。しか
し、データを利用したこれらのプロセス自体が、記憶バ
ッファを待つプロセスによって活動を待っている場合、
プログラムは「行き詰まり」、仕事を継続できなくな
る。この理由で、他のプロセスを待って再利用のために
バッファを解放することは、受け入れられない。
IBM出版GC28-1154、「MVS/拡張アーキテクチュア監視サ
ービス及びマクロ命令(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)」は、バッファ・プールからの
バッファの動的割当てを記載しているが、プールの拡張
及び短縮をアドレスしていない。
1983年12月20日発行の、IBM社に譲り受けられたサッコ
(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行は、そのよ
うな知識が、「数学的最適化あるいは線型プログラミン
グ用のモデルとして公式化するには、あまりに複雑で不
明瞭である」ということを述べている。
資源プール・マネジャのもう1つのクラスは外来的直列
化機構、典型的にラッチを用いて、1つのプロセスが、
一度に、資源プールが定義されているマネジャの制御領
域を参照または、修正することを保証する。この型式の
直列化は、プロセスが、他のプロセスに関係なく、制御
領域を参照できるようにし、したがって、プール短縮及
び同様な活動が、比較的簡単な方法で実行されるように
する。しかし、この代替アプローチは、外来的直列化機
構を用いたいくつかの欠点、特にスピン・ラッチによっ
てこうむるプロセッサ浪費時間、及び延期ラッチによる
追加命令オーバヘッドから被害を受ける。さらに、プロ
セスを矛盾する所では、プロセッサ命令コストは劇的に
増す。最後に、本質的に直列化(外来的及び固有の両方
共)は、コンピュータの性能を向上するためにますます
使用されつつある並行プロセッシングの利用を禁じてい
る。
C.発明が解決しようとする課題 したがって、資源プールを劇的に拡張し、さらに短縮す
るための方法を必要とする。この方法は、多重処理シス
テム内で同時に実行するプロセスの資源の要件に合致し
なればならず、さらに直列化の利用を最小限にしなけれ
ばならない。
D.課題を解決するための手段 資源プールを動的に、すなわち資源に対する要求に応じ
て、拡張及び短縮するための方法が開示されている。資
源は、1つのマスタ・プール22から使用するために割り
当てられる。利用可能な資源のすべてのプールは、拡張
プールを生成することにより、さらにその資源をマスタ
・プールに追加することにより拡張される。マスタ・プ
ールは、システム内で利用可能な資源の数の限界まで理
論的に拡張することができる。
プールを動的に短縮するために、まず拡張プールの1つ
を選んで解放する(FREE POOL 66)。解放プールが所有
するが、まだマスタ・プールにある(すなわち使用中で
ない)これらの資源は、拡張プール移動され、それらの
再利用を防ぐ。解放プールが所有する使用中の資源は、
それらが、マスタ・プールへの代わりに、拡張プールへ
戻るように、それらのホーム・アドレス52を変えてラベ
ル付けされる。一度そのようなすべての資源が解放拡張
プールに戻されると、それは削除され、それによって、
資源のすべてのプールを短縮する。
記憶バッファ及びバッファ・プールを操作するための手
順の擬似コード実施例が含まれる。
E.実施例 本発明は、コンピュータ利用データ処理システムにおけ
る離散的資源のマスタ・プールを拡張・短縮するための
コンピュータ実施方法を含む。マスタ・プールは少なく
とも1つの追加資源を含む拡張プールを作成し、さら
に、マスタ・プールに拡張プール資源を追加することに
より拡張される。マスタ・プールは、拡張プールで生ず
る任意の本割当て資源をマスタ・プールから、拡張プー
ルへまず転送することにより短縮される。次に拡張プー
ル内で生ずる資源は、(それらがもはや使用されていな
い時のように)割当て解除されると、これらの資源は、
拡張プールに転送される。拡張プールが、その中で生じ
る資源のすべてを含む時、すなわち、その資源のどれも
割り当てられないままか、使用されていない時、それは
削除できる。資源プールの短縮は、外来的または他の直
列化を用いる方法が効果的に使用できても、極小命令に
よるように、固有に直列化されることが好ましい。
概観 本発明の好ましい実施例は、マルチプログラミングまた
はマルチプロセッシング環境で資源のプールを処理する
ための、プログラムにより使用される方法である。これ
は、資源のメインライン使用を非能率にすることなく、
さらに他のラッチ、またはメインライン内の他の外来的
直列化機構の使用を必要とすることなく、資源プールを
拡大・短縮する。したがって、この方法は、能率的に操
作できるべき高性能プログラムによって、さらに割込み
禁止のモードで実行中(すなわち、それらが割り込まれ
ない時)に資源を得て、解放できるべきプログラムによ
って、使用可能である。
資源がバッファである所では、ほとんどのプログラム
は、大きな記憶装置をとり、それをバッファに細別する
ことにより、バッファ・プールの記憶装置を獲得するコ
ストを(実行される時間と実行される命令の数に関し
て)低減させる。これは、バッファ・プール中の各バッ
ファに対して個別システム・コールを行なうより安価で
あり、バッファ・プールを初めに作成するためと、プー
ルを後で拡張するための両方に使用される。
プログラムがシステムから記憶の1部分を得る場合、部
分的な記憶の解放、実行される時間と、命令の両方で高
価になるため、その部分全部を一度に戻すべきである。
さらに、少しずつの記憶の解放は、システムの記憶が断
片的になる原因となる。
最後に、プログラムは、プロセスがその記憶装置内のど
のバッファも使っていない場合だけ、バッファ記憶を解
放することに注意しなければならない。これは、すべて
に解放された記憶を使用するためのプロセスによる試み
が、プロセスを異常に終わらせたり、エラー状態をひき
起こす可能性があるからである。
第1図に示すように、バッファ・プール20は、マスタ・
プール22、及びいつでもマスタ・プールに追加できる拡
張プールのセット24の中に準備される。マスタ・プール
22は、ラベル付きボックスのセット(バッファなどの資
源)を含むトレイとして考えてよい。各拡張プール24
は、ラベル付きボックスの追加トレイとして考えてよ
い。資源プールは、拡張トレイを作成しマスタ・トレイ
上にそのすべての箱を積み重ねることにより拡張され
る。
各ボックスは、それをどのトレイが所有し、そしてその
使用が終わった後、マスタ・トレイに戻されるべきこと
を示すために、ラベル付けされる。すべてのボックス
は、マスタ・トレイ内にきちんと積み重ねられ、そこで
主プログラムのプロセスはそれらを取り、使用すること
ができる。マスタ・トレイ内のボックスは、追加に適応
するのに必要な高さまで積み重ねることができる。
ボックスを必要とするプロセスは、マスタ・トレイから
それを得て、直ちにそれを使用できる。
ボックスは、他のプロセスがそれらを再使用できる前
に、(空いた)マスタ・トレイに戻されなければならな
い。このために、ボックスを使用していたプロセスは、
ボックスの上のラベルを読み、ラベルが何を表すかに基
づいて、ボックスをその正しいトレイに戻す。
マスタ・トレイが、主プログラムのプロセスが必要とす
るより多くのボックスを保持する時は、資源プールは、
除去(解除)のために、拡張トレイの1つを選択するこ
とにより、(その瞬間に)動的に減少(短縮)される。
そのトレイが所有するすべてのボックスは、たとえそれ
らのいくつかが使用されていても、再びラベル付けされ
る。それからマスタ・トレイは、除去(解放)されてい
る拡張トレイが所有するボックスのために探査され、そ
してどれかが見つかった場合は、それらは拡張トレイの
上に積み重ねられる。そのトレイのボックスのどれかが
まだ使用されている場合は、それらの新しいラベルは、
それらが終える時、それらを拡張トレイに戻すよう該当
プロセスに知らせることになる。
除去のために選択された拡張トレイが、一度そのボック
スのすべてを含むと、それとすべてのそのボックスは削
除され、それによって資源プール内のボックス(資源)
の数を減ずる。
資源プールを力学的に拡大、短縮するための操作が準備
されるので本方法は、資源プールのサイズを変更するた
めに、主プログラムが停止されたりリセットされること
を要求する他の資源管理技術の限界と非能率性を防ぐ。
本方法は、期待される、あるいは普通の処理要件に基づ
く初期の資源プール・サイズを割り当て、さらに追加資
源を動的に割当て、不要の資源を割当て解除することに
より、条件変更に適合する。
最も重要なことは、本方法は、メインライン処理に影響
することなく、マルチプログラミング及びマルチプロセ
ッシング環境内で資源プールを短縮することである。こ
れは取得及び解放操作時に、外来的直列化機構を避ける
ことにより実行され、それによって、メインライン論理
通路内の使用中待ち及び延期の費用を避ける。この結
果、本方法は非常に能率的であり、割込み禁止されたプ
ロセスで使用することもできる。
また、本方法を用いたプログラムが資源を使い果すこと
もある。たとえば、それは、コンピュータで使用できる
よりも多くの資源を用いることがあり、またどれだけの
追加資源が必要であるかを誤算することもある。そのよ
うな状態は例外として取り扱うべきで、本方法の範囲外
である。
さらに、本方法は、共用設備の不公平な利用により生じ
る資源不足の問題を提出しない。たとえば、データを他
のプログラムに送るプログラムは、レシーバのバッファ
・プールをオーバーランすることもある。そのような状
態は、過剰制御方法を用いて処理されなければならず、
これも本発明の範囲外にある。
バッファ、及び、バッファ・プールにおける基礎的動作 本発明の好ましい実施例は、バッファプール及び個々の
バッファを操作するための動作を提供する。しかし本発
明は、均一な資源のどんなセットにも適用できることを
理解されたい。
次の第1項は、バッファ・プールのための適当な構成を
述べている。これは、バッファとプールにおける動作を
説明する項目が続く。BUILD POOLは、システムから物理
的資源を獲得することにより、バッファの拡張プールを
作成し、それによって、資源プール全体を拡張する。GE
T BUFFERは、要求するプロセスにより使用するために、
プールから単一のバッファを要求する。FREE BUFFER
は、前のGET BUFFER要求で得られた単一の特定バッファ
をバッファ・プールに戻す。FREE POOLは、バッファの
拡張プールを解放し、それらのいくつかはまだ、使用中
の場合もある。DELETE POOLは、一度そのバッファのす
べてが解放され、そのプールに戻されると、一度解放さ
れた拡張プールを削除し、それによって資源プール全体
を短縮する。
個々のバッファを獲得したり、解放したりするGET BUFF
ER及びFREE BUFFERの動作は、メインライン動作であ
る。すべてがバッファ・プール上で動作する残りの動作
は、メインラインではない。
バッファ・プールの編成 バッファ・プールには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である場合もあり、ない場合
もある。
作成された第1バッファ・プール26は、マスタ・バッフ
ァ・プール22であり、そのプール制御要素28は、「マス
タ・プール制御要素」36として周知である。主プログラ
ムが、追加バッファを必要とする場合は、それはBUILD
POOL動作を実行することにより「拡張バッファ・プー
ル」を作成できる。拡張バッファ・プール24のプール制
御要素28は、マスタ・プール制御要素36上に固定された
一連の「拡張プール・リスト」38の中に編成される。
拡張バッファ用のホームは、通常はマスタ・バッファ・
プール22である。これは、マスタ・プール22内で利用可
能なバッファ30の数を増加させることにより、バッファ
・プール20を拡張する効果があり、マスタ・プール22か
らバッファがそれらを使う必要のあるプロセスにより取
られ、戻される。拡張プール24が解放される時、そのバ
ッファ30のホーム・アドレスは、マスタ・プール22から
解放された拡張プール24へ、すなわちバッファ所有のバ
ッファ・プールへ変更される。
プロセスにより使用されていないバッファ30は、マスタ
・プール22内に保持され、「解放」状態にあると考えら
れる。これらの解放バッファは、マスタ・プール22また
は拡張プール24のどちらかによって所有されるが、すべ
てはマスタ・プールをそれらのホーム・アドレスとして
維持する。解放バッファの制御要素32は、マスタ・プー
ル制御要素36上にある一連の解放バッファ・リスト40内
に保持される。各拡張プール24は、同様に、連なった解
放バッファ・リスト42を有するが、それは空でありプー
ルがFREE POOL動作により解放されるまで、そのまま留
まる。
プロセスがバッファ30を必要とする時、それはGEL BUFF
ER動作60を実行し、GET BUFFER動作60は、第1バッファ
制御要素32を、マスタ・プールの解放バッファ・リスト
40から除去し、関連バッファ30を要求プロセスに利用可
能にする。したがって関連バッファは「使用中」と言わ
れる。
プロセスがバッファ30で終了される時、FREE BUFFER動
作64は、関連したバッファ制御要素32を、バッファのホ
ーム・プールに属する解放バッファ・リスト上に再待合
せするために使用される。通常、バッファはマスタの解
放バッファ・リスト40に戻される。しかしながら、バッ
ファの所有プールが、解放された拡張プール24である場
合は、バッファのホーム・アドレスは変更され、バッフ
ァはマスタ・プール22への代わりに、その解放された拡
張プール24の解放バッファ・リスト42へ戻される。した
がって、その解放された拡張プールのバッファのすべて
が、一度その自由バッファ・リスト42に戻されると、プ
ール24は、物理的にDELETE POOL動作によって解放する
ことができ、それによってバッファ・プール20全体を短
縮する。
第3図は、プール制御要素28及びバッファ制御要素32の
データ構造を示す。これは、本発明を使用にするために
は必要ないが、マスタ・プール22及び拡張プール24の両
方のプール制御要素に、同じフォーマットが使用され
る。
本方法のバッファの編成及びデータ構造を述べたが、次
の項では、これらの構造について実行された動作を詳細
にそして本方法のメインライン動作内でラッチを必要と
せずに、動的にいかに実行できるかについて、言及す
る。
バッファ・プールの作成−BUILD POOL58a、58b バッファ・プールは、BUILD POOL動作58a、58bにより、
作成(構成)され、その動作は、どのバッファが使用さ
れる前でも、主プログラムにより要求されなければなら
ない。同じ動作(BUILD POOL)が、マスタ・プール22及
び拡張プール24の両方を作成するために使用され、それ
らの構造のわずかの違いは、BUILD POOL内で処理され
る。BUILD POOL58a、58b、及びFREE POOL66の両方は、
まれな動作であると想定され、したがってメインライン
機能ではない。
マスタ・プール22は、任意の拡張プール24が作成される
前にも作成される。それは、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フィールド内に記憶
される。
マスタ・プール22が所有するバッファのリストは、マス
タ・プール解放バッファ・リスト40に対し、同様に作成
される。所有されたバッファ・リスト34は、マスタ・プ
ール制御要素36のFIRST OWNEDフィールド50内に記憶さ
れているリスト・ヘッドで、プールのバッファ制御要素
BUF CTL32のNEXT OWNEDフィールド48を用いて連鎖され
ている。
各バッファのホーム・アドレスは、バッファの制御要素
BUF CTL32のHOME POOLフィールド52内に記憶され、前記
のように、初期にはマスタ・プール制御要素36のアドレ
スにセットされる。各バッファ制御要素32のBUFFER ADD
Rフィールド54は、要素の関連バッファ30のアドレスに
セットされる。
最後に、マスタ・プール制御要素36のアドレスは、バッ
ファ・プールまたは、バッファ上の操作によって使用す
るために、ANCHOR.MASTERフィールド内に記憶される。
BUILD POOLが拡張バッファ・プールを作成するために要
求されると、データ構造は、マスタ・プール制御要素36
について述べたものと同様に作成される。しかし、バッ
ファ制御要素32が、プールの解放バッファ・リスト42を
形成するために連結された後で、そのリストは単一の極
小操作で、Compare-Double-and-Swap命令を用いたマス
タ・プール制御要素の解放バッファ・リスト40に転送さ
れる。
バッファ制御要素32のHOME POOLフィールド内に再び記
憶されたこれらの拡張プール24のバッファに対するホー
ム・アドレスは、マスタ・プール制御要素36のアドレス
にセットされる。拡張プールの使用中カウントBUSY CT
は、プール内のバッファの数にセットされ、プールのバ
ッファのどれも解放されていないことを表示する(前述
の拡張プールの再解放及び削除参照)。
拡張プール制御要素28は、拡張プール・リスト38のヘッ
ドに追加される。このリストは、拡張プール制御要素28
のNEXT POOLフィールド56を介して連鎖され、そのヘッ
ドは、マスタ・プール制御要素36のNEXT POOL内に配置
される。
BUILD POOL動作は、極小命令を用いて、それを他の並行
(同時)BUILD POOL及びFREE POOLプロセスから保護す
るために直列化されてもよい。これらの操作は稀で、非
メインラインであるから、ラッチのような外来的直列化
のどんな型式でも使用することができ、また使用される
型式は、設計選択の問題である。
拡張所有のバッファ・リストは、マスタ・プール22のバ
ッファのために、前記のように作成される。これは、た
とえバッファのいくつかがマスタの解放バッファ・リス
ト22から除去されても、拡張プールの構成要素のすべて
を、そのプール制御要素28から直接位置決めする方法を
提供する。
要するに、BUILD POOL動作は、マスタ・プール制御要素
36がプール処理用の固定具として役立つ、バッファ・プ
ール26を作成する。マスタ・プール制御要素36は、バッ
ファ・サービスがプログラムによって必要とされる限
り、削除されない。バッファ・サービスを使用するプロ
セスは、そのようなプロセスが拡張プールを直接引用し
ないので、同時に削除されているバッファ・プールをア
ドレスする試みに関係する必要は決してない。
BULID POOL58a、58b用の擬似コード: 第2A表及び第2B表は、BUILD POOL手段58a、58bの実施を
従来の擬似コードで示す。
400-404行で、記憶はシステムから獲得され、副次的に
割り当てられる。これらの記憶領域は、2進法の0に初
期化されると仮定する。それから、各バッファ制御要素
BUF CTL32が、フォーマットされる(405-416行)。
バッファは各BUF CTL要素(407行)に割り当てられ、各
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)内に見ることができる。
拡張プールが要求された場合、428-433行は、418-427行
の代りに実行される。まず、拡張の全解放バッファ・リ
スト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である。本発明で、これらの動作は、延期、使用
中待ち、あるいは、デッドロックを生ずるラッチなどの
より高価な外来的直列化機構に依らないで、極小命令を
用いて直列化できる。
プロセスがバッファを要求する時、それは、GET BUFFER
手順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へのアク
セスを得る。
多重プロセスの直列化に使用され、禁止された割込みに
よるその実行を含み、並行してバッファを得るために探
索するラッチはない。代わりに、マスタ解放バッファ・
リスト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がバッファの外にあ
ることを誤って報告することはあり得るが、極めて稀で
ある。
プロセスが、バッファ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内に置かれる。
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をチェックすることである。ほとんど
の場合、この方法は、追加命令をバッファ・サービスを
用いるメインライン・プロセスに加えない。
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行)の位置決め(トークン)
と共に要求プロセスに戻される。
マスタ解放バッファ・リスト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
行)に戻される。
またストップオーバ・リストが空の場合(509行)、GET
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行により得られ
る。
601行で、BUF CTL要素32は、バッファのホーム・プール
の解放バッファ・リストのヘッド(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行により処理される。
Buffer Poolの解放−FREE POOL66 プログラムが、動的に拡張されたバッファ・プール20に
追加されたバッファのいくつかの使用をもはや要求しな
い場合、それはプールを短縮するためにFREE POOL手順6
6を用いる。FREE POOL動作66は、そのプールが所有する
バッファ30が、要求が出された時に他のプロセスによっ
て使用中であっても、拡張バッファ・プール24の削除を
生じる結果となる潜在的な2つの段階のプロセスを開始
する。
動的バッファ・プール短縮の第1段階で、FREE POOL手
順66は、最も最近作成された拡張プール24を選択し、そ
のバッファ30をさらにGET BUFFER要求に対して利用でき
なくする。解放されたバッファ・プールに属するバッフ
ァが他のプロセスによって使用中でない場合は、プール
は直ちに削除される。さもなければ、FREE POOL動作66
は終了し、解放された拡張プール24の削除を第2段階に
残す。
第2段階では、一度そのバッファ30のすべてがそれらを
使っていたプロセスにより解放されると、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内に固定される。
各バッファ制御要素BUF CTL32のホーム・プール、HOME
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に戻されない。
それらの正規の処理のコースで、これらの残りのバッフ
ァを取ったり解放したりするために、他のプロセスに頼
るよりもむしろ、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に)
加えられる。
これらの3つの段階は、解放された拡張プールの使用中
カウントがゼロ(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への追加は、(つまり極小命令によって)
直列化されなければならない。
解放されたプール・リスト72は、まだ物理的に削除でき
ない解放された拡大プール24のトラックを保持し、FREE
POOL操作66がいつでも実行できるようにする。解放さ
れたプール24からのバッファ30をすでに使用しているプ
ロセスは、そのバッファのプールに関連した物理的記憶
装置が、プール関連のすべてのバッファが解放されるま
で解放することはできないので、妨害されないでそれを
続けることができる。
FLUSH MASTER POOL70a、70b操作は、それが2つの並行
なプロセスにより同時に実行されることを防ぐために直
列化される。これが行なわれない場合、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により極小的に行
なわれる。
プール制御要素POOL CTL28が除去された場合(701行)
には、関連した拡張プール24は解放される。まず、プー
ル所有のバッファ・リスト34が走査されて、HOME POOL
フィールド52(703-705行)内に記憶された各拡張バッ
ファのホーム・プールをリセットする。次に拡張バッフ
ァは、第6A表及び第6B表のFLUSH MASTER POOL70a、70b
手順を用いたマスタ解放バッファ・リスト40(706行)
から除去される。
拡張プール24が静止される場合(707-709a行)は、プー
ル・バッファ30は解放され、物理的にそれらを削除し、
それによってバッファ・プール20を短縮する。この場
合、マスタ・プールの使用中カウントBUSY CTは、ユー
ザ・プロセスがマスタ解放バッファ・リスト40から除去
したが、解放拡張プールの解放バッファ・リスト42に戻
されたバッファの数だけ減少される。
解放プール24が静止されていない場合(710-711行)
は、その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から解放された拡張プール・バ
ッファのすべてを除去する。
ラッチが獲得されて(801行)、同時FREE POOL及びDELE
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行)は終わる。
プール制御要素POOL CTL28が、FLUSH MASTER POOL手順
に消される場合は、ゼロ値が、特定の制御要素の拡張プ
ール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により更新されない。
802-817行の除去ループが完了した後、マスタ・プール
のストップオーバ・リスト上のバッファは、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に追加され、解放プール及び削除
プールにより使用される。
バッファ・プールの削除−DELETE POOL68 DELETE POOL68は、FREE POOL動作66の時に削除できなか
った解放された拡張プール24のために、バッファ・プー
ル20の動的短縮の第2段階を実行する。単一タイマ駆動
プロセスは、そのようなプールを解放されたプール・リ
スト72から独立して除去し、それらの関連バッファのす
べてが解放されてしまうと、それらの記憶装置を解放す
る。
DELETE POOL68は、解放プール24を監視し、静止された
解放プールを検出する責任がある。各タイマ間隔で、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が完全に静止されている場合のみ実施
されるので、主プログラムのメインライン・プロセスと
矛盾しない。
DELETE POOL操作68は、解放されたが折よい仕方で静止
しなかった拡張プール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を走査
する。
DELETE POOL68は、解放された拡張リスト72からPOOL CT
L要素を除去する唯一のプロセスであるから、待ち行列
を処理する標準的技術を、そのような要素のリストから
解放された拡張プール制御要素POOL CTL28のどこでも除
去するために使うことができる。
解放プール・リスト72のPOOL CTL要素28に関連した拡張
プール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要素をリストのヘッドに
追加する場合に、起こりうる。
POOL CTL要素の解放されたプール24が静止されない場合
は、903-915行のDELETE POOLの走査ループ内のプールに
関しては活動はない。
前記のように、マスタ解放バッファ・リスト全体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命令のよ
うな極小命令を用いて固有に直列化される。
ADD POOL76用の擬似コード: 第8表は、従来の擬似コード内のADD POOL手順76の実施
例を示す。
ADD POOL76は、プール制御要素POOL CTL28をそのような
要素のリストに追加する。そのリストは、プール制御要
素のNEXT POOLフィールド56を通って連鎖される。所与
のPOOL CTL要素28、及び所与のリストに対し、ADD POOL
は、要素をリストのヘッドに追加する。先にリストのヘ
ッドにあった要素は新しい要素(1003行)に連鎖され、
新しい要素はリストのヘッド(1005行)に置かれる。
新しい要素は、現在リスト・ヘッダが並行プロセスによ
り変えられていない場合のみ、リストに追加される。こ
の極小動作は、IBM 370 Compare-and-Swap命令などの極
小的命令を用いて達成できる。極小動作が失敗した場合
は、ADD POOLは、1002行から再試行することにより、新
しいリストのヘッドに要素を追加する試みを繰り返す
(1007行)。
REMOVE POOL75用の擬似コード: 第9表は、従来の擬似コード内のREMOVE POOL手順75の
実施例を示す。
REMOVE POOLは、そのような要素のリストから、プール
制御要素POOL CTL28を極小的に除去する。
1100-1105行は、リスト・ヘッダに対し、インデックス
(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要素は戻され
る。
極小UNCHAIN POOL動作88が失敗し(1109行)、1つある
いは複数の同時プロセスがリストを変えたことを表示す
る場合は、REMOVE POOL75は、動作を再試行することに
より(1110行)、現行リスト・ヘッダを除去し、そして
戻す試みを繰り返す。
UNCHAIN POOL88用の擬似コード: 第10表は、従来の擬似コードのUNCHAIN POOL手順88の実
施例を示す。
UNCHAIN POOL88は、REMOVE POOL75によって使用され、
リストのヘッドから要素を除去し、さらに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行)、この表示をリクエスタに戻す。
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を通して連鎖される。
第11A表の1300-1306行は、BUFHEADERデータ・タイプを
定義し、それは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動作を呼ぶ。
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を呼ぶ。
ADD BUFFER LIST(1313-1324行)は、連鎖BUF CTL要素
の新しいリストを現存リストのヘッドに追加する。新し
いリストの最初及び最後の要素は、パラメータとして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行)
に追加する試みを繰り返す。
REMOVE BUFFER AND COUNT及びREMOVE BUFFER用の擬似コ
ード:第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手順動作を呼ぶ。
REMOVE BUFFER AND COUNT(1403-1421行)は、POOL CTL
要素のリストから第1BUF CTL要素を極小的に除去する。
それに渡される所与のリスト・ヘッダ「アンカー」につ
いては、REMOVE BUFFER AND COUNTは、リスト内に次の
要素を新しいリスト・ヘッダ(1413行)にすることによ
り、リスト上の第1(ヘッダ)要素を除去することを試
みる。古いヘッダ要素は、現在のリスト・ヘッダが並列
プロセスにより変えられない場合にのみ、リストから除
去される。これはIBM 370 Compare-Double-and-Swap命
令により直列化される。
使用中カウントBUSY CTが、同じ極小動作で入力カウン
トN(1411行)だけ増分され、そして複数のプロセスが
リストから要素を除去できるので、INDEXカウントも同
じ動作で(1412行)増分される。
極小動作が失敗した場合(1417行)は、REMOVE BUFFE
R、AND COUNTは、その手順を再試行することにより(14
18行)リストから第1要素を除去する試みを繰り返す。
リスト内に要素がない場合は、空のBUF CTL要素が戻さ
れる(1407-1408行)。さもなければ、除去された要素
が戻される(1420行)。
F.発明の効果 以上説明したように、この発明によれば、コンピュータ
・システムにおいて資源プールの拡張がはかられる。
【図面の簡単な説明】
第1図は、本発明の好ましい実施例によるマスタ・プー
ル、使用中の活動拡張プール、及び削除を待っている解
放拡張プールを有するバッファ・プール連鎖を示すブロ
ック図である。 第2図は、第1図のバッファ・プールの代表的な1つを
示すブロック図である。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭60−5358(JP,A) 特開 昭62−274348(JP,A) 特開 昭63−208957(JP,A)

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ化されたデータ処理システム
    において使用のため割り当て可能なコンピュータ資源の
    マスター・プールを、該データ処理システムの処理によ
    って縮小または拡大するための方法であって、 (a)(i) 少なくとも1つの追加的なコンピュータ
    資源を含む拡張プールを作成し、 (ii) 上記マスター・プールに対し、該拡張プールの
    コンピュータ資源を追加することによって上記マスター
    ・プールを拡張する段階と、 (b)(i) 上記マスター・プールから上記拡張プー
    ルへ、上記拡張プールに由来する非割り当てコンピュー
    タ資源を転送し、 (ii) 上記拡張プールに由来するコンピュータ資源の
    割り当て解除時に、該拡張プールに由来するコンピュー
    タ資源を上記拡張プールに転送し、 (iii) 上記拡張プールが、上記拡張プールに由来す
    る全てのコンピュータ資源を含むときに、上記拡張プー
    ルを削除することによって上記マスター・プールを縮小
    する段階とを有する、 コンピュータ・システム資源管理方法。
  2. 【請求項2】コンピュータ化されたデータ処理システム
    において使用のため割り当て可能なコンピュータ資源の
    マスター・プールを、該データ処理システムの処理によ
    って管理するための方法であって、 (a) 少なくとも1つの追加的なコンピュータ資源を
    含む拡張プールを作成する段階と、 (b) 上記拡張プールのコンピュータ資源を、上記マ
    スター・プールに連鎖させる段階と、 (c) 上記データ処理システムで実行中の処理によっ
    て使用するために、上記マスター・プールから上記コン
    ピュータ資源を割り当てる段階と、 (d) 上記処理によって上記コンピュータ資源を開放
    する段階と、 (e) 活動拡張プールに属する上記開放されたコンピ
    ュータ資源を上記マスター・プールに戻す段階と、 (f) 開放拡張プールに属する上記上記開放されたコ
    ンピュータ資源を上記拡張プールに戻す段階と、 (g) 開放拡張プールに属する非割り当てコンピュー
    タ資源を、上記マスター・プールから上記拡張プールに
    転送する段階と、 (h) 開放拡張プールが、該開放拡張プールに属する
    全ての資源を含むときに、該開放拡張プールを削除する
    段階を有する、 コンピュータ・システム資源管理方法。
JP2165868A 1989-06-26 1990-06-26 コンピユータ・システム資源管理方法 Expired - Lifetime JPH0743665B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007328813A (ja) * 1998-05-08 2007-12-20 Fujitsu Ltd ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ

Families Citing this family (469)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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) 計算機システム