JPH0336642A - コンピユータ・システム資源管理方法 - Google Patents

コンピユータ・システム資源管理方法

Info

Publication number
JPH0336642A
JPH0336642A JP2165868A JP16586890A JPH0336642A JP H0336642 A JPH0336642 A JP H0336642A JP 2165868 A JP2165868 A JP 2165868A JP 16586890 A JP16586890 A JP 16586890A JP H0336642 A JPH0336642 A JP H0336642A
Authority
JP
Japan
Prior art keywords
pool
buffer
master
list
resources
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.)
Granted
Application number
JP2165868A
Other languages
English (en)
Other versions
JPH0743665B2 (ja
Inventor
Margaret A Dong
マーガレツト・アン・ドング
Richard K Treiber
リチヤード・ケント・トライバー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
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 (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、計算機利用のデータ処理に関し、特に、多重
プロセスが、同時に実行されるシステム内のバッファな
どのコンピュータ・システム資源の管理に関する。
B、従来の技術 マルチプロセッシング: −コンピュータ・プログラム
は、コンピュータ命令シーケンスから構成され、命令の
単一順序、または「プロセス」と呼ぶ命令の独立シーケ
ンス・セットとして実行可能である。コンピュータ資源
利用を獲得するために、プログラムは、普通、コンピュ
ータの「オペレーティング・システム」に対し、「シス
テム・コール」と呼ぶ命令を発する。オペレーティング
・システムは、コンピュータ・メモリ、あるいは、ハー
ドウェア装置などのコンピュータ資源利用を管理するプ
ログラムである。プログラムによって要求される資源は
、その排他的利用のために予約され、各々が、オペレー
ティング・・システムの制御に戻る(「解放される」)
まで、再利用のために使用できない。システム資源は制
限され、システム・コールは実行するには比較的高価で
あるから、プログラム(特に、高容量あるいは高性能プ
ログラム)は、それらを制御された方法で使用する。
プログラム及びプロセスは、多くのコンピュータ環境で
動作する。「多重プログラミング」環境では、2つある
いは複数のプログラムあるいはプロセスの実行は、プロ
セッサ上でインタリーブされる。その場合、実行されて
いるプロセスは、「割り込まれ」でもよい。つまり、コ
ンピュータはプロセスの実行を停止し、他のプロセスを
実行するなど、他のワークを実行する。割り込まれたプ
ロセスにおける次の命令が実行される前に、いくらか時
間があってもよい。この環境におけるいくつかのプロセ
スは、割込みに対して「使用禁止」されることができる
。このようなプロセスは割り込まれず、シーケンスとし
て最初から最後まで実行することになる。
「マルチプロセッシング」環境では、コンピュータは複
数のプロセッサから構成され、各プロセッサは、並行で
プログラムあるいはプロセスを実行することができる。
たとえば、プログラムが2つのプロセスを有する場合、
両者とも、マルチプロセッシング環境で同時に実行でき
る。マルチプロセッサ内の各プロセッサもマルチプログ
ラミングできる。
したがって、マルチプロセッシング環境では、プロセス
の活動は、他のプロセスの活動とともにインタリーブさ
れてもよい。だから、そのプロセスは他のプロセスと「
同時に」実行していると言われる。さらに、複数のプロ
セスが同時に正確に実行できる。異なるプロセッサで同
時に実行するプロセスは、「並行」に実行していると言
われる。
直列化: 同時に、すなわち並行に実行するプロセスは
、データを同時に、同じ記憶装置内に書き込むことがで
きる。その結果、1つのプロセスは、他のプロセスが書
き込んだものを破壊することになる。この種のエラーを
防ぐため、そのようなプロセスは、プロセスを「直列」
にするために1つあるいは複数の「直列化機構」を使用
しなければならない。これらの機構は、いくつかはnQ
的でかつ周知であり、シーケンスは実際には、いつでも
割込まれる可能性があるが、あたかもそれらが割り込ま
れないシーケンスで達成されるように、プログラムが臨
界活動を完了できるようにする。また、それらは、それ
がプログラムが資源へのアクセスを直列化でき、資源が
一度に唯1つのプロセスによって使われるようにするこ
とができる。この目的のために、「固有の」直列化機構
及び、「外部からの」直列化機構を区別する。
固有の直列化機構は1181(370Compare−
and−Swap (C3) NあるいはX Comp
are−Double−and−Swap(CDS)命
令などの「極小命令」のみを含む機構である。極小命令
は、分割できないことを保証するコンピュータ・ハード
ウェア命令である。そのような命令を実行するプロセス
は、それが、他のプロセスから妨害されずに命令を完了
できることが保証されている。たとえば比較及びスワッ
プ(Compare−and−Swap )は、プロセ
スが記憶装置のワードを安全に更新できるようにする。
命令は、プログラムが、記憶装置内のワードの期待内容
に注目し、命令実行時に、記憶装置の期待内容が現行内
容と一致する場合にのみ、記憶が変えられることを要求
できるようにする。比較(Compare )及びスワ
ップ(Swap)は、−度1つのプロセスが「比較」を
実行してしまうと、関連「スワップ」が実行されるまで
、他のプロセスは変更を実行できないという意味で、分
割できない活動である。
これらの命令並びにサンプル・コード化適用業務の説明
は、rIBMシステム/370オペレーション拡張アー
キテクチュア原理(IBK System/370Ex
tended Architecture Pr1nc
iples of 0peration(出版番号5A
22−7085)に見ることができる。
ラッチ: 他のすべての直列化機構は「外来的」である
と言われる。その基礎的な2例は、「スピン・ラッチ」
及び「延期ラッチ」である。それらは、最初何らかの無
意味の値にセットされる単1の共用ラッチ変数を有する
ことを含む。ラッチにより保護される活動を実行するた
めに、まずプロセスはラッチ変数を非ゼロの値にうまく
セットすることにより、ラッチを「獲得」しなければな
らない。ラッチ変数がすでに他のプロセスにより獲得さ
れている場合は、要求プロセスは待たなければならない
スピン・ラッチは、要求プロセス(及びプロセッサ)が
、それがラッチが「解放される」のを待っている時、連
続的に変数をテストする原因となるラッチである。この
テストが行なわれる間、プロセッサは「使用待ち」にあ
ると呼ばれ、他に何もすることはできない。この種のラ
ッチは、それがプロセッサ時間を費やす時は、一般に避
けられるべきである。
他方、中断ラッチは、それがすでに保持されている場合
は、プロセスはラッチを使用待ちすることを要求しない
。その代わりに、プロセスは「中断」シ、ラッチが使用
可能になると、プロセッサが他のプロセスによって喚起
される(「再開される」)まで、プロセッサを放棄する
。この方法はスピン・ラッチには好ましいが、それは要
求プロセスの中断と再開のトラックの保持に何間する、
システム・オーバヘッドがあるために、注意深く使用さ
れる。
マルチプロセッサ環境で動作する高性能プログラムにつ
いては、直列化機構の選択が重大になる可能性がある。
プログラム機能を、「メインライン」の機能とそうでな
い機能に分けることは有用である。メインラインの機能
はプログラムの本質であり、一方、非メインラインの機
能はメインライン活動を促進するか、または補足する補
助活動である。高性能プログラムでは、メインライン活
動は、典型的には繰り返して実行されるか、または時間
臨界性があり、そのため、CPU時間またはCPU資源
から見て高価な活動が避けられ、または非メインライン
機能に移動されることが必要である。一般に、メインラ
インの外部直列化機構は高価であり、避けるべきである
亘遅よlユLL: プログラムは、代表的には1つ、ま
たは複数の指定された反復機能を実行し、そして資源が
これらの機能を実行し、またはその関連目的を表示する
ことを要求できる。プログラムは、そのような資源のた
めに記憶装置を獲得することかでき、その記憶装置をと
もない、通常「資源プール」と呼ばれる所に集める。資
源プールを作る場合、多重処理環境内のプログラムは、
プール内の個々の資源へのアクセスを直列化できなけれ
ばならない。さらに、プログラムは普通動的にプールを
「拡張し」、さらに「短縮」する必要がある。すなわち
、プール内の資源の数を増減させる必要がある。
次の議論は、特定の例における資源プーリングの必要性
を述べ、また、プールの管理の際に生じるいくつかの論
点を議論する。プログラム(「受信側」)は、他のプロ
グラム(「送信側」)により生成されるデータを得る。
受信側は、送信側からのデータを保持するために、記憶
の一部を獲得することができる。この目的に使用される
コンピュータ記憶機構の各部分は、普通「バッファ」と
呼ばれ、その用語がその中で使われる資源の一型式であ
る。
データは、その到着時にバッファ内に置かれ、それが使
われるまでそこに保持される。受信側がバッフ1内でデ
ータを使用すると、バッファは、処理用にさらにデータ
を受信できる。−度使われると、バッファは、新しいデ
ータを受信する際の再利用に役立つ。
データが処理できるよりも速く受信される場合、多くの
バッファが意外に早く獲得されることもある。プログラ
ムは通常、ハッファヲ「バッファ・プール」すなわち資
源プールと呼ばれる論理構造の中に構成する。マルチプ
ロセッサ環境では、バッファ・プールは、プログラムに
属する任意のプロセスによって使用可能であり、そして
プログラムは、そのプロセスがバッファ・プール内でバ
ッファを使用する方法を制御しなければならない。通常
、プログラムは、2つのプロセスが同時に同じバッファ
を得るよつな方法で、バッフトプールからバッファを「
得たり」そして「解放したり」するための方法を、プロ
セスに提供する。
バ、フトプール内バッファへのアクセスの制御に加えて
、またプログラムは、バッファ・プール内に含むバッフ
ァの数も決定しなければならない。バッファ・プール内
にバッファがほとんど含まれていない場合は、プログラ
ムは、バッファを使い果たすことがある。プログラムは
、プログラムが使用を期待されているバッファの最大値
を決定することにより、この問題の回避を試みることが
できる。プログラムが、通常その数の僅かなパーセンテ
ージのみを使用する場合には、最大サイズのバッファ・
プールを割り当てることにより、プログラムは、他のプ
ログラムによって代わ、りに使用され得るコンピュータ
記憶装置を不必要に予約スル。しかし、パッフトプール
の最大期待サイズが非常に小さい場合は、プログラムは
バッファを使い果たす。
そのプロセスの1つが記憶すべきデータを有する時に、
プログラムがバッファを使い果たした場合は、プロセス
は正常に機能を果たすことができず、プログラムは直ち
に活動しなければならない。
たとえば、プログラムは実行を終了することがある。こ
の「解決法」は、プログラム実行の継続が会社や他の企
業の操業に対して極めて重大である大部分の場合に、受
は入れることはできない。代すニ、プログラムはプロセ
スのデータを無駄にすることもある。しかし、データが
再生不可能である場合、または企業にとって非常に重大
である場合、この解決法も受は入れられない。
プログラムは、バッファが記憶用に使用可能になるまで
待つことができる。これは、他のプロセスが、記憶用バ
ッファを必要とするプロセスで、並行にバッファからデ
ータを用い、すぐに終了することが期待され、それを解
放する所で実行することができる。もしこのアプローチ
がとられる場合、記憶用バッファを必要とするすべての
プロセスは、バッファからのデータを用いたプロセスが
終了するまで、待たなければならないことになる。
しかし、データを利用したこれらのプロセス自体力、記
憶バッファを待つプロセスによって活動を待っている場
合、プログラムは「行き詰まり」、仕事を継続できなく
なる。この理由で、他のプロセスを待って再利用のため
にバッファを解放することは、受は入れられない。
IBM出版GC28−1154、rMVs/拡張アーキ
テクチュア監視サービス及びマクロ命令(MVS/Ex
tended Architectures 5upe
rvisorServices and Macro 
In5tructions) J  は)セル2プール
の生成、割当て、拡張、及び削除を説明している。セル
・プールの短縮は説明していない。
1979年6月12日発行の、バローズ社(Burro
ughs Corporation)に譲り受けられ1
コール(Call)他の米国特許第4158235号明
細書、「マルチ・ポート時分割連想バッファ記憶プール
(Multi Port Time−shared A
s5ociative BufferStorage 
Pool) J  は、バッファ・プールからのバッフ
ァの動的割当てを記載しているが、プールの拡張及び短
縮をアドレスしていない。
1983年12月20日発行の、IBM社に譲り受けら
れたサップ(Sacco )他の米国特許第44221
45号明細書は、rLRUピージング・バッファ・プー
ルを介したデータベースの要求アクセスにおけるスラッ
シングの削減(Thrash ingPeductio
n  in  De+*and  Accessing
  of  a  Data  Basethroug
h an LRV Paging Buffer Po
ol)J  は)またバッファ・プールの拡張または短
縮をアドレスしないで、バッファを割り当て、さらに利
用する方法を記載している。
1988年2月23日発行の日立製作所に譲り受けられ
たマスイ(Masui)他の米国特許第4727487
号明細書「コンピュータ・システムにおける資源割当て
法(Resource AllocationMeth
od in a Computer System)J
  は、蓄積された経験的知識に基づく資源割当て法を
記載している。マスイは、機械室内/動作環境での資源
割当てを議論し、(人間の)システム・オペレータによ
ってのみ現在周知のいくつかの知識を代替するための方
法を、提案している。第4コラム67行ないし、第5コ
ラム2行は、そのような知識が、「数学的最適化あるい
は線形プログラミング用のモデルとして公式化するには
、あまりに複雑で不明瞭である」ということを述べてい
る。
資源プール・マネジャのもう1つのクラスは外来的直列
化機構、典型的にはラッチを用いて、1つのプロセスが
、−度に、資源プールが定義されているマネジャの制御
領域を参照または、修正することを保証する。この型式
の直列化は、プロセスが、他のプロセスに関係なく、制
御領域を参照できるよつにし、したがって、プール短縮
及び同様な活動が、比較的簡単な方法で実行されるよう
にする。しかし、この代替アプローチは、外来的直列化
機構を用いたいくつかの欠点、特にスピン・ラッチによ
ってこうむるプロセッサ浪費時間、及び延期ラッチによ
る追加命令オーバヘッドから被害を受ける。さらに、プ
ロセスを矛盾する所では、プロセッサ命令コストは劇的
に増す。最後に、本質的に直列化(外来的及び固有の両
方共)は、コンピュータの性能を向上するためにますま
す使用されつつある並行プロセッシングの利用を禁じて
いる。
C0発明が解決しようとする課題 したがって、資源プールを劇的に拡張し、さらに短縮す
るための方法を必要とする。この方法は、多重処理シス
テム内で同時に実行するプロセスの資源の要件に合致し
なればならず、さらに直列化の利用を最小限にしなけれ
ばならない。
00課題を解決するための手段 資源プールを動的に、すなわち資源に対する要求に応じ
て、拡張及び短縮するための方法が開示されている。資
源は、1つのマスタ・プール22から使用するために割
り当てられる。利用可能な資源のすべてのプールは、拡
張プールを生成することにより、さらにその資源をマス
タ・プールに追加することにより拡張される。マスタ・
プールは、システム内で利用可能な資源の数の限界まで
理論的に拡張することができる。
プールを動的に短縮するために、まず拡張プールの1つ
を選んで解放する(FREE POOL 66)。解放
プールが所有するが、まだマスタ・プールにある(すな
わち使用中でない)これらの資源は、拡張プール移動さ
れ、それらの再利用を防ぐ。解放プールが所有する使用
中の資源は、それらが、マスタ・プールへの代わりに、
拡張プールへ戻るように、それらのホーム・アドレス5
2を変えてラベル付けされる。−度そのようなすべての
資源が解放拡張プールに戻されると、それは削除され、
それによって、資源のすべてのプールを短縮する。
記憶バッフ1及びバッファ・プールを操作するための手
順の擬似コード実施例が含まれる。
E、実施例 本発明は、コンピュータ利用データ処理システムにおけ
る離散的資源のマスタ・プールを拡張・短縮するための
コンピュータ実施方法を含む。マスタ・プールは少なく
とも1つの追加資源を含む拡張プールを作成し、さらに
、マスタ・プールに拡張プール資源を追加することによ
り拡張される。
マスタ・プールは、拡張プールで生ずる任意の本割当て
資源をマスタ・プールから、拡張プールへまず転送する
ことにより短縮される。次に拡張プール内で生ずる資源
は、(それらがもはや使用されていない時のように)割
当て解除されると、これらの資源は、拡張プールに転送
される。拡張プールが、その中で生じる資源のすべてを
含む時、すなわち、その資源のどれも割り当てられない
ままか、使用されていない時、それは削除できる。資源
プールの短縮は、外来的または他の直列化を用いる方法
が効果的に使用できても、極小命令によるよろに、固有
に直列化されることが好ましい。
夏型 本発明の好ましい実施例は、マルチプログラミングまた
はマルチプロセッシング環境で資源のプールを処理する
ための、プログラムにより使用される方法である。これ
は、資源のメインライン使用を非能率にすることなく、
さらに他のラッチ、またはメインライン内の他の外来的
直列化機構の使用を必要とすることなく、資源プールを
拡大・短縮する。したがって、この方法は、能率的に操
作できるべき高性能プログラムによって、さらに割込み
禁止のモードで実行中(すなわち、それらが割り込まれ
ない時)に資源を得て、解放できるべきプログラムによ
って、使用可能である。
資源がバッファである所では、はとんどのプログラムは
、大きな記憶装置をとり、それをバッファに細別するこ
とにより、バッファ・プールの記憶装置を獲得するコス
トを(実行される時間と実行される命令の数に関して)
低減させる。これは、バッファ・プール中の各バッファ
に対して個別システム・コールを行なうより安価であり
、バッファ・プールを初めに作成するためと、プールを
後で拡張するための両方に使用される。
プログラムがシステムから記憶の1部分を得る場合、部
分的な記憶の解放、実行される時間と、命令の両方で高
価になるため、その部分全部を一度に戻すべきである。
さらに、少しずつの記憶の解放は、システムの記憶が断
片的になる原因となる。
最後に、プログラムは、プロセスがその記憶装置内のど
のバッファも使っていない場合だけ、バッフ・ア記憶を
解放することに注意しなければならない。これは、すで
に解放された記憶を使用するためのプロセスによる試み
が、プロセスを異常に終わらせたり、エラー状態をひき
起こす可能性があるからである。
第1図に示すように、バッファ・プール20は、マスタ
・プール22、及びいつでもマスタ・プールに追加でき
る拡張プールのセット24の中に準備される。マスタ・
ブール22は、ラベル付きボックスのセット(バッファ
などの資源)を含むトレイとして考えてよい。各拡張プ
ール24は、ラベル付きボックスの追加トレイとして考
えてよい。
資源プールは、拡張トレイを作成しマスタ・トレイ上に
そのすべての箱を積み重ねることにより拡張される。
各ボックスは、それをとのトレイが所有し、そしてその
使用が終わった後、マスタ・トレイに戻されるべきこと
を示すために、ラベル付けされる。
すべてのボックスは、マスタ・トレイ内にきちんと積み
重ねられ、そこで主プログラムのプロセスはそれらを取
り、使用することができる。マスタ・トレイ内のボック
スは、追加に適応するのに必要な高さまで積み重ねるこ
とができる。
ボックスを必要とするプロセスは、マスタ・トレイから
それを得て、直ちにそれを使用できる。
ボックスは、他のプロセスがそれらを再使用できる前に
、(空いた)マスタ・トレイに戻されなければならない
。このために、ボックスを使用していたプロセスは、ボ
ックスの上のラベルを読み、ラベルが何を表すかに基づ
いて、ボックスをその正しいトレイに戻す。
マスタ・トレイが、主プログラムのプロセスが必要とす
るより多くのボックスを保持する時は、資源プールは、
除去(解除)のために、拡張トレイの1つを選択するこ
とにより、(その瞬間に)動的に減少(短縮)される。
そのトレイが所有するすべてのボックスは、たとえそれ
らのいくつかが使用されていても、再びラベル付けされ
る。それからマスタ・トレイは、除去(解放)されてい
る拡張トレイが所有するボックスのために探査され、そ
してどれかが見つかった場合は、それらは拡張トレイの
上に積み重ねられる。そのトレイのボックスのどれかが
まだ使用されている場合は、それらの新しいラベルは、
それらが終える時、それらを拡張トレイに戻すよう該当
プロセスに知らせることになる。
除去のために選択された拡張トレイが、−度そのボック
スのすべてを含むと、それとすべてのそのボックスは削
除され、それによって資源プール内のボックス(資源)
の数を減する。
資源プールを力学的に拡大、短縮するための操作が準備
されるので本方法は、資源プールのサイズを変更するた
めに、主プログラムが停止されたリリセットされること
を要求する他の資源管理技術の限界と非能率性を防ぐ。
本方法は、期待される、あるいは普通の処理要件に基づ
く初期の資源プール・サイズを割り当て、さらに追加資
源を動的に割当て、不要の資源を割当て解除することに
より、条件変更に適合する。
最も重要なことは、本方法は、メインライン処理に影響
することなく、マルチプログラミン・グ及びマルチプロ
セッシング環境内で資源プールを短縮することである。
これは取得及び解放操作時に、外来的直列化機構を避け
ることにより実行され、それによって、メインライン論
理通路内の使用中待ち及び延期の費用を避ける。この結
果、本方法は非常に能率的であり、割込み禁止されたプ
ロセスで使用することもできる。
また、本方法を用いたプログラムが資源を使い果すこと
もある。たとえば、それは、コンピュータで使用できる
よりも多くの資源を用いることがあり、またどれだけの
追加資源が必要であるかを誤算することもある。そのよ
うな状態は例外として取り扱うべきで、本方法の範囲外
である。
さらに、本方法は、共用設備の不公平な利用により生じ
る資源不足の問題を提出しない。たとえば、データを他
のプログラムに送るプログラムは、レシーバのバッファ
・プールをオーバーランすることもある。そのような状
態は、過剰制御方法を用いて処理されなければならず、
これも本発明の範囲外にある。
本発明の好ましい実施例は、バッファ・プール及び個々
のバッファを操作するための動作を提供する。しかし本
発明は、均一な資源のどんなセットにも適用できること
を理解されたい。
次の第1項は、バッファ・プールのための適当な構成を
述べている。これに、バッファとプールにおける動作を
説明する項目が続く。BUILDPOOLは、システム
から物理的資源を獲得することにより、バッファの拡張
プールを作成し、それによって、資源プール全体を拡張
する。GET  BUFFERは、要求するプロセスに
より使用するために、プールから単一のバッファを要求
する。FREE  BUFFERは、前のGETBUF
FER要求で得られた単一の特定バッファをバッファ・
プールに戻す。FREE  POOLは、バッファの拡
張プールを解放し、それらのいくつかはまだ、使用中の
場合もある。DELETE  POOLは、−度そのバ
ッファのすべてが解放され、−そのプールに戻されると
、−度解放された拡張プールを削除し、それによって資
源プール全体を短縮する。
個々のバッファを獲得したり、解放したりするRの動作
は、メインライン動作である。すべてがバッファ・プー
ル上で動作する残りの動作は、メインラインではない。
バッファ・プールの編 バッファ・プールには2つの型式がある。すなわち、マ
スタ・プール22と拡張プール24である。型式に関係
なく、各バッファ・プールは3つの要素を有する。すな
わち、プール制御要素、1つまたは複数のバッファ、及
び各バッファ用のバッフ1制御要素である。1つのバッ
ファは、−度に2つのバッファ・プールつまりその所有
者のプール及びそのホーム・プールに関連し、そして2
つの状態つまり使用中及び解放中であることができる。
第2図に示すように、各バッファ・プール26は、型式
に関係なく、3つの要素、すなわち1つの「プール制御
要素」28.1つまたは複数のバッファ301及び各バ
ッファ用の「バッファ制御要素」32を有する。バッフ
ァ30の数、つまりバッファ制御要素32の数は、バッ
ファ・プール26が割り当てられる時、特定される。各
バッファ30は、そのプールのプール制御要素28によ
り「所有される」と言われる。所与のプール26が所有
するすべてのバッファ制御要素32は、一連の「所有さ
れたバッファ・リスト」34上にリストされている。し
たがって、プールのバッファ制御要素32は、常にその
プール制御要素28から位置決めできる。後で分かるよ
うに、各バッファ制御要素32は、「ホーム」と呼ぶあ
るプール制御要素28のアドレスも含む。バッファ用の
このホーム・アドレスは、その所有バッファ・プール2
6である場合もあり、ない場合もある。
作成された第1バッフトプール26は、マスタ・バッフ
、・プール22であり、そのプール制御要素28は、「
マスタ・プール制御要素」36として周知である。主プ
ログラムが、追加バッファを必要とする場合は、それは
BUILD  POOL動作を実行することにより「拡
張バッファ・プール」を作成できる。拡張バッファ・プ
ール24のプール制御要素28は、マスタ・プール制御
要素36上に固定された一連の「拡張プール・リスト」
38の中に編成される。
拡張バッファ用のホームは、通常はマスタ・パッフトプ
ール22である。これは、マスタ・プール22内で利用
可能なバッフ130の数を増加させることにより、バッ
フトプール20を拡張する効果があり、マスタ・プール
22からバッファがそれらを使つ必要のあるプロセスに
より取られ、戻される。拡張プール24が解放される時
、そのバッファ30のホーム・アドレスは、マスタ・プ
ール22から解放された拡張プール24へ、スナワちバ
ッファ所有のバッファ・プールへ変更される。
プロセスにより使用されていないバッファ30は、マス
タ・プール22内に保持され、「解放」状態にあると考
えられる。これらの解放バッファは、マスタ・プール2
2または拡張プール24のどちらかによって所有される
が、すべてはマスタ・プールをそれらのホーム・アドレ
スとして維持する。解放バッフ1の制御要素32は、マ
スタ・プール制御要素36上にある一連の解放バッファ
・すスト40内に保持される。各拡張プール24は、同
様に、連なった解放バッファ・リスト42を有するが、
それは空でありプールがFREE  POOL動作によ
り解放されるまで、そのまま留まる。
プロセスがバッファ30を必要とする時、それはGEL
  BUFFER動作60を実行し、GET  BUF
FER動作60は、第1バツフア制御要素32を、マス
タ・プールの解放バッファ・リス)40から除去し、関
連バッファ30を要求プロセスに利用可能にする。した
がって関連バッファは「使用中」と言われる。
プロセスがバッファ30で終了される時、FREE  
BUFFER動作64は、関連したバッファ制御要素3
2を、バッファのホーム・プールに属する解放バッファ
・リスト上に再待合せするために使用される。通常、バ
ッファはマスタの解放バッファ・リスト40に戻される
。しかしながら、バッファの所有プールが、解放された
拡張プール24である場合は、バッファのホーム・アド
レスは変更され、バッファはマスタ・プール22への代
わりに、その解放された拡張プール24の解放バッファ
・リスト42へ戻される。したがって、その解放された
拡張プールのバッファのすべてが、度その自由バッファ
・リスト42に戻されると、プール24は、物理的にD
ELETE  POOL動作によって解放することがで
き、それによってバッファ・プール20全体を短縮する
第3図は、プール制御要素28及びバッファ制御要素3
2のデータ構造を示す。これは、本発明を使用にするた
めには必要ないが、マスタ・ブール22及び拡張プール
24の両方のプール制御要素に、同じフォーマットが使
用される。
本方法のバッファの編成及びデータ構造を述べたが、次
の項では、これらの構造について実行された動作を詳細
にそして本方法のメインライン動作内でラッチを必要と
せずに、動的にいかに実行できるかについて、言及する
バッファ・プールの作成 −BUILD  POOL5
8a、58b バッファ・プールは、BUILD  POOL動作58
a158bにより、作成(構成)され、その動作は、ど
のバッファが使用される前でも、主プログラムにより要
求されなければならない。同じ動作(BUI LD  
POOL)が、マスタ・ブール22及び拡張プール24
の両方を作成するために使用され、それらの構造のわず
かの違いは、BUILD  POOL内で処理される。
BUILDPOOL58a、58b1及びFREE  
POOL66の両方は、まれな動作であると想定され、
したがってメインライン機能ではない。
マスタ・ブール22は、任意の拡張プール24が作成さ
れる前にも作成される。それは、BUILD  POO
L要求内で識別されなければならず、−度作成されると
、FREE  POOL動作によっては決して除去され
ない。マスタ・ブール22は、すべてのバッファ及びバ
ッファ・プール処理のためのアンカーとして役立つ。
マスタ・ブール22が作成される時、記憶機構が割り当
てられ、マスタ・プール制御要素POOL32、及びバ
ッファ30のためにフォーマットされる。個々のバッフ
ァ制御要素DUF  CTL32は、各バッファ制御要
素BUF  CTL32のNEXT  FREEフィー
ルド44を用いたマスタ解放バッファ・リスト40の中
に共に連鎖されている。このリスト40のヘッドは、マ
スタ・プール制御要素36(7)FREE、FIR8T
  FREEフィールド46内に記憶される。初期には
ゼロである使用中バッファの数は、マスタ・プール制御
要素3B+7)FREE、BUSY  CTフィールド
内に記憶される。
マスタ・ブール22が所有するバッファのリストは、マ
スタ・プール解放バッファ・リスト4゜に対し、同様に
作成される。所有されたバッファ・リスト34は、マス
タ・プール制御要素36のFIR8T−OWNEDフィ
ールド5o内ニ記憶内乳記憶るリスト・ヘッドで、プー
ルのバッファ制御要素BUF  CTL32(7)NE
XT  0WNEDフイールド48を用いて連鎖されて
いる。
各バッファのホーム・アドレスは、バッファの制御要素
BUF  CTL32のHOME  POOLフィール
ド52内に記憶され、前記のように、初期にはマスタ・
プール制御要素36のアドレスにセットされる。各バッ
ファ制御要素32のBUFFERADDRフィールド5
4は、要素の関連バッファ30のアドレスにセットされ
る。
最後に、マスタ・プール制御要素36のアドレスは、バ
ッファ・プールまたは、バッファ上の操作によって使用
するために、ANCHOR,MASTERフィールド内
に記憶される。
BUILD  POOLが拡張バッファ・プールを作成
するために要求されると、データ構造は、マスタ・プー
ル制御要素36について述べたものと同様に作成される
。しかし、バッファ制御要素32が、プールの解放バッ
ファ・リスト42を形成するために連結された後で、そ
のリストは単一の極小操作で、Compare−Dou
b le−and−Swap命令を用いたマスタ・プー
ル制御要素の解放バッファ・リスト40に転送される。
バッファ制御要素32のHOME  POOLフィール
ド内に再び記憶されたこれらの拡張プール24のバッフ
ァに対するホーム・アドレスは、マスタ・プール制御要
素36のアドレスにセットされる。拡張プールの使用中
カラン)BUSYCTは、プール内のバッファの数にセ
ットされ、プールのバッファのどれも解放されていない
ことを表示する(前述の拡張プールの再解放及び削除参
照)。
拡張プール制御要素28は、拡張プール・リスト38の
ヘッドに追加される。このリストは、拡張プール制御要
素28のNEXT  POOLフィールド56を介して
連鎖され、そのヘッドは、マスタ・プール制御要素36
のNEXT  POOL内に配置される。
BUILD  POOL動作は、極小命令を用いて、そ
れを他の並行(同時)BUILD  POOL及びFR
EE  POOLプロセスから保護するために直列化さ
れてもよい。これらの操作は稀で、非メインラインであ
るから、ラッチのような外来的直列化のどんな型式でも
使用することができ、また使用される型式は、設計選択
の問題である。
拡張所有のバッフトリストは、マスタ・プール22のバ
ッファのために、前記のように作成される。これは、た
とえバッファのいくつかがマスタの解放バッファ・リス
ト22から除去されても、拡張プールの構成要素のすべ
てを、そのプール制御要素28から直接位置決めする方
法を提供する。
要するに、BUILp  POOL動作は、マスタ・プ
ール制御要素38がプール処理用の固定具として役立つ
、バッファ・プール2eを作成する。
マスタ・プール制御要素36は、バッファ・サービスが
プログラムによって必要とされる限り、削除されない。
バッファ・サービスを使用するプロセスは、そのような
プロセスが拡張プールを直接引用しないので、同時に削
除されているバッファ・プールをアドレスする試みに関
′係する必要は決してない。
BUILD  POOL58a  58b  の 似コ
ーヱ二 第2A表及び第2B表は、BUILD  POOL手段
58a158bの実施を従来の擬似コードで示す。
400−404行で、記憶はシステムから獲得され、副
次的に割り当てられる。これらの記憶領域は、2進法の
Oに初期化されると仮定する。それから、各バッフ1制
御要素BUF  CTL32が、フォーマットされる(
405−418行)。
バッファは各BUF  CTL要素(407行)に割り
当てられ、各BUF  CTL要素用のホーム・プール
はマスタ・プール制御要素POOLCTL3ESにセッ
トされる。(407−410行)。411−415行で
、プール所有のバッファ・リスト34及び解放バッフト
リスト42が形成される。417行で、所有のバッファ
・リスト34は、POOL  CTL要素に連鎖される
マスタ・プール22が、(拡張プールではなく)BUI
LD  POOL動作を要求された場合は、41B−4
27行が実行される。まず、新しいプール解放バッフト
リスト42が、420行によりマスタの解放バッフトリ
スト40に追加される。
これは、他のプロセスがプール構造にまだアクセスして
いないので、非極小的に実施される。そしてマスタ・プ
ール制御要素POOL  CTL36ノ位置は、すべて
のバッファ・プール構造を固定するANCHOR,MA
STERフィールド内に極小的に置かれる。動作が成功
した場合、バッファは、バッファ・サービスを必要とす
る他のプロセスに利用可能である。BUILD  PO
OL要求は、他の同時すなわち並列のプロセスが、すで
にアンカー内のそのマスタ・プール制御要素P00L 
 CTL3Bの位置(422−426行)をとった場合
