JPH05233402A - メモリマップドファイルアクセス方式 - Google Patents

メモリマップドファイルアクセス方式

Info

Publication number
JPH05233402A
JPH05233402A JP4035091A JP3509192A JPH05233402A JP H05233402 A JPH05233402 A JP H05233402A JP 4035091 A JP4035091 A JP 4035091A JP 3509192 A JP3509192 A JP 3509192A JP H05233402 A JPH05233402 A JP H05233402A
Authority
JP
Japan
Prior art keywords
file
mapped
memory
address
mapping
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
JP4035091A
Other languages
English (en)
Inventor
Masahiko Yoshimura
政彦 吉村
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP4035091A priority Critical patent/JPH05233402A/ja
Publication of JPH05233402A publication Critical patent/JPH05233402A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】本発明は、マッピングされたファイルに対し、
そのファイルをアクセスするライブラリルーチンを用意
することで、従来のファイルアクセスと同様のインター
フェイスでメモリマップドファイルをアクセスでき、か
つマッピングされたファイルのサイズの拡大を可能とし
たことを特徴とする。 【構成】マッピングされたファイルに対して、そのファ
イルをアクセスするライブラリルーチンを、ファイル内
のアクセス位置をファイル先頭からのオフセットで表わ
すシーク位置テーブル15(15a,15b) と、マッピングさ
れたファイルのアドレス空間上のアドレスを記憶するマ
ッピングテーブル16(16a,16b) とをもつテーブルで構
成し、ファイルアクセスと同様のインターフェイスでメ
モリマップドファイルをアクセスできるようにするとと
もに、マッピングテーブルをチェーン接続することによ
りファイルサイズを拡張を可能にしたことを特徴とす
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は二次記憶装置上のファイ
ルを主記憶装置にマッピングしてアクセスできるメモリ
マップドファイルに於けるメモリマップドファイルアク
セス方式に関する。
【0002】
【従来の技術】メモリマップドファイル技術によりプロ
セスのアドレス空間にマップされたファイルは、メモリ
のアドレスでファイルのデータにアクセスできるように
なる。即ち、メモリマップドファイルは、ファイルの全
てが主記憶上にあるかのように見える。このメモリマッ
プドファイルでは、最初のレコードの先頭バイトがマッ
ピングの開始位置にあり、2番目のレコードの先頭が先
頭レコードの最終バイトのすぐ次にある。つまりメモリ
マッピングの機構により、ファイルは一つの連続したア
ドレス空間と見なされる。
【0003】従って、メモリマップドファイルは、従来
のread/write(リード/ライト)システムコ
ールに見られるようなアクセス方法ではなく、所謂、配
列変数のように、直接、ファイルの内容に対して参照・
更新が可能であり、read/writeシステムコー
ルを使用しないため、システムコールを使用することに
よるオーバーヘッドがなくなり高速にアクセスが可能と
なる。
【0004】図8は、従来のファイルをプロセスのアド
レス空間にマッピングするシステムに於いて、ファイル
をマッピングした際のプロセスのアドレス空間のマップ
図である。
【0005】図8に於いて、磁気ディスク等の二次記憶
装置81に格納されているファイル82aは、プロセス
のアドレス空間83上に於いて領域83aにマッピング
される。
【0006】ここで、上記ファイル82aに加えて、フ
ァイル82bをマッピングする場合、既にファイル82
aがマッピングされている領域83aは使用できないの
で、別の空いている領域の中からファイル82bが納ま
るだけのサイズを持った領域を探してマッピングしなけ
ればならない。
【0007】ファイル82aとファイル82bが、それ
ぞれ図9に示すように、領域83a、領域83bの如く
マッピングされた状態で、ファイル82aのサイズを拡
張する場合は、プロセスのアドレス空間83上に於ける
領域83aも拡大されなければならない。
【0008】しかし、この際、マッピング領域は、領域
83aと領域83bとの間のサイズ分の領域91しか広
げられず、それより大きなサイズ領域を広げることはで
きない。上記領域91の他に十分大きな領域92が存在
しても、その領域92はファイルの連続性が失われるの
で利用できない。即ち、従来のメモリマップドファイル
技術では、通常のファイルのようにファイルサイズを任
意の大きさに拡大することができない。
【0009】
【発明が解決しようとする課題】このように、従来のシ
ステムでは、マッピングされたファイルへのアクセスは
高速であるが、一般的なファイルアクセス方法と異なる
配列変数へのアクセスと同様になるため、過去のプログ
ラムはファイルのアクセス方法を全て書き換えなけれ
ば、メモリマップドファイルが使用できないという問題
があった。
【0010】また、プロセスのアドレス空間にマッピン
グされたメモリマップドファイルのファイルサイズを拡
大することは、ファイルサイズを拡大したときのアドレ
スが既に他のファイルに使用されている場合があるの
で、単純にメモリマップドファイルの後ろに、拡大した
部分をアドレスが連続するようにマッピングすることは
困難であり、従って通常のファイルのようにファイルサ
イズを任意の大きさに拡大することができないという問
題があった。
【0011】本発明は上記実情に鑑みなされたもので、
従来のファイルアクセスと同様のインターフェイスでメ
モリマップドファイルをアクセスでき、かつマッピング
されたメモリマップドファイルのファイルサイズの任意
の拡大を可能とするメモリマップドアクセス方式を提供
することを目的とする。
【0012】
【課題を解決するための手段】上記の目的を達成するた
め、本発明のメモリマップドファイルアクセス方式は、
read/writeシステムコールと同じインターフ
ェイスを持つライブラリルーチンを用意し、そのライブ
ラリルーチンがメモリマップドファイルを使用する。ま
た、ライブラリルーチンが、ファイルのアクセス位置と
マッピングされているアドレスとの関係をテーブルに持
ち管理することにより、一つのファイルが分割されて不
連続なアドレス空間にマッピングされていても、ファイ
ルのアクセス位置よりアドレスが分かり、ライブラリル
ーチンの中でメモリマップドファイルが使用できる。こ
れにより、ファイルサイズを増大した場合のファイルの
マッピングされたアドレス空間が不連続になっても、メ
モリマップドファイルのアクセスが可能となることを特
徴とする。
【0013】
【作用】本発明では、マッピングされたファイルに対し
て、そのファイルをアクセスするライブラリルーチンを
用意することにより、従来のシステムコールと同じファ
イルアクセスインターフェイスを保ち、過去のプログラ
ム資産を無駄にせず高速なメモリマップドファイルの利
用が可能となる。更に、上記ライブラリ内でマップされ
ているアドレス空間をテーブルに保存して、元のファイ
ルをマッピングしたアドレス空間の部分と、当該ファイ
ルの拡大部分のアドレスを互いに上記テーブル上で管理
することにより、ファイルサイズの拡大時に、拡大した
部分を元のファイルをマッピングしたアドレス空間とは
不連続な部分にマッピングしてもファイル位置とマッピ
ングされているアドレスとの対応が上記テーブル上でと
れることから、ファイルサイズの任意の拡大が可能とな
る。
【0014】
【実施例】以下図面を参照して本発明の一実施例を説明
する。図1は本発明によるメモリマップドファイルアク
セス方式の一実施例の構成を示すブロック図である。
【0015】図1に於いて、11は二次記憶装置であ
り、12a,12bはそれぞれ二次記憶装置11上に置
かれたファイルである。13はプロセスのアドレス空間
であり、14a,14bはそれぞれファイル12a,1
2bがマッピングされているアドレス空間上のマッピン
グ区間である。
【0016】15a,15bはそれぞれファイル12
a,12b内のどの部分をアクセスするのかの位置をフ
ァイルの先頭からのオフセットで示すシーク位置テーブ
ルである。
【0017】16a,16bはそれぞれファイル12
a,12bがマッピングされているプロセスのアドレス
空間13上のマッピング区間14a,14bの先頭及び
最終アドレスと、次のマッピング区間がある場合の次の
マッピング区間に対するマッピングテーブルへのチェー
ンのためのポインタとを保持するマッピングテーブルで
ある。
【0018】上記図1の構成に於いて、図2に符号21
aで示すように、ファイルのサイズを大きくするような
アクセスが起きた場合、ファイル12aに対しては通常
のシステムコールで増分21aを書き込む。
【0019】次に上記ファイル12aの増分21aに対
して、新たに任意の空いているアドレス空間13上にマ
ッピングを行ない、ここではマッピング区間14a,1
4bの間に領域が確保できないので、マッピング区分2
4aにマッピングする。次に上記マッピング区分24a
に対するマッピングテーブル27aを対応するマッピン
グテーブル16aのチェーンの最後に追加する。
【0020】ここで、上記図1,図2に示す実施例の構
成に於いて、図3乃至図7に示すフローチャートを参照
しながら、ユーザに対してメモリマップドファイルを意
識させないライブラリルーチンの構成及び動作について
説明する。
【0021】ユーザプログラムがシステムコールにより
ファイルをアクセスする場合のファイルのアクセスの種
類には、ファイルのオープン、書き込み、読み込み、位
置決め、クローズ等がある。図3はメモリマップドファ
イルに対するオープン(OPEN)のライブラリルーチ
ン処理の流れを示すフローチャートである。
【0022】オープンのライブラリルーチンでは、先ず
ファイルのアドレス空間へのマッピングを行なう(図3
ステップS31)。このとき、マッピングしたアドレス
をマッピングテーブル16aに登録する(図3ステップ
S32)。
【0023】ファイル12aをオープンした場合、ファ
イル12aはアドレス空間13上にマッピング区間14
aとしてマッピングされるので、このときのマッピング
テーブル16aの内容は、図1のように、先頭アドレス
がマッピング区間14aの開始アドレス、最終アドレス
がマッピング区間14aの最後のアドレス、次チェーン
ポインタには、終端を示す記号が入る(図3ステップS
32)。又、シーク位置テーブル15aには、ユーザの
指定によりファイルの先頭オフセットまたは最終オフセ
ットがシーク位置として入る(図3ステップS32)。
図4は、メモリマップドファイルに対する書き込み(W
RITE)のライブラリルーチンの処理の流れを示すフ
ローチャートである。
【0024】この図4に示す書き込みのライブラリルー
チンでは、先ず、シーク位置テーブル上のシーク位置よ
り、プロセスのアドレス空間上のアドレスを求める(図
4ステップS41)。次に、そのアドレスから書き込む
よう指定された長さが一つのマッピング区分内に納まる
か否かを調べる(図4ステップS42)。
【0025】ここで、書き込み指定された長さが一つの
マッピング区分内に納まっていれば、指定されたバッフ
ァアドレスから上記図4のステップS41で求めたアド
レスへ指定の長さだけコピーする(図4ステップS4
3)。そして、シーク位置テーブル上のシーク位置を書
き込んだサイズ分だけ増加する(図4ステップS4
9)。
【0026】又、書き込み指定された長さが一つのマッ
ピング区分内に納まらなければ(図4ステップS4
2)、その区分を越える部分はアドレス空間にマッピン
グされていないので、そのまま全部コピーすることはで
きず、以下に述べる図4のステップS44からステップ
S48の手続きを行なう。ここでは、先ず、上記ステッ
プS41で求めたアドレスから区分の終りまで、指定さ
れたバッファアドレスからコピーする(図4ステップS
44)。次に、コピーし残した部分を、ファイルに通常
のシステムコールを用意して書き込む(図4ステップS
45)。このファイルの書き込みによって増加した部分
のみを新たにプロセスのアドレス空間にマッピングする
(図4ステップS46)。図2に於いては、ファイル1
2aの増分21aに対して、アドレス空間13上のマッ
ピング区分24aにマッピングされる。
【0027】更に、この際は、新たにマッピングされた
区分に対してマッピングテーブルを作り、その区分の先
頭アドレス、最終アドレスを設定し(図4ステップS4
7)、マッピングテーブルのチェーンにつないで(図4
ステップS48)、その後にシーク位置テーブル上のシ
ーク位置を書き込んだサイズ分だけ増加する(図4ステ
ップS49)。
【0028】図2に於いては、マッピング区分24aに
対するマッピングテーブル27aが新たに作成され、そ
の作成されたマッピングテーブル27aが、対応する
(基の)マッピングテーブル16aのチェーンの最後に
追加される。図5は、メモリマップドファイルに対する
読み込み(READ)のライブラリルーチンの処理の流
れを示すフローチャートである。読み込みのライブラリ
ルーチンでは、先ずシーク位置テーブル上のシーク位置
よりプロセスのアドレス空間上のアドレスを求める(図
5ステップS51)。次に、そのアドレスから読み込む
よう指定された長さが、一つのマッピング区分内に納ま
っているか否かを調べる(図5ステップS52)。
【0029】ここで、読み込み指定された長さが、一つ
のマッピング区分内に納まっていれば、先ずそのアドレ
スから区分の最後までを指定バッファへコピーする(図
5ステップS53)。このとき、次に読み込む時のため
に、コピー先のバッファアドレスをコピーした長さの分
だけ増加させておく。
【0030】次にマッピングテーブルの次テーブルへの
ポインタを調べ、次の区分のマッピングテーブルを探
す。更に読み込むべき長さは、上記ステップS53の処
理で既にコピーした分を減少させて(図5ステップS5
4)、再度、上記ステップS52の判断処理に戻る。
【0031】上記ステップS52の判断処理で、コピー
すべき長さが区分内に納まっていれば、上記ステップS
51で求めたアドレス又は区分の先頭アドレスから指定
された長さだけ、指定バッファのアドレスへコピーして
(図5ステップS55)、その後にシーク位置を読み込
んだ長さ分だけ増加する(図5ステップS56)。図6
はメモリマップドファイルの位置決めの処理の流れを示
すフローチャートである。この位置決めのライブラリル
ーチンでは、これからアクセスする位置、即ちシーク位
置の設定を行なうだけである(図6ステップS61)。
図7はメモリマップドファイルに対するファイルのクロ
ーズ(CLOSE)のライブラリルーチンの処理の流れ
を示すフローチャートである。クローズのライブラリル
ーチンでは、先ず、それまで使用していたマッピングテ
ーブルを使用前の状態にクリアする(図7ステップS7
1)。
【0032】次に、マッピングされていたファイルを二
次記憶装置11上のファイルへ書き戻すため、マッピン
グの解除(アンマップ)を行なう(図7ステップS7
2)。その後に使用していたファイルを通常のシステム
コールによりクローズする(図7ステップS73)。
【0033】上記したように、マッピングされたファイ
ルに対して、そのファイルをアクセスするライブラリル
ーチンを用意することにより、従来のシステムコールと
同じファイルアクセスインターフェイスを保ち、過去の
プログラム資産を無駄にせず高速なメモリマップドファ
イルの利用が可能となる。更に、上記ライブラリ内でマ
ップされているアドレス空間をテーブル(マッピングテ
ーブル)に保存して、元のファイルをマッピングしたア
ドレス空間の部分(図2の符号14a参照)と、当該フ
ァイルの拡大部分のアドレス(図2の符号24a参照)
を互いに上記テーブル(図2の符号16a,27a参
照)上で管理することにより、ファイルサイズの拡大時
(図2の符号21a参照)に、拡大した部分を元のファ
イルをマッピングしたアドレス空間(図2の符号14a
参照)とは不連続な部分(図2の符号24a参照)にマ
ッピングしてもファイル位置とマッピングされているア
ドレスとの対応が上記テーブル上でとれることから、フ
ァイルサイズの任意の拡大が可能となる。
【0034】
【発明の効果】以上説明したように本発明のメモリマッ
プドファイルアクセス方式によれば、マッピングされた
ファイルに対してそれをアクセスするライブラリルーチ
ンを用意することにより、従来のシステムコールと同じ
ファイルアクセスインターフェイスを保って過去のプロ
グラム資産を無駄にせず高速なメモリマップドファイル
の利用が可能となり、かつ、ライブラリ内でマップされ
ているアドレス空間をテーブルに保存して、ファイルサ
イズの拡大時に、拡大した部分を元のファイルをマッピ
ングしたアドレス空間と不連続な部分にマッピングして
も、ファイル位置とマッピングされているアドレスとの
対応が上記テーブル上で管理される構成としたことによ
り、ファイルサイズの任意の増大が容易に可能となる。
【図面の簡単な説明】
【図1】本発明の実施例の構成を示すブロック図。
【図2】上記実施例に於けるファイルサイズ拡大時の構
成を示すブロック図。
【図3】上記実施例に於けるメモリマップドファイルの
オープンの処理手順を示すフローチャート。
【図4】上記実施例に於けるメモリマップドファイルの
読み込みの処理手順を示すフローチャート。
【図5】上記実施例に於けるメモリマップドファイルの
書き込みの処理手順を示すフローチャート。
【図6】上記実施例に於けるメモリマップドファイルの
位置決めの処理手順を示すフローチャート。
【図7】上記実施例に於けるメモリマップドファイルの
クローズの処理手順を示すフローチャート。
【図8】従来のメモリマップドファイル技術によるファ
イルマッピングの構成を説明するためのブロック図。
【図9】従来のメモリマップドファイル技術によるファ
イルマッピングの構成を説明するためのブロック図。
【符号の説明】
11…二次記憶装置、12a,12b…ファイル、13
…プロセスのアドレス空間、14a,14b…マッピン
グ区間、15a,15b…シーク位置テーブル、16
a,16b…マッピングテーブル、21a…ファイルの
増分、24a…増分21aのマッピング区分、27a…
マッピング区分24aに対するマッピングテーブル。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ファイルを保持する二次記憶装置と、 プロセスのコード及びデータを格納する主記憶装置と、 上記二次記憶装置上のファイルを上記主記憶装置のプロ
    セスのアドレス空間にマップするマッピング手段を有す
    るオペレーティングシステムと、 ファイル内のアクセス位置をファイル先頭からのオフセ
    ットで表わすシーク位置を記憶するシーク位置テーブル
    と、 マッピングされたファイルのアドレス空間上のアドレス
    を記憶するマッピングテーブルとを具備し、 上記プロセスのアドレス空間にマップされたメモリマッ
    プドファイルをアクセスし、上記マッピングテーブルを
    参照することによりファイルサイズの変更を行なうこと
    を特徴とするメモリマップドファイルアクセス方式。
