JPH08339341A - 主記憶ページ選択方法 - Google Patents

主記憶ページ選択方法

Info

Publication number
JPH08339341A
JPH08339341A JP7143791A JP14379195A JPH08339341A JP H08339341 A JPH08339341 A JP H08339341A JP 7143791 A JP7143791 A JP 7143791A JP 14379195 A JP14379195 A JP 14379195A JP H08339341 A JPH08339341 A JP H08339341A
Authority
JP
Japan
Prior art keywords
page
storage device
size
area
pages
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.)
Pending
Application number
JP7143791A
Other languages
English (en)
Inventor
Yoshifumi Takamoto
良史 高本
Hitoshi Tsunoda
仁 角田
喜久雄 ▲高▼橋
Kikuo Takahashi
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP7143791A priority Critical patent/JPH08339341A/ja
Publication of JPH08339341A publication Critical patent/JPH08339341A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】異なるサイズのページにて構成された主記憶装
置と異なる種類のディスク記憶装置を有する計算機にお
いて、高速なデータ転送を行うディスク記憶装置に対す
る入出力バッファの割当て時のページ取得処理等の処理
時間を減らす。 【構成】ディスクアレイ装置111また通常のディスク
記憶装置20がOSから要求されたデータを転送可能に
なって時点でOSに入出力バッファの取得を要求したと
きに、OSは、この要求を発行したディスク記憶装置が
高速データ転送を行うものであるとき、要求されたバッ
ファのサイズが大ページのサイズ以上のときには、この
要求されたバッファの確保に当り、OSのリソース領域
302BRにある大サイズのページを優先して使用す
る。それ以外のときには、リソース領域302BR内の
小ページを使用して要求されたバッファを確保する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、主記憶が異なるサイズ
のページから構成されている場合に、外部記憶装置との
データの入出力にオペレーティングシステム(OS)が
使用するバッファに領域に割り当てるべきページを選択
する方法に関する。
【0002】
【従来の技術】一般的なコンピュータシステムは、プロ
セッサと2次記憶装置から構成されている。主として使
用される2次記憶装置は磁気ディスク装置である。
【0003】現在、ディスク記憶装置の容量の伸び率は
極めて高いが、メカニカルな動作を伴う磁気ディスク装
置の性能はプロセッサ性能の伸び率ほど高くない。その
課題を解決する方式として、ディスクアレイが提案され
た。D.Patterson、G.Gibson、and R.H.Kartzらによる"A
Case for Redundant Arrays of Inexpensive Disks(RA
ID)、in ACM SIGMOD Conference、Chicago、 IL"、 PP.
109-116 (June 1988)(以下、第1の参考文献と呼ぶ)
では、複数のディスクドライブにデータを分散して配置
することでディスク内に格納されたデータへのアクセス
時間を短縮し、かつパリティあるいはECCと呼ばれる
冗長データを格納することで信頼性も高めるRAIDと
いうディスクアレイの構成技術が紹介されている。つま
り、アレイディスクでは、複数のディスクドライブに対
して並列に入出力を行うので、データの読み出しあるい
は書き込みは高速となり、また、ディスクドライブに障
害が発生したときでもパリティと障害ディスクドライブ
以外のデータから、障害ディスクドライブのデータを回
復することができる。
【0004】より具体的には、上記文献では、データの
格納方法によりRAIDレベルを複数に分類している。
そのうち、製品で多く使用されるRAIDレベルは、R
AID1、RAID3、RAID5である。RAID1
はミラーリングであり、2台のディスクに同一データを
格納することでディスクの障害に対する信頼性を高めて
いる。読み出し時には、2台のディスクの内どちらか早
いほうのディスクから読むことで単一ディスクに比べ高
速である。RAID3は、単一データをビットあるいは
バイト毎にストライピングすることで、データ転送性能
を向上可能である。RAID5は入出力ブロックを単位
として複数のディスクにストライピングを行うレベルで
ある。RAID3では単一入出力要求を小さな単位でス
トライピングするのに対し、RAID5はそれよりも大
きな単位でストライピングを行う。RAID3は単一ユ
ーザの入出力を高速化することが主な目的であるが、R
AID5は複数ユーザの入出力を並列に実行することが
主な目的である。従って、RAID3は特に大規模なデ
ータ入出力が要求されるマルチメディアや科学技術計算
に用いられる。RAID5は多数ユーザのサービスを行
うオンライン・トランザクションたデータベース処理に
用いられる。
【0005】一方、OSは仮想記憶機能を持っている。
仮想記憶機能は、当面必要のない主記憶メモリ内のデー
タやプログラムを一時的に外部の大容量ディスク装置に
出力し、すぐにメモリ(主記憶)を必要とするプログラ
ムに使用させることで、仮想的に大容量のメモリに見せ
る機能である。この動作はページングやスワッピングと
呼ばれる。OSはディスク装置やディスクアレイ装置の
データ入出力時には、必要な容量の仮想記憶領域と主記
憶領域を取得する。この取得の単位をページと呼ぶ。言
い替えると主記憶はページと呼ばれる複数の単位領域か
ら構成されている。前記ページングやスワッピングはこ
のページを単位として行われる。ページサイズを越える
大容量のデータ入出力時には、複数のページを取得する
必要がある。さらに、OSはディスク入出力時に前記ペ
ージの固定処理も行う。ページ固定は、仮想記憶に割り
当てられた主記憶メモリを入出力が終了するまで、他の
プログラムに剥奪されないようにする処理である。前記
ページングやスワッピングはディスクの入出力とは独立
に行われる動作である。ページ固定処理を行わないと、
データを主記憶に転送している最中にその領域を他のプ
ログラムに割り当ててしまう問題が発生する。これを回
避するために、OSが管理する主記憶管理テーブルにペ
ージ固定ビットを設け、このビットが立っている間はO
Sはページを剥奪しないようにする機構を設けている。
このページ固定も各ページ毎に管理されるため、多数の
ページをいずれかのプログラムに新に割り当てた場合、
これらのページに渡る固定処理が必要になる。
【0006】J.Bradley Chenらによる"A Simulating Ba
sed Study of TLB Performance",19th International S
ymposium on COMPUTER ARCHTECTURE, PP. 114-123 (199
2)(以下、第2の参考文献と呼ぶ)では、ユーザがワー
ク領域として使用するメモリ領域の割当時に、プロセッ
サのTLBが管理するページサイズを可変にし、複数の
アプリケーションについて、プロセッサからアクセスさ
れる命令とデータのヒット率をシミュレーションした結
果が述べられている。ページサイズを変えたとき、プロ
セッサの命令ヒット率が変化し、アプリケーションによ
って最適なページサイズが存在することが述べられてい
る。
【0007】アプリケーションの命令やデータの参照時
にキャッシュにヒットするかどうかで、プロセッサの処
理性能が変化することが述べられている。この変化をペ
ージサイズから考察している。アプリケーションによっ
て、命令やデータの参照特性は異なる。命令やデータア
クセスがメモリアドレスに対しシーケンシャルでかつ大
容量の領域参照あるほど、ページサイズは大きいほうが
プロセッサ処理性能は高くなる。プロセッサは、命令や
その命令が参照するデータの参照/更新時には必ず仮想
記憶アドレスを実記憶アドレスに変換するため、ページ
サイズが大きいほうがこの変換処理回数が少なくてすむ
ことによる。
【0008】
【発明が解決しようとする課題】しかるに、現在の商用
計算機では、単一のサイズのページ、例えば、4KBの
大きさのページからなるメモリを使用している。したが
って、上記第2の参考文献に記載の事項から処理速度を
考慮すると、従来からすでに使用されているサイズ、例
えば4KBより大きいサイズ、例えば16KB、のペー
ジを有する主記憶を使用することが望ましい。しかし、
このような計算機で走行されているプログラムの中に
は、元のサイズ4KBのページを有する計算機でしか正
常に動作しないプログラムもある。したがって、計算機
に大きいサイズのページを導入するには、従来からすで
に使用されているサイズ、例えば4KB、のページ加え
て、それより大きいサイズ、例えば16KB、のページ
も混在するように、主記憶を構成することが望ましい。
【0009】従来技術では、ディスク入出力時のデータ
領域管理は、たとえば、"UNIX 4.3BSDの設計と実装",
ページ198からページ200、丸善株式会社、1991年発行
(以下、第3の参考文献と呼ぶ)に述べられている。こ
こでは、例えばユーザがディスクからデータを読み込む
場合、まずデータを格納するためのユーザ領域を確保す
る。その後、OSに対してディスク入力要求を発行する
とOSはディスク装置に対して入力要求を発行する。デ
ィスクが、要求されたデータを読み出したとき、その要
求を発行したホストを制御するOSに対して、このディ
スク装置からのデータ読み出しの完了を示す割り込みを
発生する。信号データを一時的に格納するためのバッフ
ァをOS内部に取得する。このバッファは、OSが管理
するメモリ領域の一部に確保される。このOSが管理す
るメモリ領域はリソース領域とも呼ばれ、システムが起
動する時に一定量確保され、処理の必要に応じて確保ま
たは解放が行われる。この割り込みにあたり、ディスク
記憶装置は読み出したデータの総量をOSに通知し、O
Sはこの通知されたデータ量に応じて、主記憶に確保す
るバッファの大きさを決定する。
【0010】このような異なるサイズのページを有する
主記憶を使用した計算機に、通常のディスク記憶装置と
アレイディスク装置とを接続した場合、次の問題があ
る。
【0011】上述のごとく、異なるサイズ、例えば、4
KBと16KB、のページを含む主記憶を有する計算機
において、このバッファ領域を構成するページとして、
このバッファのサイズが大きいとき、具体的には、例え
ば、16KB以上のときには、このバッファを構成する
頁の総数が少なくなる方が、それらの頁に関する、ペー
ジ確保処理、ページ固定処理に要する時間が少なくて済
むことが期待される。したがって、いずれかのディスク
記憶装置が要求するバッファのサイズが、大きい方のペ
ージサイズ、16KB以上のときには、大きい方のペー
ジ、16KBのページをこのバッファ領域に割り当てる
方が望ましい。しかし、16KBページの総数が限定さ
れているために、無制限に16KBページをいずれのデ
ィスク記憶装置からのデータ転送にも割り当てると、1
6KBページが不足することが予想される。すなわち、
上記第3の参考文献の第198頁から第200頁に述べ
られている通り、ユーザが確保する入出力バッファ領域
と、OSがディスク等の入出力時に一時的にリソース領
域に確保する入出力バッファとは同一ではない。既に述
べた通り、リソース領域はシステムが管理しており、多
数のユーザからの要求により共有されるメモリ領域であ
る。したがって、このリソースが有効に利用されるよう
に、ディスク記憶装置から要求された、バッファに割り
当てるページのサイズを選択することが望ましい。
【0012】すなわち、ディスク等の外部装置のデータ
転送速度は、数メガバイト/秒から数100メガバイト
/秒まで装置に依存して大きく変わる。同じサイズのバ
ッファでも、それを使用するディスク記憶装置のデータ
転送速度が低い程、そのバッファが専有される時間が長
くなる。この結果、逆に、転送速度が大きいディスク記
憶装置が要求したバッファに対して、大きなページを割
り当てることが出来なくなり、結果として、より小さい
サイズのページを割り当てることになる。
【0013】この結果、本来高速なデータ転送が期待さ
れるディスク記憶装置に対して、Yほり多くのページを
割り当ていることになり、これらのページの確保処理お
よびページ固定処理に要する時間が増大する。
【0014】
【課題を解決するための手段】本発明では、主記憶に接
続された複数のディスク記憶装置の内、データ転送速度
が相対的に大きいディスク記憶装置から要求されたバッ
ファには、そのサイズが所定値、例えば最大ページサイ
ズ、以上のときには、相対的に大きなサイズのページを
優先して使用し、データ転送速度が相対的に小さなディ
スク記憶装置から要求されたバッファには、そのサイズ
が所定値以上の場合でも、より小さなサイズのページを
優先して使用する。
【0015】要求されたバッファサイズが、上記所定
値、例えば、最大ページサイズより小さいときには、そ
のバッファサイズに依らないで、最少サイズのページを
そのバッファに使用する。
【0016】
【作用】ディスクアレイ装置のように高速にデータ転送
可能な装置と主記憶装置の間で大規模なデータを入出力
する時に、大ページサイズの領域を使用することによ
り、この高速なデータ転送に対するオーバヘッドとな
る、領域の確保処理と領域の開放処理などの処理に要す
る時間を削減でき、高速なデータ転送という特徴を損な
うことが少ない。
【0017】
【実施例】以下、本発明に係る主記憶ページ選択方法を
図面に示し実施例を参照してさらに詳細に説明する。
【0018】図1は、本発明による主記憶ページ選択方
法を適用する計算機システムの概略構成図を示したもの
である。10はCPUであり、101は主記憶装置であ
り、111はディスクアレイ装置であり、複数のディス
ク装置112から構成されている。20は通常の、単一
ドライブを有するディスク記憶装置である。本実施例
は、ディスクアレイ装置111は高速にデータを転送で
きるディスク記憶装置であり、20はそれより低速なデ
ータ転送を行うディスク記憶装置である。
【0019】図の主記憶装置101内には、本実施例で
使用する主たるプログラムを示す。これらのプログラム
は、ユーザプログラム102とOS209とよりなる。
OSには、さらに仮想記憶管理プログラム103、主記
憶管理プログラム104、入出力管理プログラムが含ま
れる。ユーザプログラム102は、OS以外のプログラ
ムを示し、2次記憶装置に対する入出力要求を発行す
る。仮想記憶管理プログラム103と主記憶管理プログ
ラム104は、共に仮想記憶機能を実現するために必要
なプログラムである。仮想記憶管理プログラム103は
ユーザプログラム102のメモリ確保要求に対し、仮想
記憶領域の確保/開放等を行なう。主記憶管理プログラ
ム104は、ハードウェアである主記憶メモリの確保/
開放を行なう。入出力管理プログラム110は、ディス
ク装置などの2次記憶装置の入出力を制御するプログラ
ムである。
【0020】仮想記憶管理プログラム103内の入出力
領域管理プログラム106は、ユーザプログラム102
がディスクアレイ入出力要求を発行するために、仮想記
憶領域の取得を要求した時に実行される。主記憶管理プ
ログラム103内のページサイズ選択プログラム108
は、複数の主記憶ページサイズを持つシステムで、ディ
スクアレイ装置111のように高速な入出力が要求され
る場合は、大きなページサイズの主記憶領域を割り当
て、そうでない場合は、小さなページサイズの主記憶領
域を割り当てる動作を行なう。
【0021】一般にディスクアレイには、データやパリ
ティの格納方法により複数の種類があるが、本実施例で
は、それらのいずれも使用可能である。それらの主な種
類は次の通りである。RAID1はミラーリングであ
り、2台のディスクに同一データを格納することでディ
スクの障害に対する信頼性を高めている。読み出し時に
は、2台のディスクの内どちらか早いほうのディスクか
ら読むことで単一ディスクに比べ高速である。RAID
3は、単一データをビットあるいはバイト毎にストライ
ピングすることで、データ転送性能を向上可能である。
RAID5は入出力ブロックを単位として複数のディス
クにストライピングを行うレベルである。RAID3で
は単一入出力要求を小さな単位でストライピングするの
に対し、RAID5はそれよりも大きな単位でストライ
ピングを行う。RAID3は単一ユーザの入出力を高速
化することが主な目的であるが、RAID5は複数ユー
ザの入出力を並列に実行することが主な目的である。従
って、RAID3は特に大規模なデータ入出力が要求さ
れる画像等を処理するマルチメディアや科学技術計算に
用いられる。RAID5は多数ユーザのサービスを行う
オンライン・トランザクションたデータベース処理に用
いられる。以上のなかで、特に本実施例が有効なタイプ
はRAID3である。RAID3は、単一データを必ず
複数のディスク装置にストライピングするため、ディス
クアレイのタイプの中では転送性能を高速化しやすい特
徴を持つ。
【0022】(仮想記憶と実記憶の割り当ての概要)図
2,3は、仮想記憶領域301と主記憶領域101のペ
ージ構造を示す。図2はディスクアレイ装置111から
入出力を行なう場合の仮想記憶領域301と主記憶領域
101へのページ構造である。また図3は、ディスクア
レイ装置111より低速なデータ転送を行うディスク記
憶装置20から入出力を行なう場合の仮想記憶領域30
1と主記憶領域101へのページ構造である。
【0023】仮想記憶領域301は、本実施例では、同
一のサイズの複数の小ページに分かれている。箇々で
は、このページのサイズは4KBとする。主記憶領域1
01は、このサイズを有する小ページと、これらより大
きいサイズ、例えば、16KBの大ページに分かれてい
る。このように主記憶領域101が大ページを有するの
は、大ページを使用する方が、OSが管理すべきページ
の総数が減らせるためである。主記憶領域101が小ペ
ージを含むのは、従来の小ページを使用するユーザプロ
グラムをこの計算機システムで実行可能にするためであ
る。仮想記憶領域301は、ユーザプログラムが利用で
きる領域301Aと、OSが利用できる領域301Bに
分かれている。主記憶領域101も同様に、ユーザプロ
グラムが利用できる領域302Aと、OSが利用できる
領域302Bに分かれている。
【0024】図2,3において、307と308は、仮
想記憶領域301に設けられ、ユーザプログラムが要求
した二つの入出力バッファ領域を示す。本実施例では、
ユーザプログラムからの要求にしたがって、その要求が
指定する大きさのバッファ領域が確保される。また、3
03と304は、これらの二つの仮想の入出力バッファ
領域に対して割り当てられた主記憶領域上の入出力バッ
ファ領域を示す。これらのバッファ領域は、主記憶領域
内のユーザプログラムに解放された領域302Aに形成
される。本実施例では、仮想の入出力バッファ307
は、実の大ページのサイズ16KBより小さい大きさ、
例えば8Kバイトの大きさであると仮定すると、この仮
想の入出力バッファ307には、実の二つの4KBペー
ジからなる実の入出力バッファ領域303が割り当てら
れる。仮想の入出力バッファ308は、実の大ページの
サイズ16KB以上の大きさ、例えば、64KBの大き
さであると仮定すると、この仮想の入出力バッファ30
8には、実の4つ16KBページからなる実の入出力バ
ッファ領域303が割り当てられる。
【0025】このように本実施例では、ユーザが要求し
た仮想の入出力バッファに対して、そのサイズが大きい
ときには、大ページからなる実の入出力バッファ領域が
割り当てられる。このようにして、本実施例では、ユー
ザプログラムが要求したバッファのサイズが大きいとき
に、それに割り当てられる実のバッファ領域を構成する
ページ数が少なくなるようにしている。仮想記憶領域3
01や主記憶領域302はページと呼ばれる単位で確保
/開放が行なわれる。従って大規模な領域を確保する場
合には、確保するバイト数/ページサイズ(回)のペー
ジ取得処理を必要とする。したがって、ページ数が少な
いほど、ユーザプログラムが要求した入出力バッファを
構成するページの取得あるいはページ固定に要する時間
を短縮できる。
【0026】図2,3に示した、他の入出力バッファ3
09 A,309B,310A,310Bは、ユーザプ
ログラムが要求した入出力動作をディスクアレイ装置1
11または通常のディスク記憶装置20が実行した後、
データをOSに転送可能になった時点でOSに要求した
ときにOSが確保した入出力バッファ領域の例を示す。
これらのバッファは、ユーザプログラムが要求したデー
タをディスク記憶装置から読み出したデータを、ユーザ
プログラムに対して割り当てた実の入出力バッファ30
3あるいは304へデータを転送する前に一時的にOS
209内に格納するために使用される。これらのOS内
のバッファ309 A,309Bあるいは310A,3
10Bは、OS利用領域302B内のリソース領域30
2BRに確保される。
【0027】入出力バッファ310A,310Bは、ユ
ーザプログラムが要求した入出力動作をアレイディスク
記憶装置111が実行した後、データをOSに転送可能
になった時点でOSに要求したときにOSが確保した、
OSが管理する入出力バッファ領域の例を示す。本実施
例では、OSは、ディスク記憶装置111または20が
要求したバッファを確保するに当り、そのディスク記憶
装置が、高速にデータ転送を行えるアレイディスク装置
であるときには、そのディスク記憶装置が要求したバッ
ファのサイズが大ページのサイズ以上であるか否かを判
別し、もし、その要求サイズが、大ページサイズ以上で
あるときには、大ページを優先的にそのバッファに使用
する(図2入出力バッファ310B)。もし、その要求
サイズが、大ページサイズより小さいときには、小ペー
ジを優先的に使用する(図2入出力バッファ310
A)。一方、バッファを要求したディスク記憶装置が、
高速にデータ転送を行えない通常のディスク装置である
ときには、そのディスク記憶装置が要求したバッファが
大ページのサイズ以上であるか否かに依らず、小ページ
を優先的にそのバッファに使用する(図3入出力バッフ
ァ309 A,309B)。
【0028】一般に、16KBページにより構成された
バッファ領域310は、4KBページを使用して構成さ
れたバッファ領域309よりページ数が少ないので、そ
れらのページの取得処理と固定処理に要する時間が少な
くて済む。本実施例では、高速なデータ転送を実行でき
るアレイディスクが要求したバッファ領域に、これらの
大ページを優先的に使用する。これにより、アレイディ
スク装置による高速なデータ転送の転送開始までの時間
を増大しないようにしている。もともと、リソース領域
302BRは、システムが起動される時に確保されるメ
モリ領域であり、システムに対し一つしか存在せず、こ
の領域を複数のユーザや入出力要求が共有して使用する
ことになる。そのため、一定量のメモリを効率的に使用
する必要がある。この領域は、ユーザが利用可能な主記
憶領域302Aより小さい領域であるため、大ページの
数も有限である。したがって、本実施例では、このよう
な限定された大ページが低速のデータ転送により長時間
専有されないように、大ページを割り当ているディスク
記憶装置を限定している。それにより、システム全体の
データ転送速度が低下しないようにしている。
【0029】(入出力処理の詳細)図4は、ユーザプロ
グラム201のディスクアレイ装置111あるいは通常
ディスク記憶装置20からデータを入力する動作の例を
示している。
【0030】ステップ202では、通常のディスク記憶
装置20内のファイル207Aあるいはディスクアレイ
装置111内のファイル207Bを読み込むに先だっ
て、仮想記憶上の入出力バッファ領域の取得をOSに要
求する。この要求に応答して、OS内の仮想記憶割り当
てプログラム105では、入出力管理プログラム106
が、例えば、図2に示した領域307あるいは308を
取得する。
【0031】図5は、仮想記憶領域管理リスト407を
示している。このリストは、仮想記憶管理プログラム1
03が仮想ページをユーザプログラムが要求したバッフ
ァに割り当てるのに使用する。このリストは、未使用領
域を示すリスト401と使用中の領域を示すリスト40
2から構成される。リストはページ単位に一つのデータ
構造を持っている。データ構造は、次のページへのポイ
ンタ403、ページ番号404、ページサイズ指定40
6等が格納される。未使用領域を示すリスト401と使
用中の領域を示すリスト402のデータ構造は同一であ
る。
【0032】ページサイズ指定406は、主記憶領域3
02を割り当てるページサイズを指定する。主記憶割り
当てプログラム107は本フィールドを参照すること
で、どのページサイズを割り当てるか決定することがで
きる。仮想記憶領域を新たに確保する場合は、未使用領
域リストから要求ページ分をリストから外し、使用中領
域リストに追加することで実現する。
【0033】図4に戻り、ステップ203ではファイル
207の読み込み準備のためにファイルオープンコマン
ドをOSに発行する。このオープンコマンドに対してO
Sがファイルオープン処理を行い、ファイル207Aあ
るいは207Bが通常ディスク記憶装置20あるいはデ
ィスクアレイ装置111のどこに格納されているかとい
った情報をOSよりユーザプロセス102に通知する。
【0034】ステップ204では、実際にファイル20
7Aあるいは207Bをステップ202で取得したバッ
ファ領域303または304に格納する読み出し要求を
OSに発行する。このとき、OSは、この要求に応答し
て、そのファイル要求で要求された読み出し動作の実行
を指示する入出力コマンドをディスクアレイ装置111
または通常のディスク記憶装置20に対して発行する。
【0035】このコマンドを実行したアレイディスク記
憶装置111あるいは通常のディスク記憶装置20は、
要求されたデータをOSに転送可能な状態になると、O
Sにデータ転送要求割り込みを送出し、バッファの取得
を要求する。OSはOS内のリソース領域302BRに
一時的にバッファ310または309を後に詳述する方
法で取得する。これにより取得したバッファ310また
は309に対して、アレイディスク記憶装置111ある
いは通常のディスク記憶装置20はデータを転送可能に
なる。バッファ310または309にデータが格納され
ると、OSはユーザが取得した領域307あるいは30
8に対してデータ転送を開始する。しかし、この時点で
は領域307あるいは308の主記憶領域が取得されて
いないためページフォールトが発生し、主記憶領域の取
得を主記憶割り当てプログラム107に要求し後に詳述
する方法で取得する。以上の動作により、ユーザはアレ
イディスク記憶装置111あるいは通常のディスク記憶
装置20内のデータを参照することが可能になる。
【0036】ステップ205では、ファイルクローズに
よってディスク入出力のために取得した資源を開放す
る。
【0037】(OS内バッファ領域用のページサイズの
選択の詳細)本実施例では、前述のステップ204の後
に、OSが、このバッファ309あるいは310を取得
するときに、それらのバッファに使用するページのサイ
ズを、データ読み出しを行った装置が高速にデータ転送
を実行するアレイディスク装置であるかあるいはそうで
ない通常のディスク記憶装置であるかに応じて選択する
ようになっている。以下、その詳細を図9を参照して説
明する。
【0038】図9は、主記憶割り当てプログラム107
の処理フローを示している。
【0039】主記憶割り当てプログラム107は、前述
のステップ204の後にディスク記憶装置から発行され
るデータ転送要求割り込み701またはページフォール
ト710により起動される。
【0040】ステップ702ではこの割り込みを契機と
する主記憶領域割り当ての受け付け・解析処理を行う。
その後、ページサイズ選択プログラム108を起動す
る。
【0041】このプログラム108では、ステップ70
9において、この割り込みがリソース領域の確保を要求
するか否かを判定する。
【0042】この割り込みの発行元を、上記データ転送
要求割り込み時にステータスとして格納されるディスク
装置の識別子(システムID)をもとに解析可能であ
る。この割り込みの発行元が、ディスク記憶装置である
ときには、この割り込みは、リソース領域の確保を要求
すると判定する。
【0043】その結果、この割り込みがリソース領域の
確保を要求するとき、ステップ703では、この割り込
みを発行したディスク記憶装置が高速転送可能な装置か
否かを判定する。この判定は上記割り込み発行元の識別
子と図11に示す、OSが管理する2次記憶装置のテー
ブルにより判定される。このテーブルには、システム内
の種々のディスク記憶装置に割り当てられたシステムI
D(901)に対応して、その種類902と、その装置
のデータ転送速度903が格納されている。ステップ7
03では、具体的には、割り込み発行元のデータ転送速
度が所定値、例えば、10以上であるか否かを判定し、
10以上であれば、高速転送装置と判定する。この判定
方法に代わり、ディスク記憶装置の種類902に基づい
て、割り込み発行元がアレイディスク記憶装置であるか
を判定し、もしそうであるときには、高速転送装置判定
する方法でもよい。割り込み発行元が高速転送可能なデ
バイスであるときには、ステップ708に進む。そうで
なければ、ステップ706に進む。
【0044】ステップ708ではさらに割り当て要求が
大容量かどうかを判定する。この判定は、割り込み要求
に付随して割り込み要求元のディスク記憶装置から指定
されるデータ転送量に基づいて判定する。本実施例で
は、データ転送量が、所定値。例えば、大ページサイズ
以上のときには、大容量転送要求と判断する。
【0045】大容量の入出力要求であると判定される
と、ステップ704に進む。そうでなければステップ7
06に進む。ステップ704は、ディスクアレイに対す
る入出力時に実行され、主記憶領域中の大ページサイズ
の確保を行うために、後述する大ページサイズの空きリ
スト503(図7)をサーチする。ここで空きがあれ
ば、ステップ705に進み、後述する使用中リスト50
4(図7)に追加することで高速転送可能なデバイス用
に割り当てたことになる。また、2種類以上のページサ
イズを有するシステムでは、最も小さなページサイズ以
外のページを選択することで本実施例の効果を出すこと
ができる。
【0046】ステップ706では、基本的に、後述する
小ページサイズの空きリスト501(図7)をサーチす
る。小ページサイズの空きが見つかれば、後述する使用
中リスト502(図7)に追加し、領域の確保を行う。
この処理により、高速転送可能なディスクアレイ装置等
に対する入出力時には、優先的に大ページサイズが割り
当てられるため、ページ割り当て処理の負荷が軽くする
ことができる。さらに、大容量の入出力要求であって
も、性能の低いデバイスへは小ページサイズを割り当て
ることで、リソース領域を効率的に使用することができ
るようになる。
【0047】ステップ711はページフォールトによる
主記憶割り当て要求かどうか判定を行なう。この判定
は、リソース領域の判定と同様に割り込みのステータス
を参照することで可能である。ステップ712では主記
憶を大ページサイズか小ページサイズのどちらに割り当
てるかを判定する。この判定には図5の空き仮想記憶領
域管理リストを参照することにより可能である。図5ポ
インタ402は仮想記憶を取得しているページのリスト
を示している。ページフォールトの割り込みステータス
から、どこの仮想記憶ページがページフォールトを起こ
したかを判断することができる。この情報をもとにポイ
ンタ402から仮想記憶のリストをサーチしページフォ
ールトを起こしたページを求める。リスト中にはページ
サージが記述されたフィールド406があり、このフィ
ールドに大ページサイズか小ページサイズのどちらを割
り当てるかが記述されている。このフィールドへは仮想
記憶領域を新たに割り当てる時、仮想記憶領域の大きさ
を判断し領域が所定の値より大きければ大ページサイズ
の割り当て要求を格納し、そうでなければ小ページサイ
ズの割り当て要求を格納する。つまり、主記憶領域は仮
想記憶領域より後で取得されるため、仮想記憶領域を割
り当てる際、仮想記憶割り当てプログラム105があら
かじめ割り当てたい主記憶ページサイズをフィールド4
06に格納する。このフィールドを参照することで、図
9ステップ712の判断を行なうことができる。その結
果、大ページサイズの取得要求であればステップ704
へ、小ページサイズの取得要求であればステップ706
を実行する。この処理により、ユーザの取得した入出力
バッファ(図4入出力バッファ303,304)を取得
する容量により、所定の値より大きければ大ページサイ
ズへ小さければ小ページサイズの主記憶領域に割り当て
ることが可能になる。主記憶のページ管理の詳細は以降
で説明する。
【0048】(主記憶のページの管理)図6は、主記憶
管理リスト群1105を示している。ポインタリスト1
100は2つの主記憶管理リストへのポインタを含む。
一つは、ユーザが確保可能なユーザ領域主記憶管理リス
ト1103へのポインタ1101であり、もう一つはリ
ソース領域リスト1104へのポインタ1102であ
る。リソース領域は、ユーザが直接割り当てることはな
く、OSがシステム動作に必要な時に割り当てる領域で
ある。1101、1102はOSが主記憶の割り当て/
解放時に用途に応じて切り換えて使用する。
【0049】図7は、ユーザが割り当てることができる
主記憶領域管理リスト1103を示している。501は
小ページサイズ領域の空きリストへのポインタ、502
は小ページサイズ領域の使用中リストへのポインタが格
納されている。503は大ページサイズ領域の空きリス
トへのポインタ、504は大ページサイズ領域の使用中
リストへのポインタが格納されている。リストはページ
単位に一つのデータ構造を持っている。リストのデータ
構造は、次のページへのポインタ505、ページ固定ビ
ット506、ページ番号507等が格納される。未使用
領域を示すリスト501、503と、使用中の領域を示
すリスト502、504のデータ構造は同一である。主
記憶領域を新たに確保する場合は、未使用領域リスト5
01、503から要求ページ分をリストから外し、使用
中領域リスト502、504に追加することで実現す
る。使用中リスト502、504の中で、ページ固定ビ
ット506が立っているページは、OSが剥奪すること
はない。
【0050】図8は、リソース領域の主記憶領域管理リ
スト1104を示している。構造は図7と同等である。
1201は小ページサイズ領域の空きリストへのポイン
タ、1202は小ページサイズ領域の使用中リストへの
ポインタが格納されている。1203は大ページサイズ
領域の空きリストへのポインタ、1204は大ページサ
イズ領域の使用中リストへのポインタが格納されてい
る。リストはページ単位に一つのデータ構造を持ってい
る。リストのデータ構造は、次のページへのポインタ1
205、ページ固定ビット1206、ページ番号120
7等が格納される。未使用領域を示すリスト1201、
1203と、使用中の領域を示すリスト1202、12
04のデータ構造は同一である。主記憶領域を新たに確
保する場合は、未使用領域リスト1201、1203か
ら要求ページ分をリストから外し、使用中領域リスト1
202、1204に追加することで実現する。使用中リ
スト1202、1204の中で、ページ固定ビット12
06が立っているページは、OSが剥奪することはな
い。
【0051】図10は、ページ固定処理のフローを示し
ている。ページ固定は、ディスク装置などの2次記憶装
置に対するデータ転送時に、OSによって主記憶領域の
ページが剥奪されることを防ぐ。ステップ801では、
ページ固定を行うべきページをサーチする。ステップ8
02では、主記憶領域の使用中リストのページ固定ビッ
ト506をONにする。この操作を取得したバッファ領
域分行うことで、ページ固定が完了する。
【0052】
【発明の効果】本発明によれば、高速なディスクアレイ
装置のデータ転送速度を向上させるソフトウェア制御が
可能になる。
【図面の簡単な説明】
【図1】本発明によるページ選択処理を実行する計算機
システムの概略構成図。
【図2】仮想記憶領域と主記憶領域の関係を示す図。
【図3】仮想記憶領域と主記憶領域の関係を示す図。
【図4】ユーザプログラムのフローチャート。
【図5】仮想記憶領域管理リストを示す図。
【図6】主記憶領域管理リストへのポインタを示す図。
【図7】ユーザ領域主記憶管理リストを示す図。
【図8】リソース領域の主記憶領域の管理リストを示す
図。
【図9】主記憶管理プログラムのページサイズ選択プロ
グラムのフローチャート。
【図10】主記憶領域のページ固定処理のフローチャー
ト。
【図11】OSが管理する二次記憶装置管理テーブルを
示す図。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】異なるサイズを有する複数のページにより
    構成された主記憶装置と、複数の二次記憶装置とを有
    し、いずれかの二次記憶装置から要求されたデータ転送
    要求に応答して、その2次記憶装置と上記主記憶装置と
    の間のデータ転送に使用するバッファ領域を該主記憶上
    に確保し、確保されたバッファ領域を介して、上記いず
    れかの2次記憶装置と上記主記憶装置との間のデータ転
    送を行う計算機システムにおいて、 上記いずれかの2次記憶装置の転送速度が相対的に大き
    いとき、該主記憶装置を構成する複数のページの内、相
    対的にサイズの大きな空きページを、相対的にサイズの
    小さい空きページより優先して該バッファ領域に使用
    し、 上記いずれかの2次記憶装置の転送速度が相対的に小さ
    いとき、該主記憶装置を構成する複数のページの内、相
    対的にサイズの小さなページを、相対的にサイズの大き
    な空きページより優先して該バッファ領域に使用する主
    記憶ページ選択方法。
  2. 【請求項2】上記いずれかの2次記憶装置の転送速度が
    相対的に大きく、該いずれかの2次記憶装置がバッファ
    領域のサイズが所定値より小さい場合には、該主記憶装
    置を構成する複数のページの内、相対的にサイズの小さ
    空きなページを該バッファ領域に使用し、 上記いずれかの2次記憶装置の転送速度が相対的に大き
    く、該バッファ領域のサイズが所定値より小さい場合に
    は、該主記憶装置を構成する複数のページの内、相対的
    にサイズの小さ空きなページを、相対的にサイズの大き
    な空きページより優先して該バッファ領域に使用し、 上記いずれかの2次記憶装置の転送速度が相対的に小さ
    いときには、該いずれかの2次記憶装置がバッファ領域
    のサイズが所定値以上か否かに依らないで、該主記憶装
    置を構成する複数のページの内、相対的にサイズの小さ
    なページを該バッファ領域に使用する請求項1記載の主
    記憶ページの選択方法。
  3. 【請求項3】上記所定値は、最大ページサイズに等しい
    請求項2記載の主記憶ページ選択方法。