は、失敗である。この極小動作は、IB)l 370C
o■pare−and−Swap命令などの極小命令を
用いて完了することができる。この命令の説明並びにコ
ード化適用業務の例は、18Mシステム 370オペレ
ージ蜂ン拡張アーキテクチユア原理(出版番号5A22
−7085)内に見ることができる。
拡張プールが要求された場合、428−433行は、4
1g−427行の代りに実行される。まず、拡張の全解
放バッファ・リスト42は、マスタ・プールの解放バッ
ファ・リスト40 (430行:後の第11a表を参照
(1321行)に極小的に追加され、拡張の解放バッフ
ァ・リスト42を空にする(431行)。この動作は、
拡張のバッファを他のプロセスに利用可能にする。拡張
プール制御要素28のBUSY  CYフィールドは、
拡張プールが静止される時、すなわちそのバッファのす
べてが解放されて、プールが削除できるようになる時を
決定するために、FREE  POOL動作(後記の第
5表)により使用される。最後に、拡張プールは、マス
タの拡張プール・リスト(432行)に極小的に追加さ
れる。この極小動作は、第8表(1005行)で説明さ
れる。434行は、成功した完了状態をBUILD  
POOL手順58を始めたりクエスタに戻す。
バッファの獲得と解放 −GET  BUFFERho
、及びFREE  BUFFER642つのメインライ
ン動作は、GET  BUFFER60及びFREE 
 BUFFER64である。
本発明で、これらの動作は、延期、使用中待ち、あるい
は、デッドロックを生ずるラッチなどのより高価な外来
的直列化機構に依らないで、極小命令を用いて直列化で
きる。
プロセスがバッファを要求する時、それは、GET  
BUFFER手順60を実行するための要求を発する。
GET  BUFFERは、マスタ解放バッファ・リス
ト40のヘッドでバッファ制御要素BUF  CTL3
2を選択する。すなわち、そのアドレスは、マスタ・プ
ール制御要素36のFREE、FIR8T  FREE
フィールド46内に記憶される。バッファ制御要素32
は、リストから除かれ、リストの使用中カウント、PO
OL  CTL、FREE、BUSY  CTは、1だ
け増分される。
GET  BUFFER手順60が完了すると、要求プ
ロセスは、バッファ30に対するバッファ制御要素BU
F  CTL32のアドレスである「トークン」を与え
られる。要求プロセスは、このトークンによって、バッ
ファ制御要素BUFCTL32のBUFFERADDR
フィールド内で識別されるバッファ30へのアクセスを
得る。
多重プロセスの直列化に使用され、禁止された割込みに
よるその実行を含み、並行してバッファを得るために探
索するラッチはない。代わりに、マスタ解放バッファ・
リスト40に関する単一Compare−Doub l
e−and−Swap動作は、マスタ・プール制御要素
のFREE、FIR8T  FREEフィールド46内
で識別されるヘッド要素を、安全に除去されるようにす
るには十分である。
バッファの「ストップオーバ・リスト」も、GET  
BUFFER84がバッファ超過エラー・メツセージを
要求プロセスに戻す前に、チエツクされる。これは、F
REE  POOL動作66(後で詳述する)がGET
  BUFFER要求で同時に進行中であるため、バッ
ファ・プール20自体は空ではないが、マスタ解放バッ
ファ・リス)40が空になるからである。ストップオー
バ・リストは、マスタ・プール制御要素36の5TOP
OVERフイールド62内に固定された(前記解放バッ
ファ・リスト40.42のような)連鎖リストである。
FREE  POOLプロセスは、マスタの解放リスト
から拡張のバッファのスヘテを除去しようとし、”スト
ップオーバ・リストは、このプロセス中に除去される他
のバッファのための保持領域である。このリストはGE
T  BUFFER機能に利用可能であるから、ストッ
プオーバ・リストは、FREE  POOL処理が原因
で、誤ったバッファ超過条件を報告する可能性を事実上
排除する装置である。(実際に、このケースは、解放リ
スト上に1つのバッフ1が確かに残っている場合に発生
L、GET  BtIFFER要求は、それが1つのリ
ストから除去された後、そしてそれがストップオーバ・
リスト上に置かれる前に、解放バッファをチエツクする
。)マスタ解放バッファ・リスト40が空の場合は、G
ET BUFFERは、5TOPOVERフイールド8
2をチエツクする。ストップオーバ62が空でない場合
(ストップオーバ・リスト内にバッファがあることを表
示する)は、GET  BUFFERは、スートツブオ
ーバ・リスト上の第1バツフアを除去し、そのトークン
を要求プロセスに戻す。また、マスタ解放バッファ・リ
スト40及びストップオーバ・リストの両方が空の場合
は、バッファ・プール20は、実際バッファ30の外に
あり、「バッファ超過」エラー条件の信号を発する。G
ETBUFFERが、バッファ・プール20がバッファ
の外にあることを誤って報告することはあり得るが、極
めて稀である。
プロセスが、バッファ30がバッファープール20に戻
ることを望むと、FREE  BUFFER手順64を
実行し、バッファに関したトークン(前記の)を指定し
なければならない。FREEBUFFERは、バッファ
制御要素32をバッファのホーム・プールの解放バッフ
ァ・リストのヘッドに追加し、プールの解放バッファ使
用中カウントFREE、BUSY  CTを1だけ減分
する。特に、トークンにより識別されたバッファ制御1
要素BUF  CTL32のアドレスは、バッファ制御
要素のHOME  POOLフィールド52により指定
されるプール(マスタ22あるいは拡張24)のプール
制御要素28のFREE、FIR8T  FREEフィ
ールド4B内に置かれる。
Compare−Double−and−Swapなど
の単一の極小動作は、GET  BUFFER手順60
に対し、前記のように、このメインラインFREE  
BUFFER手順64を直列化するのに十分である。ラ
ッチのような外来的直列化は必要とされない。このCo
mpare−Double−and−Swap固有直列
化は、メインラインGET  BUFFER及びFRE
E  BUFFER動作を速め、能率的にする。さらに
、GET  BUFFER及びFREE  BUFFE
Rは、ラッチなしで動的バッファ・プール拡張及び短縮
を支援し、この能力のための唯一のコストは、マスタ解
放バッファ・リスト40が空のように見える時、ストッ
プオーバ・リストの5TOPOVERフイールド62を
チエツクすることである。
はとんどの場合、この方法は、追加命令をバッファ・サ
ービスを用いるメインライン・プロセスに加えない。
GET  BUFFER80用の擬似コード:第3表は
、従来の擬似コード内のGET  BUFFER手順6
0の実施例を示す。
500行で、マスタ・プール22のアドレスが得られる
。マスタ・プールは、いくつかのプロセスがバッフトサ
ービスを必要とする限り、決して削除されないのでこれ
は安全な基準である。
マスタ解放バッファ・す゛スト40の第1バツフア制御
要素BUF  CTL32が極小的に除去され、使用中
カウントが501行で増分され、それは第12A表及び
第12B表に示tRE−MOVEBUFFERAND 
 CoUNT手順を呼び出す。正規には、バッフ1はマ
