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
Links
- 238000000034 method Methods 0.000 title claims abstract description 234
- 230000008569 process Effects 0.000 claims abstract description 159
- 239000000872 buffer Substances 0.000 claims description 435
- 238000012545 processing Methods 0.000 claims description 12
- 238000004904 shortening Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 abstract description 2
- 230000000694 effects Effects 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- VLCQZHSMCYCDJL-UHFFFAOYSA-N tribenuron methyl Chemical compound COC(=O)C1=CC=CC=C1S(=O)(=O)NC(=O)N(C)C1=NC(C)=NC(OC)=N1 VLCQZHSMCYCDJL-UHFFFAOYSA-N 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 230000008602 contraction Effects 0.000 description 3
- 238000011010 flushing procedure Methods 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 241000555745 Sciuridae Species 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000005056 compaction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 150000002500 ions Chemical class 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- UWVQIROCRJWDKL-UHFFFAOYSA-N oxadixyl Chemical compound CC=1C=CC=C(C)C=1N(C(=O)COC)N1CCOC1=O UWVQIROCRJWDKL-UHFFFAOYSA-N 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- HRANPRDGABOKNQ-ORGXEYTDSA-N (1r,3r,3as,3br,7ar,8as,8bs,8cs,10as)-1-acetyl-5-chloro-3-hydroxy-8b,10a-dimethyl-7-oxo-1,2,3,3a,3b,7,7a,8,8a,8b,8c,9,10,10a-tetradecahydrocyclopenta[a]cyclopropa[g]phenanthren-1-yl acetate Chemical group C1=C(Cl)C2=CC(=O)[C@@H]3C[C@@H]3[C@]2(C)[C@@H]2[C@@H]1[C@@H]1[C@H](O)C[C@@](C(C)=O)(OC(=O)C)[C@@]1(C)CC2 HRANPRDGABOKNQ-ORGXEYTDSA-N 0.000 description 1
- 101100326920 Caenorhabditis elegans ctl-1 gene Proteins 0.000 description 1
- 102100035954 Choline transporter-like protein 2 Human genes 0.000 description 1
- 102100039497 Choline transporter-like protein 3 Human genes 0.000 description 1
- 102100036402 DAP3-binding cell death enhancer 1 Human genes 0.000 description 1
- 241000283074 Equus asinus Species 0.000 description 1
- 241000490229 Eucephalus Species 0.000 description 1
- 101000948115 Homo sapiens Choline transporter-like protein 2 Proteins 0.000 description 1
- 101000889279 Homo sapiens Choline transporter-like protein 3 Proteins 0.000 description 1
- 101000929221 Homo sapiens DAP3-binding cell death enhancer 1 Proteins 0.000 description 1
- 241000282376 Panthera tigris Species 0.000 description 1
- 241000913681 Questa Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000007853 buffer solution Substances 0.000 description 1
- 150000001768 cations Chemical class 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- XLNZEKHULJKQBA-UHFFFAOYSA-N terbufos Chemical compound CCOP(=S)(OCC)SCSC(C)(C)C XLNZEKHULJKQBA-UHFFFAOYSA-N 0.000 description 1
- 208000008918 voyeurism Diseases 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明は、計算機利用のデータ処理に関し、特に、多重
プロセスが、同時に実行されるシステム内のバッファな
どのコンピュータ・システム資源の管理に関する。
プロセスが、同時に実行されるシステム内のバッファな
どのコンピュータ・システム資源の管理に関する。
B、従来の技術
マルチプロセッシング: −コンピュータ・プログラム
は、コンピュータ命令シーケンスから構成され、命令の
単一順序、または「プロセス」と呼ぶ命令の独立シーケ
ンス・セットとして実行可能である。コンピュータ資源
利用を獲得するために、プログラムは、普通、コンピュ
ータの「オペレーティング・システム」に対し、「シス
テム・コール」と呼ぶ命令を発する。オペレーティング
・システムは、コンピュータ・メモリ、あるいは、ハー
ドウェア装置などのコンピュータ資源利用を管理するプ
ログラムである。プログラムによって要求される資源は
、その排他的利用のために予約され、各々が、オペレー
ティング・・システムの制御に戻る(「解放される」)
まで、再利用のために使用できない。システム資源は制
限され、システム・コールは実行するには比較的高価で
あるから、プログラム(特に、高容量あるいは高性能プ
ログラム)は、それらを制御された方法で使用する。
は、コンピュータ命令シーケンスから構成され、命令の
単一順序、または「プロセス」と呼ぶ命令の独立シーケ
ンス・セットとして実行可能である。コンピュータ資源
利用を獲得するために、プログラムは、普通、コンピュ
ータの「オペレーティング・システム」に対し、「シス
テム・コール」と呼ぶ命令を発する。オペレーティング
・システムは、コンピュータ・メモリ、あるいは、ハー
ドウェア装置などのコンピュータ資源利用を管理するプ
ログラムである。プログラムによって要求される資源は
、その排他的利用のために予約され、各々が、オペレー
ティング・・システムの制御に戻る(「解放される」)
まで、再利用のために使用できない。システム資源は制
限され、システム・コールは実行するには比較的高価で
あるから、プログラム(特に、高容量あるいは高性能プ
ログラム)は、それらを制御された方法で使用する。
プログラム及びプロセスは、多くのコンピュータ環境で
動作する。「多重プログラミング」環境では、2つある
いは複数のプログラムあるいはプロセスの実行は、プロ
セッサ上でインタリーブされる。その場合、実行されて
いるプロセスは、「割り込まれ」でもよい。つまり、コ
ンピュータはプロセスの実行を停止し、他のプロセスを
実行するなど、他のワークを実行する。割り込まれたプ
ロセスにおける次の命令が実行される前に、いくらか時
間があってもよい。この環境におけるいくつかのプロセ
スは、割込みに対して「使用禁止」されることができる
。このようなプロセスは割り込まれず、シーケンスとし
て最初から最後まで実行することになる。
動作する。「多重プログラミング」環境では、2つある
いは複数のプログラムあるいはプロセスの実行は、プロ
セッサ上でインタリーブされる。その場合、実行されて
いるプロセスは、「割り込まれ」でもよい。つまり、コ
ンピュータはプロセスの実行を停止し、他のプロセスを
実行するなど、他のワークを実行する。割り込まれたプ
ロセスにおける次の命令が実行される前に、いくらか時
間があってもよい。この環境におけるいくつかのプロセ
スは、割込みに対して「使用禁止」されることができる
。このようなプロセスは割り込まれず、シーケンスとし
て最初から最後まで実行することになる。
「マルチプロセッシング」環境では、コンピュータは複
数のプロセッサから構成され、各プロセッサは、並行で
プログラムあるいはプロセスを実行することができる。
数のプロセッサから構成され、各プロセッサは、並行で
プログラムあるいはプロセスを実行することができる。
たとえば、プログラムが2つのプロセスを有する場合、
両者とも、マルチプロセッシング環境で同時に実行でき
る。マルチプロセッサ内の各プロセッサもマルチプログ
ラミングできる。
両者とも、マルチプロセッシング環境で同時に実行でき
る。マルチプロセッサ内の各プロセッサもマルチプログ
ラミングできる。
したがって、マルチプロセッシング環境では、プロセス
の活動は、他のプロセスの活動とともにインタリーブさ
れてもよい。だから、そのプロセスは他のプロセスと「
同時に」実行していると言われる。さらに、複数のプロ
セスが同時に正確に実行できる。異なるプロセッサで同
時に実行するプロセスは、「並行」に実行していると言
われる。
の活動は、他のプロセスの活動とともにインタリーブさ
れてもよい。だから、そのプロセスは他のプロセスと「
同時に」実行していると言われる。さらに、複数のプロ
セスが同時に正確に実行できる。異なるプロセッサで同
時に実行するプロセスは、「並行」に実行していると言
われる。
直列化: 同時に、すなわち並行に実行するプロセスは
、データを同時に、同じ記憶装置内に書き込むことがで
きる。その結果、1つのプロセスは、他のプロセスが書
き込んだものを破壊することになる。この種のエラーを
防ぐため、そのようなプロセスは、プロセスを「直列」
にするために1つあるいは複数の「直列化機構」を使用
しなければならない。これらの機構は、いくつかはnQ
的でかつ周知であり、シーケンスは実際には、いつでも
割込まれる可能性があるが、あたかもそれらが割り込ま
れないシーケンスで達成されるように、プログラムが臨
界活動を完了できるようにする。また、それらは、それ
がプログラムが資源へのアクセスを直列化でき、資源が
一度に唯1つのプロセスによって使われるようにするこ
とができる。この目的のために、「固有の」直列化機構
及び、「外部からの」直列化機構を区別する。
、データを同時に、同じ記憶装置内に書き込むことがで
きる。その結果、1つのプロセスは、他のプロセスが書
き込んだものを破壊することになる。この種のエラーを
防ぐため、そのようなプロセスは、プロセスを「直列」
にするために1つあるいは複数の「直列化機構」を使用
しなければならない。これらの機構は、いくつかはnQ
的でかつ周知であり、シーケンスは実際には、いつでも
割込まれる可能性があるが、あたかもそれらが割り込ま
れないシーケンスで達成されるように、プログラムが臨
界活動を完了できるようにする。また、それらは、それ
がプログラムが資源へのアクセスを直列化でき、資源が
一度に唯1つのプロセスによって使われるようにするこ
とができる。この目的のために、「固有の」直列化機構
及び、「外部からの」直列化機構を区別する。
固有の直列化機構は1181(370Compare−
and−Swap (C3) NあるいはX Comp
are−Double−and−Swap(CDS)命
令などの「極小命令」のみを含む機構である。極小命令
は、分割できないことを保証するコンピュータ・ハード
ウェア命令である。そのような命令を実行するプロセス
は、それが、他のプロセスから妨害されずに命令を完了
できることが保証されている。たとえば比較及びスワッ
プ(Compare−and−Swap )は、プロセ
スが記憶装置のワードを安全に更新できるようにする。
and−Swap (C3) NあるいはX Comp
are−Double−and−Swap(CDS)命
令などの「極小命令」のみを含む機構である。極小命令
は、分割できないことを保証するコンピュータ・ハード
ウェア命令である。そのような命令を実行するプロセス
は、それが、他のプロセスから妨害されずに命令を完了
できることが保証されている。たとえば比較及びスワッ
プ(Compare−and−Swap )は、プロセ
スが記憶装置のワードを安全に更新できるようにする。
命令は、プログラムが、記憶装置内のワードの期待内容
に注目し、命令実行時に、記憶装置の期待内容が現行内
容と一致する場合にのみ、記憶が変えられることを要求
できるようにする。比較(Compare )及びスワ
ップ(Swap)は、−度1つのプロセスが「比較」を
実行してしまうと、関連「スワップ」が実行されるまで
、他のプロセスは変更を実行できないという意味で、分
割できない活動である。
に注目し、命令実行時に、記憶装置の期待内容が現行内
容と一致する場合にのみ、記憶が変えられることを要求
できるようにする。比較(Compare )及びスワ
ップ(Swap)は、−度1つのプロセスが「比較」を
実行してしまうと、関連「スワップ」が実行されるまで
、他のプロセスは変更を実行できないという意味で、分
割できない活動である。
これらの命令並びにサンプル・コード化適用業務の説明
は、rIBMシステム/370オペレーション拡張アー
キテクチュア原理(IBK System/370Ex
tended Architecture Pr1nc
iples of 0peration(出版番号5A
22−7085)に見ることができる。
は、rIBMシステム/370オペレーション拡張アー
キテクチュア原理(IBK System/370Ex
tended Architecture Pr1nc
iples of 0peration(出版番号5A
22−7085)に見ることができる。
ラッチ: 他のすべての直列化機構は「外来的」である
と言われる。その基礎的な2例は、「スピン・ラッチ」
及び「延期ラッチ」である。それらは、最初何らかの無
意味の値にセットされる単1の共用ラッチ変数を有する
ことを含む。ラッチにより保護される活動を実行するた
めに、まずプロセスはラッチ変数を非ゼロの値にうまく
セットすることにより、ラッチを「獲得」しなければな
らない。ラッチ変数がすでに他のプロセスにより獲得さ
れている場合は、要求プロセスは待たなければならない
。
と言われる。その基礎的な2例は、「スピン・ラッチ」
及び「延期ラッチ」である。それらは、最初何らかの無
意味の値にセットされる単1の共用ラッチ変数を有する
ことを含む。ラッチにより保護される活動を実行するた
めに、まずプロセスはラッチ変数を非ゼロの値にうまく
セットすることにより、ラッチを「獲得」しなければな
らない。ラッチ変数がすでに他のプロセスにより獲得さ
れている場合は、要求プロセスは待たなければならない
。
スピン・ラッチは、要求プロセス(及びプロセッサ)が
、それがラッチが「解放される」のを待っている時、連
続的に変数をテストする原因となるラッチである。この
テストが行なわれる間、プロセッサは「使用待ち」にあ
ると呼ばれ、他に何もすることはできない。この種のラ
ッチは、それがプロセッサ時間を費やす時は、一般に避
けられるべきである。
、それがラッチが「解放される」のを待っている時、連
続的に変数をテストする原因となるラッチである。この
テストが行なわれる間、プロセッサは「使用待ち」にあ
ると呼ばれ、他に何もすることはできない。この種のラ
ッチは、それがプロセッサ時間を費やす時は、一般に避
けられるべきである。
他方、中断ラッチは、それがすでに保持されている場合
は、プロセスはラッチを使用待ちすることを要求しない
。その代わりに、プロセスは「中断」シ、ラッチが使用
可能になると、プロセッサが他のプロセスによって喚起
される(「再開される」)まで、プロセッサを放棄する
。この方法はスピン・ラッチには好ましいが、それは要
求プロセスの中断と再開のトラックの保持に何間する、
システム・オーバヘッドがあるために、注意深く使用さ
れる。
は、プロセスはラッチを使用待ちすることを要求しない
。その代わりに、プロセスは「中断」シ、ラッチが使用
可能になると、プロセッサが他のプロセスによって喚起
される(「再開される」)まで、プロセッサを放棄する
。この方法はスピン・ラッチには好ましいが、それは要
求プロセスの中断と再開のトラックの保持に何間する、
システム・オーバヘッドがあるために、注意深く使用さ
れる。
マルチプロセッサ環境で動作する高性能プログラムにつ
いては、直列化機構の選択が重大になる可能性がある。
いては、直列化機構の選択が重大になる可能性がある。
プログラム機能を、「メインライン」の機能とそうでな
い機能に分けることは有用である。メインラインの機能
はプログラムの本質であり、一方、非メインラインの機
能はメインライン活動を促進するか、または補足する補
助活動である。高性能プログラムでは、メインライン活
動は、典型的には繰り返して実行されるか、または時間
臨界性があり、そのため、CPU時間またはCPU資源
から見て高価な活動が避けられ、または非メインライン
機能に移動されることが必要である。一般に、メインラ
インの外部直列化機構は高価であり、避けるべきである
。
い機能に分けることは有用である。メインラインの機能
はプログラムの本質であり、一方、非メインラインの機
能はメインライン活動を促進するか、または補足する補
助活動である。高性能プログラムでは、メインライン活
動は、典型的には繰り返して実行されるか、または時間
臨界性があり、そのため、CPU時間またはCPU資源
から見て高価な活動が避けられ、または非メインライン
機能に移動されることが必要である。一般に、メインラ
インの外部直列化機構は高価であり、避けるべきである
。
亘遅よlユLL: プログラムは、代表的には1つ、ま
たは複数の指定された反復機能を実行し、そして資源が
これらの機能を実行し、またはその関連目的を表示する
ことを要求できる。プログラムは、そのような資源のた
めに記憶装置を獲得することかでき、その記憶装置をと
もない、通常「資源プール」と呼ばれる所に集める。資
源プールを作る場合、多重処理環境内のプログラムは、
プール内の個々の資源へのアクセスを直列化できなけれ
ばならない。さらに、プログラムは普通動的にプールを
「拡張し」、さらに「短縮」する必要がある。すなわち
、プール内の資源の数を増減させる必要がある。
たは複数の指定された反復機能を実行し、そして資源が
これらの機能を実行し、またはその関連目的を表示する
ことを要求できる。プログラムは、そのような資源のた
めに記憶装置を獲得することかでき、その記憶装置をと
もない、通常「資源プール」と呼ばれる所に集める。資
源プールを作る場合、多重処理環境内のプログラムは、
プール内の個々の資源へのアクセスを直列化できなけれ
ばならない。さらに、プログラムは普通動的にプールを
「拡張し」、さらに「短縮」する必要がある。すなわち
、プール内の資源の数を増減させる必要がある。
次の議論は、特定の例における資源プーリングの必要性
を述べ、また、プールの管理の際に生じるいくつかの論
点を議論する。プログラム(「受信側」)は、他のプロ
グラム(「送信側」)により生成されるデータを得る。
を述べ、また、プールの管理の際に生じるいくつかの論
点を議論する。プログラム(「受信側」)は、他のプロ
グラム(「送信側」)により生成されるデータを得る。
受信側は、送信側からのデータを保持するために、記憶
の一部を獲得することができる。この目的に使用される
コンピュータ記憶機構の各部分は、普通「バッファ」と
呼ばれ、その用語がその中で使われる資源の一型式であ
る。
の一部を獲得することができる。この目的に使用される
コンピュータ記憶機構の各部分は、普通「バッファ」と
呼ばれ、その用語がその中で使われる資源の一型式であ
る。
データは、その到着時にバッファ内に置かれ、それが使
われるまでそこに保持される。受信側がバッフ1内でデ
ータを使用すると、バッファは、処理用にさらにデータ
を受信できる。−度使われると、バッファは、新しいデ
ータを受信する際の再利用に役立つ。
われるまでそこに保持される。受信側がバッフ1内でデ
ータを使用すると、バッファは、処理用にさらにデータ
を受信できる。−度使われると、バッファは、新しいデ
ータを受信する際の再利用に役立つ。
データが処理できるよりも速く受信される場合、多くの
バッファが意外に早く獲得されることもある。プログラ
ムは通常、ハッファヲ「バッファ・プール」すなわち資
源プールと呼ばれる論理構造の中に構成する。マルチプ
ロセッサ環境では、バッファ・プールは、プログラムに
属する任意のプロセスによって使用可能であり、そして
プログラムは、そのプロセスがバッファ・プール内でバ
ッファを使用する方法を制御しなければならない。通常
、プログラムは、2つのプロセスが同時に同じバッファ
を得るよつな方法で、バッフトプールからバッファを「
得たり」そして「解放したり」するための方法を、プロ
セスに提供する。
バッファが意外に早く獲得されることもある。プログラ
ムは通常、ハッファヲ「バッファ・プール」すなわち資
源プールと呼ばれる論理構造の中に構成する。マルチプ
ロセッサ環境では、バッファ・プールは、プログラムに
属する任意のプロセスによって使用可能であり、そして
プログラムは、そのプロセスがバッファ・プール内でバ
ッファを使用する方法を制御しなければならない。通常
、プログラムは、2つのプロセスが同時に同じバッファ
を得るよつな方法で、バッフトプールからバッファを「
得たり」そして「解放したり」するための方法を、プロ
セスに提供する。
バ、フトプール内バッファへのアクセスの制御に加えて
、またプログラムは、バッファ・プール内に含むバッフ
ァの数も決定しなければならない。バッファ・プール内
にバッファがほとんど含まれていない場合は、プログラ
ムは、バッファを使い果たすことがある。プログラムは
、プログラムが使用を期待されているバッファの最大値
を決定することにより、この問題の回避を試みることが
できる。プログラムが、通常その数の僅かなパーセンテ
ージのみを使用する場合には、最大サイズのバッファ・
プールを割り当てることにより、プログラムは、他のプ
ログラムによって代わ、りに使用され得るコンピュータ
記憶装置を不必要に予約スル。しかし、パッフトプール
の最大期待サイズが非常に小さい場合は、プログラムは
バッファを使い果たす。
、またプログラムは、バッファ・プール内に含むバッフ
ァの数も決定しなければならない。バッファ・プール内
にバッファがほとんど含まれていない場合は、プログラ
ムは、バッファを使い果たすことがある。プログラムは
、プログラムが使用を期待されているバッファの最大値
を決定することにより、この問題の回避を試みることが
できる。プログラムが、通常その数の僅かなパーセンテ
ージのみを使用する場合には、最大サイズのバッファ・
プールを割り当てることにより、プログラムは、他のプ
ログラムによって代わ、りに使用され得るコンピュータ
記憶装置を不必要に予約スル。しかし、パッフトプール
の最大期待サイズが非常に小さい場合は、プログラムは
バッファを使い果たす。
そのプロセスの1つが記憶すべきデータを有する時に、
プログラムがバッファを使い果たした場合は、プロセス
は正常に機能を果たすことができず、プログラムは直ち
に活動しなければならない。
プログラムがバッファを使い果たした場合は、プロセス
は正常に機能を果たすことができず、プログラムは直ち
に活動しなければならない。
たとえば、プログラムは実行を終了することがある。こ
の「解決法」は、プログラム実行の継続が会社や他の企
業の操業に対して極めて重大である大部分の場合に、受
は入れることはできない。代すニ、プログラムはプロセ
スのデータを無駄にすることもある。しかし、データが
再生不可能である場合、または企業にとって非常に重大
である場合、この解決法も受は入れられない。
の「解決法」は、プログラム実行の継続が会社や他の企
業の操業に対して極めて重大である大部分の場合に、受
は入れることはできない。代すニ、プログラムはプロセ
スのデータを無駄にすることもある。しかし、データが
再生不可能である場合、または企業にとって非常に重大
である場合、この解決法も受は入れられない。
プログラムは、バッファが記憶用に使用可能になるまで
待つことができる。これは、他のプロセスが、記憶用バ
ッファを必要とするプロセスで、並行にバッファからデ
ータを用い、すぐに終了することが期待され、それを解
放する所で実行することができる。もしこのアプローチ
がとられる場合、記憶用バッファを必要とするすべての
プロセスは、バッファからのデータを用いたプロセスが
終了するまで、待たなければならないことになる。
待つことができる。これは、他のプロセスが、記憶用バ
ッファを必要とするプロセスで、並行にバッファからデ
ータを用い、すぐに終了することが期待され、それを解
放する所で実行することができる。もしこのアプローチ
がとられる場合、記憶用バッファを必要とするすべての
プロセスは、バッファからのデータを用いたプロセスが
終了するまで、待たなければならないことになる。
しかし、データを利用したこれらのプロセス自体力、記
憶バッファを待つプロセスによって活動を待っている場
合、プログラムは「行き詰まり」、仕事を継続できなく
なる。この理由で、他のプロセスを待って再利用のため
にバッファを解放することは、受は入れられない。
憶バッファを待つプロセスによって活動を待っている場
合、プログラムは「行き詰まり」、仕事を継続できなく
なる。この理由で、他のプロセスを待って再利用のため
にバッファを解放することは、受は入れられない。
IBM出版GC28−1154、rMVs/拡張アーキ
テクチュア監視サービス及びマクロ命令(MVS/Ex
tended Architectures 5upe
rvisorServices and Macro
In5tructions) J は)セル2プール
の生成、割当て、拡張、及び削除を説明している。セル
・プールの短縮は説明していない。
テクチュア監視サービス及びマクロ命令(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 は、バッファ・プールからのバッフ
ァの動的割当てを記載しているが、プールの拡張及び短
縮をアドレスしていない。
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 は)またバッファ・プールの拡張または短
縮をアドレスしないで、バッファを割り当て、さらに利
用する方法を記載している。
れたサップ(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行は、そのような知識が、「数学的最適化あるい
は線形プログラミング用のモデルとして公式化するには
、あまりに複雑で不明瞭である」ということを述べてい
る。
たマスイ(Masui)他の米国特許第4727487
号明細書「コンピュータ・システムにおける資源割当て
法(Resource AllocationMeth
od in a Computer System)J
は、蓄積された経験的知識に基づく資源割当て法を
記載している。マスイは、機械室内/動作環境での資源
割当てを議論し、(人間の)システム・オペレータによ
ってのみ現在周知のいくつかの知識を代替するための方
法を、提案している。第4コラム67行ないし、第5コ
ラム2行は、そのような知識が、「数学的最適化あるい
は線形プログラミング用のモデルとして公式化するには
、あまりに複雑で不明瞭である」ということを述べてい
る。
資源プール・マネジャのもう1つのクラスは外来的直列
化機構、典型的にはラッチを用いて、1つのプロセスが
、−度に、資源プールが定義されているマネジャの制御
領域を参照または、修正することを保証する。この型式
の直列化は、プロセスが、他のプロセスに関係なく、制
御領域を参照できるよつにし、したがって、プール短縮
及び同様な活動が、比較的簡単な方法で実行されるよう
にする。しかし、この代替アプローチは、外来的直列化
機構を用いたいくつかの欠点、特にスピン・ラッチによ
ってこうむるプロセッサ浪費時間、及び延期ラッチによ
る追加命令オーバヘッドから被害を受ける。さらに、プ
ロセスを矛盾する所では、プロセッサ命令コストは劇的
に増す。最後に、本質的に直列化(外来的及び固有の両
方共)は、コンピュータの性能を向上するためにますま
す使用されつつある並行プロセッシングの利用を禁じて
いる。
化機構、典型的にはラッチを用いて、1つのプロセスが
、−度に、資源プールが定義されているマネジャの制御
領域を参照または、修正することを保証する。この型式
の直列化は、プロセスが、他のプロセスに関係なく、制
御領域を参照できるよつにし、したがって、プール短縮
及び同様な活動が、比較的簡単な方法で実行されるよう
にする。しかし、この代替アプローチは、外来的直列化
機構を用いたいくつかの欠点、特にスピン・ラッチによ
ってこうむるプロセッサ浪費時間、及び延期ラッチによ
る追加命令オーバヘッドから被害を受ける。さらに、プ
ロセスを矛盾する所では、プロセッサ命令コストは劇的
に増す。最後に、本質的に直列化(外来的及び固有の両
方共)は、コンピュータの性能を向上するためにますま
す使用されつつある並行プロセッシングの利用を禁じて
いる。
C0発明が解決しようとする課題
したがって、資源プールを劇的に拡張し、さらに短縮す
るための方法を必要とする。この方法は、多重処理シス
テム内で同時に実行するプロセスの資源の要件に合致し
なればならず、さらに直列化の利用を最小限にしなけれ
ばならない。
るための方法を必要とする。この方法は、多重処理シス
テム内で同時に実行するプロセスの資源の要件に合致し
なればならず、さらに直列化の利用を最小限にしなけれ
ばならない。
00課題を解決するための手段
資源プールを動的に、すなわち資源に対する要求に応じ
て、拡張及び短縮するための方法が開示されている。資
源は、1つのマスタ・プール22から使用するために割
り当てられる。利用可能な資源のすべてのプールは、拡
張プールを生成することにより、さらにその資源をマス
タ・プールに追加することにより拡張される。マスタ・
プールは、システム内で利用可能な資源の数の限界まで
理論的に拡張することができる。
て、拡張及び短縮するための方法が開示されている。資
源は、1つのマスタ・プール22から使用するために割
り当てられる。利用可能な資源のすべてのプールは、拡
張プールを生成することにより、さらにその資源をマス
タ・プールに追加することにより拡張される。マスタ・
プールは、システム内で利用可能な資源の数の限界まで
理論的に拡張することができる。
プールを動的に短縮するために、まず拡張プールの1つ
を選んで解放する(FREE POOL 66)。解放
プールが所有するが、まだマスタ・プールにある(すな
わち使用中でない)これらの資源は、拡張プール移動さ
れ、それらの再利用を防ぐ。解放プールが所有する使用
中の資源は、それらが、マスタ・プールへの代わりに、
拡張プールへ戻るように、それらのホーム・アドレス5
2を変えてラベル付けされる。−度そのようなすべての
資源が解放拡張プールに戻されると、それは削除され、
それによって、資源のすべてのプールを短縮する。
を選んで解放する(FREE POOL 66)。解放
プールが所有するが、まだマスタ・プールにある(すな
わち使用中でない)これらの資源は、拡張プール移動さ
れ、それらの再利用を防ぐ。解放プールが所有する使用
中の資源は、それらが、マスタ・プールへの代わりに、
拡張プールへ戻るように、それらのホーム・アドレス5
2を変えてラベル付けされる。−度そのようなすべての
資源が解放拡張プールに戻されると、それは削除され、
それによって、資源のすべてのプールを短縮する。
記憶バッフ1及びバッファ・プールを操作するための手
順の擬似コード実施例が含まれる。
順の擬似コード実施例が含まれる。
E、実施例
本発明は、コンピュータ利用データ処理システムにおけ
る離散的資源のマスタ・プールを拡張・短縮するための
コンピュータ実施方法を含む。マスタ・プールは少なく
とも1つの追加資源を含む拡張プールを作成し、さらに
、マスタ・プールに拡張プール資源を追加することによ
り拡張される。
る離散的資源のマスタ・プールを拡張・短縮するための
コンピュータ実施方法を含む。マスタ・プールは少なく
とも1つの追加資源を含む拡張プールを作成し、さらに
、マスタ・プールに拡張プール資源を追加することによ
り拡張される。
マスタ・プールは、拡張プールで生ずる任意の本割当て
資源をマスタ・プールから、拡張プールへまず転送する
ことにより短縮される。次に拡張プール内で生ずる資源
は、(それらがもはや使用されていない時のように)割
当て解除されると、これらの資源は、拡張プールに転送
される。拡張プールが、その中で生じる資源のすべてを
含む時、すなわち、その資源のどれも割り当てられない
ままか、使用されていない時、それは削除できる。資源
プールの短縮は、外来的または他の直列化を用いる方法
が効果的に使用できても、極小命令によるよろに、固有
に直列化されることが好ましい。
資源をマスタ・プールから、拡張プールへまず転送する
ことにより短縮される。次に拡張プール内で生ずる資源
は、(それらがもはや使用されていない時のように)割
当て解除されると、これらの資源は、拡張プールに転送
される。拡張プールが、その中で生じる資源のすべてを
含む時、すなわち、その資源のどれも割り当てられない
ままか、使用されていない時、それは削除できる。資源
プールの短縮は、外来的または他の直列化を用いる方法
が効果的に使用できても、極小命令によるよろに、固有
に直列化されることが好ましい。
夏型
本発明の好ましい実施例は、マルチプログラミングまた
はマルチプロセッシング環境で資源のプールを処理する
ための、プログラムにより使用される方法である。これ
は、資源のメインライン使用を非能率にすることなく、
さらに他のラッチ、またはメインライン内の他の外来的
直列化機構の使用を必要とすることなく、資源プールを
拡大・短縮する。したがって、この方法は、能率的に操
作できるべき高性能プログラムによって、さらに割込み
禁止のモードで実行中(すなわち、それらが割り込まれ
ない時)に資源を得て、解放できるべきプログラムによ
って、使用可能である。
はマルチプロセッシング環境で資源のプールを処理する
ための、プログラムにより使用される方法である。これ
は、資源のメインライン使用を非能率にすることなく、
さらに他のラッチ、またはメインライン内の他の外来的
直列化機構の使用を必要とすることなく、資源プールを
拡大・短縮する。したがって、この方法は、能率的に操
作できるべき高性能プログラムによって、さらに割込み
禁止のモードで実行中(すなわち、それらが割り込まれ
ない時)に資源を得て、解放できるべきプログラムによ
って、使用可能である。
資源がバッファである所では、はとんどのプログラムは
、大きな記憶装置をとり、それをバッファに細別するこ
とにより、バッファ・プールの記憶装置を獲得するコス
トを(実行される時間と実行される命令の数に関して)
低減させる。これは、バッファ・プール中の各バッファ
に対して個別システム・コールを行なうより安価であり
、バッファ・プールを初めに作成するためと、プールを
後で拡張するための両方に使用される。
、大きな記憶装置をとり、それをバッファに細別するこ
とにより、バッファ・プールの記憶装置を獲得するコス
トを(実行される時間と実行される命令の数に関して)
低減させる。これは、バッファ・プール中の各バッファ
に対して個別システム・コールを行なうより安価であり
、バッファ・プールを初めに作成するためと、プールを
後で拡張するための両方に使用される。
プログラムがシステムから記憶の1部分を得る場合、部
分的な記憶の解放、実行される時間と、命令の両方で高
価になるため、その部分全部を一度に戻すべきである。
分的な記憶の解放、実行される時間と、命令の両方で高
価になるため、その部分全部を一度に戻すべきである。
さらに、少しずつの記憶の解放は、システムの記憶が断
片的になる原因となる。
片的になる原因となる。
最後に、プログラムは、プロセスがその記憶装置内のど
のバッファも使っていない場合だけ、バッフ・ア記憶を
解放することに注意しなければならない。これは、すで
に解放された記憶を使用するためのプロセスによる試み
が、プロセスを異常に終わらせたり、エラー状態をひき
起こす可能性があるからである。
のバッファも使っていない場合だけ、バッフ・ア記憶を
解放することに注意しなければならない。これは、すで
に解放された記憶を使用するためのプロセスによる試み
が、プロセスを異常に終わらせたり、エラー状態をひき
起こす可能性があるからである。
第1図に示すように、バッファ・プール20は、マスタ
・プール22、及びいつでもマスタ・プールに追加でき
る拡張プールのセット24の中に準備される。マスタ・
ブール22は、ラベル付きボックスのセット(バッファ
などの資源)を含むトレイとして考えてよい。各拡張プ
ール24は、ラベル付きボックスの追加トレイとして考
えてよい。
・プール22、及びいつでもマスタ・プールに追加でき
る拡張プールのセット24の中に準備される。マスタ・
ブール22は、ラベル付きボックスのセット(バッファ
などの資源)を含むトレイとして考えてよい。各拡張プ
ール24は、ラベル付きボックスの追加トレイとして考
えてよい。
資源プールは、拡張トレイを作成しマスタ・トレイ上に
そのすべての箱を積み重ねることにより拡張される。
そのすべての箱を積み重ねることにより拡張される。
各ボックスは、それをとのトレイが所有し、そしてその
使用が終わった後、マスタ・トレイに戻されるべきこと
を示すために、ラベル付けされる。
使用が終わった後、マスタ・トレイに戻されるべきこと
を示すために、ラベル付けされる。
すべてのボックスは、マスタ・トレイ内にきちんと積み
重ねられ、そこで主プログラムのプロセスはそれらを取
り、使用することができる。マスタ・トレイ内のボック
スは、追加に適応するのに必要な高さまで積み重ねるこ
とができる。
重ねられ、そこで主プログラムのプロセスはそれらを取
り、使用することができる。マスタ・トレイ内のボック
スは、追加に適応するのに必要な高さまで積み重ねるこ
とができる。
ボックスを必要とするプロセスは、マスタ・トレイから
それを得て、直ちにそれを使用できる。
それを得て、直ちにそれを使用できる。
ボックスは、他のプロセスがそれらを再使用できる前に
、(空いた)マスタ・トレイに戻されなければならない
。このために、ボックスを使用していたプロセスは、ボ
ックスの上のラベルを読み、ラベルが何を表すかに基づ
いて、ボックスをその正しいトレイに戻す。
、(空いた)マスタ・トレイに戻されなければならない
。このために、ボックスを使用していたプロセスは、ボ
ックスの上のラベルを読み、ラベルが何を表すかに基づ
いて、ボックスをその正しいトレイに戻す。
マスタ・トレイが、主プログラムのプロセスが必要とす
るより多くのボックスを保持する時は、資源プールは、
除去(解除)のために、拡張トレイの1つを選択するこ
とにより、(その瞬間に)動的に減少(短縮)される。
るより多くのボックスを保持する時は、資源プールは、
除去(解除)のために、拡張トレイの1つを選択するこ
とにより、(その瞬間に)動的に減少(短縮)される。
そのトレイが所有するすべてのボックスは、たとえそれ
らのいくつかが使用されていても、再びラベル付けされ
る。それからマスタ・トレイは、除去(解放)されてい
る拡張トレイが所有するボックスのために探査され、そ
してどれかが見つかった場合は、それらは拡張トレイの
上に積み重ねられる。そのトレイのボックスのどれかが
まだ使用されている場合は、それらの新しいラベルは、
それらが終える時、それらを拡張トレイに戻すよう該当
プロセスに知らせることになる。
らのいくつかが使用されていても、再びラベル付けされ
る。それからマスタ・トレイは、除去(解放)されてい
る拡張トレイが所有するボックスのために探査され、そ
してどれかが見つかった場合は、それらは拡張トレイの
上に積み重ねられる。そのトレイのボックスのどれかが
まだ使用されている場合は、それらの新しいラベルは、
それらが終える時、それらを拡張トレイに戻すよう該当
プロセスに知らせることになる。
除去のために選択された拡張トレイが、−度そのボック
スのすべてを含むと、それとすべてのそのボックスは削
除され、それによって資源プール内のボックス(資源)
の数を減する。
スのすべてを含むと、それとすべてのそのボックスは削
除され、それによって資源プール内のボックス(資源)
の数を減する。
資源プールを力学的に拡大、短縮するための操作が準備
されるので本方法は、資源プールのサイズを変更するた
めに、主プログラムが停止されたリリセットされること
を要求する他の資源管理技術の限界と非能率性を防ぐ。
されるので本方法は、資源プールのサイズを変更するた
めに、主プログラムが停止されたリリセットされること
を要求する他の資源管理技術の限界と非能率性を防ぐ。
本方法は、期待される、あるいは普通の処理要件に基づ
く初期の資源プール・サイズを割り当て、さらに追加資
源を動的に割当て、不要の資源を割当て解除することに
より、条件変更に適合する。
く初期の資源プール・サイズを割り当て、さらに追加資
源を動的に割当て、不要の資源を割当て解除することに
より、条件変更に適合する。
最も重要なことは、本方法は、メインライン処理に影響
することなく、マルチプログラミン・グ及びマルチプロ
セッシング環境内で資源プールを短縮することである。
することなく、マルチプログラミン・グ及びマルチプロ
セッシング環境内で資源プールを短縮することである。
これは取得及び解放操作時に、外来的直列化機構を避け
ることにより実行され、それによって、メインライン論
理通路内の使用中待ち及び延期の費用を避ける。この結
果、本方法は非常に能率的であり、割込み禁止されたプ
ロセスで使用することもできる。
ることにより実行され、それによって、メインライン論
理通路内の使用中待ち及び延期の費用を避ける。この結
果、本方法は非常に能率的であり、割込み禁止されたプ
ロセスで使用することもできる。
また、本方法を用いたプログラムが資源を使い果すこと
もある。たとえば、それは、コンピュータで使用できる
よりも多くの資源を用いることがあり、またどれだけの
追加資源が必要であるかを誤算することもある。そのよ
うな状態は例外として取り扱うべきで、本方法の範囲外
である。
もある。たとえば、それは、コンピュータで使用できる
よりも多くの資源を用いることがあり、またどれだけの
追加資源が必要であるかを誤算することもある。そのよ
うな状態は例外として取り扱うべきで、本方法の範囲外
である。
さらに、本方法は、共用設備の不公平な利用により生じ
る資源不足の問題を提出しない。たとえば、データを他
のプログラムに送るプログラムは、レシーバのバッファ
・プールをオーバーランすることもある。そのような状
態は、過剰制御方法を用いて処理されなければならず、
これも本発明の範囲外にある。
る資源不足の問題を提出しない。たとえば、データを他
のプログラムに送るプログラムは、レシーバのバッファ
・プールをオーバーランすることもある。そのような状
態は、過剰制御方法を用いて処理されなければならず、
これも本発明の範囲外にある。
本発明の好ましい実施例は、バッファ・プール及び個々
のバッファを操作するための動作を提供する。しかし本
発明は、均一な資源のどんなセットにも適用できること
を理解されたい。
のバッファを操作するための動作を提供する。しかし本
発明は、均一な資源のどんなセットにも適用できること
を理解されたい。
次の第1項は、バッファ・プールのための適当な構成を
述べている。これに、バッファとプールにおける動作を
説明する項目が続く。BUILDPOOLは、システム
から物理的資源を獲得することにより、バッファの拡張
プールを作成し、それによって、資源プール全体を拡張
する。GET BUFFERは、要求するプロセスに
より使用するために、プールから単一のバッファを要求
する。FREE BUFFERは、前のGETBUF
FER要求で得られた単一の特定バッファをバッファ・
プールに戻す。FREE POOLは、バッファの拡
張プールを解放し、それらのいくつかはまだ、使用中の
場合もある。DELETE POOLは、−度そのバ
ッファのすべてが解放され、−そのプールに戻されると
、−度解放された拡張プールを削除し、それによって資
源プール全体を短縮する。
述べている。これに、バッファとプールにおける動作を
説明する項目が続く。BUILDPOOLは、システム
から物理的資源を獲得することにより、バッファの拡張
プールを作成し、それによって、資源プール全体を拡張
する。GET BUFFERは、要求するプロセスに
より使用するために、プールから単一のバッファを要求
する。FREE BUFFERは、前のGETBUF
FER要求で得られた単一の特定バッファをバッファ・
プールに戻す。FREE POOLは、バッファの拡
張プールを解放し、それらのいくつかはまだ、使用中の
場合もある。DELETE POOLは、−度そのバ
ッファのすべてが解放され、−そのプールに戻されると
、−度解放された拡張プールを削除し、それによって資
源プール全体を短縮する。
個々のバッファを獲得したり、解放したりするRの動作
は、メインライン動作である。すべてがバッファ・プー
ル上で動作する残りの動作は、メインラインではない。
は、メインライン動作である。すべてがバッファ・プー
ル上で動作する残りの動作は、メインラインではない。
バッファ・プールの編
バッファ・プールには2つの型式がある。すなわち、マ
スタ・プール22と拡張プール24である。型式に関係
なく、各バッファ・プールは3つの要素を有する。すな
わち、プール制御要素、1つまたは複数のバッファ、及
び各バッファ用のバッフ1制御要素である。1つのバッ
ファは、−度に2つのバッファ・プールつまりその所有
者のプール及びそのホーム・プールに関連し、そして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である場合もあり、ない場合もある。
に関係なく、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であり、そのプール制御要素28は、「
マスタ・プール制御要素」36として周知である。主プ
ログラムが、追加バッファを必要とする場合は、それは
BUILD POOL動作を実行することにより「拡
張バッファ・プール」を作成できる。拡張バッファ・プ
ール24のプール制御要素28は、マスタ・プール制御
要素36上に固定された一連の「拡張プール・リスト」
38の中に編成される。
拡張バッファ用のホームは、通常はマスタ・パッフトプ
ール22である。これは、マスタ・プール22内で利用
可能なバッフ130の数を増加させることにより、バッ
フトプール20を拡張する効果があり、マスタ・プール
22からバッファがそれらを使つ必要のあるプロセスに
より取られ、戻される。拡張プール24が解放される時
、そのバッファ30のホーム・アドレスは、マスタ・プ
ール22から解放された拡張プール24へ、スナワちバ
ッファ所有のバッファ・プールへ変更される。
ール22である。これは、マスタ・プール22内で利用
可能なバッフ130の数を増加させることにより、バッ
フトプール20を拡張する効果があり、マスタ・プール
22からバッファがそれらを使つ必要のあるプロセスに
より取られ、戻される。拡張プール24が解放される時
、そのバッファ30のホーム・アドレスは、マスタ・プ
ール22から解放された拡張プール24へ、スナワちバ
ッファ所有のバッファ・プールへ変更される。
プロセスにより使用されていないバッファ30は、マス
タ・プール22内に保持され、「解放」状態にあると考
えられる。これらの解放バッファは、マスタ・プール2
2または拡張プール24のどちらかによって所有される
が、すべてはマスタ・プールをそれらのホーム・アドレ
スとして維持する。解放バッフ1の制御要素32は、マ
スタ・プール制御要素36上にある一連の解放バッファ
・すスト40内に保持される。各拡張プール24は、同
様に、連なった解放バッファ・リスト42を有するが、
それは空でありプールがFREE POOL動作によ
り解放されるまで、そのまま留まる。
タ・プール22内に保持され、「解放」状態にあると考
えられる。これらの解放バッファは、マスタ・プール2
2または拡張プール24のどちらかによって所有される
が、すべてはマスタ・プールをそれらのホーム・アドレ
スとして維持する。解放バッフ1の制御要素32は、マ
スタ・プール制御要素36上にある一連の解放バッファ
・すスト40内に保持される。各拡張プール24は、同
様に、連なった解放バッファ・リスト42を有するが、
それは空でありプールがFREE POOL動作によ
り解放されるまで、そのまま留まる。
プロセスがバッファ30を必要とする時、それはGEL
BUFFER動作60を実行し、GET BUF
FER動作60は、第1バツフア制御要素32を、マス
タ・プールの解放バッファ・リス)40から除去し、関
連バッファ30を要求プロセスに利用可能にする。した
がって関連バッファは「使用中」と言われる。
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全体を短縮する
。
BUFFER動作64は、関連したバッファ制御要素3
2を、バッファのホーム・プールに属する解放バッファ
・リスト上に再待合せするために使用される。通常、バ
ッファはマスタの解放バッファ・リスト40に戻される
。しかしながら、バッファの所有プールが、解放された
拡張プール24である場合は、バッファのホーム・アド
レスは変更され、バッファはマスタ・プール22への代
わりに、その解放された拡張プール24の解放バッファ
・リスト42へ戻される。したがって、その解放された
拡張プールのバッファのすべてが、度その自由バッファ
・リスト42に戻されると、プール24は、物理的にD
ELETE POOL動作によって解放することがで
き、それによってバッファ・プール20全体を短縮する
。
第3図は、プール制御要素28及びバッファ制御要素3
2のデータ構造を示す。これは、本発明を使用にするた
めには必要ないが、マスタ・ブール22及び拡張プール
24の両方のプール制御要素に、同じフォーマットが使
用される。
2のデータ構造を示す。これは、本発明を使用にするた
めには必要ないが、マスタ・ブール22及び拡張プール
24の両方のプール制御要素に、同じフォーマットが使
用される。
本方法のバッファの編成及びデータ構造を述べたが、次
の項では、これらの構造について実行された動作を詳細
にそして本方法のメインライン動作内でラッチを必要と
せずに、動的にいかに実行できるかについて、言及する
。
の項では、これらの構造について実行された動作を詳細
にそして本方法のメインライン動作内でラッチを必要と
せずに、動的にいかに実行できるかについて、言及する
。
バッファ・プールの作成 −BUILD POOL5
8a、58b バッファ・プールは、BUILD POOL動作58
a158bにより、作成(構成)され、その動作は、ど
のバッファが使用される前でも、主プログラムにより要
求されなければならない。同じ動作(BUI LD
POOL)が、マスタ・ブール22及び拡張プール24
の両方を作成するために使用され、それらの構造のわず
かの違いは、BUILD POOL内で処理される。
8a、58b バッファ・プールは、BUILD POOL動作58
a158bにより、作成(構成)され、その動作は、ど
のバッファが使用される前でも、主プログラムにより要
求されなければならない。同じ動作(BUI LD
POOL)が、マスタ・ブール22及び拡張プール24
の両方を作成するために使用され、それらの構造のわず
かの違いは、BUILD POOL内で処理される。
BUILDPOOL58a、58b1及びFREE
POOL66の両方は、まれな動作であると想定され、
したがってメインライン機能ではない。
POOL66の両方は、まれな動作であると想定され、
したがってメインライン機能ではない。
マスタ・ブール22は、任意の拡張プール24が作成さ
れる前にも作成される。それは、BUILD POO
L要求内で識別されなければならず、−度作成されると
、FREE POOL動作によっては決して除去され
ない。マスタ・ブール22は、すべてのバッファ及びバ
ッファ・プール処理のためのアンカーとして役立つ。
れる前にも作成される。それは、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フィールド
内に記憶される。
てられ、マスタ・プール制御要素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を用いて連鎖されて
いる。
スタ・プール解放バッファ・リスト4゜に対し、同様に
作成される。所有されたバッファ・リスト34は、マス
タ・プール制御要素36のFIR8T−OWNEDフィ
ールド5o内ニ記憶内乳記憶るリスト・ヘッドで、プー
ルのバッファ制御要素BUF CTL32(7)NE
XT 0WNEDフイールド48を用いて連鎖されて
いる。
各バッファのホーム・アドレスは、バッファの制御要素
BUF CTL32のHOME POOLフィール
ド52内に記憶され、前記のように、初期にはマスタ・
プール制御要素36のアドレスにセットされる。各バッ
ファ制御要素32のBUFFERADDRフィールド5
4は、要素の関連バッファ30のアドレスにセットされ
る。
BUF CTL32のHOME POOLフィール
ド52内に記憶され、前記のように、初期にはマスタ・
プール制御要素36のアドレスにセットされる。各バッ
ファ制御要素32のBUFFERADDRフィールド5
4は、要素の関連バッファ30のアドレスにセットされ
る。
最後に、マスタ・プール制御要素36のアドレスは、バ
ッファ・プールまたは、バッファ上の操作によって使用
するために、ANCHOR,MASTERフィールド内
に記憶される。
ッファ・プールまたは、バッファ上の操作によって使用
するために、ANCHOR,MASTERフィールド内
に記憶される。
BUILD POOLが拡張バッファ・プールを作成
するために要求されると、データ構造は、マスタ・プー
ル制御要素36について述べたものと同様に作成される
。しかし、バッファ制御要素32が、プールの解放バッ
ファ・リスト42を形成するために連結された後で、そ
のリストは単一の極小操作で、Compare−Dou
b le−and−Swap命令を用いたマスタ・プー
ル制御要素の解放バッファ・リスト40に転送される。
するために要求されると、データ構造は、マスタ・プー
ル制御要素36について述べたものと同様に作成される
。しかし、バッファ制御要素32が、プールの解放バッ
ファ・リスト42を形成するために連結された後で、そ
のリストは単一の極小操作で、Compare−Dou
b le−and−Swap命令を用いたマスタ・プー
ル制御要素の解放バッファ・リスト40に転送される。
バッファ制御要素32のHOME POOLフィール
ド内に再び記憶されたこれらの拡張プール24のバッフ
ァに対するホーム・アドレスは、マスタ・プール制御要
素36のアドレスにセットされる。拡張プールの使用中
カラン)BUSYCTは、プール内のバッファの数にセ
ットされ、プールのバッファのどれも解放されていない
ことを表示する(前述の拡張プールの再解放及び削除参
照)。
ド内に再び記憶されたこれらの拡張プール24のバッフ
ァに対するホーム・アドレスは、マスタ・プール制御要
素36のアドレスにセットされる。拡張プールの使用中
カラン)BUSYCTは、プール内のバッファの数にセ
ットされ、プールのバッファのどれも解放されていない
ことを表示する(前述の拡張プールの再解放及び削除参
照)。
拡張プール制御要素28は、拡張プール・リスト38の
ヘッドに追加される。このリストは、拡張プール制御要
素28のNEXT POOLフィールド56を介して
連鎖され、そのヘッドは、マスタ・プール制御要素36
のNEXT POOL内に配置される。
ヘッドに追加される。このリストは、拡張プール制御要
素28のNEXT POOLフィールド56を介して
連鎖され、そのヘッドは、マスタ・プール制御要素36
のNEXT POOL内に配置される。
BUILD POOL動作は、極小命令を用いて、そ
れを他の並行(同時)BUILD POOL及びFR
EE POOLプロセスから保護するために直列化さ
れてもよい。これらの操作は稀で、非メインラインであ
るから、ラッチのような外来的直列化のどんな型式でも
使用することができ、また使用される型式は、設計選択
の問題である。
れを他の並行(同時)BUILD POOL及びFR
EE POOLプロセスから保護するために直列化さ
れてもよい。これらの操作は稀で、非メインラインであ
るから、ラッチのような外来的直列化のどんな型式でも
使用することができ、また使用される型式は、設計選択
の問題である。
拡張所有のバッフトリストは、マスタ・プール22のバ
ッファのために、前記のように作成される。これは、た
とえバッファのいくつかがマスタの解放バッファ・リス
ト22から除去されても、拡張プールの構成要素のすべ
てを、そのプール制御要素28から直接位置決めする方
法を提供する。
ッファのために、前記のように作成される。これは、た
とえバッファのいくつかがマスタの解放バッファ・リス
ト22から除去されても、拡張プールの構成要素のすべ
てを、そのプール制御要素28から直接位置決めする方
法を提供する。
要するに、BUILp POOL動作は、マスタ・プ
ール制御要素38がプール処理用の固定具として役立つ
、バッファ・プール2eを作成する。
ール制御要素38がプール処理用の固定具として役立つ
、バッファ・プール2eを作成する。
マスタ・プール制御要素36は、バッファ・サービスが
プログラムによって必要とされる限り、削除されない。
プログラムによって必要とされる限り、削除されない。
バッファ・サービスを使用するプロセスは、そのような
プロセスが拡張プールを直接引用しないので、同時に削
除されているバッファ・プールをアドレスする試みに関
′係する必要は決してない。
プロセスが拡張プールを直接引用しないので、同時に削
除されているバッファ・プールをアドレスする試みに関
′係する必要は決してない。
BUILD POOL58a 58b の 似コ
ーヱ二 第2A表及び第2B表は、BUILD POOL手段
58a158bの実施を従来の擬似コードで示す。
ーヱ二 第2A表及び第2B表は、BUILD POOL手段
58a158bの実施を従来の擬似コードで示す。
400−404行で、記憶はシステムから獲得され、副
次的に割り当てられる。これらの記憶領域は、2進法の
Oに初期化されると仮定する。それから、各バッフ1制
御要素BUF CTL32が、フォーマットされる(
405−418行)。
次的に割り当てられる。これらの記憶領域は、2進法の
Oに初期化されると仮定する。それから、各バッフ1制
御要素BUF CTL32が、フォーマットされる(
405−418行)。
バッファは各BUF CTL要素(407行)に割り
当てられ、各BUF CTL要素用のホーム・プール
はマスタ・プール制御要素POOLCTL3ESにセッ
トされる。(407−410行)。411−415行で
、プール所有のバッファ・リスト34及び解放バッフト
リスト42が形成される。417行で、所有のバッファ
・リスト34は、POOL CTL要素に連鎖される
。
当てられ、各BUF CTL要素用のホーム・プール
はマスタ・プール制御要素POOLCTL3ESにセッ
トされる。(407−410行)。411−415行で
、プール所有のバッファ・リスト34及び解放バッフト
リスト42が形成される。417行で、所有のバッファ
・リスト34は、POOL CTL要素に連鎖される
。
マスタ・プール22が、(拡張プールではなく)BUI
LD POOL動作を要求された場合は、41B−4
27行が実行される。まず、新しいプール解放バッフト
リスト42が、420行によりマスタの解放バッフトリ
スト40に追加される。
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)内に見ることができる。
いないので、非極小的に実施される。そしてマスタ・プ
ール制御要素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を始めたりクエスタに戻す。
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である。
、及びFREE BUFFER642つのメインライ
ン動作は、GET BUFFER60及びFREE
BUFFER64である。
本発明で、これらの動作は、延期、使用中待ち、あるい
は、デッドロックを生ずるラッチなどのより高価な外来
的直列化機構に依らないで、極小命令を用いて直列化で
きる。
は、デッドロックを生ずるラッチなどのより高価な外来
的直列化機構に依らないで、極小命令を用いて直列化で
きる。
プロセスがバッファを要求する時、それは、GET
BUFFER手順60を実行するための要求を発する。
BUFFER手順60を実行するための要求を発する。
GET BUFFERは、マスタ解放バッファ・リス
ト40のヘッドでバッファ制御要素BUF CTL3
2を選択する。すなわち、そのアドレスは、マスタ・プ
ール制御要素36のFREE、FIR8T FREE
フィールド46内に記憶される。バッファ制御要素32
は、リストから除かれ、リストの使用中カウント、PO
OL CTL、FREE、BUSY CTは、1だ
け増分される。
ト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へのアクセスを
得る。
ロセスは、バッファ30に対するバッファ制御要素BU
F CTL32のアドレスである「トークン」を与え
られる。要求プロセスは、このトークンによって、バッ
ファ制御要素BUFCTL32のBUFFERADDR
フィールド内で識別されるバッファ30へのアクセスを
得る。
多重プロセスの直列化に使用され、禁止された割込みに
よるその実行を含み、並行してバッファを得るために探
索するラッチはない。代わりに、マスタ解放バッファ・
リスト40に関する単一Compare−Doub l
e−and−Swap動作は、マスタ・プール制御要素
のFREE、FIR8T FREEフィールド46内
で識別されるヘッド要素を、安全に除去されるようにす
るには十分である。
よるその実行を含み、並行してバッファを得るために探
索するラッチはない。代わりに、マスタ解放バッファ・
リスト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のような)連鎖リストである。
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がバッファ
の外にあることを誤って報告することはあり得るが、極
めて稀である。
から拡張のバッファのスヘテを除去しようとし、”スト
ップオーバ・リストは、このプロセス中に除去される他
のバッファのための保持領域である。このリストは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内に置かれる。
ることを望むと、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 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の実施例を示す。
、従来の擬似コード内の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行)の位置決め(トークン)と共に要求プロセスに
戻される。
要素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
行)に戻される。
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行)ことを表示する。
GET BUFFERは要求プロセスに、バッファは
現在利用できない(510行)ことを表示する。
FREE BUFFER64用の擬似コード:第4表
は、従来の擬似コード内のFREE BUFFER手
順64の実施例を示す。
は、従来の擬似コード内のFREE BUFFER手
順64の実施例を示す。
600行で、解放されているバッファ30のホーム・プ
ールのプール制御要5POOL CTL28は、バッ
ファ制御要素BUF CTL32のHOME PO
OLフィールド52から得られる。
ールのプール制御要5POOL CTL28は、バッ
ファ制御要素BUF CTL32のHOME PO
OLフィールド52から得られる。
バッファ30が、FREE POOL動作66で解放
されているプロセス中にある拡張プール24に関連する
場合、600行によって得られるPOOL CTL要
素28はバッファを有する拡張プールの要素である。バ
ッファ所有のプールが解放されていない場合、そのホー
ム・プールはマスタ・プール22であり、マスタ・プー
ル制御要素POOL CTL3Efは600行により
得られる。
されているプロセス中にある拡張プール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により行なわれ、後述する。
ホーム・プールの解放バッファ・リストのヘッド(FR
EE、FIR8T FREE46)に極小的に置かれ
、ホーム・プールの解放バッファ使用中カウントFRE
E、BUSY CYは、1だけ減分される。この処理
は、第11A表及び第11B表に示すADD BUF
FERANDCOUNTにより行なわれ、後述する。
解放された拡張プール24が所有するバッファ30は、
拡張の代わりにマスタ・プール22に戻されてもよい。
拡張の代わりにマスタ・プール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行により処理される。
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を用いる。
B プログラムが、動的に拡張されたバッファ・プール20
に追加されたバッファのいくつかの使用をもはや要求し
ない場合、それはプールを短縮するためにFREE
POOL手順66を用いる。
FREE POOL動作66は、そのプールが所有す
るバッファ30が、要求が出°された時に他のプロセス
によって使用中であっても、拡張バッファ・プール24
の削除を生じる結果となる潜在的な2つの段階のプロセ
スを開始する。
るバッファ30が、要求が出°された時に他のプロセス
によって使用中であっても、拡張バッファ・プール24
の削除を生じる結果となる潜在的な2つの段階のプロセ
スを開始する。
動的バッファ・プール短縮の第1段階で、FREE
POOL手順66は、最も最近作成された拡張プール2
4を選択し、そのバッファ30をさらにGET BU
FFER要求に対して利用できなくする。解放されたバ
ッファ・プールに属するバッファが他のプロセスによっ
て使用中でない場合は、プールは直ちに削除される。さ
もなければ、FREE POOL動作66は終了し、
解放された拡張プール24の削除を第2段階に残す。
POOL手順66は、最も最近作成された拡張プール2
4を選択し、そのバッファ30をさらにGET BU
FFER要求に対して利用できなくする。解放されたバ
ッファ・プールに属するバッファが他のプロセスによっ
て使用中でない場合は、プールは直ちに削除される。さ
もなければ、FREE POOL動作66は終了し、
解放された拡張プール24の削除を第2段階に残す。
第2段階では、−度そのバッファ30のすべてがそれら
を使っていたプロセスにより解放されると、DELET
E POOL手順68は解放された拡張プール24を
削除する。DELETE PooLは、第7表を参照
して後述する。
を使っていたプロセスにより解放されると、DELET
E POOL手順68は解放された拡張プール24を
削除する。DELETE PooLは、第7表を参照
して後述する。
FREE POOL68は、マスタ拡張プール・リス
ト38から第1拡張ブール24を除去する。
ト38から第1拡張ブール24を除去する。
その拡張プールは、マスタ・プール制御要素POOL
CTL38のNEXT POOLフィールド56で
識別される。解放されているプール24の個々のバッフ
ァ制御要素BUF CTL32は、プール所有のバッ
ファリスト34を用いて識別され、そのリストはプール
の制御要素POOL CTL3BのFIR8T 0
WNEDフイールド50内に固定される。
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により直ち
に行なわれる。
ール、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に戻されない。
かは、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命令のみを用い、外来的直列化を避ける。
ァを取ったり解放したりするために、他のプロセスに頼
るよりもむしろ、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に)加えられる。
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が空になるまで繰り返される。
カウントがゼロ(0)になるまで、あるいは、マスタ解
放バッファ・リスト40が空になるまで繰り返される。
次に、マスタのストップオーバ・リスト上のバッファは
マスタ解放バッファ・リスト40に戻され、それらは使
用のためにプロセスに割当て可能である。しかし、リス
ト全体を除去することは短い間隔(ウィンドウ)を作る
ことになり、この間にバッファ・プール20が、本当は
空ではない時に空のように見えることがあるため、スト
ップオーバ・リスト上のバッファを一度に全部戻すこと
はできない。その代わり、ストップオーバ・リストのバ
ッファは、−度に1つ戻されCompare−Doub
le−and−Swap論理回路により直列化される
。また、ある追加の簿記が、マスタ・プールの使用中カ
ウントBUSY CTがプロセスに割り当てられたバ
ッファの数を正確に反映することを確証する必要がある
。
マスタ解放バッファ・リスト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への追加は、(つま
り極小命令によって)直列化されなければならない。
た拡張プール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を
すでに使用しているプロセスは、そのバッファのプール
に関連した物理的記憶装置が、プール関連のすべてのバ
ッファが解放されるまで解放することはできないので、
妨害されないでそれを続けることができる。
きない解放された拡大プール24のトラックを保持し、
FREE POOL操作66がいつでも実行できるよ
うにする。解放されたプール24からのバッファ30を
すでに使用しているプロセスは、そのバッファのプール
に関連した物理的記憶装置が、プール関連のすべてのバ
ッファが解放されるまで解放することはできないので、
妨害されないでそれを続けることができる。
FLUSHMASTERPOOL70a。
70b操作は、それが2つの並行なプロセスにより同時
に実行されることを防ぐために直列化される。これが行
なわれない場合、1つのFLUSHMASTERPOO
Lプロセスは、マスタ解放バッフトリスト40からバッ
ファを除去し、ストップオーバ・リスト上にそれらを置
くことができ、一方で、他のFREE BUFFER
プロセスは、他の方向に(ストップオーバ・リストから
、マスタ解放バッファ・リスト40へ)バッファを戻す
。この発生の見込みは非常に少ないが、それは、2つの
プロセスが命令の永久のシーケンス、すなわち「無限の
ループ」にインターロックされる原因となる。本方法で
は、この可能性は、ラッチ(FREE POOLラッ
チ)を用いζ、バ。
に実行されることを防ぐために直列化される。これが行
なわれない場合、1つのFLUSHMASTERPOO
Lプロセスは、マスタ解放バッフトリスト40からバッ
ファを除去し、ストップオーバ・リスト上にそれらを置
くことができ、一方で、他のFREE BUFFER
プロセスは、他の方向に(ストップオーバ・リストから
、マスタ解放バッファ・リスト40へ)バッファを戻す
。この発生の見込みは非常に少ないが、それは、2つの
プロセスが命令の永久のシーケンス、すなわち「無限の
ループ」にインターロックされる原因となる。本方法で
は、この可能性は、ラッチ(FREE POOLラッ
チ)を用いζ、バ。
ファをマスタ・プールの解放バッファ・リスト40とス
トップオーバ・リストの間で移動する論理回路を保護す
ることにより除去される。
トップオーバ・リストの間で移動する論理回路を保護す
ることにより除去される。
FREE POOL813用の擬似コード:第5表は
、従来の擬似コード内の!”” RE EPOOL手順
66の実施例を示す。
、従来の擬似コード内の!”” RE EPOOL手順
66の実施例を示す。
700行で、第1拡張プール制御要素POOLCT L
28は、マスタ・プールの拡張プールリスト38 (
NEXT EXT)から除去される。
28は、マスタ・プールの拡張プールリスト38 (
NEXT EXT)から除去される。
同時BUILD POOLまたは、FREE P0
0L動作が、拡張プール・リスト38を処理することが
できるので、これは、第9表に示すREMOVE P
OOL手順75により極小的に行なわれる。
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 。
合(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行)から除去される。
(706行)から除去される。
拡張プール24が静止される場合(707−709a行
)は、プール・バッファ30は解放され、物理的にそれ
らを削除し、それによってバッファ・プール20を短縮
する。この場合、マスタ・ブールの使用中カラン)BU
SY CTは、ユーザ・プロセスがマスタ解放バッフ
ァ・リスト40から除去したが、解放拡張プールの解放
バッファ・リスト42に戻されたバッファの数だけ減少
される。
)は、プール・バッファ30は解放され、物理的にそれ
らを削除し、それによってバッファ・プール20を短縮
する。この場合、マスタ・ブールの使用中カラン)BU
SY CTは、ユーザ・プロセスがマスタ解放バッフ
ァ・リスト40から除去したが、解放拡張プールの解放
バッファ・リスト42に戻されたバッファの数だけ減少
される。
解放プール24が静止されていない場合(710−71
1行)は、そのPOOL CTL要素28は、第8表
を参照して後述するADD POOL手順76を用い
て解放プール・リスト72上で待ち行列に入れられる。
1行)は、そのPOOL CTL要素28は、第8表
を参照して後述するADD POOL手順76を用い
て解放プール・リスト72上で待ち行列に入れられる。
ADD POOLは極小動作を用いて、同時DELE
TE POOL及びFREE POOLプロセスに
対し直列化する。
TE POOL及びFREE POOLプロセスに
対し直列化する。
FLUSHMASTERPOOL70a170b用の擬
似コード: 第6A表及び第8B表は、従来の擬似コー
ド内のFLUSHMASTERPOOL手順70a、7
0bの実施例を示す。FLUSHMASTERPOOL
は、FREE POOL及びDELETE POO
L手順により用いられ、マスタ解放バッファ・リスト4
0から解放された拡張プール・バッファのすべてを除去
する。
似コード: 第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プロセスを妨害することがある。これ
はありそうもないが、ラッチは永久ループに対して動作
を保護する。
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行)は終わる。
ァ・リスト40 (804行)からバッファを極小的に
除去し、解放された拡張プールの解放バッファ・リスト
(808行)、またはマスタ・プールのストップオーバ
・リス)(810行)のどちらかに、それらを戻す。マ
スタ解放バッファ・リスト40内にもうバッファがない
時、除去ループ(802−817行)は終わる。
プール制御要素POOL CTL28が、FLUSH
MASTERPOOL手順に消される場合は、ゼロ値が
、特定の制御要素の拡張プール24が静止されているこ
とを示すので、除去ループ(802−817行)は、所
与のPOOLCTL要素のBUSY CTがゼロ(8
14−818行)の場合も、終了する。
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により更新されない。
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行
で解放される。
プールのストップオーバ・リスト上のバッファは、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に追加され、解放
プール及び削除プールにより使用される。
確であることを確証するために、FLUSHMASTE
RPOOLの除去ループにより、マスタ解放バッファ・
リスト40から極小的に除去されるバッファの数は、8
27行によりマスタ・プールの使用中カウントBUSY
CTから減算される。直列化のためのCompar
e−and−Swap命令を用いるのが好ましい。マス
タ解放リストから除去される拡張バッファの数は、拡張
PooL CTL、FLUSHCTに追加され、解放
プール及び削除プールにより使用される。
バッファ・プールの削除 −DELETE0OL68
DELETE POOL68は、FREEPOOL動
作86の時に削除できなかった解放された拡張ブール2
4のために、バッファ・プール20の動的短縮の第2段
階を実行する。単一タイマ駆動プロセスは、そのような
プールを解放されたプール・リスト72から独立して除
去し、それらの関連バッファのすべてが解放されてしま
うと、それらの記憶装置を解放する。
作86の時に削除できなかった解放された拡張ブール2
4のために、バッファ・プール20の動的短縮の第2段
階を実行する。単一タイマ駆動プロセスは、そのような
プールを解放されたプール・リスト72から独立して除
去し、それらの関連バッファのすべてが解放されてしま
うと、それらの記憶装置を解放する。
DELETE POOL88は、解放プール24を監
視し、静止された解放プールを検出する責任がある。各
タイマ間隔で、DELETE POOLは、使用中カ
ラン)BUSY CTがゼロ(0)であるプールのた
めに、解放されたプール・リスト72を走査する。その
ようなものが1つリスト内のどこかで発見された場合に
は、DELETE POOLは、それをCompar
e−and−Swap論理回路を用いて除去し、バッフ
ァ・プール2oを短縮するように、プールに関連する物
理的記憶を解放する。
視し、静止された解放プールを検出する責任がある。各
タイマ間隔で、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が完全に静止されている場
合のみ実施されるので、主プログラムのメインライン・
プロセスと矛盾しない。
スト72へのアクセスは、極小命令を注意深く使用する
ことにより固有に直列化される。複数のFREE P
OOLプロセスが拡張プールをリストのヘッドに追加で
きる間に、唯1つのDELETE POOLプロセス
がそれらを除去できる。DELETE POOLプロ
セスは1つしかないので、極小命令は、リスト内のどこ
でもプール制御要素28を除去するために使うことがで
きる。さらに、DELETE POOL動作68は、
その動作が、解放プール24が完全に静止されている場
合のみ実施されるので、主プログラムのメインライン・
プロセスと矛盾しない。
DELETE POOL操作68は、解放されたが折
よい仕方で静止しなかった拡張プール24を検査する。
よい仕方で静止しなかった拡張プール24を検査する。
通常これは、ユーザ・プロセスが、バッファ30を得、
それをまだ戻して(解放して)いない時に発生する。し
かしまれには、これは、解放拡張に属するバッファが、
拡張の解放バッファ・リスト42の代わりに、マスタ・
プールの解放バッファ・リスト40に戻ったために発生
することがある。前記のように、これは、FREEBU
FFER動作84がバッファをマスタ解放バッファ・リ
スト40に戻すことを決めた後、それが妨害される場合
にのみ発生する。FREEPOOL操作66が、その点
で実行される場合、プールは解放され、別にされて静止
する。その間、FREE BUFFER動作は、回復
された時、バッファをマスタ解放バッファ・リスト40
に戻す。バッファがユーザ・プロセスまたは他のFRE
E POOL動作により続いて除去されない場合、解
放されたプールは決して静止しない。DELETE
POOL88は、そのようなバッファをマスタ解放リス
ト40から周期的にフラッシュすることにより、この状
態を取り扱う。
それをまだ戻して(解放して)いない時に発生する。し
かしまれには、これは、解放拡張に属するバッファが、
拡張の解放バッファ・リスト42の代わりに、マスタ・
プールの解放バッファ・リスト40に戻ったために発生
することがある。前記のように、これは、FREEBU
FFER動作84がバッファをマスタ解放バッファ・リ
スト40に戻すことを決めた後、それが妨害される場合
にのみ発生する。FREEPOOL操作66が、その点
で実行される場合、プールは解放され、別にされて静止
する。その間、FREE BUFFER動作は、回復
された時、バッファをマスタ解放バッファ・リスト40
に戻す。バッファがユーザ・プロセスまたは他のFRE
E POOL動作により続いて除去されない場合、解
放されたプールは決して静止しない。DELETE
POOL88は、そのようなバッファをマスタ解放リス
ト40から周期的にフラッシュすることにより、この状
態を取り扱う。
DELETE POOL68用の擬似コード:第7表
は、従来の擬似コード内のDELETEPOOL手順6
8の実施例を示す。
は、従来の擬似コード内のDELETEPOOL手順6
8の実施例を示す。
DELETE POOL68の901行は、動作がタ
イマを用いて周期的に実行されるようにする。902行
は、静止されたプールのために、すべての解放されたプ
ール・リスト72を走査する。
イマを用いて周期的に実行されるようにする。902行
は、静止されたプールのために、すべての解放されたプ
ール・リスト72を走査する。
DELETE POOL68は、解放された拡張リス
ト72からPOOL CTL要素を除去する唯一のプ
ロセスであるから、待ち行列を処理する標準的技術を、
そのような要素のリストから解放された拡張プール制御
要素POOL CTL28のどこでも除去するために
使うことができる。
ト72からPOOL CTL要素を除去する唯一のプ
ロセスであるから、待ち行列を処理する標準的技術を、
そのような要素のリストから解放された拡張プール制御
要素POOL CTL28のどこでも除去するために
使うことができる。
解放プール・リスト72のPOOL CTL要素28
に関連した拡張ブール24が静止している場合は、その
PQOL CTL要素は、そのリスト(908−90
9行)から極小的に除去(解放)できる。プールの資源
は解放され(912行)、マスタ・プールの使用中カウ
ントは、ユーザ・プロセスがマスタ解放バッファ・リス
ト40から除去したが、解放された拡張プールの解放バ
ッファ・リスト42(913行)に戻したバッファの数
により調整される。この調整は、ユーザ・プロセスがバ
ッファをマスタまたは拡張解放バッファ・リストに戻す
か否かが、それが実際にバッファに戻るまで分からない
ので、プールが静止するまで行なうことができない。
に関連した拡張ブール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要
素をリストのヘッドに追加する場合に、起こりうる。
極小操作が(910行でテストされて)失敗した場合は
、待ち行列全体は、DELETEPOOL手順を再び9
02行から始めることにより再走査される(911行)
。これは、連鎖されないで、削除された解放プールのプ
ール制御要素POOL CTL28が解放されるプー
ル・リスト72のヘッドに置かれ、同時に実行するFR
EE POOLプロセスが他のPOOL CTL要
素をリストのヘッドに追加する場合に、起こりうる。
POOL CTL要素の解放されたプール24が静止
されない場合は、903−915行のDELETE
POOLの走査ループ内のプールに関しては活動はない
。
されない場合は、903−915行のDELETE
POOLの走査ループ内のプールに関しては活動はない
。
前記のように、マスタ解放バッファ・リスト全体40が
、FLUSHMASTERPOOL走査70a170b
を用いて時々フラッシュされ、見捨てられたバッファを
除去する。このプロセスは、DELETE POOL
88の918−920行によりトリガされるが、各タイ
マ間隔中実行される必要はない。色々な概略図のどれも
、それが実行される周波数を限定するのに使うことがで
きる。好ましい実施例では、マスタ解放バッファ・リス
ト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命令のような極小命令を用いて固有に直列化される。
プール制御要素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 POOL手順76の実施
例を示す。
ADD POOL7E3は、プール制御要素POOL
CTL28をそのような要素のリストに追加する。
CTL28をそのような要素のリストに追加する。
そのリストは、プール制御要素のNEXT POOL
フィールド56を通って連鎖される。
フィールド56を通って連鎖される。
所与のPOOL CTL要素28、及び所与のリスト
に対し、ADD POOLは、要素をリストのヘッド
に追加する。先にり、ストのヘッドにあった要素は新し
い要素(1003行)に連鎖され、新しい要素はリスト
のヘッド(1005行)に置かれる。
に対し、ADD POOLは、要素をリストのヘッド
に追加する。先にり、ストのヘッドにあった要素は新し
い要素(1003行)に連鎖され、新しい要素はリスト
のヘッド(1005行)に置かれる。
新しい要素は、現在リスト・ヘッダが並行プロセスによ
り変えられていない場合のみ、リスト・に追加される。
り変えられていない場合のみ、リスト・に追加される。
この極小動作は、IBM 370 Compare−a
nd−Svaρ命令などの極小的命令を用いて達成でき
る。極小動作が失敗した場合は、ADD POOLは
、1002行から再試行することにより、新しいリスト
のヘッドに要素を追加する試みを繰り返す(1007行
)。
nd−Svaρ命令などの極小的命令を用いて達成でき
る。極小動作が失敗した場合は、ADD POOLは
、1002行から再試行することにより、新しいリスト
のヘッドに要素を追加する試みを繰り返す(1007行
)。
REMOVE POOL75用の擬似コート:第9表
は、従来の擬似コード内のREMOVEPOOL手順7
5の実施例を示す。
は、従来の擬似コード内のREMOVEPOOL手順7
5の実施例を示す。
RE M OV E P OOL ハ、そのような要
素のリストから、プール制御要素POOL CTL2
8を極小的に除去する。
素のリストから、プール制御要素POOL CTL2
8を極小的に除去する。
1100−1105行は、リスト・ヘッダに対し、イン
デソクス(1102行)とポインタ(1103行)から
構成される倍長語構造として、P00LCHAINデー
タ・タイプを定義する。それはPOOL CTL要素
のリスト用のアンカーとして使われる。POOLCIA
INインデックスは、複数のプロセスが一度にリストか
らPOOL CTL要素(すなわち、マスタプールの
拡張プール・リストからFREE POOLにより除
去可能な要素)を極小的に除去できるようにする。
デソクス(1102行)とポインタ(1103行)から
構成される倍長語構造として、P00LCHAINデー
タ・タイプを定義する。それはPOOL CTL要素
のリスト用のアンカーとして使われる。POOLCIA
INインデックスは、複数のプロセスが一度にリストか
らPOOL CTL要素(すなわち、マスタプールの
拡張プール・リストからFREE POOLにより除
去可能な要素)を極小的に除去できるようにする。
−度に1つのプロセスだけがリストから要素を除去でき
た場合は、ポインタはリスト・アンカーとして適切であ
る。しかし、この擬似コードは、FREE POOL
68及びDELETE POOL68の両方で使われ
、プール制御要素POOLCTL28のすべてのリスト
に対し、アンカーとしてPOOL−CHA I Nデー
タ・タイプを用いることは好都合である。そのようなア
ンカーを解放されたプール・リスト72に用いることは
悪くない。要するにそれは必要ではない。
た場合は、ポインタはリスト・アンカーとして適切であ
る。しかし、この擬似コードは、FREE POOL
68及びDELETE POOL68の両方で使われ
、プール制御要素POOLCTL28のすべてのリスト
に対し、アンカーとしてPOOL−CHA I Nデー
タ・タイプを用いることは好都合である。そのようなア
ンカーを解放されたプール・リスト72に用いることは
悪くない。要するにそれは必要ではない。
所与のリスト・アンカーについて、REMOVE P
OOL75は、第10表のUNCHAINP00L動作
88を用いて、リスト(1108行)上の第1プール制
御要素POOL CTL28の除去を試みる。それが
成功した場合は、REMOVE POOLは、新たに
解放された要素を要求プロセス(1112行)に戻す。
OOL75は、第10表のUNCHAINP00L動作
88を用いて、リスト(1108行)上の第1プール制
御要素POOL CTL28の除去を試みる。それが
成功した場合は、REMOVE POOLは、新たに
解放された要素を要求プロセス(1112行)に戻す。
このリスト内に要素がない場合は、空のPOOL C
TL要素は戻される。
TL要素は戻される。
極小UNCHAIN POOL動作88が失敗しく1
109行)、1つあるいは複数の同時プロセスがリスト
を変えたことを表示する場合は、REMOVE PO
OL75は、動作を再試行することにより(1110行
)、現行リスト・ヘッダを除去し、そして戻す試みを繰
り返す。
109行)、1つあるいは複数の同時プロセスがリスト
を変えたことを表示する場合は、REMOVE PO
OL75は、動作を再試行することにより(1110行
)、現行リスト・ヘッダを除去し、そして戻す試みを繰
り返す。
UNCHAIN POOL88用の擬似コード:第1
0表は、従来の擬似フードのUNCHA IN PO
OL手順88の実施例を示す。
0表は、従来の擬似フードのUNCHA IN PO
OL手順88の実施例を示す。
UNCHAIN POOL88は、REMOVE
POOL75によって使用され、リストのヘッドから要
素を除去し、さらにDELETE POOL68によ
って使用され、リスト上のどこからも要素を除去する。
POOL75によって使用され、リストのヘッドから要
素を除去し、さらにDELETE POOL68によ
って使用され、リスト上のどこからも要素を除去する。
この理由で、連鎖域は常にデータ・タイプPOOLCH
AINであり、このためREMOV′E P00L論理
は、−度に複数のプロセスにより、リストからの要素の
除去に適応できる。しかし、ただ1つのプロセスが一度
にそのリストから要素を除去できるようにされる場合は
、1つの簡単なポインタがリストの連鎖域とアンカーを
表示するために適切になる。
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行)、この表示をリクエスタに
戻す。
む特定のリスト「ブールチェインコに対して、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を通して連鎖される。
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要素を除去している時に、干渉に対して保護しなけ
ればならない。
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動作を呼ぶ。
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を呼ぶ。
極小的に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に渡される。
4行)は、連鎖BUF CTL要素の新しいリストを
現存リストのヘッドに追加する。新しいリストの最初及
び最後の要素は、パラメータとしてADD BUFF
ERLISTに渡される。
その機能は、現存リスト(1319,1321行)を新
しいヘッドとして新しいリストの第1要素を置く。同時
に現存リストの先のヘッド要素は、新しいリスト内の最
後の要素に連鎖される(1320行)。
しいヘッドとして新しいリストの第1要素を置く。同時
に現存リストの先のヘッド要素は、新しいリスト内の最
後の要素に連鎖される(1320行)。
新しいリストは、現存リストの現行ヘッダが並行プロセ
ス(第11B表の1322行)によって変えられなかっ
た場合にのみ、現在のリストに追加される。これは、極
小IBM 370 Coa+pare−and−Swa
p命令を用いて直列化される。同じ極小動作が、入力カ
ラン)N(1318行)により使用中カラン)BUSY
CTを減分するために使用される。さらに、複数の
プロセスは、リストから要素を除去できるので、IND
EXカウントは、また同じ操作(1317,1321行
)で増分される。もし、極小動作が失敗し、他のプロセ
スが現存リストのヘッダを変えたことを表示した場合は
、ADD BUFFERLISTは、新しいリストを
現存リスト(1323行)に追加する試みを繰り返す。
ス(第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を極小的に除去する。
MOVE BUFFERAND C0UNT及
びREMOVE BUFFER手順86、及び78a
、78bの従来の擬似コードの実施例を示す。これらの
動作は、そのような要素のリストから、第1のバッファ
制御要素BUF CTL32を極小的に除去する。
REMOVE BUFFER8Bは、特定のり、スト
内の第1要素を極小的に除去するが、しかし、BUSY
CTを更新しない(Oだけ増分する)機能である。
内の第1要素を極小的に除去するが、しかし、BUSY
CTを更新しない(Oだけ増分する)機能である。
REMOVE BUFFER(1400−1402行
)は、1401行で示すようないくつかのパラメータを
有するREMOVE BUFFERAND CoU
NT手順動作を呼ぶ。
)は、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命令により直列化される。
(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行)増分される。
カカウン)N(1411行)だけ増分され、そして複数
のプロセスがリストから要素を除去できるので、IND
EXカウントも同じ動作で(1412行)増分される。
極小動作が失敗した場合(1417行)は、REMOV
E BUFFERlAND C0UNTは、その手
順を再試行することにより(1418行)リストから第
1要素を除去する試みを繰り返す。
E BUFFERlAND C0UNTは、その手
順を再試行することにより(1418行)リストから第
1要素を除去する試みを繰り返す。
リスト内に要素がない場合は、空のBUF CTL要
素が戻される(1407−1408行)。
素が戻される(1407−1408行)。
さもなければ、除去された要素が戻される(1420行
)。
)。
DECLARE
10
11
12
13
14
L ANCIIOR,/=アンカー・ブロック:72
MASTERPOINTER(31) 。
MASTERPOINTER(31) 。
/=マスタ・プール制御のアドレ
ス=/
2 FREE EXT、 /=解放サすタ拡
張17)lJ]ト=/3 CDS INDEX F
IXED(32)。
張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)。
制御要素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要素を含む。
ファについて、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)に置く。
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 (バッファ)に置く。
に連続する各バッファをs 1ocation = p
revious bufrer 1ocation−L
ENGTII (バッファ)に置く。
DOfor each of the buf ctl
elements。
elements。
/=バッファをbuf ctl要素に割り当てる=/
SET buf ctl、bufrer addr =
current buffer 1ocation。
SET buf ctl、bufrer addr =
current buffer 1ocation。
/=ホーム・プール値をセットする− 常にマスタパッ
フトプール=7 IF 1laster pool requested
THENSET buf ctl、hos+e−po
ol = pool ctl 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。
anchor、&l5ter。
/=buf ctl要素を先のbuf ctl要素に
連鎖する=/ IF not the first buf ctl
T11ENDO0 SET previous buf ctl、next
free = buf ctllocation。
連鎖する=/ IF not the first buf ctl
T11ENDO0 SET previous buf ctl、next
free = buf ctllocation。
14
SET previous buf ctl、next
owned = buf ctllocation。
owned = buf ctllocation。
15
END。
16
17
END。
/=pool ctlをフォーマットし、プールをバ
ッファ・プール構造に追加する:/ SET pool−ctl、first−owned
= address of first buf ct
l。
ッファ・プール構造に追加する:/ 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。
IIEN0 pool ctl、f’ree、first free
:rirst buf ctl 1ocation。
Use the CS 1nstruction to
atomically SET anchor。
atomically SET anchor。
master =pool ctl 1ocation
。
。
IF the CS 1nstruction fai
ls TIIEH/=他のプロセスで作られたマスタ・
プール=/ DO・ Re1ease pool resources。
ls TIIEH/=他のプロセスで作られたマスタ・
プール=/ DO・ Re1ease pool resources。
RETURN(failed completion
5tatus)。
5tatus)。
END。
END。
LSE
/:要求された拡張ブール=/
DO。
/=拡張のすべての解放バッファ・リストを、使用中カ
ウントを更新しないで、マスタ解放バッファ・リスト4
0に極小的に追加する:l 第2B表 プールの建設(1/2) ADD BUFFERLIST(anchor、mas
terctl、 1ast buf ctl、 O)。
ウントを更新しないで、マスタ解放バッファ・リスト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。
/SE:rpool ctl、「ree、busy c
t = number orbufrcrs 1nex
tensxon。
/=pool ctlをマスタ・プールの拡張リスト
に極小的に追加する=/ ADD−POOL(anchor、+*aster→p
ool cLl、next; pooL poolct
l)。
に極小的に追加する=/ ADD−POOL(anchor、+*aster→p
ool cLl、next; pooL poolct
l)。
END。
RETURN(successf’ul comple
tion 5tatus)。
tion 5tatus)。
第2B表
プールの構築(2/2)
00
アンカー・マスタからマスタ・プールへのアクセスを得
る。
る。
01
02
03
04
/=マスタ解放バッファ・リスト4oから極小的にバッ
ファを除去することを試みる、成功の場合は、使用中カ
ウントを増分する=/ REMOVE−BUFFER−AND C0UNT(a
nchor、+master−>free、 buf
ctl) 。
ファを除去することを試みる、成功の場合は、使用中カ
ウントを増分する=/ 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)。
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。
スト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。
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) 。
n 5tatus、 HULLpointer) 。
11
END。
第3表
ゲット・バッファ(2/2)
00
Obtain pool−ctl from b
uf ctl、hoIIe pool。
uf ctl、hoIIe pool。
01
02
/=buf ctlを適切な解放バッファ・リストに
極小的に追加し、使用中カウントを減分する=/ADD
BUFFERAND C0UNT(pool ctl
、free、 buf ctl)。
極小的に追加し、使用中カウントを減分する=/ADD
BUFFERAND C0UNT(pool ctl
、free、 buf ctl)。
RETURN。
第4表 フリー・バッファ
REMOVE POOL(anchor、1Iaste
r=>pool ctl、next−ext、 poo
l−ctl) 。
r=>pool ctl、next−ext、 poo
l−ctl) 。
/=1つある場合は、第1拡張プールを極小的に除去す
る;/ IF a pool ctl element
was removed TIIENDO。
る;/ IF a pool ctl element
was removed TIIENDO。
/=拡張により所有される各buf ctlに対し、
ホーム・プールをリセットする=/ DOfor each buf−ctl in poo
l ctl、「1rst owned 1ist。
ホーム・プールをリセットする=/ DOfor each buf−ctl in poo
l ctl、「1rst owned 1ist。
5ETbuf−ctl、home pool =poo
l−ctl 1ocation。
l−ctl 1ocation。
END。
/=マスタ解放バッファ・リスト上にある拡張のbuf
ctl要素すべてを除去する=/FLUSH−MA
STER−POOL (poo 1−at l) 。
ctl要素すべてを除去する=/FLUSH−MA
STER−POOL (poo 1−at l) 。
/=拡張が現在静止しているか否かをチエツクする=/
IF pool ctl、free、busy ct
= O’n1EN/=プールは静止している=7 07a (1)。
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。
放バッファ・リストから除去したが、拡張に戻した拡張
バッファの数だけ(すなわち、拡張バッファの数マイナ
スpool ctl、flush at) s anc
hor。
IIaster−>free、busy Ctを極小的
に減分する。=/ If the CS 1nstruction rai
ls thenGOTORETRY7゜ END。
に減分する。=/ 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)。
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。
放された拡張buf ctl要素を除去する=/Do
forever。
/=マスタ解放バッファから第1解放バツフアを極小的
に除去し、使用中カウントを1だけ増分する=/RE)
40VE BUFFERAND C0UNT(anch
or、master−>free。
に除去し、使用中カウントを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。
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。
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)。
タ・プールのストップオーバー・リストに追加する=/ ADD BUFFER(anchor、master−
>pool ctl、5topover、 burct
l)。
END。
ELSE /=buf ctl要素は除去されな
かつた=/ LEAVE removeloop。
かつた=/ LEAVE removeloop。
IF pool−ctl element was p
assed as 1nput parm11EN IF pool−ctl、free、busy ct
= O′111EHLEAVE removeloop
。
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。
nloop: /=マスタ・プールのストップオーバー・リストからb
uf ctl要素を除去し、次にマスタ解放バ・ソフ
ァ・リスト40に戻す=/ Do forever。
/:使用中カウントを変えないで、マスタ・プールのス
トップオーバー・リストからバ・ソファを極小的に除去
する:/ REMOVE BUFFER(anchor、n+as
ter−>pool ctl、5topover。
トップオーバー・リストからバ・ソファを極小的に除去
する:/ 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。
removed TIIEH/=buf ctlをマ
スタ解放バッファ・リスト40に極小的に加え、使用中
カウントを1だけ減分する=/ 822 ADD BUFFERAND−
COUNT(anchor、a+aster−>fre
e。
buf ctl)。
ELSE /=buf ctl要素は除去され
なかった=/ LEAVE returnloop。
なかった=/ LEAVE returnloop。
第6B表 FLUSHMASTERPOOL(1/2)
325 END DOforever。
325 END DOforever。
826 Re1ease free pool 1
atch。
atch。
/=除去される拡張バッファは、マスタ解放バッファ・
リス)40に決して戻されないので、busy ct
を調整しなければならない=/ 826a RETRY8゜ 827 Use the CS 1nstru
ction to atos+1cally decr
ement。
リス)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。
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。
tion fails then827b G
OTORETRY8゜828 IncreIDen
t pool ctl、flush at by th
e nuaber of 5uchbuffers。
829 END FLUS)l MASTERPOO
L。
L。
第6B表 FLUSHMASTERPOOL(2/2)
00 01 02 03 04 DO■ILE freed extension 1i
st is not empty。
00 01 02 03 04 DO■ILE freed extension 1i
st is not empty。
Set tiger and wait ror ti
me 1nterval to expire。
me 1nterval to expire。
/=タイマが終了すると、タイマ駆動活動を実施する=
/rescan: /:すべての解放された拡張リストが静止したので、削
除できるプールのために、これらの拡張リストを走査す
る=/Do ror each pool ctl o
n freed extension 1ist。
/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。
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。
l ctl、next ext。
pool ctl、 fail)。
第7表 DELETE POOL(1/3)13a
13b
14
15
IF fail :OHTIIEH
/=並行プロセスが解放された拡張リストを変えたので
、リスト全体を再走査しなければならない。=/ GOTOrescan。
、リスト全体を再走査しなければならない。=/ 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。
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
)。
nuIIber ofextension buffe
rs m1nus pool ctl、flushct
)。
If the CS 1nstruction fai
ls thenGOTORETRY9゜ END。
ls thenGOTORETRY9゜ END。
END Do for each pool−ctl
on rreed extension I ist。
on rreed extension I ist。
第7表 DELETE POOL(2/3)IF″5
ufficiently IIany” tiser
1ntervals havetransp 1red
THEN oo。
ufficiently IIany” tiser
1ntervals havetransp 1red
THEN oo。
FLUSHMASTERPOOL(HULL pool
ctD、GffrOrescan。
ctD、GffrOrescan。
El(D。
END MILE freed extensi
on 1ist is not empty。
on 1ist is not empty。
第7表
ELETE
POOL (3/3)
1000 ADD−POOL(header: poi
nter、 element: pool−ctl e
lement)。
nter、 element: pool−ctl e
lement)。
1001 VARold header:
pointer。
pointer。
1002 retrylo:
1003 SET olcjheader、 =
header。
header。
/=ヘッダをセーブして、他のプロセスがヘッダをリセ
ットしたか否かをチエツクする=/1004
SE丁ele+*ent、next−pool
= olcjheader。
ットしたか否かをチエツクする=/1004
SE丁ele+*ent、next−pool
= olcjheader。
/=古いヘッダを新しい要素に連鎖する=/1005
Use CS 1nstruction to
atomically SET header =eI
ement。
Use CS 1nstruction to
atomically SET header =eI
ement。
1006 Irthe CS 1nstruct
ion failsl=ヘッダは並行にリセットされた
ので、01dheader及びヘッダは現在具なる;/
1007 GO″Tll retrylo。
ion failsl=ヘッダは並行にリセットされた
ので、01dheader及びヘッダは現在具なる;/
1007 GO″Tll retrylo。
l=要素を新しいリスト・ヘッダに追加することを試み
る:1 1008 END ADIT−POOL。
る:1 1008 END ADIT−POOL。
第8表 ADD POOL
1100 TYPE
1101 poolchain =1102
5tructure 1103 1ndex: fixed(32)
。
5tructure 1103 1ndex: fixed(32)
。
1104 chain: pointer。
1105 end。
1106 REMOVE POOL(anchor:
poolchain、 element: pool
ctlelement)。
poolchain、 element: pool
ctlelement)。
1107 retryll=
l;リスト上の第1pool ctl要素を極小的に
除去する=/ 1108 LIHOIAIH−POOL(anch
or、 eleIlent、 fail)。
除去する=/ 1108 LIHOIAIH−POOL(anch
or、 eleIlent、 fail)。
1109 IF fail =OHTIIEH/
=極小動作は失敗した=/ 1110 GOTOretryll。
=極小動作は失敗した=/ 1110 GOTOretryll。
1111 ELSE /=極小動作は
失敗しなかった=/第9表 REMOVE POOL
(1/2)112 RETlJRN (e lemnt)。
失敗しなかった=/第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)。
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。
セットしたか否かをチエツクする=/IF old、c
hain = N[ILL pointer TTIE
N/=連鎖された要素はない=/ SET elcq++ent = NULL。
/=連鎖された要素が除去されなかったことを示す=/
202
201
203
204
205
206
207
LSE
/=連鎖要素が現在あるが、解放活動中に、並行プロセ
スにより除去されることがある:/(1)。
スにより除去されることがある:/(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。
ex + 1゜/=インデックスをバンプすると、たと
え複数のプロセスが連鎖から要素を除去しても、連鎖は
正確=/ SET new、chain = old、chain
→next−pool。
/=連鎖フィールドを次の連鎖要素で置換する=/
Use CDS 1nstruction to at
omically 5ETanchor = new、
thus removing the chaine
delement。
omically 5ETanchor = new、
thus removing the chaine
delement。
If the CDS 1nstruction 5u
cceeds TTIENSET element =
old、chain。
cceeds TTIENSET element =
old、chain。
/=除去された要素をセーブする:/
ELSE /=他のプロセスはすでにチェーン・フィ
ールドをリセットしたので、アンカーと古いプールチェ
ーンは現在界なる=/SET rail =ON。
ールドをリセットしたので、アンカーと古いプールチェ
ーンは現在界なる=/SET rail =ON。
215
END。
第11A表
UNCHAIN POOL (2/3)216
RETtlRN(eleW!nt、 fail)。
/:
1つある場合、除去された要素のアドレスを戻し、極小
動作が失敗した場合、表示を戻す=/1217 END
IJHCI(AIRPOOL。
動作が失敗した場合、表示を戻す=/1217 END
IJHCI(AIRPOOL。
第11A表
UNCHAIN
POOL (3/3)
1300 TYPE
1301 bufheBder :1302
5tructure 1303 1ndex : fixed(16
)。
5tructure 1303 1ndex : fixed(16
)。
1304 counter: fixed(
16)。
16)。
1305 header i point
er。
er。
1306 end。
1307 ADD BUFFERAND CO聞T(a
nchorj burheader、 element
i bufctl elei+ent)。
nchorj burheader、 element
i bufctl elei+ent)。
1308 ADD BUFFER−LIST(an
chor、 element、 eleIIlent、
1)。
chor、 element、 eleIIlent、
1)。
1309 END ADD BUFFERAND C0
UNT。
UNT。
1310 ADD BLIFFER<anchor:
bufheader、 element: buf c
tl element)。
bufheader、 element: buf c
tl element)。
1311 ADIjBUFFERLIST(anc
hor、 element、 eleIIent、 O
)。
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。
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。
セットしたか否かをチエツクする=/ 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
。
TRoLELE −PART A(2/3)319 320 SET new、header = elementl
。
/=ヘッダを追加されるリスト内の第1要素によって置
換する=/ SET element2−>next free =
old、header。
換する=/ 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。
の端部に追加する。=/ 第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。
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)。
TRoLELE −PART B1400 RE)
[lVE BLIFFER(anchor: bufh
eader、 elelenti buf ctlel
ement)。
1401 RE)[)VE BUFFERAND
C0IJHT(anchor、 element、 O
)。
C0IJHT(anchor、 element、 O
)。
1402 END REMOVE−BUFFER。
1403 RE)40VE BUFFERAND C0
UNT(anchor: burheader、 el
esent: bufctl ele@ent、 n:
fixed)。
UNT(anchor: burheader、 el
esent: bufctl ele@ent、 n:
fixed)。
1404 VARold、 new: bufhe
ader。
ader。
1405 retry14:
1406 SET old = anchor
。
。
/=アンカーをセーブして、他のプロセスがそれをリセ
ットしたか否かをチエツクする=1 1407 IF old、header =
HuljL、pointer TIIEH/=チェーン
内に要素がない=/ 1408 SET element = H
LILL。
ットしたか否かをチエツクする=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。
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。
ex + 1゜/:インデックスをバンブすると、たと
え複数のプロセスが、連鎖から要素を除去しても、連鎖
が正しくなる=/ SET new、counter = old、cou
nter + n。
/=チェーンから除去された要素のカウントをバンブす
る=/ SET new、header :old、heade
r−>next free。
る=/ 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。
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。
cceeds T11ENSET element ”
old、header。
/=除去された要素をセーブする=/
REMOVE BUFFERCONTCoNTRoL
ELE 30 − PART B(1/2)41
7 418 ELSE /=アンカーは並行にリセットされたので
、アンカーと古いバッファヘッダは現在界なる:/GO
TT) RETRY14゜ /=新しい要素を新しいヘッダに追加することを試みる
=/ 1419 END。
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。
/ 1421 E)10 REMOVE BUFFERAN
D C0UNT。
tl
第12B表 REMOVE BUFFERCONTR
OL ELEMENT 30 PART B(2/2) F6発明の詳細 な説明したように、この発明によれば、コンピュータ・
システムにおいて資源プールの拡張がはかられる。
OL ELEMENT 30 PART B(2/2) F6発明の詳細 な説明したように、この発明によれば、コンピュータ・
システムにおいて資源プールの拡張がはかられる。
第1図は、本発明の好ましい実施例によるマスタ・プー
ル、使用中の活動拡張プール、及び削除を待っている解
放拡張プールを有するバッファ・プール連鎖を示すブロ
ック図である。 第2図は、第1図のバッファ・プールの代表的な1つを
示すブロック図である。
ル、使用中の活動拡張プール、及び削除を待っている解
放拡張プールを有するバッファ・プール連鎖を示すブロ
ック図である。 第2図は、第1図のバッファ・プールの代表的な1つを
示すブロック図である。
Claims (10)
- (1)コンピュータ利用によるデータ処理システムで使
用するために割り当てることができる資源のマスタ・プ
ールを拡張及び短縮するための方法であって、前記シス
テムのコンピュータで実行される方法であり、 (a)(i)少なくとも1つの追加資源を含む拡張プー
ルを作成し、そして (ii)拡張プールの資源をマスタ・プールに追加する ことにより、マスタ・プールを拡張する 段階と、 (b)(i)拡張プールで始まった任意の非割当て資源
を、マスタ・プールから拡張 プールへ転送し、 (ii)拡張プールで始まった資源の非割当てに基いて
、そのような資源を拡張 プールに転送し、さらに (iii)それが、その中で始まるすべての資源を含ん
でいる時、拡張プールを削 除する ことにより、マスタ・プールを短縮する 段階 を含む前記の方法。 - (2)前記の資源がバッファである、特許請求の範囲第
1項に記載の方法。 - (3)その中の少なくとも1つの段階が極小命令を用い
て固有に直列化される、特許請求の範囲第1項に記載の
方法。 - (4)極小命令がIBM370Compare−Dou
ble−and−Swap命令である、特許請求の範囲
第3項に記載の方法。 - (5)コンピュータ利用によるデータ処理システム内の
資源のマスタ・プールを管理するための方法であって、
前記システムのコンピュータで実行される、 (a)少なくとも1つの追加資源を含む拡張プールを作
成する段階と、 (b)拡張プールの資源をマスタ資源プールに連鎖する
段階と、 (c)前記システム内で実行するプロセスによって使用
するために、マスタ・プー ルからの資源を割り当てる(得る)段 階と、 (d)プロセスによって資源を割当て解除する(解放す
る)段階と、 (e)活動拡張プールに属する解放資源をマスタ・プー
ルに戻す段階と、 (f)解放拡張プールに属する解放資源を前記拡張プー
ルに戻す段階と、 (g)解放拡張プールに属する非割当て資源をマスタ・
プールから前記拡張プール に転送する段階と、 (h)解放拡張プールが、それに属する資源のすべてを
含む時、それを削除する段 階 を含む、前記の方法。 - (6)割当て及び割当て解除資源の段階が、固有に直列
化される、特許請求の範囲第5項に記載の方法。 - (7)固有の直列化が極小命令を使用することにより提
供される、特許請求の範囲第6項に記載の方法。 - (8)極小命令がIBM370Compare−Dou
ble−and−Swap命令である、特許請求の範囲
第7項に記載の方法。 - (9)マスタ及び拡張プールが制御要素の連鎖として構
成されている、特許請求の範囲第5項に記載の方法。 - (10)資源の制御要素を目的プールの連鎖に向け、さ
らに前記制御要素を初めのプールの連鎖から削除するこ
とにより、資源がプール間で転送される、特許請求の範
囲第9項に記載の方法。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04370849A (ja) * | 1991-06-19 | 1992-12-24 | Nec Corp | 共有メモリエリアサイズ変更方式 |
Families Citing this family (478)
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)
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)
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 |
-
1989
- 1989-06-26 US US07/371,563 patent/US5093912A/en not_active Expired - Lifetime
-
1990
- 1990-04-30 EP EP19900304688 patent/EP0405724A3/en not_active Withdrawn
- 1990-06-26 JP JP2165868A patent/JPH0743665B2/ja not_active Expired - Lifetime
Patent Citations (3)
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)
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) | メモリ管理方式 |