JP4035091A 1992-02-21 1992-02-21 メモリマップドファイルアクセス方式 Pending JPH05233402A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4035091A JPH05233402A (ja) 1992-02-21 1992-02-21 メモリマップドファイルアクセス方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4035091A JPH05233402A (ja) 1992-02-21 1992-02-21 メモリマップドファイルアクセス方式

Publications (1)

Publication Number Publication Date
JPH05233402A true JPH05233402A (ja) 1993-09-10

Family

ID=12432290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4035091A Pending JPH05233402A (ja) 1992-02-21 1992-02-21 メモリマップドファイルアクセス方式

Country Status (1)

Country Link
JP (1) JPH05233402A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061253A (ja) * 2008-09-02 2010-03-18 Yahoo Japan Corp メモリ管理サーバ、方法及びプログラム
JP2014517941A (ja) * 2011-01-21 2014-07-24 トムソン ライセンシング 下位互換性アグリゲートファイルシステムの動作性能の向上方法、及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061253A (ja) * 2008-09-02 2010-03-18 Yahoo Japan Corp メモリ管理サーバ、方法及びプログラム
JP2014517941A (ja) * 2011-01-21 2014-07-24 トムソン ライセンシング 下位互換性アグリゲートファイルシステムの動作性能の向上方法、及び装置

Similar Documents

Publication Publication Date Title
US5432928A (en) Updating objects stored in a permanent container while preserving logical contiguity
US20020166022A1 (en) Access control method, access control apparatus, and computer-readable memory storing access control program
GB2204161A (en) Method of rapidly opening disk files identified by path names
JP2001067786A (ja) 記録再生装置
US5584015A (en) Buffer memory management method, recording medium, and computer system incorporating same
US5410694A (en) File access processing system of a computer enabling high-speed sequential access for a stream file
JP2539347B2 (ja) フアイル管理方法
JPH05233402A (ja) メモリマップドファイルアクセス方式
JP3882461B2 (ja) 記憶装置システム及びそのバックアップ取得方法
JPH0895835A (ja) ファイルスペースの予約方法
JPH08202595A (ja) ファイルシステム
JP2988048B2 (ja) 辞書情報常駐アクセス装置
JPH086838A (ja) 分散システム
JP3471838B2 (ja) 循環順編成ファイルの管理方法
JPS59136860A (ja) デイスク制御装置
JPH07253894A (ja) 共有記憶装置
JP2912657B2 (ja) ファイルアクセス処理装置
JPH06332769A (ja) ファイル管理システム
JPH06149647A (ja) マルチメディアファイル管理方式
JP2735400B2 (ja) 非同期入出力制御方式
JPH04156626A (ja) Vtocのファイルエントリ作成方式
JPH0635770A (ja) ファイル管理方式
JPH05342152A (ja) バッファ制御方式
JP2000172542A (ja) ファイルアクセス方式
JPH03109653A (ja) ボリューム内容管理テーブル初期化方式