スタ解放バッファ・リスト40上にあるべきであるから
、501行は、GET  BUFFER手順eOの標準
実行経路と考えられる。成功した完了状態は、割り当て
られるバッファの制御要素BUF  CTL32 (5
03行)の位置決め(トークン)と共に要求プロセスに
戻される。
マスタ解放バッファ・リスト40が空である場合(50
4行)、GET  BUFFERは、ストップオーバ・
リスト(506行)の5TOPOVERフイールド62
からバッファ制御要素BUFCTL32を除去すること
を試み、再び、第12A表及び第12B表のRE−MO
VE  BUFFERAND  、C0UN1’手順6
6を用いる。これは、バッファ・プール20が真にバッ
ファの外にある時、あるいは、FREE  POOL動
作が、すべてバッファをストップオーバ・リストにフラ
ッシュした時にのみまれに起こる。FREE  POO
−L動作が進行中で、バッファがストップオーバ・リス
トから要求プロセスに割当て可能である場合、そのバッ
ファの制御要素BUF  CTL32に対するトークン
、及び成功した完了状態コードは、リクエスタ(508
行)に戻される。
またストップオーバ・リストが空の場合(509行)、
GET  BUFFERは要求プロセスに、バッファは
現在利用できない(510行)ことを表示する。
FREE  BUFFER64用の擬似コード:第4表
は、従来の擬似コード内のFREE  BUFFER手
順64の実施例を示す。
600行で、解放されているバッファ30のホーム・プ
ールのプール制御要5POOL  CTL28は、バッ
ファ制御要素BUF  CTL32のHOME  PO
OLフィールド52から得られる。
バッファ30が、FREE  POOL動作66で解放
されているプロセス中にある拡張プール24に関連する
場合、600行によって得られるPOOL  CTL要
素28はバッファを有する拡張プールの要素である。バ
ッファ所有のプールが解放されていない場合、そのホー
ム・プールはマスタ・プール22であり、マスタ・プー
ル制御要素POOL  CTL3Efは600行により
得られる。
601行で、BUF  CTL要素32は、バッファの
ホーム・プールの解放バッファ・リストのヘッド(FR
EE、FIR8T  FREE46)に極小的に置かれ
、ホーム・プールの解放バッファ使用中カウントFRE
E、BUSY  CYは、1だけ減分される。この処理
は、第11A表及び第11B表に示すADD  BUF
FERANDCOUNTにより行なわれ、後述する。
解放された拡張プール24が所有するバッファ30は、
拡張の代わりにマスタ・プール22に戻されてもよい。
これは、バッファが戻されるPOOL  CTL要素2
8.3Bに決定した後、FREE  BUFFER動作
64が割り込まれる(−時的に延期される)場合、発生
可能である。次にFREE  POOL動作66が実行
される場合、FREE  POOLはPOOL  CT
L要素を解放する。次に、FREE  BUFFER動
作が再開される時、それはバッファをマスタ解放バッフ
ァ・リスト40に戻す。そのバッファがマスタ・リスト
40から除去されない場合、それは、それを所有した解
除された拡張プール24が削除されるのを防ぐ。このあ
りそうもない発生は、第7表のDELETE  POO
L手順の916−920行により処理される。
Buffer  Poolの解放 −FREE0OL6
B プログラムが、動的に拡張されたバッファ・プール20
に追加されたバッファのいくつかの使用をもはや要求し
ない場合、それはプールを短縮するためにFREE  
POOL手順66を用いる。
FREE  POOL動作66は、そのプールが所有す
るバッファ30が、要求が出°された時に他のプロセス
によって使用中であっても、拡張バッファ・プール24
の削除を生じる結果となる潜在的な2つの段階のプロセ
スを開始する。
動的バッファ・プール短縮の第1段階で、FREE  
POOL手順66は、最も最近作成された拡張プール2
4を選択し、そのバッファ30をさらにGET  BU
FFER要求に対して利用できなくする。解放されたバ
ッファ・プールに属するバッファが他のプロセスによっ
て使用中でない場合は、プールは直ちに削除される。さ
もなければ、FREE  POOL動作66は終了し、
解放された拡張プール24の削除を第2段階に残す。
第2段階では、−度そのバッファ30のすべてがそれら
を使っていたプロセスにより解放されると、DELET
E  POOL手順68は解放された拡張プール24を
削除する。DELETE  PooLは、第7表を参照
して後述する。
FREE  POOL68は、マスタ拡張プール・リス
ト38から第1拡張ブール24を除去する。
その拡張プールは、マスタ・プール制御要素POOL 
 CTL38のNEXT  POOLフィールド56で
識別される。解放されているプール24の個々のバッフ
ァ制御要素BUF  CTL32は、プール所有のバッ
ファリスト34を用いて識別され、そのリストはプール
の制御要素POOL  CTL3BのFIR8T  0
WNEDフイールド50内に固定される。
各バッフ1制御要素BUF  CTL32のホーム・プ
ール、HOME  POOL52のアドレスは、マスタ
・プール制御要素36から解放される拡張プールのプー
ル制御要素POOL  CTL28に変更される。FR
EE  BUFFER要求により解放されたバッファは
、拡張プールの解放バッフトリスト42に戻されること
になり(第4表の600行参照)、−度そこに置かれる
と、それらはもはやGET  BUFFER要求にアク
セスできない。そのバッファのすべてが、その解放バッ
ファ・リスト42に戻されると、拡張プール24は、そ
れ自身「静止」していると言われ、同時実行のプロセス
に影響することなく、安全に削除できる。この削除は、
FREE  POOLE38の707−709a行によ
り、あるいはDELETEPOOL手順68により直ち
に行なわれる。
解放されたプール24が所有するバッフ130のいくつ
かは、FREE  POOL操作66が実行される時、
プロセスによって使用中であることができる。これらの
バッファは、それらがFREE  BUFFER手順に
より解放される時(第4表の6O1行)、拡張プール2
4に戻される。拡張の残りのバッフ1はマスタ解放バッ
ファ・リス)40上にあり、正規には、それらが他のプ
ロセスにより取られ、使用され、解放されるまで、解放
された拡張プール24に戻されない。
それらの正規の処理のコースで、これらの残りのバッフ
ァを取ったり解放したりするために、他のプロセスに頼
るよりもむしろ、FLUSHMASTERPOOL手順
70a170bは、解放されたプール24が、マスタ・
プールの未使用バッファを「フラッシュ」することによ
り静止することを確証する。FLUSHMASTERP
OOL70a、70bは、バ’1177をマスタ解放バ
ッファ・リスト40からマスタのストップオーバ・リス
ト上に転送し、そこから、解放されたプールの解放バッ
ファ・リスト42、またはマスタ解放バッファ・リスト
40に戻す。FLUSHMASTERPOOL70a、
70bは、Compare−Doub le−and−
Swap命令のみを用い、外来的直列化を避ける。
マスタ・プール22のフラッシュにおける第1段階は、
Compare−Doub le−and−Swap論
理回路を用いて、マスタ解放バッファ・リスト40のヘ
ッドにてバッフT制御要素UF  CTL32を除去し
、さらにマスタ・プールの使用中カウント、FREE、
BUSY  CTを1だけ増分する。第2に、バッファ
のホーム・プールが解放されている拡張プール24であ
る場合、バッファ制御要素BUFCTL32は、解放さ
れた拡張の解放バッファ・リスト42のヘッドに(再び
Compare−Doub le−and−Swapを
用いて)加えられ、その拡張プールの使用中カウント、
FREE、BUSY  CTは、1だけ減分される。し
かし、そのバッファのホームがマスタ・プール2′2で
ある場合、そのバッファ制御要素BUF  CTL32
は、5TOPOVER,BUSY  CTを変えること
なく 、Coa+pare−Double−and−S
wapを用いたマスタ・プールのストップオーバ・リス
トのヘッドに(すなわち5TOPOVER,FIR8T
  FREEフィールF82に)加えられる。
これらの3つの段階は、解放された拡張プールの使用中
カウントがゼロ(0)になるまで、あるいは、マスタ解
放バッファ・リスト40が空になるまで繰り返される。
次に、マスタのストップオーバ・リスト上のバッファは
マスタ解放バッファ・リスト40に戻され、それらは使
用のためにプロセスに割当て可能である。しかし、リス
ト全体を除去することは短い間隔(ウィンドウ)を作る
ことになり、この間にバッファ・プール20が、本当は
空ではない時に空のように見えることがあるため、スト
ップオーバ・リスト上のバッファを一度に全部戻すこと
はできない。その代わり、ストップオーバ・リストのバ
ッファは、−度に1つ戻されCompare−Doub
 le−and−Swap論理回路により直列化される
。また、ある追加の簿記が、マスタ・プールの使用中カ
ウントBUSY  CTがプロセスに割り当てられたバ
ッファの数を正確に反映することを確証する必要がある
そのバッファ30がすべて戻された場合には、解放され
た拡張プール24は、動的短縮の第1段階中にFREE
  POOL6E3により直ちに削除され、第2段階は
必要ではない。そうでなければ、解放されたプールの制
御要素POOL  CTL28は、解放されたプール・
リスト72のヘッド(固定構造内のFREEDフィール
ド74)に追加され、プール24は静止できる。先に解
放されたプールのための他のFREE  POOLプロ
セスまたは、並行のDELETE  POOLプロセス
が進行中であるので、プール制御要素POOLCTL2
8の解放されたプール・リスト72への追加は、(つま
り極小命令によって)直列化されなければならない。
解放されたプール・リスト72は、また物理的に削除で
きない解放された拡大プール24のトラックを保持し、
FREE  POOL操作66がいつでも実行できるよ
うにする。解放されたプール24からのバッファ30を
すでに使用しているプロセスは、そのバッファのプール
に関連した物理的記憶装置が、プール関連のすべてのバ
ッファが解放されるまで解放することはできないので、
妨害されないでそれを続けることができる。
FLUSHMASTERPOOL70a。
70b操作は、それが2つの並行なプロセスにより同時
に実行されることを防ぐために直列化される。これが行
なわれない場合、1つのFLUSHMASTERPOO
Lプロセスは、マスタ解放バッフトリスト40からバッ
ファを除去し、ストップオーバ・リスト上にそれらを置
くことができ、一方で、他のFREE  BUFFER
プロセスは、他の方向に(ストップオーバ・リストから
、マスタ解放バッファ・リスト40へ)バッファを戻す
。この発生の見込みは非常に少ないが、それは、2つの
プロセスが命令の永久のシーケンス、すなわち「無限の
ループ」にインターロックされる原因となる。本方法で
は、この可能性は、ラッチ(FREE  POOLラッ
チ)を用いζ、バ。
ファをマスタ・プールの解放バッファ・リスト40とス
トップオーバ・リストの間で移動する論理回路を保護す
ることにより除去される。
FREE  POOL813用の擬似コード:第5表は
、従来の擬似コード内の!”” RE EPOOL手順
66の実施例を示す。
700行で、第1拡張プール制御要素POOLCT L
 28は、マスタ・プールの拡張プールリスト38 (
NEXT  EXT)から除去される。
同時BUILD  POOLまたは、FREE  P0
0L動作が、拡張プール・リスト38を処理することが
できるので、これは、第9表に示すREMOVE  P
OOL手順75により極小的に行なわれる。
プール制御要素POOL  CTL28が除去された場
合(701行)には、関連した拡張プール24は解放さ
れる。まず、プール所有のバッファ・リスト34が走査
されて、HOME  POOLフィールド52C’10
3−705行)内に記憶された各拡張バッファのホーム
・プールをリセットする。次に拡張バッファは、第6A
表及び第6B表のF L U S HM A S T 
E RP OOL 70 a 。
70b手順を用いたマスタ解放バッファ・リスト40 
(706行)から除去される。
拡張プール24が静止される場合(707−709a行
)は、プール・バッファ30は解放され、物理的にそれ
らを削除し、それによってバッファ・プール20を短縮
する。この場合、マスタ・ブールの使用中カラン)BU
SY  CTは、ユーザ・プロセスがマスタ解放バッフ
ァ・リスト40から除去したが、解放拡張プールの解放
バッファ・リスト42に戻されたバッファの数だけ減少
される。
解放プール24が静止されていない場合(710−71
1行)は、そのPOOL  CTL要素28は、第8表
を参照して後述するADD  POOL手順76を用い
て解放プール・リスト72上で待ち行列に入れられる。
ADD  POOLは極小動作を用いて、同時DELE
TE  POOL及びFREE  POOLプロセスに
対し直列化する。
FLUSHMASTERPOOL70a170b用の擬
似コード: 第6A表及び第8B表は、従来の擬似コー
ド内のFLUSHMASTERPOOL手順70a、7
0bの実施例を示す。FLUSHMASTERPOOL
は、FREE  POOL及びDELETE  POO
L手順により用いられ、マスタ解放バッファ・リスト4
0から解放された拡張プール・バッファのすべてを除去
する。
ラッチが獲得されて(801行)、同時FREE  P
OOL及びDELETE  POOL動作に対しFLU
SHMA、5TERPOOL手順70a、70bを直列
化する。そうでなければ、除去ループ(802−817
行)を実行する1つのFREE  POOLプロセスは
、戻りループ(818−825行)を実行する他のFR
EE  POOLプロセスを妨害することがある。これ
はありそうもないが、ラッチは永久ループに対して動作
を保護する。
除去ループ(802−817行)は、マスタ解放バッフ
ァ・リスト40 (804行)からバッファを極小的に
除去し、解放された拡張プールの解放バッファ・リスト
(808行)、またはマスタ・プールのストップオーバ
・リス)(810行)のどちらかに、それらを戻す。マ
スタ解放バッファ・リスト40内にもうバッファがない
時、除去ループ(802−817行)は終わる。
プール制御要素POOL  CTL28が、FLUSH
MASTERPOOL手順に消される場合は、ゼロ値が
、特定の制御要素の拡張プール24が静止されているこ
とを示すので、除去ループ(802−817行)は、所
与のPOOLCTL要素のBUSY  CTがゼロ(8
14−818行)の場合も、終了する。
除去ループは、第12A表及び第12B表のREMOV
E  BUFFERAND  CoUNT手順78a1
78bを用いて、マスタ解放バッファ・リスト40から
バッファを極小的に除去し、そして除去された各バッフ
ァについて(804行)、マスタ・プールの使用中カラ
ン)BUSYCTを1だけ増分する。808行は、第1
1A表のADD  BUFFERAND  CoUNT
手順80aを用いて、バッファを拡張の解放バッファ・
リスト42に極小的に戻し、拡張プールの使用中カウン
トBUSY  CTを1だけ減分するので、プールが静
止すると、その使用中カウントはゼロ(0)に等しくな
る。810行は、第11表AのADD  BUFFER
手順82を用いて、バッファをマスタ・プールのストッ
プオーバ・リストに極小的に加える。ストップオーバ使
用中カウントは、それが有意の数を含まないので、AD
D  BUFFERにより更新されない。
802−817行の除去ループが完了した後、マスタ・
プールのストップオーバ・リスト上のバッファは、81
8−825行によりマスタ解放バッファ・リスト40に
戻される。第12A表のREMOVE  BUFFER
手順88は、使用中カウント(820行)を更新せずに
、極小的にストップオーバ・リストからバッフ1を除去
し、ADDBUFFERAND  CoUNT手順80
は、これらのバッファをマスタ解放バッファ・リスト4
0に加える。ストップオーバ・リストが空になると、戻
りループは終了する(824行)。801行で得られる
ラッチは、除去ループが実行されると直ちに、828行
で解放される。
マスタ・プールの使用中カウントBUSY  CTが正
確であることを確証するために、FLUSHMASTE
RPOOLの除去ループにより、マスタ解放バッファ・
リスト40から極小的に除去されるバッファの数は、8
27行によりマスタ・プールの使用中カウントBUSY
  CTから減算される。直列化のためのCompar
e−and−Swap命令を用いるのが好ましい。マス
タ解放リストから除去される拡張バッファの数は、拡張
PooL  CTL、FLUSHCTに追加され、解放
プール及び削除プールにより使用される。
バッファ・プールの削除 −DELETE0OL68 DELETE  POOL68は、FREEPOOL動
作86の時に削除できなかった解放された拡張ブール2
4のために、バッファ・プール20の動的短縮の第2段
階を実行する。単一タイマ駆動プロセスは、そのような
プールを解放されたプール・リスト72から独立して除
去し、それらの関連バッファのすべてが解放されてしま
うと、それらの記憶装置を解放する。
DELETE  POOL88は、解放プール24を監
視し、静止された解放プールを検出する責任がある。各
タイマ間隔で、DELETE  POOLは、使用中カ
ラン)BUSY  CTがゼロ(0)であるプールのた
めに、解放されたプール・リスト72を走査する。その
ようなものが1つリスト内のどこかで発見された場合に
は、DELETE  POOLは、それをCompar
e−and−Swap論理回路を用いて除去し、バッフ
ァ・プール2oを短縮するように、プールに関連する物
理的記憶を解放する。
FREEフィールド74内に固定された解放プール・リ
スト72へのアクセスは、極小命令を注意深く使用する
ことにより固有に直列化される。複数のFREE  P
OOLプロセスが拡張プールをリストのヘッドに追加で
きる間に、唯1つのDELETE  POOLプロセス
がそれらを除去できる。DELETE  POOLプロ
セスは1つしかないので、極小命令は、リスト内のどこ
でもプール制御要素28を除去するために使うことがで
きる。さらに、DELETE  POOL動作68は、
その動作が、解放プール24が完全に静止されている場
合のみ実施されるので、主プログラムのメインライン・
プロセスと矛盾しない。
DELETE  POOL操作68は、解放されたが折
よい仕方で静止しなかった拡張プール24を検査する。
通常これは、ユーザ・プロセスが、バッファ30を得、
それをまだ戻して(解放して)いない時に発生する。し
かしまれには、これは、解放拡張に属するバッファが、
拡張の解放バッファ・リスト42の代わりに、マスタ・
プールの解放バッファ・リスト40に戻ったために発生
することがある。前記のように、これは、FREEBU
FFER動作84がバッファをマスタ解放バッファ・リ
スト40に戻すことを決めた後、それが妨害される場合
にのみ発生する。FREEPOOL操作66が、その点
で実行される場合、プールは解放され、別にされて静止
する。その間、FREE  BUFFER動作は、回復
された時、バッファをマスタ解放バッファ・リスト40
に戻す。バッファがユーザ・プロセスまたは他のFRE
E  POOL動作により続いて除去されない場合、解
放されたプールは決して静止しない。DELETE  
POOL88は、そのようなバッファをマスタ解放リス
ト40から周期的にフラッシュすることにより、この状
態を取り扱う。
DELETE  POOL68用の擬似コード:第7表
は、従来の擬似コード内のDELETEPOOL手順6
8の実施例を示す。
DELETE  POOL68の901行は、動作がタ
イマを用いて周期的に実行されるようにする。902行
は、静止されたプールのために、すべての解放されたプ
ール・リスト72を走査する。
DELETE  POOL68は、解放された拡張リス
ト72からPOOL  CTL要素を除去する唯一のプ
ロセスであるから、待ち行列を処理する標準的技術を、
そのような要素のリストから解放された拡張プール制御
要素POOL  CTL28のどこでも除去するために
使うことができる。
解放プール・リスト72のPOOL  CTL要素28
に関連した拡張ブール24が静止している場合は、その
PQOL  CTL要素は、そのリスト(908−90
9行)から極小的に除去(解放)できる。プールの資源
は解放され(912行)、マスタ・プールの使用中カウ
ントは、ユーザ・プロセスがマスタ解放バッファ・リス
ト40から除去したが、解放された拡張プールの解放バ
ッファ・リスト42(913行)に戻したバッファの数
により調整される。この調整は、ユーザ・プロセスがバ
ッファをマスタまたは拡張解放バッファ・リストに戻す
か否かが、それが実際にバッファに戻るまで分からない
ので、プールが静止するまで行なうことができない。
907行または909行のUNCHAIN  P00L
極小操作が(910行でテストされて)失敗した場合は
、待ち行列全体は、DELETEPOOL手順を再び9
02行から始めることにより再走査される(911行)
。これは、連鎖されないで、削除された解放プールのプ
ール制御要素POOL  CTL28が解放されるプー
ル・リスト72のヘッドに置かれ、同時に実行するFR
EE  POOLプロセスが他のPOOL  CTL要
素をリストのヘッドに追加する場合に、起こりうる。
POOL  CTL要素の解放されたプール24が静止
されない場合は、903−915行のDELETE  
POOLの走査ループ内のプールに関しては活動はない
前記のように、マスタ解放バッファ・リスト全体40が
、FLUSHMASTERPOOL走査70a170b
を用いて時々フラッシュされ、見捨てられたバッファを
除去する。このプロセスは、DELETE  POOL
88の918−920行によりトリガされるが、各タイ
マ間隔中実行される必要はない。色々な概略図のどれも
、それが実行される周波数を限定するのに使うことがで
きる。好ましい実施例では、マスタ解放バッファ・リス
ト40は、選択された数のタイマ間隔が経過した後にの
み、フラッシュされる。代わりに、静止プールは老朽化
する可能性があり、マスタ解放バッファ・リストは、「
老朽化した」いずれかのプールが現われた場合にのみフ
ラッシュされる。
1しE麹」1色 前記の手順は多くの極小的動作に依存する。これらは、
プール制御要素POOL  CTL28上(7)ADD
  POOLlREMOVE  POOLlUNCHA
IN  POOL動作、及びバッファ制VE  BUF
FER,及びREMOVElBUFFERAND  C
0UNT動作である。これらの極小動作のすべては、I
BM/370 Coa+pare−and−Swap及
び% Compare−Double−and−Swa
p命令のような極小命令を用いて固有に直列化される。
ADD  POOL7e用の擬似コード:第8表は、従
来の擬似フード内のADD  POOL手順76の実施
例を示す。
ADD  POOL7E3は、プール制御要素POOL
  CTL28をそのような要素のリストに追加する。
そのリストは、プール制御要素のNEXT  POOL
フィールド56を通って連鎖される。
所与のPOOL  CTL要素28、及び所与のリスト
に対し、ADD  POOLは、要素をリストのヘッド
に追加する。先にり、ストのヘッドにあった要素は新し
い要素(1003行)に連鎖され、新しい要素はリスト
のヘッド(1005行)に置かれる。
新しい要素は、現在リスト・ヘッダが並行プロセスによ
り変えられていない場合のみ、リスト・に追加される。
この極小動作は、IBM 370 Compare−a
nd−Svaρ命令などの極小的命令を用いて達成でき
る。極小動作が失敗した場合は、ADD  POOLは
、1002行から再試行することにより、新しいリスト
のヘッドに要素を追加する試みを繰り返す(1007行
)。
REMOVE  POOL75用の擬似コート:第9表
は、従来の擬似コード内のREMOVEPOOL手順7
5の実施例を示す。
RE M OV E  P OOL ハ、そのような要
素のリストから、プール制御要素POOL  CTL2
8を極小的に除去する。
1100−1105行は、リスト・ヘッダに対し、イン
デソクス(1102行)とポインタ(1103行)から
構成される倍長語構造として、P00LCHAINデー
タ・タイプを定義する。それはPOOL  CTL要素
のリスト用のアンカーとして使われる。POOLCIA
INインデックスは、複数のプロセスが一度にリストか
らPOOL  CTL要素(すなわち、マスタプールの
拡張プール・リストからFREE  POOLにより除
去可能な要素)を極小的に除去できるようにする。
−度に1つのプロセスだけがリストから要素を除去でき
た場合は、ポインタはリスト・アンカーとして適切であ
る。しかし、この擬似コードは、FREE  POOL
68及びDELETE  POOL68の両方で使われ
、プール制御要素POOLCTL28のすべてのリスト
に対し、アンカーとしてPOOL−CHA I Nデー
タ・タイプを用いることは好都合である。そのようなア
ンカーを解放されたプール・リスト72に用いることは
悪くない。要するにそれは必要ではない。
所与のリスト・アンカーについて、REMOVE  P
OOL75は、第10表のUNCHAINP00L動作
88を用いて、リスト(1108行)上の第1プール制
御要素POOL  CTL28の除去を試みる。それが
成功した場合は、REMOVE  POOLは、新たに
解放された要素を要求プロセス(1112行)に戻す。
このリスト内に要素がない場合は、空のPOOL  C
TL要素は戻される。
極小UNCHAIN  POOL動作88が失敗しく1
109行)、1つあるいは複数の同時プロセスがリスト
を変えたことを表示する場合は、REMOVE  PO
OL75は、動作を再試行することにより(1110行
)、現行リスト・ヘッダを除去し、そして戻す試みを繰
り返す。
UNCHAIN  POOL88用の擬似コード:第1
0表は、従来の擬似フードのUNCHA IN  PO
OL手順88の実施例を示す。
UNCHAIN  POOL88は、REMOVE  
POOL75によって使用され、リストのヘッドから要
素を除去し、さらにDELETE  POOL68によ
って使用され、リスト上のどこからも要素を除去する。
この理由で、連鎖域は常にデータ・タイプPOOLCH
AINであり、このためREMOV′E P00L論理
は、−度に複数のプロセスにより、リストからの要素の
除去に適応できる。しかし、ただ1つのプロセスが一度
にそのリストから要素を除去できるようにされる場合は
、1つの簡単なポインタがリストの連鎖域とアンカーを
表示するために適切になる。
特定のプール制御「要素JPOOL  CTL28を含
む特定のリスト「ブールチェインコに対して、UNCH
AIN  POOLが連鎖をリス!・内の次の要素に極
小的に接続し、リストからPOOL  CTL要素(1
210行)を除去する。連鎖域に連鎖された要素がない
場合には、空のPOOL  CTL要素は戻される(1
204−1205行)。連鎖域が並行プロセスにより変
えられていない場合にのみ、要素28は除去される。こ
の極小動作はIBM 370 Compare−Dou
ble−and−Swap命令を用いて完了される。極
小動作が失敗した場合は、UNCHAIN  POOL
は失敗を示しく1216行)、この表示をリクエスタに
戻す。
LISTのための擬似コード: 第11A表、及び第1
2B表は、それぞれADD  BUFFE82、及び8
4a184bの従来の擬似コードにおける実施例を示す
。これらの動作は、1つまたは複数のバッファ制御要素
BUF  CTL32をそのような要素の1つのリスト
に極小的に追加する。ADD  BUFFER,ADD
  C0UNT及びADD  BUFFER手順8o1
82は、共にADD  BUFFERLIST手順84
a184bに依存する。これらの動作により使われるリ
ストは、バッファ制御要素BUF  CTL32のNE
XT  FREEフィールド44を通して連鎖される。
第11A表の1300−13013行は、BUF’HE
ADERデータ・タイプを定義し、それはBUF  C
TL要素のリスト用のアンカーとして使用される。これ
は、使用中カウント「カウンタ」(1304行)、イン
デックス(1303行)、及びリスト・ヘッダ(130
5行)から構成される倍長扉構造である。BUF  C
TL要素は、多重プロセスによりバッファ・リストから
追加または除去されるが、使用中カウントrカウンタ」
は、要素を追加または除去する同じ極小動作で更新され
なければならない。また同じ動作で、インデックスは増
分され、同時プロセスが同時にリストからBUF  C
TL要素を除去している時に、干渉に対して保護しなけ
ればならない。
ADD  BUFFERAND  C0UNT(130
7−1309行)は、1つの要素(すなわち1要素リス
ト)を、リストのヘッドに極小的に追加し、さらにBU
SY  CTを1だけ減分するADD  BUFFER
AND  C0UNTは、単に1308行に示すような
いくつかのパラメータをもつADD  BUFFERL
IST動作を呼ぶ。
ADD  BUFFER(1310−1312行)は、
極小的に1つの要素(すなわち1要素リスト)をリスト
のヘッドに追加するが、BUSY  CTを更新しない
(Oだけ減分する)。ADD  BUFFERは、それ
がADD  BUFFERAND  C0UNTにより
渡される値1の代わりに整数n′に対する値Oを渡すこ
とを除いて、ADD  BUFFERAND  C0U
NT(1311行)と同じパラメータをもつADD  
BUFFERLISTを呼ぶ。
ADD  BUFFE7RLIST(1313−132
4行)は、連鎖BUF  CTL要素の新しいリストを
現存リストのヘッドに追加する。新しいリストの最初及
び最後の要素は、パラメータとしてADD  BUFF
ERLISTに渡される。
その機能は、現存リスト(1319,1321行)を新
しいヘッドとして新しいリストの第1要素を置く。同時
に現存リストの先のヘッド要素は、新しいリスト内の最
後の要素に連鎖される(1320行)。
新しいリストは、現存リストの現行ヘッダが並行プロセ
ス(第11B表の1322行)によって変えられなかっ
た場合にのみ、現在のリストに追加される。これは、極
小IBM 370 Coa+pare−and−Swa
p命令を用いて直列化される。同じ極小動作が、入力カ
ラン)N(1318行)により使用中カラン)BUSY
  CTを減分するために使用される。さらに、複数の
プロセスは、リストから要素を除去できるので、IND
EXカウントは、また同じ操作(1317,1321行
)で増分される。もし、極小動作が失敗し、他のプロセ
スが現存リストのヘッダを変えたことを表示した場合は
、ADD  BUFFERLISTは、新しいリストを
現存リスト(1323行)に追加する試みを繰り返す。
コード: 第12A表及び第12B表はそれぞれ、RE
MOVE   BUFFERAND   C0UNT及
びREMOVE  BUFFER手順86、及び78a
、78bの従来の擬似コードの実施例を示す。これらの
動作は、そのような要素のリストから、第1のバッファ
制御要素BUF  CTL32を極小的に除去する。
REMOVE  BUFFER8Bは、特定のり、スト
内の第1要素を極小的に除去するが、しかし、BUSY
  CTを更新しない(Oだけ増分する)機能である。