JP7143791A 1995-06-12 1995-06-12 主記憶ページ選択方法 Pending JPH08339341A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7143791A JPH08339341A (ja) 1995-06-12 1995-06-12 主記憶ページ選択方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7143791A JPH08339341A (ja) 1995-06-12 1995-06-12 主記憶ページ選択方法

Publications (1)

Publication Number Publication Date
JPH08339341A true JPH08339341A (ja) 1996-12-24

Family

ID=15347080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7143791A Pending JPH08339341A (ja) 1995-06-12 1995-06-12 主記憶ページ選択方法

Country Status (1)

Country Link
JP (1) JPH08339341A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012164129A (ja) * 2011-02-07 2012-08-30 Canon Inc バッファキャッシュ管理方法、バッファキャッシュ管理装置及びプログラム
JP2013210919A (ja) * 2012-03-30 2013-10-10 Nec Corp レプリケーション装置、レプリケーション方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012164129A (ja) * 2011-02-07 2012-08-30 Canon Inc バッファキャッシュ管理方法、バッファキャッシュ管理装置及びプログラム
JP2013210919A (ja) * 2012-03-30 2013-10-10 Nec Corp レプリケーション装置、レプリケーション方法及びプログラム

Similar Documents

Publication Publication Date Title
JP3431972B2 (ja) 仮想ディスクシステム
US5881311A (en) Data storage subsystem with block based data management
US8190846B2 (en) Data management method in storage pool and virtual volume in DKC
US7213165B2 (en) Host I/O performance and availability of a storage array during rebuild by prioritizing I/O requests
US6341342B1 (en) Method and apparatus for zeroing a transfer buffer memory as a background task
US6122685A (en) System for improving the performance of a disk storage device by reconfiguring a logical volume of data in response to the type of operations being performed
US7882136B2 (en) Foresight data transfer type hierarchical storage system
US6009481A (en) Mass storage system using internal system-level mirroring
US5802345A (en) Computer system with a reduced number of command end interrupts from auxiliary memory unit and method of reducing the number of command end interrupts
US7032070B2 (en) Method for partial data reallocation in a storage system
JP2837341B2 (ja) ディスクアレイ用キャッシュシステム
JPH0458051B2 (ja)
JPS60147855A (ja) 記憶管理装置
JPH0566621B2 (ja)
JPH0578857B2 (ja)
KR20040036788A (ko) 대용량 공유 저장장치를 위한 효율적인 스냅샷 수행방법
US8244955B2 (en) Storage system and its controlling method
JPH08161124A (ja) 計算機システム
JP2004127295A (ja) 仮想記憶システムおよびその動作方法
JPH06332625A (ja) ファイルのデータ多重化方法及びデータ処理システム
JPH0776950B2 (ja) データ処理方法及び装置
JP2008135055A (ja) 計算機システムおよび二次記憶装置
JPH0863394A (ja) 記憶装置システムおよび記憶装置の制御方法
US20050223180A1 (en) Accelerating the execution of I/O operations in a storage system
JPH08339341A (ja) 主記憶ページ選択方法

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees