JP2708348B2 - コンピュータのデータを記憶させるための直接アクセス記憶装置の割振り方法及び装置 - Google Patents

コンピュータのデータを記憶させるための直接アクセス記憶装置の割振り方法及び装置

Info

Publication number
JP2708348B2
JP2708348B2 JP5113200A JP11320093A JP2708348B2 JP 2708348 B2 JP2708348 B2 JP 2708348B2 JP 5113200 A JP5113200 A JP 5113200A JP 11320093 A JP11320093 A JP 11320093A JP 2708348 B2 JP2708348 B2 JP 2708348B2
Authority
JP
Japan
Prior art keywords
length
storage
slot
storage locations
storage location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5113200A
Other languages
English (en)
Other versions
JPH06110772A (ja
Inventor
ジェフリー・オウン・ブランディー
キャサリン・マリー・ロッシ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06110772A publication Critical patent/JPH06110772A/ja
Application granted granted Critical
Publication of JP2708348B2 publication Critical patent/JP2708348B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は広くはコンピュータ・シ
ステムに関するものであり、より詳しくは、直接アクセ
ス記憶装置(DASD)内の記憶位置を、データを記憶
させるための記憶位置として割り振る際の、割振り方式
に関するものである。この割振り方式によれば、DAS
D内の可用記憶容量を効率的に利用することができると
共に、DASD内に記憶させてあるデータへアクセスす
る際のオーバーヘッドを可及的に減少させることができ
る。
【0002】
【従来の技術及び発明が解決しようとする課題】多くの
コンピュータ・システム(具体的には、例えば「IBM
・VM/ESA・1.1(IBM VM/ESA 1.1)」等のコン
ピュータ・システム)では、DASDによって外部記憶
を構成するようにしている。DASDには、磁気ディス
クを1枚しか備えていないものもあれば、2枚以上の磁
気ディスクを備えたものもある。2枚以上の磁気ディス
クを備えたDASDでは、それら磁気ディスクを「皿状
部材」とし、それらを積み重ねた形で1本の共通軸心に
取り付けてある。それら複数枚のディスクは、その1枚
1枚が、データを記憶させるための多数本の同心円状の
トラックを備えている。1枚のディスクしか備えていな
いDASDであれば、読み書きヘッドは1個備えている
だけで良い。読み書きヘッドを静止させておいてディス
クを回転させることにより、そのディスクが1回転する
間に、1本のトラックに記憶させてある全ての情報をそ
の読み書きヘッドで読み取ることができる。更に、その
読み書きヘッドを径方向へ移動させることによって、そ
の他のトラックからの読取りも行なうことができる。一
方、複数枚のディスクを備えたDASDでは、各ディス
クごとに、読み書きヘッドを1個ずつ備えている。それ
ら読み書きヘッドは全て、夫々のディスクに対して同じ
位置にくるように位置を揃えてあり、また、それらヘッ
ドどうしを互いに固定関係で連結してあり、そのため、
ヘッドの移動時には、それら全ての読み書きヘッドが一
斉に移動する。ただし、信号の検出は、一度に1つの読
み書きヘッドについてだけ行なわれる。また、「シリン
ダ」というものが定義されており、これは、異なったデ
ィスクどうしの間で互いに垂直方向に位置が揃った各デ
ィスクに1本ずつのトラックから成る、複数本の円形ト
ラックの集合体である。このように複数枚のディスクを
備えたDASDでは、1つないし複数のシリンダによっ
て、1つのエクステントが構成される。ある1つのシリ
ンダの全体を読み取るためには、DASDを、その皿状
部材(ディスク)の枚数に等しい回数だけ回転させ、そ
の各1回転ごとに、異なった読み書きヘッドからの信号
の検出を行なうようにする。また、互いに隣接する複数
のシリンダから構成されている1つのエクステントの全
体を読み取るためには、読み書きヘッドを径方向へ移動
させつつ、そのエクステントの中の各シリンダごとに、
以上のプロセスを反復して実行するようにする。
【0003】以上に説明したDASDの構成態様では、
DASDのアクセス速度(書き込み速度または読取り速
度)を制約している要因が幾つかあり、そのうちの第1
の要因は、読み書きヘッドを1つのシリンダから他のシ
リンダへ、即ち径方向へ移動させるために必要な時間で
ある。従って、1回のアクセスにおいて必要とされる読
み書きヘッドの径方向移動量をできるだけ少なくするこ
とが望まれる。もし、(一度にアクセスすべき一連のデ
ータに)割り振られているアドレスが、連続したアドレ
スではなかったならば、割り振られているそれらアドレ
スが互いに径方向に離隔しているかも知れず、その場合
には、径方向に離隔しているアドレスどうしの間を移動
することのために、読み書きヘッドの径方向移動量が余
分に必要になる。DASDのアクセス速度を制約してい
る第2の要因は、所望のデータが読み書きヘッドの直下
にくるまでのディスクの回転に要する時間である。従っ
て、1回のアクセスにおいて必要とされるディスクの回
転量をできるだけ少なくすることが望まれる。非連続な
アドレスに対して入出力を行なうときには、アクセスの
対象ではないデータを、読み書きヘッドの下を素通りさ
せることのために、余分な時間が必要になる。DASD
のアクセス速度を制約している第3の要因は、アクセス
を完了するまでに必要な入出力操作の回数である。DA
SD内に、各々が連続した複数の記憶位置から成る記憶
位置集合が複数存在しており、しかも記憶位置集合どう
しは互いに非連続であるとき、入出力サブシステムがそ
のDASDを制御するためには、それら複数の記憶位置
集合の各々に対して、その記憶位置集合の開始位置と長
さとに関する情報を指定しなければならない。従って、
1回の入出力アクセスに必要な入出力操作の回数をでき
るだけ減少させることが望まれる。もし、DASDに書
き込もうとしているデータの全体を、そのDASD内に
存在している、複数の連続した記憶位置から成る1つの
記憶位置集合(即ち、ひとまとまりの記憶位置)の中に
記憶させることができれば、1つの開始位置と1つの長
さとだけを指定すれば良いのであるから、入出力操作は
1回で足りることになる。一方、そのデータの全体を記
憶させることができるだけの大きさの、ひとまとまりの
連続した記憶位置から成る記憶位置集合が存在していな
い場合には、そのデータを分割して、互いに非連続な複
数の記憶位置集合の間に分散させねばならず、そのた
め、互いに非連続なそれら複数の記憶位置集合の1つ毎
に1回ずつの入出力操作が必要になる。
【0004】以上3つの要因に加えて、DASDの管理
方式に関係した第4の要因として、記憶容量の無駄を避
けねばならないということがある。不都合なことにDA
SDには、連続使用している間に、その可用記憶領域
(使用可能な記憶領域)が次第に細分化されて行くとい
う傾向がある。具体的な例を挙げて説明すると、例えば
DASDの中の、ある一部の記憶領域をフルに使用し
て、ページ10枚分のデータ(ページ1枚分のデータ量
は4096バイトである)を記憶させてあるものとす
る。ページを1枚記憶させるためには、「スロット」1
個分の記憶容量が使用される。ここで、あるアプリケー
ション・プログラムが、それら10枚のページにアクセ
スすることを求める要求を発し、その要求に応えて、そ
れら10枚のページを素早くアクセスできるようにする
ために、それら10枚のページが主記憶装置(RAM)
の中へ書き込まれたものとする。アプリケーション・プ
ログラムは、それら10枚のページのうちの8枚に対し
て変更を施し、更に1枚のページを追加し、ただし、元
の10枚のページのうちの残り2枚のページには変更を
加えなかったものとする。この後、オペレーティング・
システムが、主記憶装置が満杯に近いことを検出して、
主記憶装置に空き領域を作り出すために、それまで主記
憶装置の中にあったページのうちの幾枚かをDASDへ
書き出す「ブロック・ページング」の操作を開始する。
主記憶装置に空き領域を作り出すためにDASDへ書き
出すページをどのページにするのか決定するのはオペレ
ーティング・システムであり、オペレーティング・シス
テムがそれを決定する際に従う、書き出しページ決定基
準には、様々なものがある。広く用いられている幾つか
の基準のうちの1つに、互いに略々同時期にアクセスさ
れた複数のページから成るページ・グループを選択する
というものがある。この基準に従えば、同時に主記憶装
置へ書き込んだ10枚のページの全てを選択することに
なる。しかしながら、入出力の仕事量をなるべく減らす
ことが望ましいため、実際には、変更を施していない2
枚のページについては、DASDへの書き戻しを省略し
てしまう。このようにして構わないのは、それら2枚の
ページに関しては、DASD上に存在しているそれらペ
ージのオリジナル・コピーが、依然として有効状態を保
っているからである。従って、DASDへ書き込まねば
ならないページは、更新を施した8枚のページと、新た
に追加された1枚のページとの、合計9枚のページだけ
である。しかしながら、最初に10枚のページを隙間な
く詰め込んでおいた領域の記憶位置のうち、書き込みを
行なえる連続した記憶位置は、ページ8枚分しかない。
従って、新たな記憶位置を選択して、書き込むべき9枚
のページの全て、或いはそのうちの一部を、その新たな
記憶位置に記憶させなければならない。この場合に、入
出力操作の回数をできる限り少なくし、且つ、読み書き
ヘッドの径方向移動量を少なく抑えるために、連続した
9個のスロットから成る単一のスロット集合を使用する
ことにしたならば、その8個のスロットから成る孤立ス
ロット集合が発生することになり、そしてこの孤立スロ
ット集合は、別の何らかのデータを記憶させるために使
用することになる。以上のプロセスは、時間の経過と共
に何度も繰り返して行なわれるため、DASD内に、様
々な個数の可用スロットから成る孤立スロット集合が大
量に生じる可能性がある。DASD内の可用記憶容量が
無駄になるのを避けるためには、かかる孤立スロット集
合の発生を避けるか、或いは、かかる孤立スロット集合
を、後の書き込み動作において、記憶位置に指定して利
用できるような方式を採用する必要がある。ただし、そ
れと同時に、上に述べたように、入出力操作の回数、ヘ
ッドの径方向移動量、それにディスクが回転する間の遅
れ時間もまた、できる限り少なくしなければならない。
【0005】そのための従来の方式のうちの1つに、D
ASDを論理分割して、各々が一定の大きさの複数のス
ロット集合を形成しておく(例えば、常に10個のスロ
ットをもって1つのスロット集合とする)という方式が
ある。オペレーティング・システムは、DASDへデー
タを書き込む必要が生じたならば、一定の大きさのスロ
ット集合の1個ないし2個以上を、書込み要求に応える
ためのスロット集合として割り振る。しかしながら、D
ASDへ一度に書き込むべきデータ量は、別の何らかの
基準に従って定められるため、書き込むべきデータ量
が、割り振られたスロットの個数に対応するデータ量よ
りも少ないことがしばしばある。これによって記憶容量
が無駄になる上、書込みが施されなかったスロットは隙
間状の空き部分として残るため、その隙間状の空き部分
を通過させることのために、ディスクの回転量が余分に
必要になる。更に、一度に書き込むデータ量がスロット
集合1つ分のデータ量を超えている場合には、通常2回
以上の入出力操作が必要になる。2つ以上のスロット集
合を選択するには「移動カーソル」を使用するようにし
ており、DASDの記憶領域の中をDASDアドレスの
小さい方から大きい方へ向けて、この「移動カーソル」
をステップ移動させて、次々と発せられる書込み要求の
各々に応えて行くようにしている。
【0006】従来の方式のうちの別の1つの方式であっ
て、同様に、DASDの記憶領域の中をDASDアドレ
スの小さい方から大きい方へ向けて移動カーソルをステ
ップ移動させて、オペレーティング・システムが発する
書込み要求の各々に応えて行くようにしたものがある。
この方式では、割り振られる大きさが、一定の大きさの
スロット集合の複数個分の大きさに限られることはな
く、書込み要求が求めている大きさ(長さ)と、厳密に
一致した大きさ(長さ)を割り振るようにしている。即
ちこの方式では、新たな要求に応えるためにDASDの
記憶領域の中を移動カーソルを移動させて行くときに、
DASDに以前に書き込んであったデータ(ページとし
て書き込まれている)の幾つかにアクセスして、それら
ページを主記憶装置の中へ読み込む。続いて、読み込ん
だそれらページの部分集合に対して変更を施したり、そ
れらページのグループ編成を変更した上で、それらペー
ジをDASD内の新たなアドレス(記憶位置)へ書き戻
し、以前のDASD記憶位置を空けるようにする。しか
しながらこれによって、DASDの記憶領域に隙間状の
空き部分が発生する。そこで、オペレーティング・シス
テムの別の機能が、カーソルの現在位置よりも手前側
(カーソルが既に通り過ぎた側)の記憶領域の可用度を
継続的にモニタしており、このカーソルの現在位置より
も手前側の記憶領域に含まれているスロットのうちの7
5%が可用スロットとなったときに、カーソルを最初の
位置へ戻すようにしている。これ以後、カーソルを再び
前方へ(DASDのアドレスの大きい方へ)移動させ
て、DASD内の記憶位置の順序で可用スロットを割り
振って行くことによって、次々と発せられる要求に応え
るようにしている。この方式では、孤立スロットから成
る可用スロット集合の量を減らすことができるが、ただ
し、互いに関連しているデータを記憶させる領域がひと
まとまりの領域とならずに細分化してしまう傾向があ
り、そのために入出力操作の回数が余分に必要になり、
更には読み書きヘッドの径方向移動量や、ディスクの回
転量も余分に必要になる傾向がある。
【0007】従って本発明の目的を広くとらえるなら
ば、本発明の目的は、DASDの割振りのためのコンピ
ュータ・システム、プログラム、ないしは方法であっ
て、DASDにデータを書き込むために必要な入出力操
作の回数をできる限り少なくし、しかもそれと同時にD
ASD内の可用記憶位置を有効に活用することのでき
る、コンピュータ・システム、プログラム、ないし方法
を提供することにある。
【0008】本発明の更なる目的は、データにアクセス
する際に必要な、読み書きヘッドの径方向移動量とディ
スクの回転量とを大幅に低減することのできる、その種
のコンピュータ・システム、プログラム、ないし方法を
提供することにある。
【0009】
【課題を解決するための手段】本発明は、ある指定され
た長さを有するデータを記憶させるためDASD内の記
憶位置を割り振るための、コンピュータ・システム、方
法、ないしプログラム製品に関するものである。これら
コンピュータ・システム、方法、ないしプログラム製品
においては、DASD内に存在している、各々が連続し
た複数の可用記憶位置から成る記憶位置集合の夫々につ
いて、その記憶位置集合のアドレス及び長さを記録にす
るようにする。更に、これらコンピュータ・システム、
方法、ないしプログラム製品方法においては、その記録
をサーチして、前記指定長さと同じ長さの記憶位置集合
である第1種の記憶位置集合と、前記指定長さよりも、
前記DASD内に後刻記憶させることになる様々な長さ
のデータのうちの殆どのものに対応できる長さ分だけ長
い記憶位置集合である第2種の記憶位置集合とを特定す
ることを試みるようにする。前記サーチにおいて、前記
指定長さと同じ長さの記憶位置集合の特定に成功したな
らば、特定に成功したその第1種の記憶位置集合を、前
記データを記憶させるための記憶位置として割り振り、
一方、前記指定長さと同じ長さの記憶位置集合の特定に
は成功しなかったが、前記指定長さよりも、前記DAS
D内に後刻記憶させることになる様々な長さのデータの
うちの殆どのものに対応できる長さ分だけ長い記憶位置
集合の特定に成功したならば、特定に成功したその第2
種の記憶位置集合を、前記データを記憶させるための記
憶位置として割り振るようにする。また、読み書きヘッ
ドの径方向移動量をできるだけ少なくするために、同一
のエクステントの中に存在する記憶位置集合だけを記録
するようにすることもできる。
【0010】本発明の特徴のうちの1つによれば、これ
らコンピュータ・システム、方法、ないしプログラム製
品は、更に、前記記録の中の他の記憶位置集合と比較し
て前記指定長さを超える分の長さがより短い記憶位置集
合である第3種の記憶位置集合を特定することを試みる
ようにしてあり、そして、前記指定長さと同じ長さの記
憶位置集合を特定しようとするサーチと、前記指定長さ
よりも、前記DASD内に後刻記憶させることになる様
々な長さのデータのうちの殆どのものに対応できる長さ
分だけ長い記憶位置集合を特定しようとするサーチと
の、両方が不成功であったときに、該第3種の記憶位置
集合を、前記データを記憶させるための記憶位置として
割り振るようにしてある。
【0011】本発明の特徴のうちの別の1つによれば、
前記サーチにおいて更に、前記記録の中に、1つの記憶
位置集合で、前記指定長さに等しいか或いはそれを超え
る長さを有するものが存在していないときには、該記録
の中から、加え合わせたときの合計長さが前記指定長さ
に等しいか或いはそれを超える長さとなる2つ以上の記
憶位置集合を特定するようにしている。このように1つ
記憶位置集合の長さでは足りない場合には、特定したそ
の2つ以上の記憶位置集合を、前記データを記憶させる
ための記憶位置として割り振るようにしている。
【0012】
【実施例】以下に図面を参照しつつ、本発明について更
に詳細に説明して行く。尚、添付図面において、同一の
構成要素に対しては、別々の図であっても同一の引用符
号を付してある。図1は、本発明を組み込んだコンピュ
ータ・システムを示しており、図中の引用符号100は
このコンピュータ・システムの全体を指し示している。
コンピュータ・システム100は、CPU110と、主
記憶装置115と、DASD160と、入出力サブシス
テム162と、オペレーティング・システム140とを
備えている。これらのうちCPU110とそれに付随す
るハードウェア(不図示)とについては、例えばIBM
社の「システム/390」等のコンピュータ・システム
等を利用することができる。尚、この「システム/39
0」コンピュータ・システムは、「ESA/390 Principles
of Operation 」という題名の文献中にその解説がなさ
れており、この文献はIBM社から一般に向けて販売さ
れている(注文番号: SA22-7201-00)。仮想記憶165
は、ユーザないしアプリケーション・プログラム(以
下、これを「ユーザ/アプリケーション・プログラム」
という用語を用いて表わす)に割り振られている記憶領
域であり、アプリケーション・プログラムやそれに付随
するファイル、ないしはその他のデータを仮想的に記憶
させておく領域である。この仮想記憶165の内容は、
実際には、主記憶装置115内の常駐仮想記憶167の
中や、DASD160の中、或いは更にその他の適当な
ところに記憶されている。主記憶装置115には更に、
オペレーティング・システム140や、このオペレーテ
ィング・システム140に関係したテーブルないし制御
ブロック(これらはオペレーティング・システム140
の実行中に作成される)、それに仮想記憶のデータない
しページが、CPU110の操作によって記憶される。
DASD160は大容量の不揮発性記憶を提供してお
り、この不揮発性記憶には、ユーザ/アプリケーション
・プログラムが作り出すファイル等をはじめとするデー
タを格納したり、仮想記憶のページのうち、CPU11
0が当分はアクセスしそうもないページの内容を保存す
るようにしている。入出力サブシステム162は、DA
SD内の指定された記憶位置をアクセスする際のローレ
ベルの制御機能を提供するものである。オペレーティン
グ・システム140は、仮想計算機の実行環境と非仮想
計算機の実行環境との、いずれの実行環境をも提供し得
るものとしてある。オペレーティング・システム140
のうち、本発明を構成する新規な特徴部分を除いたその
他の部分については、例えばIBM社の「仮想計算機/
エンタープライズ・システム体系1.1(VM/ESA
・1.1)」というオペレーティング・システム等を利
用することができる。この「VM/ESA・1.1」オ
ペレーティング・システムについては「VM/ESA General
Information」という題名の刊行物中にその解説がなさ
れており、この刊行物はIBM社から一般に向けて販売
されている(注文番号: GC24-5550-02)。
【0013】オペレーティング・システム140には、
仮想記憶マネージャ・サブシステム170が含まれてい
る。更にこの仮想記憶マネージャ・サブシステム170
は、ブロック・ページアウト・ルーチン150(このル
ーチンは「VM/ESA1.1」オペレーティング・シ
ステムに装備されている)と、スロット割振りルーチン
155とを含んでいる。また、仮想記憶マネージャ・サ
ブシステム170の機能のうちの1つに、互いに関連し
ている一群の仮想ページから成るページ・グループを、
オペレーティング・システム140の別の機能からの要
求に応答して、主記憶装置115からDASD160へ
転送し、それによって主記憶装置115の中に空き記憶
域を作るという機能がある。この場合、その要求を受け
取ったならば、ブロック・ページアウト・ルーチン15
0が、仮想記憶の中のページであって、現在は主記憶装
置115の中に存在しており、しかも、かつて互いに略
々同時期にアクセスされた複数のページから成るページ
・グループを特定する。次にブロック・ページアウト・
ルーチン150は、スロット割振りルーチン155をコ
ールして、特定したそのページ・グループを収容するの
に最適なDASD内のスロットを捜させる。このときの
コールには幾つかのパラメータが付随しており、それら
パラメータは、そのページ・グループに所属しているペ
ージの合計枚数と、スロット割振りルーチン155によ
って割り振られたDASDアドレスを記憶させるための
(主記憶装置115内の)アドレスとを明示している。
スロット割振りルーチン155が最適なDASDのスロ
ットを選択するために使用する選択基準は次のとおりで
ある。先ず、DASD内に存在している、互いに連続し
た複数の使用可能な(即ち可用な)記憶スロットを、ひ
とまとまりのものと見てスロット集合と呼んでいる。従
って、各々のスロット集合は、複数の可用連続スロット
から成るが、1つのスロット集合と別のスロット集合と
の間では、可用スロットの連続性がとぎれており、非連
続となっている。尚、1つのスロットの大きさは、ペー
ジ1枚分のデータを丁度収めることができる大きさであ
る。そこで、選択基準の第1は、DASD内に存在する
スロット集合の総数が、可及的に少なくなるようにすべ
きであるということである。なぜならば、非連続な個々
のスロット集合の1つ毎に、個別の入出力操作と更なる
ディスクの回転量とが必要になるからである。最も好ま
しいのは、選択されたDASDスロットの全てが互いに
連続していることであり、そうであれば、ブロック・ペ
ージアウト・ルーチン150がページ・グループをDA
SDへ書き出す際に、1回の入出力操作によって、その
ページ・グループの全てを書き出すことができる。さも
なくば、ブロック・ページアウト・ルーチン150は、
各々が連続した複数のスロットから成るスロット集合
の、その各集合毎に1回ずつ、全体として複数回の入出
力操作を実行しなければならない。選択基準の第2は、
ページ・グループを記憶させるための複数のスロットの
位置は、それらスロットの全てにアクセスする際に読取
りを行なうヘッドの径方向移動量とディスクの回転量と
が、できるだけ少なくて済むように、それらスロットの
位置の互いの間の相対関係と、後続のグループの位置と
の間の関係とが、いずれも適切なものとなるようにすべ
きであるということである。そのために、スロット割振
りルーチン155は、連続して発生される複数の割振り
要求に対しては、なるべく、同じ1つのエクステントの
中の、1つの局所記憶領域を割り振ることによって応え
るようにしている。即ち、1つのエクステントは、DA
SD内における連続した1つの局所記憶領域であるた
め、1つのエクステントの中でアクセスを行なうように
すれば、読取りを行なうヘッドの径方向移動量を可及的
に小さくすることができるのである。選択基準の第3
は、割振り要求に応えて割振りを行なった後に、後刻発
せられるであろう割振り要求に単独で応えられる可能性
が非常に低い、小さな断片あるいはスロット・グループ
を、なるべく残さないようにすべきであるということで
ある。そのために、スロット割振りルーチン155は、
エクステントをサーチする第1回パスにおいては、複数
の可用連続スロットから成るスロット集合であって、そ
の集合の大きさが割振り要求が求めている大きさと等し
いため、割振り後に断片を発生させずに済むものか、或
いはそれと逆に、その集合の大きさが割振り要求が求め
ている大きさよりもはるかに大きいため、割振り後に残
される断片も充分に大きく、その断片が、後刻発せられ
るであろう割振り要求の大部分のものに応えられるよう
な、スロット集合を捜し求めるようにしている。更に、
この第1回パスにおいて、スロット割振りルーチン15
5は、複数の可用連続スロットから成るスロット集合で
あって、割振り要求が求めている大きさよりも大きく、
しかも、割振り後に残されることになる断片の大きさ
が、他のいずれのスロット集合を割り振った場合に残さ
れることになる断片よりも小さいスロット集合を(もし
あれば)特定するようにしている。そして、この第1回
パスにおいて、割振り要求が求めている大きさと同一の
大きさのスロット集合と、割振り要求が求めている大き
さよりもはるかに大きく、割振り後に大きな断片を残す
ことができるスロット集合との、いずれも発見できなか
った場合には、スロット割振りルーチン155は、複数
の可用連続スロットから成るスロット集合であって、割
振り要求が求めている大きさよりも大きく、しかも、割
振り後に残される断片の大きさが最小になるスロット集
合を(もしあれば)選択する。更に、第1回パスにおい
て、割振り要求が求めている大きさを超える大きさのス
ロット集合を1つも特定できなかった場合には、スロッ
ト割振りルーチン155は、同一のエクステントを対象
として第2回パスを実行して、各々が複数の可用連続ス
ロットから成るスロット集合を幾つも特定し、そして複
数のスロット集合を合わせて割り振ることによって、割
振り要求に応えるようにする。もし更に、この第2回パ
スにおいて特定したそれら複数のスロット集合をもって
しても、割振り要求が求めている大きさの全てに応えら
れない場合には、スロット割振りルーチン155は、次
のエクステントを対象としたパスを実行することによっ
て、その割振り要求に応えるようにする。
【0014】以下に示すのは、本発明のスロット割振り
ルーチン155及びその他の特徴部分についての、更に
詳細な説明である。DASD160は、エクステント・
マップ120によって、複数の活動エクステントに論理
分割されている。エクステント・マップ120は、主記
憶装置115の中に設けられており、各々の活動エクス
テントごとに、その活動エクステントの開始実アドレス
と終了実アドレスとを規定している。尚、「活動エクス
テント」というのは、そのエクステントに包含されてい
るスロットのうちの少なくとも1つが割振り済みとなっ
ているエクステントのことである。エクステント・マッ
プ120は更に、各々の活動エクステントごとに、その
活動エクステントの全体のうちの、どれ程の割合の部分
が現在使用中であるかを表わした使用率を表示するため
のフィールドを備えている。後に更に詳細に説明するよ
うに、スロット割振りルーチン155は、使用可能な記
憶域を捜すためのサーチを行なう際には、先ずこのエク
ステント・マップ120を参照して、どのエクステント
が、記憶域を提供する候補として優れているか、即ち、
そのサーチの対象とすべきものであるのかを、判断する
ようにしている。
【0015】主記憶装置115の中には更にビット・マ
ップ125が設けられている。このビット・マップ12
5は、各々のエクステントごとに1つずつ設けてあり、
夫々が、対応するエクステントに包含されているスロッ
トの可用性をマップ表示している。各々のビット・マッ
プは内部が区画分けされており、そのビット・マップの
各区画の中の1つのビットが、対応するエクステントの
中の対応する1つのスロットを表わしている。即ち、1
つ1つのビットの値によって、そのビットに対応するス
ロットが、使用不可能である(即ち既に割振りがなされ
ている)か、それとも使用可能(即ち可用)であるかを
表示している。尚、エクステント・マップ120には、
非活動エクステント(現在そのスロットの全てが可用状
態にあるエクステント)も含めて表示するようにしてあ
るが、ビット・マップ125については、必要記憶容量
をできるだけ節約するために、非活動エクステントに対
応したビット・マップは設けないようにしている。スロ
ット割振りルーチン155は、各々のビット・マップを
参照して、そのビット・マップに対応したスロット割振
りバッファを生成し、それによって、それに対応したエ
クステントの中の可用記憶域のサーチを高速で行なえる
ようにしており、この点について、以下に更に詳細に説
明して行く。
【0016】図2は、スロット割振りバッファ175を
詳細に示した図である。スロット割振りバッファ175
は、ヘッダーと複数の集合記述子とを含んでいる。スロ
ット割振りバッファ175の中のそれら集合記述子は、
その各々が、エクステント内の複数の可用連続スロット
から成るスロット集合の1つずつを記述している。ヘッ
ダーは第1ポインタと第2ポインタとを含んでおり、第
1ポインタは、スロット割振りバッファ175の中の先
頭の集合記述子(これは先頭のスロット集合を表わして
いる)を指し示しており、一方、第2ポインタは、スロ
ット割振りバッファ175の中の最後の集合記述子(こ
れは最後のスロット集合を表わしている)を指し示して
いる。第1ポインタが「0」であれば、それは、スロッ
ト割振りバッファ175の中において表示すべき適格性
を備えた、使用可能なスロット集合が、そのエクステン
ト内には存在していないことを表わしている。スロット
割振りルーチン155は、様々な大きさ(長さ)のスロ
ット集合を、その大きさ(長さ)に応じて3つの級に分
類するようにしている。それら3つの級のうちの第1は
「大断片」であり、この大断片に該当するのは、1つの
断片で(即ち他の断片と組み合せずとも)、割振り要求
の殆どに応えることができるような、非常に大きな(長
い)スロット集合である。第2は「中断片」であり、こ
の中断片に該当するのは、大断片よりは小さい(短い)
が、ただし1つの断片でなお多くの割振り要求に応える
ことができるだけの充分な大きさ(長さ)を有するスロ
ット集合である。第3は「小断片」であり、この小断片
に該当するのは、中断片よりも更に小さく(短く)、1
つの断片だけで応えられるような小さな割振り要求が発
せられることが殆どないスロット集合である。ここで、
夫々の級の断片の大きさの具体例を挙げておくならば、
例えば大断片は、1つの断片でページ10枚分以上のデ
ータ(ページ1枚は、4096バイトのデータから成
る)を格納することができるもの(即ち、連続する10
個以上のスロットから成るスロット集合)とすることが
できる。連続する10個のスロットから成る大断片であ
れば、発生する割振り要求のうちの75%までは、1つ
の断片によって応えることができる。また、中断片は、
1つの断片でページ4枚から9枚までのデータを格納す
ることができるものとし、小断片は、ページ1枚から3
枚までのデータを格納することができるものとすること
ができる。連続する3個のスロットから成る小断片の場
合には、1つの断片で応えることができる割振り要求の
割合は、発生する割振り要求のうちの5〜10%とな
る。尚、DASD内の夫々のエクステントにおいて、そ
のエクステント内に使用されずに残っているスロットの
個数が非常に僅かになるまでは、小断片は、スロット割
振りバッファ175の中に表示しないようにしている。
これによって、各々のスロット割振りバッファ175の
中をサーチするのにかかるサーチ時間をできるだけ短縮
しており、また、適性を備えていないスロット集合をサ
ーチから除外しているのである。そして、必要とされる
記憶容量を更に減らし、サーチ時間を更に短縮し、ま
た、ヘッドの径方向の移動を局所化するために、各々の
スロット割振りバッファには、対応するエクステントの
中のスロット集合のうち、ある限られた個数のスロット
集合に関する集合記述子だけを格納するようにしてい
る。そのため、その他のスロット集合は、暫くの間はス
ロット割振りバッファの中に表示されずにいる。そし
て、1つないし幾つかの集合記述子が(即ち、その集合
記述子に対応したスロット集合が)完全に使用し尽くさ
れ、或いは、その大部分が使用されて小断片しか残って
いない状態になったならば、スロット割振りバッファの
中に、同じエクステントの中のその他のスロット集合を
表わす集合記述子を表示する余裕ができるため、それに
応じて、その他のスロット集合も表示されるようにな
る。(一方、各々のエクステントに対応したビット・マ
ップには、そのエクステントの中の全てのスロットを表
示するようにしている)。
【0017】各々の集合記述子は4バイトで構成してあ
る。そのうちの先頭の2バイトは、エクステントの始点
からの実偏位を表示しており、その次の1バイトは、バ
イト単位で表わしたスロット集合の長さを表わしてお
り、その次の(最後の)1バイトは、その集合記述子が
所属しているスロット割振りバッファの中の、その集合
記述子に続く次の集合記述子を指し示している。即ち、
各々の集合記述子の最後の1バイトによって集合記述子
どうしを連鎖させて、集合記述子のキューを形成してい
る(そして、このキューの中の先頭の集合記述子を、ヘ
ッダーの中の上述の第1ポインタで指し示している)。
スロット割振りルーチン155は、集合記述子のキュー
の中における、それら集合記述子の論理順序を、最初の
行の中の最初のエントリが指定しているエレメントから
始めて、DASDアドレスが小さいものから大きいもの
へ昇順で順序付けている。このようにすれば、1回の割
振り処理において複数のスロット集合を割り振る場合
の、それら複数のスロット集合や、連続した複数回の割
振り処理において次々と割り振られる複数のスロット集
合が、その順序で割り振られて行く可能性が高くなり、
従って、その割振り処理ないし後続の割振り処理におい
て必要とされるシーク時間(即ち、ヘッドが径方向へ移
動する時間)を更に短縮できる可能性が高くなる。尚、
この点については後に更に詳細に説明する。スロット割
振りルーチン155は、スロット割振りバッファ175
を利用することによって、対応するエクステントの中の
使用可能なスロット集合とそれらスロット集合の各々の
大きさ(長さ)とを、素早く特定することができる。更
に、スロット割振りルーチン155は、スロット割振り
バッファ175の中のそれら情報に基づいて、割振り要
求に応えるために必要なスロット集合として最適なスロ
ット集合を素早く特定することができ、それによって、
ページをDASDへ転送するために必要な処理時間を短
縮している。また、各々の集合記述子の長さをフルワー
ド1つ分の長さとしてあり、しかも1つのスロット割振
りバッファの中の全ての集合記述子を、連続したひとま
とまりのブロックの中に記憶させているため、スロット
割振りバッファの内容を調べるために行なうメモリから
キャッシュへの転送を1回行なうだけで、1つのスロッ
ト割振りバッファの全体の内容を調べられるようになっ
ている。
【0018】以下の説明は、割振りプロセスの説明であ
る。この割振りプロセスの開始時には、先ずオペレーテ
ィング・システムの1つの機能が、主記憶装置の中の空
きスペースの量が所定のレベル以下に割り込んだことを
検出して、ブロック・ページアウト・ルーチン150へ
警告を発する。この警告を受け取ったブロック・ページ
アウト・ルーチン150は、それに応答して、複数のペ
ージから成る1つのページ・グループを特定する。その
ページ・グループを構成しているそれら複数のページ
は、仮想記憶によって表示されており、現在、主記憶装
置の中に格納されており、しかも、かつて互いに略々同
時刻にアクセスされたページである。続いてブロック・
ページアウト・ルーチン150は、スロット割振りルー
チン155をコールする。このコールには、そのページ
・グループを格納するために必要なだけの個数のDAS
D内のスロットを割り振ることを求める割振り要求が付
随する。この割振り要求には更に、スロット割振りルー
チン155が、DASDのスロットを割り振った後にそ
の割り振ったスロットのアドレスを憶させておくため
の、主記憶装置内の記憶位置も含まれている。割り振ら
れたスロットのアドレスがその記憶位置に記憶されたな
らば、ブロック・ページアウト・ルーチン150が、そ
のアドレス情報を参照することによって、入出力サブシ
ステム162へ指示を発してデータをDASD160へ
物理的に書き込ませることができるようになる。
【0019】本発明に係る割振りプロセスは更に、次の
ような場合のオーバーヘッドが大幅に軽減されるという
利点をも併せ持っている。そのオーバーヘッドとは、あ
るユーザ/アプリケーション・プログラムの仮想記憶の
中に格納してあるページを、そのユーザ/アプリケーシ
ョン・プログラムが参照しようとしたときに、その参照
しようとしたページ(以下、参照ページという)が、か
つてスロット割振りルーチン155によって割り振られ
たDASDの記憶位置に書き込まれていたものである場
合の、その参照に関わるオーバーヘッドである。即ち、
この場合には、仮想記憶マネージャの中のブロック・ペ
ージイン・ルーチン158が、その参照ページと、かつ
てその参照ページと共にDASDの中へ書き出されたそ
の他全てのページとを、合わせて主記憶装置の中へ読み
戻すことを求める要求を発するようにしている。ここ
で、それら他のページをも併せて主記憶装置の中へ読み
戻すようにする理由は、そのユーザ/アプリケーション
・プログラムが、その参照ページに関連したページであ
る可能性が高いそれら他のページをも、間もなく参照す
るであろうと推定されるからである。その参照ページ
と、それら他のページとは、連続した複数のスロットか
ら成る1つのスロット集合の中に格納されている可能性
が高いことから、こうすることによって、その読み戻し
プロセスにおける入出力操作の回数、ヘッドの径方向移
動量、及びディスクの回転量を、大幅に少なくすること
ができるのである。
【0020】図3〜図10は、スロット割振りルーチン
155が実行する処理を示したフローチャートである。
スロット割振りルーチン155は、割振り要求を受け取
ったならば(図3のステップ504)、フラグをセット
する(ステップ510)。このフラグは、その割振り要
求に応えて割り振るための最適のスロット集合を特定す
るために、カレント・スロット割振りバッファを対象と
した第1回パスのサーチを実行中であることを表示する
フラグである。もし受け取ったその割振り要求が、初期
プログラム・ロードを行なって以来、初めて発せられた
割振り要求であったならば、その割振り要求を受け取っ
た時点では、(その割振り要求に応えるための)「カレ
ント」スロット割振りバッファは未だ存在しておらず、
従ってスロット割振りバッファ内の集合記述子も存在し
ていなければ(判断ステップ514)、カレント・エク
ステントすら存在していない。スロット割振りバッファ
を生成するためには、その前に先ず、カレント・エクス
テントを選択する必要がある。スロット割振りルーチン
155は、カレント・エクステントを選択するために、
アドレスが他のエクステントのものと比べて最も小さな
エクステントを最初に調べる(判断ステップ514及び
ステップ910)。以下の説明は、カレント・エクステ
ントを選択するプロセスの説明であり、この選択のプロ
セスは、初期プログラム・ロードを行なって以来、初め
ての割振り要求が発せられたときにも実行され、また、
後になって、それまでのカレント・エクステントでは割
振り要求に応えられなくなったときにも実行される。こ
の選択のプロセスにおいて、スロット割振りルーチン1
55は、先ずステップ910(図7)で、最小のスロッ
ト・アドレスを含んでいるエクステントを、割振り要求
に応えるためのエクステントの候補として取り上げる。
サーチを実行したが、適当なスロット集合が発見できな
かったという結果を予め回避するために、スロット割振
りルーチン155は、サーチするエクステントとして、
殆ど空の状態のエクステントを優先するようにしてい
る。そのため、最初に候補として取り上げたそのエクス
テントの空きの割合を調べ、その空きが70%以上であ
ったならば(判断ステップ914)、その他のエクステ
ントを調べることなく即座に、その最初のエクステント
を割振り要求に応えるためのカレント・エクステントと
して選択し、続いて小断片フラグをリセットして、その
エクステントに対応したスロット割振りバッファの中に
小断片が表示されないようにする(ステップ940)。
この後、処理の流れは、そのエクステントに対応したス
ロット割振りバッファを初期化する作業(ステップ95
0)へ進むが、それについては後に説明する。一方、そ
のエクステントの空きが70%以上でなかったならば、
スロット割振りルーチン155は、そのエクステント
が、それまでに調べたエクステントのうちで最も空きの
割合の高いエクステントであるか否かを判定し(判断ス
テップ918)(最初に候補として取り上げたエクステ
ントについてこの判断ステップ918を実行したときに
は、この判定結果は必ず真である)、その判定結果が真
であったならば、そのエクステントのアドレスをセーブ
する(ステップ922)。続いて、そのエクステントが
DASD内の最後のエクステントでなければ(判断ステ
ップ926)、続く次のエクステントを、割振り要求に
応えるためのエクステントの候補として取り上げ(ステ
ップ930)、そして、ステップ914以降のプロセス
を反復して実行する。そのプロセスを反復して実行して
いるうちに、空きが70%以上のエクステントに遭遇し
たならば、そのエクステントを、割振り要求に応えるた
めのエクステントとして選択して、その反復実行を終了
し、処理の流れはステップ950へ向かう。後に説明す
るように、ステップ950は、エクステントを初期化す
るサブルーチンを開始するステップであり、エクステン
トの初期化とは、実際のサーチを実行するための準備作
業としてスロット割振りバッファを作成することであ
り、実際のサーチが開始されるのは、判断ステップ51
4(図3)からである。一方、空きが少なくとも70%
あるエクステントを最後まで発見できなかった場合に
は、最も空きの割合の高いエクステントを、割振り要求
に応えるためのエクステントとして選択する(ステップ
934)。そして、その選択したエクステントの空きの
割合が20%以上であったならば(判断ステップ93
8)、ステップ950へジャンプする。一方、その選択
した最も空きの割合の高いエクステントの空きの割合が
20%未満であったならば、小断片フラグをセットして
小断片の選択を可能にした後に(ステップ942)、ス
テップ950へ処理を進める。
【0021】ステップ950(図8)では、カーソルを
初期化し、即ち、選択したエクステントに対応したビッ
ト・マップの中の先頭のビットの位置へカーソルを移動
し、また、スロット割振りバッファの中のヘッダーを
「ゼロ」にセットして、現時点ではキューの中に入れら
れている集合記述子が1つも存在していないことを表示
する。続いてスロット割振りルーチン155は、補充サ
ブルーチン954(補充サブルーチンの詳細は図9に示
してある)をコールして、補充サブルーチンに、最初の
集合記述子に対応したスロット割振りバッファの中のア
ドレスを与える。補充サブルーチンは、あるエクステン
トに対応したビット・マップに基づいて、そのエクステ
ントに対応したスロット割振りバッファの集合記述子を
作成する作業を担当するサブルーチンである。補充サブ
ルーチンは、コールされたならば、それに応答して、そ
のエクステントに対応したビット・マップを、そのビッ
ト・マップのカーソルが指定しているビットから始めて
スキャンをして行き、「ゼロ」ビットを発見するか、或
いはビット・マップの終了点に達した時点で、そのスキ
ャンを終了する(ステップ1010)。「ゼロ」ビット
は、使用可能なスロットを表わしている。もし、「ゼ
ロ」ビットを発見することなく、そのスキャンがビット
・マップの終了点に達したならば(ステップ101
4)、戻りコードを「非ゼロ」にセットすることによっ
て不成功を表示した上で(ステップ1044)、コール
元のプログラムへリターンする。一方、そのスキャンが
ビット・マップの終了点に達しないうちに「ゼロ」ビッ
トを発見した場合には、その発見した「ゼロ」ビットか
ら始めて2度目のスキャンを実行する(ステップ101
8)。この2度目のスキャンは、「非ゼロ」ビットを発
見するか、或いはそのシリンダの終了点に達したならば
終了する。この2度目のスキャンの長さは、複数の可用
連続スロットから成るそのスロット集合の長さ(大き
さ)を表わすものである。続いて、そのスロット集合の
長さを算出し、それには、2度目のスキャンで発見した
「非ゼロ」ビットの記憶位置から、最初のスキャンで発
見した「ゼロ」ビットの記憶位置を差し引く減算を行な
えば良い(ステップ1026)。続いて、小断片の使用
が許可されていることを表わすフラグ(小断片フラグ)
がセットされているか(判断ステップ1030)、或い
は、算出した長さが中断片に相当する長さ以上であるか
(判断ステップ1040)の、いずれかであったなら
ば、そのスロット集合の開始記憶位置、終了記憶位置、
及び長さを、カレント集合記述子として格納し(ステッ
プ1034)、戻りコードを「ゼロ」にセットして成功
を表示した上で、この補充サブルーチンからコール元プ
ログラムへリターンする。一方、それら2つの判断のい
ずれにも該当しなかった場合(即ち、小断片フラグがセ
ットされておらず、しかも、そのスロット集合の長さが
小断片に相当する短いものであった場合)には、このプ
ロセスはステップ1010へ戻り、次のスロット集合を
求めて、ビット・マップのサーチを再び実行する。尚、
補充サブルーチンからコール元プログラムへリターンし
たときに、戻りコードが「ゼロ」にセットされていたな
らば、それは、集合記述子の補充に成功したことを表わ
している。そのため、スロット割振りルーチン155
は、その集合記述子をキューの中に追加して、スロット
割振りバッファの中の末尾の集合記述子とする(ステッ
プ964)。続いてスロット割振りルーチン155は、
スロット割振りバッファが満杯であるか否かを判定する
(判断ステップ970)。もしそれが満杯でなかったな
らば、補充サブルーチン954を再び以上のようにして
実行して、更に次の空の集合記述子の位置に集合記述子
を補充する。以上のプロセスは、上述の基準(中断片以
上に相当する長さでなければならないという基準)に適
ったスロット集合が発見されなくなるか、或いはスロッ
ト割振りバッファが満杯になるまで、反復して実行す
る。そして、それらのいずれかになったならば、処理の
流れはステップ514へ進み、このステップにおいて、
スロット割振りバッファをサーチして、割振り要求に応
える(即ち、要求された記憶位置を割り振る)ようにす
る。ここで説明を判断960に戻して、補充サブルーチ
ン954を実行した結果、集合記述子の補充に成功しな
かったならば、処理の流れはステップ514へ進み、既
にキューの中に入れられている集合記述子のサーチを実
行する。この場合には、スロット割振りバッファには、
定数一杯までの集合記述子は補充されていない。
【0022】スロット割振りルーチン155は、以上の
ようにして、割振り要求に応えるためのエクステントの
選択と、そのエクステントに対応したスロット割振りバ
ッファへの集合記述子の補充とを行なったならば、続い
て、そのスロット割振りバッファのヘッダーの中の第1
ポインタが指し示している集合記述子である、先頭の集
合記述子(集合記述子であるから、1つのスロット集合
に対応している)を読み取る(ステップ522)。第1
回パスを実行している間は、複数の可用連続スロットか
ら成るスロット集合のうちで、割振り要求が求めている
大きさと完全に同一の大きさか、或いはそれより大きな
スロット集合だけを考慮対象とするようにしている(判
断ステップ526から右方へ出ている分岐路と、下方へ
出ている分岐路)。これは、割振り要求の大きさの全体
を1つのスロット集合でまかなわせるようにし、それに
よって、その割振り要求に関する書き込み動作の全てを
1回の入出力操作で完了できるようにすることを目指し
ているのである。それゆえ、キューの中の集合記述子の
うちに、割振り要求の大きさより小さなスロット集合を
表わしている集合記述子があったならば、判断ステップ
526(図3)から、その左方への分岐路をたどって判
断ステップ810(図6)へ進み、更にその判断ステッ
プ810から(第1回パスの実行中であるため)すぐに
判断ステップ542(図3)へ進み、この判断ステップ
542において、その集合記述子がキューの中の最後の
集合記述子であるか否かを調べる。もしその集合記述子
がキューの中の最後の集合記述子ではなかったなら、そ
れに続く次の集合記述子を選択する(ステップ54
6)。
【0023】再び説明を判断ステップ526へ戻して、
もし、スロット割振りバッファの中の先頭の集合記述子
によって表わされているスロット集合の大きさが、割振
り要求の大きさと完全に同一であったならば、その他の
スロット集合については調べることなく即座に、そのス
ロット集合を、割振り要求に応えるためのスロット集合
として選択する(判断ステップ526、及び図4のステ
ップ610)。これは理想的な状況であり、なぜなら
ば、この状況では、割振り要求の大きさの全てを1つの
スロット集合でまかなえる(入出力操作が1回で済む)
ことに加えて、DASD内に可用スロットの更なる断片
が発生することもないからである。続いて、そのスロッ
ト集合を選択したこと(即ち、割り振ったこと)に付随
して必要となったビット・マップの更新を行ない、その
スロット集合に包含されていた(今や割り振られた)ス
ロットが、もはや可用状態ではなく、非可用状態にある
ことを、ビット・マップで表示するようにし(ステップ
612)、そして、選択した行エントリ(即ち、集合記
述子)をキューから取り除き(ステップ614)、更
に、補充サブルーチンをコールする(ステップ61
8)。コールされた補充サブルーチンは、カレント・エ
クステントに対応したビット・マップを参照して、スロ
ット割振りバッファにそれまで表示されていなかった、
その次の大断片または中断片のスロット集合を特定し
て、そのスロット集合を表わす集合記述子を、スロット
割振りバッファに包含させることを試みる。もし実際
に、この基準に適ったスロット集合が存在していたなら
ば(判断ステップ622)、そのスロット集合を表わす
集合記述子を、スロット割振りバッファ内の集合記述子
のキューの末尾に加える(ステップ626)。ここで、
その新たな記述子をキューの末尾に加えるようにしてい
るのは、集合記述子の論理順序を、エクステント内の物
理アドレスの順序にするためである。一方、基準に適っ
たスロット集合が存在していなかった場合には、スロッ
ト割振りバッファの一部を空き状態のままにしておくこ
とになるが、この状態でもスロット割振りバッファは有
効である。続いて、制御をブロック・ページアウト・ル
ーチンへ返すが、その際には、割り振った記憶位置(即
ち、割り振ったスロット)の実アドレスを併せてブロッ
ク・ページアウト・ルーチンへ返す(ステップ55
8)。ブロック・ページアウト・ルーチンは、これに応
答して、入出力サブシステム162へ命令を発し、その
割振り要求に関するページ・グループをDASD160
の中へ実際に書き込ませる。
【0024】再び説明を図3の判断ステップ526へ戻
し、もし、カレント・スロット集合の大きさ(長さ)
が、割振り要求の割振り大きさ(長さ)よりも大きかっ
た(長かった)ならば、スロット割振りルーチン155
は、そのスロット集合のうち、割振り要求の大きさを超
えている分の大きさが、大断片に相当する大きさ(即
ち、後刻発生するであろう割振り要求の殆どに応えられ
るだけの大きさ)か否かを判定する(判断ステップ53
0)。そして、そのスロット集合の大きさが、割振り要
求の大きさよりも、大断片に相当する大きさ分だけ大き
かったならば、そのスロット集合の中の複数のスロット
のうち、そのスロット集合の先頭の方から、割振り要求
の大きさに等しい個数のスロットを選択し、選択したそ
れらスロットをもって、割振り要求に応えるようにする
(ステップ550)。続いて、ビット・マップを更新し
て(ステップ552)、選択したスロットが非可用状態
になったことを表示させ、そして、その集合記述子の、
開始点フィールドと長さフィールドとを更新して、選択
したスロットを除いた残りのスロットから成る残余の大
断片を表すようにする(ステップ554)。続いて、制
御をブロック・ページアウト・ルーチンへ返すが、その
際には、割り振った記憶位置(即ち、割り振ったスロッ
ト)の実アドレスを併せてブロック・ページアウト・ル
ーチンへ返す(ステップ558)。ブロック・ページア
ウト・ルーチンは、これに応答して、入出力サブシステ
ム162へ命令を発し、その割振り要求に関するページ
・グループをDASD160の中の割り振られたそのア
ドレスへ実際に書き込ませる。
【0025】再び説明を判断ステップ530へ戻して、
もし、カレント・スロット集合の大きさが、大断片を残
さないようなものであったならば、スロット割振りルー
チン155は、そのスロット集合が、最小の断片を残す
ものであるか否かを判定する(判断ステップ534)。
もしそのとき調べている集合記述子が、キューの中の先
頭の集合記述子であったならば、スロット割振りルーチ
ン155は、この判断ステップ534において、カレン
ト・スロット集合は、最小の断片を残すものと判定する
ことになり、続いて、その行エントリのアドレスを後の
使用に備えてセーブしておく(ステップ538)。尚、
ここでは、スロット割振りバッファの中に更に別の集合
記述子が含まれているものと想定しており(判断ステッ
プ542)、そのためスロット割振りルーチン155
は、続く次のスロット集合を調べる作業に取りかかり
(ステップ546)、以上に説明した比較を再度実行す
ることによって、この「続く次のスロット集合」の大き
さが、割振り要求の大きさと同一の大きさであるか否か
を判定したり(判断ステップ526)、割振り要求の大
きさより大断片分大きいものであるか否かを判定したり
する(判断ステップ526及び530)。これら2つの
判定のうち、いずれか一方の判定結果が肯定的であった
ならば、上述のごとく、処理の流れはステップ610ま
たはステップ550へ進む。このようにしている理由
は、これら2種類のスロット集合のいずれかを選択する
ことは、これらいずれにも該当しないスロット集合(即
ち、大断片を残さないスロット集合)を選択するより
も、優れた選択だからである。ここで、判断ステップ5
26及び判断ステップ530の、いずれの判定の結果も
肯定的ではなかった場合について説明すると、その場合
には、スロット割振りルーチン155は、上記の「続く
次のスロット集合」が、最初のスロット集合より更に小
さな断片を残すものであるか否かを判定する(判断ステ
ップ534)。もしそうであったならば、この「続く次
のスロット集合」の集合記述子のアドレスを、最初の集
合記述子のアドレスの代わりにセーブする(ステップ5
38)。以上のループは、判断ステップ526におい
て、割振り要求が求めている大きさと全く同一の大きさ
のスロット集合に遭遇したと判定された場合と、判断ス
テップ530において、割振り要求の大きさより大断片
分大きいスロット集合に遭遇したと判定された場合と
に、その反復を終了するが、それらいずれの判定もなさ
れなければ、スロット割振りバッファの中の最後の集合
記述子を調べてしまうまで反復して実行することにな
る。そして、スロット割振りバッファの中の最後の集合
記述子を調べ終っても、完全に同じ大きさのスロット集
合も発見されず、また大断片を残すようなスロット集合
も発見されなかった場合には、スロット割振りルーチン
155は、最小断片を残すことになるスロット集合を表
わすエントリ(集合記述子)があるか否かを判定する
(ステップ710)。もしそのエントリがあったなら
ば、その集合記述子をカレント集合記述子とする(ステ
ップ712)。続いて、そのカレント集合記述子に対応
したスロット集合について、その残余断片の大きさが小
断片になると判定されたならば(判断ステップ71
4)、スロット割振りルーチン155は、ステップ61
0〜630を実行して、そのスロット集合の先頭の、割
振り要求の大きさに相当する個数のブロックを選択して
割振り要求に応える。続いて、その集合記述子をキュー
から取り除き、更に、スロット割振りバッファへの集合
記述子の補充を試みる。この場合には、その残余の小断
片を、この時点でスロット割振りバッファの中に集合記
述子によって表示するということはしない。それをしな
いようにしているのは、処理時間を節約するための一種
の最適化のための方策であり、即ち、この場合に残余の
小断片をスロット割振りバッファの中に表示するように
したならば、小断片の1つだけでまかなえる割振り要求
が発生する可能性が低いにもかかわらず、小断片を調べ
るために処理時間が消費されることになるからである。
更にこれによって、小断片を用いて応えるためには多数
の連続スロット集合が必要とされる割振り要求に、実際
に小断片を用いて応えてしまうという事態も回避されて
いる。一方、もしその残余断片が中断片ならば、先に説
明したステップ550〜554を実行することによっ
て、割振り要求に応え、対応したビット・マップを更新
し、そして、スロット割振りバッファ内の、その集合記
述子の中の開始アドレス情報と長さ情報とを更新する。
【0026】再び説明を判断ステップ710(図5)に
戻して、もし、割振り要求の大きさよりも、中断片ない
し小断片に相当する分だけ大きなスロット集合に対応し
たエントリ(集合記述子)が、セーブされていなかった
ならば(更に、処理の流れがここまで進んできたときに
は、要求割振り大きさと完全に一致する大きさのスロッ
ト集合も存在しておらず、また、要求割振り大きさより
大断片分大きいスロット集合も存在していない)、その
割振り要求に単独で応えることができる大きさのスロッ
ト集合は存在していない。それゆえ、この場合には、ス
ロット割振りルーチン155は、同じスロット割振りバ
ッファを対象とした第2回パスの実行を開始し、その開
始に際してはフラグをセットして(ステップ715)、
これより実行するパスが、第1回パスではなく第2回パ
スであることと、その割振り要求に応えるためには、2
つ以上のスロット集合を使用せねばならないということ
とを表示する。続いて、スロット割振りルーチン155
の処理の流れはステップ522(図3)へ進み、更に判
断ステップ526(図3)と判断ステップ810(図
6)とを経由して、ステップ814(図6)へ進む。ス
テップ814では、スロット割振りルーチン155は、
キューの中の先頭の集合記述子を選択し、その集合記述
子に対応したスロット集合によって、要求割振り大きさ
のうちの一部分をまかなうようにする。続いて、要求割
振り大きさを、その先頭の集合記述子に対応したスロッ
ト集合の大きさに相当する分だけ減じる(ステップ81
8)。続いて、スロット割振りルーチン155は、割振
り要求が満たされたかを判定すると共に、もし、満たさ
れていたならば、更に、中断片以上の大きさの残余があ
るかを判定する(判断ステップ819)。もし、割振り
要求が完全には満たされていなかったならば(先頭の集
合記述子に対応したスロット集合が単独では割振り要求
を満たすことができないのであるから、当然このように
判定されることになる)、スロット割振りルーチン15
5は、ビット・マップを更新して、先頭の集合記述子が
表わしているスロット集合のスロットが非可用状態とな
ったことを表示させ(ステップ820)、続いて、先頭
にあったその集合記述子をキューから取り除く(ステッ
プ822)。続いてスロット割振りルーチン155は、
先に説明した補充サブルーチンをコールして、同じエク
ステントの中の、続く次のスロット集合をサーチして捜
し出す(ステップ826)。この補充に成功したならば
(判断ステップ830)、スロット割振りルーチン15
5は、捜し出したその新たなスロット集合に対応した集
合記述子を、スロット割振りバッファ内のキューの末尾
に加える(ステップ834)。続いてスロット割振りル
ーチン155は、割振り要求が満たされているかを判定
し(判断ステップ840)、もし満たされていなかった
ならば、次の行エントリについて、以上の処理を反復し
て実行し(この場合には、処理の流れは図3のステップ
522へ進み、更に、判断ステップ526(図3)と判
断ステップ810(図6)とを経由して反復する)、そ
れによって、残っている割振り要求を満たすようにす
る。この反復において、1つのスロット集合を選択する
ごとに、割振り要求の大きさをその分だけ減じて行き、
最終的には、割振り要求の要求割振り大きさの全てに対
して割振りがなされ、割振り要求が完全に満たされる。
そして、割振り要求が完全に満たされた時点において、
残余断片として、中断片ないし大断片が残っていたなら
ば、スロット割振りルーチン155の処理の流れは、先
に説明したステップ552へ進む(図6の判断ステップ
819)。一方、割振り要求に応えるために最後に用い
たスロット集合の大きさが、そのときに残っていた割振
り要求の要求割振り大きさと完全に同一の大きさであっ
た場合と、その最後の割振りの結果残された残余断片が
小断片であった場合とには、処理の流れは、先に説明し
たステップ558へ向かう(判断ステップ840)。
【0027】再び説明を判断ステップ830(図6)へ
戻し、もし、補充サブルーチンの実行が不成功に終わ
り、しかも、割振り要求が満たされていなかったならば
(判断ステップ831)、スロット割振りルーチン15
5の処理の流れは、判断ステップ514(図3)へ進
み、そこで、カレント・スロット割振りバッファの中
に、続く次の集合記述子が存在していると判定されたな
らば、その集合記述子に対応したスロット集合を使用す
るようにし(判断ステップ514、ステップ522、及
び判断ステップ526)、一方、カレント・スロット割
振りバッファの中には、続く次の集合記述子がもはや存
在していないと判定されたならば、ステップ910以下
の処理を実行することによって、別のエクステントの選
択を行なう。これは、カレント・エクステントの中に
は、使用するのに適したスロット集合がもはや存在して
いないため、別のエクステントを使用して割振り要求に
応えるということである。このステップ910から始ま
るルーチンは、カレント・エクステントの中に、スロッ
ト割振りバッファによって表示されるスロット集合が存
在しなくなったならば、その都度呼び出される。また、
現在の割振り要求ないし後続の割振り要求を満たすため
にスロット割振りルーチン155がサーチを行なう対象
とすべきエクステントを、このステップ910以下のル
ーチンを実行して選択する際に、その候補として取り上
げるエクステントは、以前のエクステントに隣接したエ
クステントとするようにしており、それによって、読み
書きヘッドの径方向移動量を、できるだけ少なくするよ
うにしている。
【0028】再び説明を判断ステップ831に戻して、
もしこの判断ステップ831において、割振り要求が満
たされていると判定されたならば、(集合記述子を補充
しようとして果たせなかったところの)カレント集合記
述子をキューから取り除いた後に、処理の流れはステッ
プ558へ進む。
【0029】以上、本発明の実施例にかかるコンピュー
タ・システムと、プロセスと、プログラミングとを開示
した。ただし、ここに開示した実施例は、本発明の範囲
から逸脱することなく改変及び要素の代替を施し得るも
のである。例えばスロット割振りルーチンは、以上に説
明した実施例のように、仮想記憶マネージャからの割振
り要求に応えてスロットを割り振るばかりでなく、デー
タ・ベース・マネージャからの、レコードを格納するた
めの記憶位置の割振り要求に応えて、スロットを割り振
るものとすることも可能である。従って、以上の開示
は、あくまでも本発明を例示するものであって、本発明
が以上の開示に限定されるというものではない。
【0030】
【発明の効果】本発明によれば、DASDにデータを書
き込むのに要する入出力操作の回数を少なくできる。ま
た、DASD内の可用記憶位置を有効に活用することも
できる。更に、DASDのデータにアクセスする際の読
み書きヘッドの径方向移動量とディスクの回転量を低減
することもできる。
【図面の簡単な説明】
【図1】本発明を組み込んだコンピュータ・システムの
ブロック図である。
【図2】各エクステントの中に存在する連続したスロッ
トから成る使用可能なスロット集合の記憶位置と大きさ
とを表示するためのバッファとして構成した、図1のコ
ンピュータ・システムの中のスロット割振りバッファの
模式図である。
【図3】主記憶装置からDASDへ書き出すデータを収
容させるためのDASDの割振りを行なうルーチンとし
て構成した、図1のコンピュータ・システムの中のスロ
ット割振りルーチンの、フローチャートの一部である。
【図4】図1のコンピュータ・システムの中のスロット
割振りルーチンの、フローチャートの一部である。
【図5】図1のコンピュータ・システムの中のスロット
割振りルーチンの、フローチャートの一部である。
【図6】図1のコンピュータ・システムの中のスロット
割振りルーチンの、フローチャートの一部である。
【図7】図1のコンピュータ・システムの中のスロット
割振りルーチンの、フローチャートの一部である。
【図8】図1のコンピュータ・システムの中のスロット
割振りルーチンの、フローチャートの一部である。
【図9】図1のコンピュータ・システムの中のスロット
割振りルーチンの、フローチャートの一部である。
【符号の説明】
100 コンピュータ・システム 110 CPU 115 主記憶装置 120 エクステント・マップ 125 ビット・マップ 140 オペレーティング・システム 150 ブロック・ページアウト・ルーチン 155 スロット割振りルーチン 160 DASD 162 入出力サブシステム 170 仮想記憶マネージャ・サブシステム 175 スロット割振りバッファ
フロントページの続き (72)発明者 キャサリン・マリー・ロッシ アメリカ合衆国13760、ニューヨーク州 エンディコット、ジェーン・レーシ ー・ドライブ 33ビー (56)参考文献 特開 平4−77938(JP,A) 特開 平1−181121(JP,A)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】ある指定長さのデータを記憶させるために
    直接アクセス記憶装置内の記憶位置を割り振る方法にお
    いて、 直接アクセス記憶装置内の、各々が連続した複数の可用
    記憶位置から成る記憶位置集合の夫々について、その記
    憶位置集合のアドレス及び長さを記録にするステップ
    と、 前記記録をサーチして、前記指定長さと同じ長さの記憶
    位置集合と、前記指定長さを超える分が所定の長さ以上
    記憶位置集合とを特定することを試みるステップと、 前記サーチにおいて、前記指定長さと同じ長さの記憶位
    置集合の特定に成功したならば、特定に成功したその記
    憶位置集合を、前記データを記憶させるために割り振
    り、一方、前記指定長さと同じ長さの記憶位置集合の特
    定には成功しなかったが、前記指定長さを超える分が所
    定の長さ以上の記憶位置集合の特定に成功したならば、
    特定に成功したその記憶位置集合を、前記データを記憶
    させるために割り振るステップと、 を含んでいること、を特徴とする方法。
  2. 【請求項2】 ある長さのデータを記憶させるために直
    接アクセス記憶装置内の記憶位置を割り振る方法におい
    て、 直接アクセス記憶装置を複数のエクステントに論理分割
    するテーブルを作成するステップと、 前記複数のエクステントの各々について、そのエクステ
    ントの中の可用記憶位置の割合または量を前記テーブル
    の中に記録するステップと、 前記テーブルに表示されている前記複数のエクステント
    の各々に対応した個別のビット・マップであって、それ
    らビット・マップの各々が、そのビット・マップに対応
    したエクステントの中の、どの記憶位置が可用状態にあ
    り、どの記憶位置が非可用状態にあるかを表示するよう
    にした、ビット・マップを作成するステップと、 前記テーブルに表示されている前記複数のエクステント
    のうちの1つのエクステントを、それらエクステントの
    中の可用記憶位置の割合または量に基づいて、前記長さ
    を有する前記データを記憶させるためのエクステントと
    して選択するステップと、 選択したエクステントの中の、各々が連続した複数の可
    用記憶位置から成る記憶位置集合の夫々について、その
    記憶位置集合の位置及び長さの記録を作成するステップ
    と、 前記記録をサーチして、前記記憶位置集合のうちの1つ
    またはそれ以上の記憶位置集合を、前記長さのデータを
    収容するための記憶位置として特定するステップと、を
    含んでいること、を特徴とする方法。
  3. 【請求項3】ある指定長さのデータを記憶させるために
    直接アクセス記憶装置内の記憶位置の割振りを行なう、
    コンピュータ・システムにおいて、 直接アクセス記憶装置内の、各々が連続した複数の可用
    記憶位置から成る記憶位置集合の夫々について、その記
    憶位置集合のアドレス及び長さを判定する手段と、 前記アドレス及び長さをサーチして、前記指定長さと同
    じ長さの記憶位置集合である第1種の記憶位置集合と、
    前記指定長さを超える分が所定の長さ以上の記憶位置集
    合である第2種の記憶位置集合とを特定することを試み
    る、サーチ手段と、 前記指定長さと同じ長さの記憶位置集合の特定に成功し
    たときに、その特定に成功したことに応答して、特定に
    成功したその第1種の記憶位置集合を、前記データを記
    憶させるために割り振り、且つ、前記指定長さと同じ長
    さの記憶位置集合の特定には成功しなかったが、前記指
    定長さを超える分が所定の長さ以上の記憶位置集合の特
    定に成功したときに、その特定に成功したことに応答し
    て、特定に成功したその第2種の記憶位置集合を、前記
    データを記憶させるために割り振る、割振り手段と、 を備えたこと、を特徴とするコンピュータ・システム。
  4. 【請求項4】 前記サーチ手段が、同一のエクステント
    の中に位置する記憶位置集合のサーチを最初に行なうよ
    うにしたものであること、を特徴とする請求項3記載の
    コンピュータ・システム。
  5. 【請求項5】 前記サーチ手段が更に、サーチした他の
    記憶位置集合と比較して前記指定長さを超える分の長さ
    がより短い連続した可用の記憶位置の集合である第3種
    の記憶位置集合を特定することを試みるようにしてあ
    り、且つ、前記指定長さと同じ長さの記憶位置集合を特
    定しようとするサーチと、前記指定長さよりも、前記直
    接アクセス記憶装置内に後刻記憶させることになる様々
    な長さのデータのうちの殆どのものに対応できる長さ分
    だけ長い記憶位置集合を特定しようとするサーチとの、
    両方が不成功であったときに、該第3種の記憶位置集合
    を割り振るようにしてあること、を特徴とする請求項3
    記載のコンピュータ・システム。
  6. 【請求項6】 アドレス及び長さを記録した記憶位置集
    合を、直接アクセス記憶装置のアドレスの順序でキュー
    に入れておくようにしてあること、を特徴とする請求項
    3記載のコンピュータ・システム。
  7. 【請求項7】 ある長さのデータを記憶させるために直
    接アクセス記憶装置内の記憶位置の割振りを行なう、コ
    ンピュータ・システムにおいて、 直接アクセス記憶装置を複数の領域に論理分割するテー
    ブルを作成する手段と、 前記複数の領域の各々について、その領域の中の可用記
    憶位置の割合または量を前記テーブルの中に記録する手
    段と、 前記テーブルに表示されている前記複数の領域の各々に
    対応した個別のビット・マップであって、それらビット
    ・マップの各々が、そのビット・マップに対応した領域
    の中の、どの記憶位置が可用状態にあり、どの記憶位置
    が非可用状態にあるかを表示するようにした、ビット・
    マップを作成する手段と、 前記テーブルに表示されている前記複数の領域のうちの
    1つの領域を、それら領域の中の可用記憶位置の割合ま
    たは量に基づいて、前記長さのデータを収容するための
    領域として選択する手段と、 選択した領域の中の、各々が連続した複数の可用記憶位
    置から成る記憶位置集合の夫々について、その記憶位置
    集合の位置及び長さの記録を作成する手段と、 前記記録をサーチして、前記記憶位置集合のうちの1つ
    またはそれ以上の記憶位置集合を、前記長さのデータを
    収容するための記憶位置として特定する手段と、を備え
    たことを特徴とするコンピュータ・システム。
  8. 【請求項8】 前記記録及び前記複数のビット・マップ
    のうちの対応するビット・マップに更新を施して、前記
    1つまたはそれ以上の記憶位置集合を前記長さのデータ
    を収容するための記憶位置として特定した後に、該1つ
    またはそれ以上の記憶位置集合ないしその一部がもはや
    可用状態ではないことを表示させる手段を備えたこと、
    を特徴とする請求項7記載のコンピュータ・システム。
JP5113200A 1992-06-15 1993-05-14 コンピュータのデータを記憶させるための直接アクセス記憶装置の割振り方法及び装置 Expired - Lifetime JP2708348B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/898,874 US5390315A (en) 1992-06-15 1992-06-15 Allocation of uniform contiguous blocks of DASD storage by maintaining both a bit and a bit map record of available storage
US898874 1992-06-15

Publications (2)

Publication Number Publication Date
JPH06110772A JPH06110772A (ja) 1994-04-22
JP2708348B2 true JP2708348B2 (ja) 1998-02-04

Family

ID=25410160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5113200A Expired - Lifetime JP2708348B2 (ja) 1992-06-15 1993-05-14 コンピュータのデータを記憶させるための直接アクセス記憶装置の割振り方法及び装置

Country Status (3)

Country Link
US (1) US5390315A (ja)
EP (1) EP0574692A1 (ja)
JP (1) JP2708348B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555390A (en) * 1992-10-19 1996-09-10 International Business Machines Corporation Data storage method and subsystem including a device controller for respecifying an amended start address
JP2710550B2 (ja) * 1993-05-27 1998-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション データ記憶分散装置および方法
US5745749A (en) * 1994-06-27 1998-04-28 International Business Machines Corp. Method and system of file version clustering of object blocks using a compiler and database and having a predetermined value
JP3564732B2 (ja) * 1994-06-30 2004-09-15 ソニー株式会社 ディスク制御方法および装置
US5574907A (en) * 1994-11-30 1996-11-12 Microsoft Corporation Two-pass defragmentation of compressed hard disk data with a single data rewrite
US5623701A (en) * 1995-06-06 1997-04-22 International Business Machines Corporation Data compression method and structure for a direct access storage device
US5682499A (en) * 1995-06-06 1997-10-28 International Business Machines Corporation Directory rebuild method and apparatus for maintaining and rebuilding directory information for compressed data on direct access storage device (DASD)
US5666560A (en) * 1995-08-03 1997-09-09 International Business Machines Corporation Storage method and hierarchical padding structure for direct access storage device (DASD) data compression
US5732256A (en) * 1995-08-30 1998-03-24 Microsoft Corporation CD-ROM optimization and stream splitting
GB2312059B (en) * 1996-04-12 2000-11-15 Sony Uk Ltd Data storage
US5848405A (en) * 1997-04-21 1998-12-08 Oracle Corporation Method and apparatus for identifying new data by address ranges
US6578120B1 (en) * 1997-06-24 2003-06-10 International Business Machines Corporation Synchronization and resynchronization of loosely-coupled copy operations between a primary and a remote secondary DASD volume under concurrent updating
US6088764A (en) * 1997-07-14 2000-07-11 International Business Machines Corporation Method and apparatus for reducing space allocation failures in storage management systems
US6018789A (en) * 1997-11-24 2000-01-25 Western Digital Corporation Disk drive with cache segment providing adaptively managed chunks
US6175900B1 (en) 1998-02-09 2001-01-16 Microsoft Corporation Hierarchical bitmap-based memory manager
GB2391103B (en) * 2002-07-19 2005-08-17 Autodesk Canada Inc Image data processing apparatus
JP4139675B2 (ja) * 2002-11-14 2008-08-27 株式会社日立製作所 仮想ボリュームの記憶領域割当方法、その装置及びプログラム
KR100883651B1 (ko) * 2006-05-18 2009-02-18 삼성전자주식회사 파일을 저장할 디스크의 공간을 할당하는 방법 및 장치
US7660837B2 (en) 2006-06-30 2010-02-09 Broadcom Corporation Method for automatically managing disk fragmentation
US7765244B2 (en) * 2006-06-30 2010-07-27 Broadcom Corporation Fast and efficient method for deleting very large files from a filesystem
US8607009B2 (en) * 2006-07-13 2013-12-10 Microsoft Corporation Concurrent virtual machine snapshots and restore
US20080229045A1 (en) * 2007-03-16 2008-09-18 Lsi Logic Corporation Storage system provisioning architecture
US9329800B2 (en) * 2007-06-29 2016-05-03 Seagate Technology Llc Preferred zone scheduling
US20110153929A1 (en) * 2009-12-22 2011-06-23 International Business Machines Corporation Disk memory utilization management using available slot clusters
US10268592B2 (en) * 2014-01-31 2019-04-23 Avago Technologies International Sales Pte. Limited System, method and computer-readable medium for dynamically mapping a non-volatile memory store
US9619157B2 (en) * 2014-04-03 2017-04-11 Analysis Solution Llc High-speed data storage
JP7362321B2 (ja) * 2019-07-04 2023-10-17 株式会社東芝 情報処理装置、情報処理方法、および情報処理システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4528624A (en) * 1981-03-25 1985-07-09 International Business Machines Corporation Method and apparatus for allocating memory space based upon free space in diverse memory devices
US4536837A (en) * 1982-05-25 1985-08-20 Elxsi Improved disk file allocation and mapping system utilizing cylinder control blocks and file map having unbalanced tree structure
US4660130A (en) * 1984-07-24 1987-04-21 Texas Instruments Incorporated Method for managing virtual memory to separate active and stable memory blocks
JPH01181121A (ja) * 1988-01-14 1989-07-19 Mitsubishi Electric Corp 記憶領域割付け方式
US5021946A (en) * 1988-06-17 1991-06-04 Modular Computer Systems, Inc. Mostly contiguous file allocation technique involving file extension
US5398142B1 (en) * 1989-05-31 1997-09-16 Raxco Inc Method for eliminating file fragmentation and reducing average seek times in a magnetic disk media environment
US5200864A (en) * 1989-06-28 1993-04-06 International Business Machines Corporation Combining small records into a single record block for recording on a record media
US5247660A (en) * 1989-07-13 1993-09-21 Filetek, Inc. Method of virtual memory storage allocation with dynamic adjustment
US5247638A (en) * 1990-06-18 1993-09-21 Storage Technology Corporation Apparatus for compressing data in a dynamically mapped virtual data storage subsystem
JPH0477938A (ja) * 1990-07-20 1992-03-12 Ricoh Co Ltd データ記憶方法

Also Published As

Publication number Publication date
EP0574692A1 (en) 1993-12-22
US5390315A (en) 1995-02-14
JPH06110772A (ja) 1994-04-22

Similar Documents

Publication Publication Date Title
JP2708348B2 (ja) コンピュータのデータを記憶させるための直接アクセス記憶装置の割振り方法及び装置
US5596736A (en) Data transfers to a backing store of a dynamically mapped data storage system in which data has nonsequential logical addresses
US5806085A (en) Method for non-volatile caching of network and CD-ROM file accesses using a cache directory, pointers, file name conversion, a local hard disk, and separate small database
CN103186350B (zh) 混合存储系统及热点数据块的迁移方法
US8621174B2 (en) Relocating data within a file system
US6151660A (en) Information recording/reproducing apparatus having segmented cache memory
KR940005775B1 (ko) 디스크 파일 개방 방법
US5119291A (en) Modular data storage directories for large-capacity data storage units wherein the index to the records in a sector is located in the next adjacent sector
US7747823B2 (en) Strategies for reading information from a mass storage medium using a cache memory
AU627029B2 (en) Method for eliminating file fragmentation and reducing average seek times in a magnetic disk media environment
US5983317A (en) Storage device and method for data sharing
JP4689828B2 (ja) ブート可能記憶媒体を作成する方法、複数のエミュレーションを有するブート可能記憶媒体を含むコンピュータ・システム、およびコンピュータ使用可能媒体
US6115787A (en) Disc storage system having cache memory which stores compressed data
US5345575A (en) Write optimized disk storage device
US5481691A (en) Cache page replacement using sequential LIFO and non-sequential LRU cast out
JP2005515535A (ja) 取り外し可能なランダム・アクセス・データ・ストレージ・メディアのシミュレートされた順次データに対する同時読み取りおよび書き込みアクセス
US8694563B1 (en) Space recovery for thin-provisioned storage volumes
US6842824B2 (en) Cache control program and computer for performing cache processes utilizing cache blocks ranked according to their order of reuse
JPH031219A (ja) マルチファイル転送動作を遂行する装置とその方法
JPH09114710A (ja) ディスクファイル記憶装置における区画内部の区分化方法及び装置
US6983355B2 (en) Virtualization of physical storage using size optimized hierarchical tables
US7032093B1 (en) On-demand allocation of physical storage for virtual volumes using a zero logical disk
US6996695B2 (en) Method, system, and storage medium for optimizing disk space and information access
US6173361B1 (en) Disk control device adapted to reduce a number of access to disk devices and method thereof
US5765192A (en) Method and computer program product to reuse directory search handles