REMOVE  BUFFER(1400−1402行
)は、1401行で示すようないくつかのパラメータを
有するREMOVE  BUFFERAND  CoU
NT手順動作を呼ぶ。
REMOVE  BUFFERAND  C0UNT 
(1403−1421行)は、POOL  CTL要素
のリストから第1BUF  CTL要素を極小的に除去
する。それに渡される所与のリスト・ヘッダ「アンカー
」について!t、REMOVEBUFFERAND  
C0UNTは、リスト内に次の要素を新しいリスト・ヘ
ッダ(1413行)にすることにより、リスト上の第1
(ヘッダ)要素を除去することを試みる。古いヘッダ要
素は、現在のリスト・ヘッダが並列プロセスにより変え
られない場合にのみ、リストから除去される。これはI
BM 370 Compare−Double−and
−Swap命令により直列化される。
使用中カラン)BUSY  CTが、同じ極小動作で入
カカウン)N(1411行)だけ増分され、そして複数
のプロセスがリストから要素を除去できるので、IND
EXカウントも同じ動作で(1412行)増分される。
極小動作が失敗した場合(1417行)は、REMOV
E  BUFFERlAND  C0UNTは、その手
順を再試行することにより(1418行)リストから第
1要素を除去する試みを繰り返す。
リスト内に要素がない場合は、空のBUF  CTL要
素が戻される(1407−1408行)。
さもなければ、除去された要素が戻される(1420行
)。
DECLARE 10 11 12 13 14 L ANCIIOR,/=アンカー・ブロック:72 
MASTERPOINTER(31) 。
/=マスタ・プール制御のアドレ ス=/ 2 FREE EXT、      /=解放サすタ拡
張17)lJ]ト=/3 CDS INDEX   F
IXED(32)。
/=CDS修正を確証するための インデックス=/ 3FREED   POINTER(31)。
/=解放されたプール制御要素リ スト=/ 20 21 22 DECLARE I POOL CTL。
2 NEXT EXT。
3 CDS IND[α 第1表 /=プール制御要素28=/ /=拡張プールのリスト=/ FIXED(32)。
/=CDS修正を確証するための インデックス:/ データ構造の定義(1/4) 38EXT POOL 2 FREE。
3 CDS INDEX 3 BUSY CT 3 FIRST FREE STOPOVER。
3 CDS INDEX POINTER(31) 72次のPOOL  CTL  Lの アドレス:/ /=解放バッファのリスト=/ FIXED(16)。
/=CDS修正を確証するための インデックス=/ FIXED(16)。
/=除去されたバッファのカラン ト=/ POINTER(31) /=第1の解放BUF  CTLl あるいは0のアドレス:/ /=−時的な解放バッファ・リス ト(マスタ):/ FI罷D(16)。
/=CDS修正を確証するための インデックス=/ 第1表 データ構造の定義(2/4) 3 BUSY CT 3 FIRST FREE 21(RST 0WNED FIXED(1B)。
/=除去されたバッファのカラン ト:/ POINTER(31) 。
/=第1解放BUF  CTL、あ るいはOのアドレス:/ (イ)INTER(31)。
/=第1所有BUF  CTLのア ドレス=/ 32a 2  FLUSHCT FIXED(31) /=マスタから拡張の解放リスト ヘフラッシュされるバッファの 数:/ DECLARE 1 BUF CT1.、        /=バッフγ
制御要素30:/2  BUFFERADDRPOIN
TER(31)。
/= 関連バッファのアドレス:/ 第1表 データ構造の定義(3/4) 21(OME POOL 2Nα−FREE 2 NEXT 0WNED (イ)INTER(31)。
/=バッファが戻されるPOOL CTLのアドレス=/ 閉INTER(31)。
72次の解放BUF  CTLのア ドレス=/ POINTER(31) 。
72次の所有BUF  CTLのア ドレス=/ 第1表 データ構造の定義(3/4) 00 01 02 03 04 05 06 07 08 要求された数のバッファのために記憶装置を獲得する。
制御ブロック領域のための記憶装置を獲得して、各バッ
ファについて、1つのpool  ctl要素及び1つ
のbufctl要素を含む。
制御ブロック領域のスタートにpool  ctlを置
く。
第1のbuf  ctlを1ocation = po
ol ctl 1ocation +LENGTH(p
ool ctl)に置き、さらに連続する各buf  
ctlを1ocation = previous b
uf ctl 1ocation +LENGTII 
(bufctl)に置く。
第1のバッファをバッファ領域のスタートに置き、さら
に連続する各バッファをs 1ocation = p
revious bufrer 1ocation−L
ENGTII (バッファ)に置く。
DOfor each of the buf ctl
 elements。
/=バッファをbuf  ctl要素に割り当てる=/
SET buf ctl、bufrer addr =
 current buffer 1ocation。
/=ホーム・プール値をセットする− 常にマスタパッ
フトプール=7 IF 1laster pool requested
 THENSET buf ctl、hos+e−po
ol = pool ctl 1ocation。
第2A表 プール建設(1/2) 09 10 11 12 13 LSE SE′rbuf−ctl、ho+ae−pool = 
anchor、&l5ter。
/=buf ctl要素を先のbuf  ctl要素に
連鎖する=/ IF not the first buf ctl 
T11ENDO0 SET previous buf ctl、next
 free = buf ctllocation。
14 SET previous buf ctl、next
 owned = buf ctllocation。
15 END。
16 17 END。
/=pool  ctlをフォーマットし、プールをバ
ッファ・プール構造に追加する:/ SET pool−ctl、first−owned 
= address of first buf ct
l。
第2A表 プール建設(2/2) IF m5ter pool requested T
IIEN0 pool ctl、f’ree、first free
 :rirst buf ctl 1ocation。
Use the CS 1nstruction to
 atomically SET anchor。
master =pool ctl 1ocation
IF the CS 1nstruction fai
ls TIIEH/=他のプロセスで作られたマスタ・
プール=/ DO・ Re1ease pool resources。
RETURN(failed completion 
5tatus)。
END。
END。
LSE /:要求された拡張ブール=/ DO。
/=拡張のすべての解放バッファ・リストを、使用中カ
ウントを更新しないで、マスタ解放バッファ・リスト4
0に極小的に追加する:l 第2B表 プールの建設(1/2) ADD BUFFERLIST(anchor、mas
terctl、 1ast buf ctl、 O)。
>free、 first bur /=すべての拡張のバッファが除去されたことを示す=
/SE:rpool ctl、「ree、busy c
t = number orbufrcrs 1nex
tensxon。
/=pool  ctlをマスタ・プールの拡張リスト
に極小的に追加する=/ ADD−POOL(anchor、+*aster→p
ool cLl、next; pooL poolct
l)。
END。
RETURN(successf’ul comple
tion 5tatus)。
第2B表 プールの構築(2/2) 00 アンカー・マスタからマスタ・プールへのアクセスを得
る。
01 02 03 04 /=マスタ解放バッファ・リスト4oから極小的にバッ
ファを除去することを試みる、成功の場合は、使用中カ
ウントを増分する=/ REMOVE−BUFFER−AND C0UNT(a
nchor、+master−>free、 buf 
ctl) 。
IF a buf ctl was removed 
from the free buffer 1ist
 TIIENRETURN (successful 
completion 5tatus、 1ocati
on ofbuf ctl)。
ELSE        /=マスタ解放バッファ・リ
スト40は空である=1 05 DOo 06 07 /=マスタ・プールのストップオーバ・リストからバッ
ファを極小的に除去することを試みる。成功の場合は、
使用中カウントを増分する=/ REMOVE BUFFERAND C0IINT(a
nchor、master−>5topover。
buf ctl)。
IF  a  buf  ctl  was  rel
loyed  from  the  5topove
r  1istIIEN 第3表 ゲット・バッファ(1/2) 08 RETURN  (successful  comp
letion  5tatus。
1ocation of burctl)。
09 ELSE 10 RETlJRH(failed coi+pletio
n 5tatus、 HULLpointer) 。
11 END。
第3表 ゲット・バッファ(2/2) 00 Obtain  pool−ctl  from  b
uf  ctl、hoIIe pool。
01 02 /=buf  ctlを適切な解放バッファ・リストに
極小的に追加し、使用中カウントを減分する=/ADD
 BUFFERAND C0UNT(pool ctl
、free、 buf ctl)。
RETURN。
第4表 フリー・バッファ REMOVE POOL(anchor、1Iaste
r=>pool ctl、next−ext、 poo
l−ctl) 。
/=1つある場合は、第1拡張プールを極小的に除去す
る;/ IF  a  pool  ctl  element
  was  removed  TIIENDO。
/=拡張により所有される各buf  ctlに対し、
ホーム・プールをリセットする=/ DOfor each buf−ctl in poo
l ctl、「1rst owned 1ist。
5ETbuf−ctl、home pool =poo
l−ctl 1ocation。
END。
/=マスタ解放バッファ・リスト上にある拡張のbuf
  ctl要素すべてを除去する=/FLUSH−MA
STER−POOL (poo 1−at l) 。
/=拡張が現在静止しているか否かをチエツクする=/
IF pool ctl、free、busy ct 
= O’n1EN/=プールは静止している=7 07a (1)。
Re1ease pool resources。
第5表 フリー・プール(1/2) 08a 09a 09b 09c 10 RETRY7: /=C8命令を使用して、ユーザ・プロセスがマスタ解
放バッファ・リストから除去したが、拡張に戻した拡張
バッファの数だけ(すなわち、拡張バッファの数マイナ
スpool ctl、flush at) s anc
hor。
IIaster−>free、busy Ctを極小的
に減分する。=/ If the CS 1nstruction rai
ls thenGOTORETRY7゜ END。
ELSE /=拡張バッフTのいくつかは使用さ れている=/ /=pool  ctlをマスタ解放プール・リスト7
2に極小的に追加する=/ 第5表 フリー・プール(2/2) 00 01 02 03 04 05 06 FLUSHMASTERPOOL(elemnt: p
ool−ctl eles+ent)。
Get free pool 1atch。
removeloop+ /=マスタ解放バッファ・リスト40から、すべての解
放された拡張buf  ctl要素を除去する=/Do
 forever。
/=マスタ解放バッファから第1解放バツフアを極小的
に除去し、使用中カウントを1だけ増分する=/RE)
40VE BUFFERAND C0UNT(anch
or、master−>free。
buf ctl)。
IF a buf ctl element was 
relloved TIIEHDOo 07 IF buf ctl、home pool is n
ot equal t。
anchor、master  THEN/=buf 
 ctlを拡張の解放バッファ・リストに追加し、使用
中カウントを1だけ減分する=/ 第6A表 FLUSH MASTER POOL (1/2) ADD BUFFERAND C0UNT(pool 
ctl、free。
buf ctl)。
ELSE /:使用中カウントを変えないで、bufctlをマス
タ・プールのストップオーバー・リストに追加する=/ ADD BUFFER(anchor、master−
>pool ctl、5topover、 burct
l)。
END。
ELSE   /=buf  ctl要素は除去されな
かつた=/ LEAVE removeloop。
IF pool−ctl element was p
assed as 1nput parm11EN IF pool−ctl、free、busy ct 
= O′111EHLEAVE removeloop
END Do forever。
第6A表 FLUSHMASTERPOOL(2/2)Retur
nloop: /=マスタ・プールのストップオーバー・リストからb
uf  ctl要素を除去し、次にマスタ解放バ・ソフ
ァ・リスト40に戻す=/ Do forever。
/:使用中カウントを変えないで、マスタ・プールのス
トップオーバー・リストからバ・ソファを極小的に除去
する:/ REMOVE BUFFER(anchor、n+as
ter−>pool ctl、5topover。
burctl)。
IF a buf ctl element was 
removed TIIEH/=buf  ctlをマ
スタ解放バッファ・リスト40に極小的に加え、使用中
カウントを1だけ減分する=/ 822        ADD BUFFERAND−
COUNT(anchor、a+aster−>fre
e。
buf ctl)。
ELSE    /=buf  ctl要素は除去され
なかった=/ LEAVE returnloop。
第6B表 FLUSHMASTERPOOL(1/2)
325      END DOforever。
826   Re1ease free pool 1
atch。
/=除去される拡張バッファは、マスタ解放バッファ・
リス)40に決して戻されないので、busy  ct
を調整しなければならない=/ 826a   RETRY8゜ 827     Use the CS 1nstru
ction to atos+1cally decr
ement。
anchor、master−>free、busy 
at by the number ofextens
ion buffers re+5oved rrom
 the master 1ist。
827a    If the CS 1nstruc
tion fails then827b     G
OTORETRY8゜828   IncreIDen
t pool ctl、flush at by th
e nuaber of 5uchbuffers。
829  END FLUS)l MASTERPOO
L。
第6B表 FLUSHMASTERPOOL(2/2)
00 01 02 03 04 DO■ILE freed extension 1i
st is not empty。
Set tiger and wait ror ti
me 1nterval to expire。
/=タイマが終了すると、タイマ駆動活動を実施する=
/rescan: /:すべての解放された拡張リストが静止したので、削
除できるプールのために、これらの拡張リストを走査す
る=/Do ror each pool ctl o
n freed extension 1ist。
IF pool ctl、busy ct = OTI
IEN/=プールは静止している:/ 05 DOo 08 07 08 09 /=唯1つのプロセスが解放された拡張リストからプー
ルを除去するので、リスト内のどこから除去することも
安全である=/ IF rirst pool ctl on 1ist
 TIIENtlNcIIAIHPOOL(ancho
r、free ext、 pool ctl。
「ail)。
ELSE UNCIIAIHPOOL(previous poo
l ctl、next ext。
pool ctl、 fail)。
第7表 DELETE  POOL(1/3)13a 13b 14 15 IF fail :OHTIIEH /=並行プロセスが解放された拡張リストを変えたので
、リスト全体を再走査しなければならない。=/ GOTOrescan。
Re1ease pool resources。
RETRY9゜ Llse the CS 1nstruction t
o atomicallydecre+*ent an
chor、master−> free、busy a
tby the number of extensi
on buffers thatuser proce
sses have removed from th
euster free buffer l ist 
but returned t。
the extension (i、e、、 the 
nuIIber ofextension buffe
rs m1nus pool ctl、flushct
)。
If the CS 1nstruction fai
ls thenGOTORETRY9゜ END。
END Do for each pool−ctl 
on rreed extension I ist。
第7表 DELETE  POOL(2/3)IF″5
ufficiently IIany” tiser 
1ntervals havetransp 1red
 THEN oo。
FLUSHMASTERPOOL(HULL pool
 ctD、GffrOrescan。
El(D。
END  MILE  freed  extensi
on  1ist  is  not  empty。
第7表 ELETE POOL (3/3) 1000 ADD−POOL(header: poi
nter、 element: pool−ctl e
lement)。
1001     VARold  header: 
 pointer。
1002     retrylo: 1003    SET olcjheader、 =
 header。
/=ヘッダをセーブして、他のプロセスがヘッダをリセ
ットしたか否かをチエツクする=/1004     
  SE丁ele+*ent、next−pool  
= olcjheader。
/=古いヘッダを新しい要素に連鎖する=/1005 
   Use CS 1nstruction to 
atomically SET header =eI
ement。
1006    Irthe CS 1nstruct
ion failsl=ヘッダは並行にリセットされた
ので、01dheader及びヘッダは現在具なる;/
1007      GO″Tll retrylo。
l=要素を新しいリスト・ヘッダに追加することを試み
る:1 1008 END ADIT−POOL。
第8表 ADD  POOL 1100 TYPE 1101   poolchain =1102   
 5tructure 1103     1ndex: fixed(32)
1104      chain: pointer。
1105     end。
1106 REMOVE POOL(anchor: 
poolchain、 element: pool 
ctlelement)。
1107   retryll= l;リスト上の第1pool  ctl要素を極小的に
除去する=/ 1108   LIHOIAIH−POOL(anch
or、 eleIlent、 fail)。
1109    IF fail =OHTIIEH/
=極小動作は失敗した=/ 1110      GOTOretryll。
1111    ELSE      /=極小動作は
失敗しなかった=/第9表 REMOVE  POOL
(1/2)112 RETlJRN (e lemnt)。
/=NULL、または除去された oo 1 ctlを戻す=/ 1113 END REMOVE POOL。
第9表 REMOVE POOL (2/2) 1200 UNCHAIN POOL(anchor:
 poolchain、 element: pool
 ctlelement、 fail: boolea
n)。
VARolcL new: poolchain。
SET fail =OFF。
SET old = anchor /:アンカーをセーブして、イ也のプロセスがそれをリ
セットしたか否かをチエツクする=/IF old、c
hain = N[ILL pointer TTIE
N/=連鎖された要素はない=/ SET elcq++ent = NULL。
/=連鎖された要素が除去されなかったことを示す=/ 202 201 203 204 205 206 207 LSE /=連鎖要素が現在あるが、解放活動中に、並行プロセ
スにより除去されることがある:/(1)。
第11A表 UNCHAIN POOL (1/3) 208 209 210 211 212 213 214 SET new、 1ndex = old、 1nd
ex + 1゜/=インデックスをバンプすると、たと
え複数のプロセスが連鎖から要素を除去しても、連鎖は
正確=/ SET new、chain = old、chain
→next−pool。
/=連鎖フィールドを次の連鎖要素で置換する=/ Use CDS 1nstruction to at
omically 5ETanchor = new、
 thus removing the chaine
delement。
If the CDS 1nstruction 5u
cceeds TTIENSET element =
 old、chain。
/=除去された要素をセーブする:/ ELSE  /=他のプロセスはすでにチェーン・フィ
ールドをリセットしたので、アンカーと古いプールチェ
ーンは現在界なる=/SET rail =ON。
215 END。
第11A表 UNCHAIN  POOL (2/3)216 RETtlRN(eleW!nt、 fail)。
/: 1つある場合、除去された要素のアドレスを戻し、極小
動作が失敗した場合、表示を戻す=/1217 END
 IJHCI(AIRPOOL。
第11A表 UNCHAIN POOL (3/3) 1300 TYPE 1301   bufheBder :1302   
 5tructure 1303     1ndex : fixed(16
)。
1304      counter: fixed(
16)。
1305       header i point
er。
1306     end。
1307 ADD BUFFERAND CO聞T(a
nchorj burheader、 element
i bufctl elei+ent)。
1308   ADD BUFFER−LIST(an
chor、 element、 eleIIlent、
 1)。
1309 END ADD BUFFERAND C0
UNT。
1310 ADD BLIFFER<anchor: 
bufheader、 element: buf c
tl element)。
1311   ADIjBUFFERLIST(anc
hor、 element、 eleIIent、 O
)。
1312 END ADD BUFFER。
第11A表 ADD  BUFFER ELEMENTS CONTROL PART  A(1/3) 1313 ADD BUFFERLIST(ancho
r: bufheader、 elementli b
uf−ctlelement、 elelIlent2
: buf ctl element+ n: int
eger)1314   VARold、 new+ 
bufheader。
1315     retry13: 1316     SET old =anchor。
/=アンカーをセーブして、イ也のプロセスがそれをリ
セットしたか否かをチエツクする=/ 1317    SET new、 1ndex = 
old、 1ndex + 11=インデツクスをバン
プすると、たとえ1つ以上のプロセスが連鎖から要素を
除去しなくても、連鎖が正確になる=7 1318    SET new、counter =
 old、 counter −n。
/=すでに除去された要素のカウントを減分する二/ 第11A表 ADD  BUFFERCONTRCoN
TRoLELE  −PART  A(2/3)319 320 SET new、header = elementl
/=ヘッダを追加されるリスト内の第1要素によって置
換する=/ SET element2−>next free =
 old、header。
l=現存する解放バッファ・リストを追加されるリスト
の端部に追加する。=/ 第11A表 ADD  BUFFERCONTRCoN
TRoLELE  −PART  A(3/3)132
1          Use CDS  1nstr
uction  to  ato鵬1cally  S
ET old  =new、 thus chaini
ng the new elesent to the
 1istand updating both th
e counter and the 1ndex。
1322     If the CDS 1nstr
uction fails/=アンカーは並行にリセッ
トされたので、アンカーと古いバッファヘッダは現在具
なる=/1323      GOTORETRY13
゜l=新しいヘッダに追加することを試みる°:/13
24 END ADD B[IFFER−LIST。
第11B表 ADD  BUFFERCONTRCoN
TRoLELE  −PART  B1400 RE)
[lVE BLIFFER(anchor: bufh
eader、 elelenti buf ctlel
ement)。
1401   RE)[)VE BUFFERAND 
C0IJHT(anchor、 element、 O
)。
1402 END REMOVE−BUFFER。
1403 RE)40VE BUFFERAND C0
UNT(anchor: burheader、 el
esent: bufctl ele@ent、 n:
 fixed)。
1404   VARold、 new: bufhe
ader。
1405   retry14: 1406     SET old = anchor
/=アンカーをセーブして、他のプロセスがそれをリセ
ットしたか否かをチエツクする=1 1407     IF old、header = 
HuljL、pointer TIIEH/=チェーン
内に要素がない=/ 1408      SET element = H
LILL。
/=要素が待ち行列解除されたことを示す=/ 第12A表 REMOVE  BUFFERCONTC
oNTRoLELE  30 −  PART  A(
1/2)1409 ELSE /=待ち行列は現在室ではないが、このプロセッシング
が「非連鎖」を実行している間、並行プロセスにより空
になることがある=/ 第12A表 REMOVE BUF’FERCONTROC oNTRoLE LE  −PART  A(2/2) 410 DO。
411 412 413 414 415 416 第12B表 SET new、 1ndex = old、 1nd
ex + 1゜/:インデックスをバンブすると、たと
え複数のプロセスが、連鎖から要素を除去しても、連鎖
が正しくなる=/ SET new、counter = old、cou
nter + n。
/=チェーンから除去された要素のカウントをバンブす
る=/ SET new、header :old、heade
r−>next free。
72次の要素を新しいリスト・ヘッダにする=/ Use the CDS 1nstruction t
o atomically 5ETanchor = 
new、 thus removing the fi
rst elementfrom the chain
 and updating both the co
unterand the 1ndex。
If the CDS 1nstruction 5u
cceeds T11ENSET element ”
 old、header。
/=除去された要素をセーブする=/ REMOVE  BUFFERCONTCoNTRoL
ELE  30 −  PART  B(1/2)41
7 418 ELSE  /=アンカーは並行にリセットされたので
、アンカーと古いバッファヘッダは現在界なる:/GO
TT) RETRY14゜ /=新しい要素を新しいヘッダに追加することを試みる
=/ 1419       END。
1420    RETLIRH(e Ie+5ent
)。
/=NULL、あるいは除去されたbuf要素を戻す:
/ 1421 E)10 REMOVE BUFFERAN
D C0UNT。
tl 第12B表 REMOVE  BUFFERCONTR
OL ELEMENT  30 PART  B(2/2) F6発明の詳細 な説明したように、この発明によれば、コンピュータ・
システムにおいて資源プールの拡張がはかられる。
【図面の簡単な説明】
第1図は、本発明の好ましい実施例によるマスタ・プー
ル、使用中の活動拡張プール、及び削除を待っている解
放拡張プールを有するバッファ・プール連鎖を示すブロ
ック図である。 第2図は、第1図のバッファ・プールの代表的な1つを
示すブロック図である。

Claims (10)

    【特許請求の範囲】
  1. (1)コンピュータ利用によるデータ処理システムで使
    用するために割り当てることができる資源のマスタ・プ
    ールを拡張及び短縮するための方法であって、前記シス
    テムのコンピュータで実行される方法であり、 (a)(i)少なくとも1つの追加資源を含む拡張プー
    ルを作成し、そして (ii)拡張プールの資源をマスタ・プールに追加する ことにより、マスタ・プールを拡張する 段階と、 (b)(i)拡張プールで始まった任意の非割当て資源
    を、マスタ・プールから拡張 プールへ転送し、 (ii)拡張プールで始まった資源の非割当てに基いて
    、そのような資源を拡張 プールに転送し、さらに (iii)それが、その中で始まるすべての資源を含ん
    でいる時、拡張プールを削 除する ことにより、マスタ・プールを短縮する 段階 を含む前記の方法。
  2. (2)前記の資源がバッファである、特許請求の範囲第
    1項に記載の方法。
  3. (3)その中の少なくとも1つの段階が極小命令を用い
    て固有に直列化される、特許請求の範囲第1項に記載の
    方法。
  4. (4)極小命令がIBM370Compare−Dou
    ble−and−Swap命令である、特許請求の範囲
    第3項に記載の方法。
  5. (5)コンピュータ利用によるデータ処理システム内の
    資源のマスタ・プールを管理するための方法であって、
    前記システムのコンピュータで実行される、 (a)少なくとも1つの追加資源を含む拡張プールを作
    成する段階と、 (b)拡張プールの資源をマスタ資源プールに連鎖する
    段階と、 (c)前記システム内で実行するプロセスによって使用
    するために、マスタ・プー ルからの資源を割り当てる(得る)段 階と、 (d)プロセスによって資源を割当て解除する(解放す
    る)段階と、 (e)活動拡張プールに属する解放資源をマスタ・プー
    ルに戻す段階と、 (f)解放拡張プールに属する解放資源を前記拡張プー
    ルに戻す段階と、 (g)解放拡張プールに属する非割当て資源をマスタ・
    プールから前記拡張プール に転送する段階と、 (h)解放拡張プールが、それに属する資源のすべてを
    含む時、それを削除する段 階 を含む、前記の方法。
  6. (6)割当て及び割当て解除資源の段階が、固有に直列
    化される、特許請求の範囲第5項に記載の方法。
  7. (7)固有の直列化が極小命令を使用することにより提
    供される、特許請求の範囲第6項に記載の方法。
  8. (8)極小命令がIBM370Compare−Dou
    ble−and−Swap命令である、特許請求の範囲
    第7項に記載の方法。
  9. (9)マスタ及び拡張プールが制御要素の連鎖として構
    成されている、特許請求の範囲第5項に記載の方法。
  10. (10)資源の制御要素を目的プールの連鎖に向け、さ
    らに前記制御要素を初めのプールの連鎖から削除するこ
    とにより、資源がプール間で転送される、特許請求の範
    囲第9項に記載の方法。
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 true JPH0336642A (ja) 1991-02-18
JPH0743665B2 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
JPH04370849A (ja) * 1991-06-19 1992-12-24 Nec Corp 共有メモリエリアサイズ変更方式

Families Citing this family (478)

* 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
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
EP0707266B1 (en) * 1994-10-11 2002-01-09 Sun Microsystems, Inc. Methods and apparatus for a data transfer mechanism in the field of computer systems
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
US5978359A (en) * 1995-07-19 1999-11-02 Fujitsu Network Communications, Inc. Allocated and dynamic switch flow control
JPH11510008A (ja) * 1995-07-19 1999-08-31 フジツウ ネットワーク コミュニケーションズ,インコーポレイテッド 最小保証されたセルレート方法及び装置
AU6501996A (en) * 1995-07-19 1997-02-18 Fujitsu Limited Link buffer sharing method and apparatus
US5898671A (en) * 1995-09-14 1999-04-27 Fujitsu Network Communications, Inc. Transmitter controlled flow control for buffer allocation in wide area ATM networks
US5784698A (en) * 1995-12-05 1998-07-21 International Business Machines Corporation Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
US5991298A (en) * 1996-01-16 1999-11-23 Fujitsu Network Communications, Inc. Reliable and flexible multicast mechanism for ATM networks
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
CN1203425C (zh) * 1996-07-01 2005-05-25 富士通株式会社 资源利用和控制装置以及控制方法
US5748905A (en) * 1996-08-30 1998-05-05 Fujitsu Network Communications, Inc. Frame classification using classification keys
CN1247610A (zh) * 1997-02-14 2000-03-15 英国电讯有限公司 信息处理
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
US6418478B1 (en) * 1997-10-30 2002-07-09 Commvault Systems, Inc. Pipelined high speed data transfer mechanism
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
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
US6490630B1 (en) * 1998-05-08 2002-12-03 Fujitsu Limited System and method for avoiding deadlock in multi-node network
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
US6539431B1 (en) 1998-11-12 2003-03-25 Cisco Technology, Inc. Support IP pool-based configuration
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
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
WO2003028183A1 (en) 2001-09-28 2003-04-03 Commvault Systems, Inc. System and method for generating and managing quick recovery volumes
US20050033913A1 (en) * 2003-04-03 2005-02-10 Rajiv Kottomtharayil Method and system for controlling a robotic arm in a storage device
US7287047B2 (en) * 2001-11-23 2007-10-23 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
US7603518B2 (en) * 2005-12-19 2009-10-13 Commvault Systems, Inc. System and method for improved media identification in a storage device
US7584227B2 (en) * 2005-12-19 2009-09-01 Commvault Systems, Inc. System and method for containerized data storage and tracking
US20030101155A1 (en) * 2001-11-23 2003-05-29 Parag Gokhale Method and system for scheduling media exports
US7240089B2 (en) * 2001-12-10 2007-07-03 International Business Machines Corporation Message queuing method, system, and program product with reusable pooling component
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
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
CA2498174C (en) 2002-09-09 2010-04-13 Commvault Systems, Inc. Dynamic storage device pooling in a computer system
AU2003272457A1 (en) * 2002-09-16 2004-04-30 Commvault Systems, Inc. System and method for blind media support
GB2409553B (en) * 2002-09-16 2007-04-04 Commvault Systems Inc System and method for optimizing storage operations
AU2003279847A1 (en) 2002-10-07 2004-05-04 Commvault Systems, Inc. System and method for managing stored 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
WO2004090676A2 (en) * 2003-04-03 2004-10-21 Commvault Systems, Inc. Remote disaster data recovery system and method
WO2004090789A2 (en) * 2003-04-03 2004-10-21 Commvault Systems, Inc. System and method for extended media retention
US7174433B2 (en) * 2003-04-03 2007-02-06 Commvault Systems, Inc. System and method for dynamically sharing media in a computer network
WO2004090675A2 (en) * 2003-04-03 2004-10-21 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
US7613748B2 (en) 2003-11-13 2009-11-03 Commvault Systems, Inc. Stored data reverification management system and method
US7546324B2 (en) 2003-11-13 2009-06-09 Commvault Systems, Inc. Systems and methods for performing storage operations using network attached storage
US20050174869A1 (en) * 2003-11-13 2005-08-11 Rajiv Kottomtharayil System and method for data storage and tracking
US7529782B2 (en) * 2003-11-13 2009-05-05 Commvault Systems, Inc. System and method for performing a snapshot and for restoring data
WO2005065084A2 (en) 2003-11-13 2005-07-21 Commvault Systems, Inc. System and method for providing encryption in pipelined storage operations in a storage network
US7440982B2 (en) * 2003-11-13 2008-10-21 Commvault Systems, Inc. System and method for stored data archive verification
WO2005050385A2 (en) 2003-11-13 2005-06-02 Commvault Systems, Inc. System and method for performing integrated storage operations
US8041821B2 (en) * 2003-11-26 2011-10-18 International Business Machines Corporation Connection pool management
CA2564967C (en) * 2004-04-30 2014-09-30 Commvault Systems, Inc. Hierarchical systems and methods for providing a unified view of storage information
US8266406B2 (en) * 2004-04-30 2012-09-11 Commvault Systems, Inc. System and method for allocation of organizational resources
US7500053B1 (en) * 2004-11-05 2009-03-03 Commvvault Systems, Inc. Method and system for grouping storage system components
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
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
US7660807B2 (en) * 2005-11-28 2010-02-09 Commvault Systems, Inc. Systems and methods for cataloging metadata for a metabase
US20070185926A1 (en) * 2005-11-28 2007-08-09 Anand Prahlad Systems and methods for classifying and transferring information in a storage network
US7962709B2 (en) * 2005-12-19 2011-06-14 Commvault Systems, Inc. Network redirector systems and methods for performing data replication
US7457790B2 (en) * 2005-12-19 2008-11-25 Commvault Systems, Inc. Extensible configuration engine system and method
US8930496B2 (en) 2005-12-19 2015-01-06 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US7636743B2 (en) * 2005-12-19 2009-12-22 Commvault Systems, Inc. Pathname translation in a data replication system
US8655850B2 (en) * 2005-12-19 2014-02-18 Commvault Systems, Inc. Systems and methods for resynchronizing information
US20070198422A1 (en) * 2005-12-19 2007-08-23 Anand Prahlad System and method for providing a flexible licensing system for digital content
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
EP1974296B8 (en) 2005-12-19 2016-09-21 Commvault Systems, Inc. Systems and methods for performing data replication
US20110010518A1 (en) 2005-12-19 2011-01-13 Srinivas Kavuri Systems and Methods for Migrating Components in a Hierarchical Storage Network
US20070166674A1 (en) * 2005-12-19 2007-07-19 Kochunni Jaidev O Systems and methods for generating configuration metrics in a storage network
US7620710B2 (en) 2005-12-19 2009-11-17 Commvault Systems, Inc. System and method for performing multi-path storage operations
US7543125B2 (en) * 2005-12-19 2009-06-02 Commvault Systems, Inc. System and method for performing time-flexible calendric storage operations
US20200257596A1 (en) 2005-12-19 2020-08-13 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US8572330B2 (en) 2005-12-19 2013-10-29 Commvault Systems, Inc. Systems and methods for granular resource management in a storage network
US7617262B2 (en) 2005-12-19 2009-11-10 Commvault Systems, Inc. Systems and methods for monitoring application data in a data replication system
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
US7792789B2 (en) 2006-10-17 2010-09-07 Commvault Systems, Inc. Method and system for collaborative searching
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
EP2102750B1 (en) 2006-12-04 2014-11-05 Commvault Systems, Inc. System and method for creating copies of data, such as archive copies
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
US20080228771A1 (en) 2006-12-22 2008-09-18 Commvault Systems, Inc. Method and system for searching stored data
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
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US7831766B2 (en) 2006-12-22 2010-11-09 Comm Vault Systems, Inc. Systems and methods of data storage management, such as pre-allocation of storage space
US7734669B2 (en) 2006-12-22 2010-06-08 Commvault Systems, Inc. Managing copies of 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
US20080155205A1 (en) * 2006-12-22 2008-06-26 Parag Gokhale Systems and methods of data storage management, such as dynamic data stream allocation
US8719809B2 (en) * 2006-12-22 2014-05-06 Commvault Systems, Inc. Point in time rollback and un-installation of software
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
EP2195724B1 (en) * 2007-08-28 2019-10-09 Commvault Systems, Inc. Power management of data processing resources, such as power adaptive management of data storage operations
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
US8296301B2 (en) 2008-01-30 2012-10-23 Commvault Systems, Inc. Systems and methods for probabilistic data classification
US7836174B2 (en) * 2008-01-30 2010-11-16 Commvault Systems, Inc. Systems and methods for grid-based data scanning
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
US8046543B2 (en) * 2008-06-18 2011-10-25 International Business Machines Corporation Selectively retaining a topmost subpool expansion to prevent thrashing
US8352954B2 (en) 2008-06-19 2013-01-08 Commvault Systems, Inc. Data storage resource allocation by employing dynamic methods and blacklisting resource request pools
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
US8219524B2 (en) * 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US9098495B2 (en) 2008-06-24 2015-08-04 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
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
US8307177B2 (en) * 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
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
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US8943183B2 (en) 2008-12-10 2015-01-27 Commvault Systems, Inc. Decoupled installation of data management systems
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
CA2756679C (en) 2009-03-31 2016-07-05 Commvault Systems, Inc. Information management systems and methods for 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
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US8719767B2 (en) 2011-03-31 2014-05-06 Commvault Systems, Inc. Utilizing snapshots to provide builds to developer computing devices
US9092500B2 (en) 2009-09-03 2015-07-28 Commvault Systems, Inc. Utilizing snapshots for access to databases and other applications
US8706867B2 (en) 2011-03-31 2014-04-22 Commvault Systems, Inc. Realtime streaming of multimedia content from secondary storage devices
US8442983B2 (en) * 2009-12-31 2013-05-14 Commvault Systems, Inc. Asynchronous methods of data classification using change journals and other data structures
WO2011082132A1 (en) 2009-12-31 2011-07-07 Commvault Systems, Inc. Systems and methods for analyzing snapshots
CA2783370C (en) 2009-12-31 2016-03-15 Commvault Systems, Inc. Systems and methods for performing data management operations using snapshots
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
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
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8572719B2 (en) 2010-05-28 2013-10-29 Commvault Systems, Inc. Firewall proxy systems and methods in a backup environment
WO2011150391A1 (en) 2010-05-28 2011-12-01 Commvault Systems, Inc. Systems and methods for performing data replication
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
US8504869B2 (en) 2010-07-16 2013-08-06 Commvault Systems, Inc. Kernel swapping systems and methods for recovering a network device
US8495420B2 (en) 2010-07-16 2013-07-23 Commvault Systems, Inc. Registry key federation systems and methods
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
WO2012045023A2 (en) 2010-09-30 2012-04-05 Commvault Systems, Inc. Archiving data objects using secondary copies
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
AU2011308518B2 (en) 2010-09-30 2014-12-04 Commvault Systems, Inc. Efficient data management improvements, such as docking limited-feature data management modules to a full-featured data management system
US9116850B2 (en) 2010-12-14 2015-08-25 Commvault 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
US8719264B2 (en) 2011-03-31 2014-05-06 Commvault Systems, Inc. Creating secondary copies of data based on searches for content
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
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
US9461881B2 (en) 2011-09-30 2016-10-04 Commvault Systems, Inc. Migration of existing computing systems to cloud computing sites or virtual machines
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
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
US9286327B2 (en) 2012-03-30 2016-03-15 Commvault Systems, Inc. Data storage recovery automation
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
US9639297B2 (en) 2012-03-30 2017-05-02 Commvault Systems, Inc Shared network-available storage that permits concurrent data access
US8950009B2 (en) 2012-03-30 2015-02-03 Commvault Systems, Inc. Information management of data associated with multiple cloud services
US9262496B2 (en) 2012-03-30 2016-02-16 Commvault Systems, Inc. Unified access to personal data
WO2013148096A1 (en) 2012-03-30 2013-10-03 Commvault Systems, Inc. Informaton management of mobile device data
US10157184B2 (en) 2012-03-30 2018-12-18 Commvault Systems, Inc. Data previewing before recalling large data files
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
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
US9218376B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Intelligent data sourcing 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
US9026498B2 (en) 2012-08-13 2015-05-05 Commvault Systems, Inc. Lightweight mounting of a secondary copy of file system data
US8938481B2 (en) 2012-08-13 2015-01-20 Commvault Systems, Inc. Generic file level restore from a block-level secondary copy
US9153049B2 (en) 2012-08-24 2015-10-06 International Business Machines Corporation Resource provisioning using predictive modeling in a networked computing environment
US9201906B2 (en) 2012-12-21 2015-12-01 Commvault Systems, Inc. Systems and methods to perform data backup in data storage systems
US9223597B2 (en) 2012-12-21 2015-12-29 Commvault Systems, Inc. Archiving virtual machines in a data storage system
US9390109B2 (en) 2012-12-21 2016-07-12 Commvault Systems, Inc. Systems and methods to detect deleted files
US10379988B2 (en) 2012-12-21 2019-08-13 Commvault Systems, Inc. Systems and methods for performance monitoring
US20140181443A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Archiving using data obtained during backup of primary storage
US9740702B2 (en) 2012-12-21 2017-08-22 Commvault Systems, Inc. Systems and methods to identify unprotected virtual machines
US20140181085A1 (en) 2012-12-21 2014-06-26 Commvault Systems, Inc. Data storage system for analysis of data across heterogeneous information management systems
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
US10346259B2 (en) 2012-12-28 2019-07-09 Commvault Systems, Inc. Data recovery using a cloud-based remote data recovery center
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
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
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
US9846620B2 (en) 2013-01-11 2017-12-19 Commvault Systems, Inc. Table level database restore in a data storage system
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
US9665591B2 (en) 2013-01-11 2017-05-30 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
US9286110B2 (en) 2013-01-14 2016-03-15 Commvault Systems, Inc. Seamless virtual machine recall 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
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
US9405635B2 (en) 2013-04-16 2016-08-02 Commvault Systems, Inc. Multi-source restore in an information management system
US9483362B2 (en) 2013-05-08 2016-11-01 Commvault Systems, Inc. Use of auxiliary data protection software in failover operations
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
US9939981B2 (en) 2013-09-12 2018-04-10 Commvault Systems, Inc. File manager integration with virtualization in an information management system with an enhanced storage manager, 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
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
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. 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
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9811427B2 (en) 2014-04-02 2017-11-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
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
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
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
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
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
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
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
US20160162364A1 (en) 2014-12-03 2016-06-09 Commvault Systems, Inc. Secondary storage pruning
US9632713B2 (en) 2014-12-03 2017-04-25 Commvault Systems, Inc. Secondary storage editor
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
US9588849B2 (en) 2015-01-20 2017-03-07 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
US9952934B2 (en) 2015-01-20 2018-04-24 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
US9934265B2 (en) 2015-04-09 2018-04-03 Commvault Systems, Inc. Management of log data
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
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
EP3350728B1 (en) 2015-09-18 2022-04-06 Commvault Systems, Inc. Data storage management operations in a secondary storage subsystem using image recognition and image-based criteria
US10514986B2 (en) 2015-09-30 2019-12-24 Commvault Systems, Inc. Dynamic triggering of block-level backups based on block change thresholds and corresponding file identities in a data storage management system
US10176036B2 (en) 2015-10-29 2019-01-08 Commvault Systems, Inc. Monitoring, diagnosing, and repairing a management database in a data storage management system
US10102192B2 (en) 2015-11-03 2018-10-16 Commvault Systems, Inc. Summarization and processing of email on a client computing device based on content contribution to an email thread using weighting techniques
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
US10565067B2 (en) 2016-03-09 2020-02-18 Commvault Systems, Inc. Virtual server cloud file system for virtual machine backup from cloud operations
US10303557B2 (en) 2016-03-09 2019-05-28 Commvault Systems, Inc. Data transfer to a 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)
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
US10437937B2 (en) 2016-07-12 2019-10-08 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
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
US10162528B2 (en) 2016-10-25 2018-12-25 Commvault Systems, Inc. Targeted snapshot based on virtual machine location
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
US11032350B2 (en) 2017-03-15 2021-06-08 Commvault Systems, Inc. Remote commands framework to control clients
US10949308B2 (en) 2017-03-15 2021-03-16 Commvault Systems, Inc. Application aware backup of virtual machines
US20180276085A1 (en) 2017-03-24 2018-09-27 Commvault Systems, Inc. Virtual machine recovery point generation
US10891069B2 (en) 2017-03-27 2021-01-12 Commvault Systems, Inc. Creating local copies of data stored in online data repositories
US11108858B2 (en) 2017-03-28 2021-08-31 Commvault Systems, Inc. Archiving mail servers via a simple mail transfer protocol (SMTP) server
US10776329B2 (en) 2017-03-28 2020-09-15 Commvault Systems, Inc. Migration of a database management system to cloud storage
US10613939B2 (en) 2017-03-28 2020-04-07 Commvault Systems, Inc. Backup index generation process
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
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
US10599527B2 (en) 2017-03-29 2020-03-24 Commvault Systems, Inc. Information management cell health monitoring system
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
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
US10552294B2 (en) 2017-03-31 2020-02-04 Commvault Systems, Inc. Management of internet of things devices
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
US10846180B2 (en) 2017-09-14 2020-11-24 Commvault Systems, Inc. Distributed framework for task splitting and task assignments in a content indexing system
US11036592B2 (en) 2017-09-14 2021-06-15 Commvault Systems, Inc. Distributed content indexing architecture with separately stored file previews
US20190108341A1 (en) 2017-09-14 2019-04-11 Commvault Systems, Inc. Ransomware detection and data pruning management
US11263088B2 (en) 2017-09-14 2022-03-01 Commvault Systems, Inc. Distributed architecture for tracking content indexing
US10846266B2 (en) 2017-09-14 2020-11-24 Commvault Systems, Inc. Distributed architecture for content indexing emails
US11086834B2 (en) 2017-09-14 2021-08-10 Commvault Systems, Inc. Distributed framework for data proximity-based task splitting in a content indexing 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
US10740300B1 (en) 2017-12-07 2020-08-11 Commvault Systems, Inc. Synchronization of metadata in a distributed storage system
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
US20190251204A1 (en) 2018-02-14 2019-08-15 Commvault Systems, Inc. Targeted search of backup data using calendar event data
US10592145B2 (en) 2018-02-14 2020-03-17 Commvault Systems, Inc. Machine learning-based data object storage
US10642886B2 (en) 2018-02-14 2020-05-05 Commvault Systems, Inc. Targeted search of backup data using facial recognition
US10740022B2 (en) 2018-02-14 2020-08-11 Commvault Systems, Inc. Block-level live browsing and private writable backup copies using an ISCSI server
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
US10754729B2 (en) 2018-03-12 2020-08-25 Commvault Systems, Inc. Recovery point objective (RPO) driven backup scheduling in a data storage management system
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
US11249863B2 (en) 2018-05-02 2022-02-15 Commvault Systems, Inc. Backup-based media agent configuration
US10673943B2 (en) 2018-05-02 2020-06-02 Commvault Systems, Inc. Network storage backup using distributed media agents
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
US11012508B2 (en) 2018-12-14 2021-05-18 Commvault Systems, Inc. Region-based distributed information management system
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US20200192572A1 (en) 2018-12-14 2020-06-18 Commvault Systems, Inc. Disk usage growth prediction system
US10872069B2 (en) 2019-01-22 2020-12-22 Commvault Systems, Inc. File indexing for virtual machine backups in a data storage 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
US10768971B2 (en) 2019-01-30 2020-09-08 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data
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
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
US11366723B2 (en) 2019-04-30 2022-06-21 Commvault Systems, Inc. Data storage management system for holistic protection and migration of serverless applications across multi-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
US11461184B2 (en) 2019-06-17 2022-10-04 Commvault Systems, Inc. Data storage management system for protecting cloud-based data including on-demand protection, recovery, and migration of databases-as-a-service and/or serverless database management systems
US20200401489A1 (en) 2019-06-24 2020-12-24 Commvault Systems, Inc. Content indexing of files in virtual disk block-level backup copies
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
US20210011816A1 (en) 2019-07-10 2021-01-14 Commvault Systems, Inc. Preparing containerized applications for backup using a backup services container in a container-orchestration pod
US20210037112A1 (en) 2019-07-29 2021-02-04 Commvault Systems, Inc. Data storage system with rapid restore capability
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
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
US11237935B2 (en) 2019-09-11 2022-02-01 Commvault Systems, Inc. Anomaly detection in data protection operations
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
US11663178B2 (en) 2019-11-04 2023-05-30 Commvault Systems, Inc. Efficient implementation of multiple deduplication databases in a heterogeneous data storage system
US11442896B2 (en) 2019-12-04 2022-09-13 Commvault Systems, Inc. Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources
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
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
US11334442B2 (en) 2020-03-10 2022-05-17 Commvault Systems, Inc. Management database long-term archiving to a recovery manager
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
US11789830B2 (en) 2020-09-22 2023-10-17 Commvault Systems, Inc. Anti-entropy-based metadata recovery in a strongly consistent distributed data storage system
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
US11314687B2 (en) 2020-09-24 2022-04-26 Commvault Systems, Inc. Container data mover for migrating data between distributed data storage systems integrated with application orchestrators
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
US12032855B2 (en) 2021-08-06 2024-07-09 Commvault Systems, Inc. Using an application orchestrator computing environment for automatically scaled deployment of data protection resources needed for data in a production cluster distinct from the application orchestrator or in another application orchestrator computing environment
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
US12033004B2 (en) 2021-09-28 2024-07-09 Commvault Systems, Inc. Dynamically provisioning computing pods in a computing resource cluster based on a resource request from a storage manager of an information management system
US12019525B2 (en) 2021-10-05 2024-06-25 Commvault Systems, Inc. Cloud-based recovery of backed up data using auxiliary copy replication and on-demand failover resources
US12008135B2 (en) 2021-12-21 2024-06-11 Commvault Systems, Inc. Controlling information privacy in a shared data storage management system
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)
US12056018B2 (en) 2022-06-17 2024-08-06 Commvault Systems, Inc. Systems and methods for enforcing a recovery point objective (RPO) for a production database without generating secondary copies of the production database

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS605358A (ja) * 1983-06-24 1985-01-11 Fujitsu Ltd 記憶領域のセル管理制御方式
JPS62274348A (ja) * 1986-05-23 1987-11-28 Hitachi Ltd メモリ管理方式
JPS63208957A (ja) * 1987-02-26 1988-08-30 Pfu Ltd バツフアプ−ル管理方式

Family Cites Families (9)

* 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
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
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS605358A (ja) * 1983-06-24 1985-01-11 Fujitsu Ltd 記憶領域のセル管理制御方式
JPS62274348A (ja) * 1986-05-23 1987-11-28 Hitachi Ltd メモリ管理方式
JPS63208957A (ja) * 1987-02-26 1988-08-30 Pfu Ltd バツフアプ−ル管理方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04370849A (ja) * 1991-06-19 1992-12-24 Nec Corp 共有メモリエリアサイズ変更方式

Also Published As

Publication number Publication date
US5093912A (en) 1992-03-03
EP0405724A3 (en) 1993-02-24
EP0405724A2 (en) 1991-01-02
JPH0743665B2 (ja) 1995-05-15

Similar Documents

Publication Publication Date Title
JPH0336642A (ja) コンピユータ・システム資源管理方法
US6708198B1 (en) Efficiently initiating lock state transitions for distributed resource objects that participate in a distributed lock management system
US6405274B1 (en) Anticipatory lock mode conversions in a lock management system
US6738974B1 (en) Apparatus and method for system resource object deallocation in a multi-threaded environment
US6718360B1 (en) Providing predictable scheduling of programs using a repeating precomputed schedule
US6170045B1 (en) Cross-system data piping using an external shared memory
US5784618A (en) Method and system for managing ownership of a released synchronization mechanism
US7770177B2 (en) System for memory reclamation based on thread entry and release request times
EP0301221A2 (en) An improved subsystem input service for dynamically scheduling work for a computer system
JPH0766355B2 (ja) 入出力チャネル経路上の負荷を均衡させる方法及びコンピュータ・システム
JPS6150350B2 (ja)
JPH0318935A (ja) データリストに対するアクセスの直列化方式
JP2000284978A (ja) 共用資源を非同期的に更新するためのインターフェース・システムおよび方法
US7818478B2 (en) Input/Output completion system for a data processing platform
US6704767B1 (en) Using distributed information about lock conversion requests to efficiently manage lock state transitions
US5222238A (en) System and method for shared latch serialization enhancement
US6092166A (en) Cross-system data piping method using an external shared memory
EP0290533B1 (en) I/o system for off-loading operating system functions
US6061771A (en) Cross-system data piping system using an external shared memory
US20060168413A1 (en) Method for regulating access to data in at least one data storage device in a system consisting of several individual systems
JPS6272051A (ja) 多重プロセツサ・システム中の多重同時処理制御方法
JP2926873B2 (ja) 計算機システム
JP2535568B2 (ja) アプリケ―ションプログラムでの動的バッファ管理方式
JPH04250540A (ja) 画像処理方法及び装置
JPH0612314A (ja) メモリ管理方式