JPH07104808B2 - 設置可能なファイルシステムにおいてダイナミックボリュームトラッキングを行う方法及び装置 - Google Patents
設置可能なファイルシステムにおいてダイナミックボリュームトラッキングを行う方法及び装置Info
- Publication number
- JPH07104808B2 JPH07104808B2 JP2227905A JP22790590A JPH07104808B2 JP H07104808 B2 JPH07104808 B2 JP H07104808B2 JP 2227905 A JP2227905 A JP 2227905A JP 22790590 A JP22790590 A JP 22790590A JP H07104808 B2 JPH07104808 B2 JP H07104808B2
- Authority
- JP
- Japan
- Prior art keywords
- file system
- storage medium
- file
- system driver
- volume
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
- Information Transfer Between Computers (AREA)
Description
シュの4枚のシートからなる付録I(Appendix I)が含
まれている。
詳しくは、コンピュータシステムを備えた装置間の通信
を行う方法及び手段に関する。
ムアクセスメモリ、リードオンリメモリ、データ入力装
置、データ出力装置、フロッピディスク及び固定ディス
ク又はハードディスク等の種々の不揮発性データ記憶装
置等の種々の周辺装置を備えている。一般に、それぞれ
の装置間の通信は、コンピュータオペレーティングシス
テムにより制御される。よく知られた1つのコンピュー
タオペレーティングシステムとして、マイクロソフト社
(Microsoft Corporation)から市販されているMS−DOS
オペレーティングシステムがある。
ルシステムが、周辺装置に記憶されたファイルの編成を
記載しかつ規定する。コンピュータシステム及びそれぞ
れの周辺装置の両者により認識されたフォーマット中の
データをコンピュータシステムが読取り又は書込みでき
るようにするには、データは、このファイルシステムに
従って編成されなくてはならない。例えば、MS−DOSオ
ペレーティングシステムに使用される従来のフロッピデ
ィスクを用いた周辺装置においては、フロッピディスク
のデータは、FAT(ファイル割当てテーブル(file allo
cation table)を用いていることから、このように命名
されている)ファイルシステムとして知られているファ
イルシステムに従って構成されている。FATファイルシ
ステムは、今日世界中で最も広範囲に使用されているフ
ァイルシステムの1つである。テープ記憶装置のような
周辺装置の他の形式のデータ記憶装置には、他のファイ
ルシステムを接続することもできる。
カーネルとデバイス従属ドライバ(device dependant d
rivers)との間の通信を容易に行うことができる。ま
た、ファイルシステムは、オペレーティングシステムの
カーネルにより発せられた読取り及び書込みコマンド
(並びに、ファイルを開閉する機能)を、デバイスドラ
イバが認識できるフォームに変換することに応答するこ
とができる。
オペレーティングシステムは、コンピュータシステムに
用いらていれる特定の周辺装置に使用できる適合ファイ
ルシステムを構成しなければならない。一旦ファイルシ
ステムが構成されたならば、このファイルシステムは、
オペレーティングシステムが変更されない限りそのまま
であり、即ち変更されない。このため、一般に、広範囲
のプログラム作成努力と多大の消費時間とが要求され
る。また、コンピュータオペレーティングシステムにつ
いての広範囲の知識が必要であり、オペレーティングシ
ステムの詳細をアクセスできない人は、ファイルシステ
ムを容易に変更することができない。
ム(foreign file systems)のファイルを収容している
ディスクメディアを、固有システム(native system)
に使用することはできない。例えば、多数の製造業者
(各製造業者は別々のファイルシステム構成に準拠して
いる)により多くのコンピュータシステムが多年に亘っ
て開発されている。現在のスタティックファイルシステ
ムの技術では、一般に、或る1つのシステムからのディ
スクメディアを別の形式のシステムで機能させることは
できない。コンピュータは、一層ポピュラーなものとな
っているため、あらゆる形式のコンピュータシステムの
間でファイルを共用できるようにすることの重要性が増
大している。事実上知られているあらゆるコンピュータ
システムからのディスクメディアを、単一のオペレーテ
ィング環境において自動的に認識しかつ読取ることがで
きるシステムは未だ存在しない。また、コンピュータオ
ペレーティングシステムのカーネルを変える必要なく、
有るシステムに付加(又は変更)できるファイルシステ
ムが未だ存在していない。
を自動的に識別しかつそのメディアを認識するファイル
システムを自動的かつダイナミックにマウントできる方
法及び手段に関する。本発明の好ましい実施例によれ
ば、省略時ファイルシステム(default file system)
を備えていて、リンクされたシーケンスに従ってファイ
ルシステムを編成するように構成されたコンピュータシ
ステムに、1つ以上のデータ記憶装置及び複数のファイ
ルシステムドライバを設けることができる。このコンピ
ュータシステムは、該コンピュータシステムの全ての周
辺装置を連続的にモニタリングしていて、周辺記憶装置
におけるメディアのあらゆる変化を検出するようになっ
ている。データ記憶装置のメディアが変更されるあらゆ
る場合、又は最初にコンピュータシステムがデータ記憶
装置にアクセスする場合には、ファイルシステムドライ
バのリストにおいて識別された最初のファイルシステム
ドライバがローディングされ、ローディングされたファ
イルシステムドライバによりボリューム識別子(volume
identifier)の位置が特定化されているメディアから
ボリューム識別子が読み取られる。メディアから読み取
られたこのボリューム識別子は、次に、ファイルシステ
ムドライバに関連している識別子と比較され、この識別
子とボリューム識別子とが一致するときにはファイルシ
ステムドライバがマウントされる。両識別子が一致しな
い場合には、ファイルシステムドライバのリンクされた
リストにおいて識別された次のファイルシステムドライ
バがローディングされる。
リンクされたリストにおける各ファイルシステムドライ
バが試験されるまで、又は一致が見出されるまで繰り返
される。一致が見出されない場合には、省略時ファイル
システムがマウントされる。
数のメディア形式の全てを識別できるようにし、かつ適
正なファイルシステムをマウントしてそのメディアに使
用できるようにする方法及び手段を提供することにあ
る。
ムを自動的にマッピングする方法及び手段を提供するこ
とにある。
しに、自動的に不確実メディアに適用できるコンピュー
タシステムを提供することにある。
ネルを変更する必要なしに、ファイルシステムを変更で
き又はコンピュータオペレーティングシステムに付加で
きるようにコンピュータオペレーティングシステムを改
善することにある。
る従属性が適当なファイルシステム内に密閉(encapsul
ated)されている不確実なメディアにファイルシステム
を自動的にマッピングできる方法及び手段を提供するこ
とにある。
ステムをコンピュータシステムに設けることができるよ
うにする方法及び手段を提供することにある。
して以下に述べる本発明の詳細な説明により明らかにな
るであろう。
ータシステム100が示されている。このコンピュータシ
ステム100は、中央処理装置即ちマイクロプロセッサ10
2、ランダムアクセスメモリ104、リードオンリメモリ10
6、マウス108及びキーボード110のような入力装置、デ
ィスプレイ112及びプリンタ114のような出力装置、フロ
ッピディスクドライブ116、ハードディスクドライブ12
0、CD−ROMドライブ122及びテープドライブ124等からな
る種々の不揮発性記憶装置を備えている。また、このコ
ンピュータシステム100は、ネットワーク126と通信でき
るようになっている。不揮発性記憶とは、装置の電源を
遮断してもデータが消去されないことをいう。
は、各周辺装置が単一のメディア形ファイルシステムド
ライバのみと互換性をもつファイルシステムドライバに
よりスタティックに構成されている。指定のファイルシ
ステムドライブとの互換性のないドライブにメディアが
供給されると、メディアは首尾良くアクセスすることが
できない。以下に説明するように、本発明は、周辺装置
とは独立してかつメディアに関するデータのフォーマッ
ト又は位置についての条件を賦課することなくして、関
連するファイルシステムにメディアを自動的にマッピン
グする方法及び手段を提供するものである。例えば、フ
ロッピドライブユニット(フロッピディスクドライブ)
116は、多数のファイルシステムに従ってフォーマット
化されたボリューム(例えば、FATファイルシステムに
従ってフォーマット化されたボリューム128、よく知ら
れたHigh Sierraファイルシステムに従ってフォーマッ
ト化されたボリューム132、及びもう1つのファイルシ
ステムに従ってフォーマット化されたボリューム130)
に使用することができる。同様に、ハードディスク(ハ
ードディスクドライブ)120の種々の区分(パーティシ
ョン)は、ボリューム134、136、138として表した多数
のファイルシステムに従ってフォーマット化することが
できる。同様に、CD−ROMドライブ122及びテープシステ
ム(テープドライブ)124は、ボリューム140、142(こ
れらは、それぞれのファイルシステムに従ってフォーマ
ット化されている)に使用することができる。また、ネ
ットワーク126は、サーバ(該サーバは、それら自体の
ファイルシステムに従って作動する)を備えた任意の数
のネットワークに接続することができる。
は、良く知られた多数のオペレーティングシステムのう
ちの任意のオペレーティングシステムにより調整するこ
とができる。しかしながら、本発明は特に、マイクロソ
フト社により開発されたOS/2オペレーティングシステム
に使用するのに適している。本発明の操作環境の構成を
第1B図に示す。一般に、アプリケーション152は、カー
ネル154により処理されるファイルシステムのリクエス
トを発生する。次いで、カーネル154は、このリクエス
トを適当なファイルシステムドライバ(FSD)156〜170
に導く、任意のファイルシステムドライバを、多数のハ
ードウェア装置と協働させることができる。例えば、ボ
リューム172、174についてファイルシステム作動をそれ
ぞれ行う場合には、High Sierraファイルシステム156
は、CD−ROMプレーヤ(CD−ROMドライブ)122及びディ
スクドライブ116に使用することができる。同様に、FAT
ファイルシステム160及びHPFSファイルシステム162の両
者は、ボリューム176、178(これらの各々は、ハードデ
ィスク120にある)についてのファイルシステム作動を
行うのに使用することができる。また、ボリューム180
についてファイルシステム作動を行う場合には、ディス
クドライブ116にファイルシステムドライバを使用する
ことができる。従って、本発明によれば、ファイルシス
テムの形式及びフォーマットの如何に係わらず、適当な
ファイルシステムに不確実メディアを自動的にかつダイ
ナミックにマッピングする方法及び手段が提供される。
ステムのファイルシステム構成を示すものである。MS−
DOSオペレーティングシステム200においては、オペレー
ティングシステムのカーネル204内にFATファイルシステ
ム202が埋設されている。このFATファイルシステム202
はオペレーティングシステムのカーネル204内に一体化
されているため、変更することは困難である。また、付
加的なファイルシステムが必要な場合には、オペレーテ
ィングシステムのカーネル204を書換えてそれらのファ
イルシステムに適合できるようにしなければならない。
問題点を解決することができる。本発明のコンピュータ
システム100においても、OS/2カーネル252内には、FAT
ファイルシステム202が埋設されている。しかしなが
ら、本発明によれば、オペレーティングシステムのカー
ネル252に対して外部装置であるFATファイルシステムド
ライバ254、256、258をダイナミックに取付ける方法及
び手段が提供される。図面には、設置可能な3つのファ
イルシステムドライバを備えたシステム100が示されて
いるが、実際には、本発明は、ファイルシステムドライ
バの数に制限されることはない。
(file system driver,「FSD」)は、多くの点でデバイ
スドライバに類似している。FSDは、ダイナミックリン
クライブラリ(dynamic−link library、「DLL」、一般
には、SYS当はIFSエクステンションを備えている)のよ
うに構成されたファイルのディスク上に存在し、CONFI
G.SYSファイルにおけるIFS=ステートメント(statemen
ts)によるシステムの初期化中にローディングされる。
理され、また、デバイスドライバについてのDEVICE=文
(statements)の順番に対して敏感である。これによ
り、ユーザが、非標準デバイス用のデバイスドライバを
ローディングし、該デバイスのボリュームからファイル
システムドライバをローディングすること等が可能にな
る。一旦FSDが設置されかつ初期化されると、カーネル
は、ファイルの開放、読取り、書込み、シーク(seek
s)、閉鎖等についての論理的リクエスト(logical req
uest)の言語で、FSDと通信する。FSDは、ボリュームそ
れ自体に見出される制御構成及びテーブルを用いて、こ
れらのリクエストをファイルシステムヘルパ(File Sys
tem Helpers、FsHlps」)と呼ばれる特別なカーネルエ
ントリ点を呼び出すことができるセクタ読取り及び書込
み(sector reads and writes)用のリクエストに変換
する。カーネルは、セクタI/Oに対するデマンド(deman
ds)を適当なデバイスドライバに渡してその結果をFSD
に戻す。
レーティングシステムにより用いられる手順は、ダイナ
ミックボリュームマウンティング(dynamic volume mou
nting)と呼ばれ、次のように作動する。ボリュームが
最初にアクセスされるとき、或いは、直接アクセスにつ
いてボリュームがロックされ次いでアンロックされた
(例えばFORMATオペレーションにより)後に、オペレー
ティングシステムのカーネルは、FSDがこの情報を識別
するまで順次、ボリュームからFSDsの各々へ識別情報を
与える。FSDがボリュームをクレームすると、ボリュー
ムがマウントされ、ボリュームに対する全ての連続ファ
イルI/Oリクエストが、ボリュームをクレームしたFSDに
導かれる。
る。例えば、不確実メディアがコンピュータシステムに
与えられる場合に、コンピュータシステムは、このメデ
ィアを認識するファイルシステムドライバを位置付ける
べく利用可能なファイルシステムドライバを走査して、
これにより、メディアへのファイルシステムドライバの
自動マッピングを提供する。更に、オペレーティングシ
ステムのカーネルを変更する必要なしで、ファイルシス
テムドライバが更新される。更に、新しい形式の周辺装
置が開発されたときに、既存システムソフトウェアを乱
すことなく、適当なファイルシステムドライバがオペレ
ーティングシステムに付加され得る。
第3図に示してある。コンピュータシステム100は、ア
プリケーションプログラム302とディスク装置304のよう
なデータ記憶装置との間の通信を行うことができるオペ
レーティングシステムのカーネル252を有している。こ
のコンピュータシステム100は、ファイルシステムドラ
イバ254〜258に関連して作動するデバイスドライバ306
を有している。図面には単一の周辺装置304を備えたコ
ンピュータシステム100が示されているが、本発明は、
任意の数の論理的又は物理的周辺装置と共に使用できる
ように構成されている。
の機能についてのエントリ点を呼び出すことにより、オ
ペレーティングシステムのカーネル252に論理的ファイ
ルリクエストを発行する。これらの機能には、ファイル
を開放すること(DosOpen)、ファイルを読取ること(D
osRead)、ファイルに書込むこと(Doswrite)等のリク
エストを含めることができる。オペレーティングシステ
ムのカーネル252は、これらのリクエストを、ファイル
を保持(ホールディング)する特定のボリュームについ
ての適当なファイルシステムドライバ254〜258に渡す。
次に、適当な設置可能なファイルシステムドライバが、
論理的ファイルリクエストを、指示されたメディアの論
理的セクタの読取り又は書込みのためのリクエストに変
換して、これらのリクエストを適当なデバイスドライバ
306に渡すべくオペレーティングシステムのカーネルの
ファイルシステムヘルパ308を呼出す。ファイルシステ
ムヘルパ(Fsh−lps)308については、以下により詳細
に説明する。
ーティングシステムのカーネルからの論理的セクタリク
エストを、特定の物理的ユニット(メディアのシリン
ダ、ヘッド及びセクタ)についてのリクエストに変形し
て、ディスクメディアとランダムアクセスメモリ310と
の間でデータを転送すべくディスク装置にコマンドを発
行する。
グすることについて以下に詳細に説明する。MS−DOS環
境においては、フロッピディスクはボリュームと称され
る。固定ディスク(又はハードディスク)は、多数のボ
リュームに区分され得る。この用語(terminology)
が、本発明においても適用される。簡単に云えば、コン
ピュータシステムが最初にブート(boot)されるとき、
ボリュームが最初にアクセスされるとき、又はコンピュ
ータシステムが、ディスク装置304内に不確実メディア
が存在することを決定するときにはいつでも、コンピュ
ータシステムは、ファイルシステムドライバのリンクさ
れたリストにおける最初のファイルシステムドライバを
試験(検査)する。もしファイルシステムドライバがデ
ィスク装置にロードされたボリュームを認識したならば
ファイルシステムドライバはマウント(装填)される。
そうでない場合には、コンピュータシステムは、メディ
アを認識するファイルシステムドライバが位置付けされ
るまで、利用できるファイルシステムドライバを連続的
にポール(ポーリング)する。もし関心のあるメディア
を認識する設置可能なファイルシステムドライバが見出
されない場合には、省略時ファイルシステムドライバが
マウントされる。本発明の好ましい実施例においては、
省略時ファイルシステムは、上記のFATファイルシステ
ムである。
できる。ディスク装置には機械的なラッチ機構が設けら
れており、該ラッチ機構は、ディスクがディスク装置か
ら取り出されるとき又はディスク装置に装填されるとき
に作動する。一般にラッチ機構は、ドライブの次の作動
が、ドアが開放されたことを示すように機能する。デバ
イスドライバがこの表示(指示)を受け取ると、エラー
不確実メディア(ERROR_UNCERTAIN_MEDIA)がオペレー
ティングシステムに戻される。機械的なラッチ機構がな
いシステムにおいては、予め決められた時間間隔よりも
少ない時間間隔内にメディアを変更できないと考えられ
る。本発明の好ましい実施例においては、この(時間)
間隔は2秒であると考えられる。従って、予め決められ
た(時間)間隔以上について特定のボリュームがアクセ
スされない場合には、このメディアは不確実であると推
定される。
トのダイアグラムである。FATファイルシステムは、MS
−DOSオペレーティングシステムの初期から該MS−DOSオ
ペレーティングシステムに使用されている。FATファイ
ルシステムについての詳細な説明は、Duncan著、「アド
バンスMS DOSプログラミング(“Advance MS DOS Progr
amming")」(Microsoft Press社刊、1986、1988)に記
載されている。次に、FATファイルシステムの概略を説
明する。FATファイルシステムは、ファイル割当てテー
ブル(File Allocation Table)を中心題目としてい
る。各論理的ボリュームは、それ自体のFATと対応付け
られており、2つの重要な機能を供する。即ち、各論理
的ボリュームは、割当てユニット(allocation units)
のリンクされたリストの形態でボリューム上の各ファイ
ルについての割当て情報(allocation information)を
包含しており、そして各論理的ボリュームは、どの割当
てユニットには、生成又は拡大されているファイルへの
割当て(assignment)がないかということを示す。
ーマット化)されると、ブートセクタ(boot sector)
は、セクタゼロに書き込まれる。これは、1つまたはそ
れ以上のファイル割当てテーブルによって追尾られる。
ファイル割当てテーブルは、ルートディレクトリ(root
directory)によって追尾される。このルートディレ
クトリは、ボリュームファイルによって追尾される。ブ
ートセクタは、ブートパラメータブロック又はBPBと呼
ばれる、或る領域におけるボリュームに関する種々の記
述情報(descriptive information)、ドライブの数及
びボリュームI.D.のような情報、及びブートストラップ
ルーチン(bootstrap routine)を包含する。
クラスタ(これらのクラスタは、セクタを2乗したもの
である)に直接相当(対応)するフィールド(欄)に分
割される。一般に、これらのフィールドは、16ビットの
幅を有している。FATの最初の2つのフィールドは、保
留されている。最初の保留されたFATエンリーは、BPBで
も見出されるメディア記述バイト(media descriptor b
yte)のコピーを含む。リザーブされた残余のフィール
ドはOFFHを含む。残余のFATエントリ(または記入項
目)(FAT entries)には、それらの対応するディスク
クラスタ(corresponding disk clusters)の使用が記
述されている。ディレクトリの各ファイルのエントリ
(記入項目)は、そのファイルに割り当てられる最初の
クラスタの数を含み、それはFATへのエントリ点として
使用される。エントリ点から、各FATスロット(FAT slo
t)は、最初クラスタマークに出合うまで、ファイル内
の次のクラスタの番号を含む。また、FATファイルシス
テムは、読取りエラー等によるFATのセクタへのアクセ
スが失敗した場合に用いることができる最初のファイル
割当てテーブルの複製を維持するというオプションを提
供する。
が続く。このルートディレクトリは、ファイル、他のデ
ィレクトリ、及びオプションとしてのボリュームラベル
を記述する32バイトのエントリ(記入項目)を含む。
タのプールとして見ることができるファイル領域として
知られており、各ファイル領域は1つ以上の論理的セク
タを含んでいる。各クラスタは、その現在の使用を記述
するFATにおいて対応しているエントリを有する。ここ
で、現在の使用とは、利用可能なこと、リザーブされて
いること、ファイルに割り当てられていること、又は使
用できないことである。
性能を提供する。しかしながら、ボリュームのサイズが
1Mbを超えると、FATファイルシステムの性能は急激に低
下する。このことは、容易に入手可能なハードディスク
のサイズが急激に増大しているため、ますます重要な問
題となっている。
ダムアクセスメモリ内に保持される程充分に小さく、従
って、ファイルのいずれの部分へも非常に高速なランダ
ムアクセスを許す。しかしながら、ハードディスク又は
固定ディスクに適用した場合には、FATはあまりにも大
きいのでメモリに保持できなくなり、かつ、ばらばらに
メモリ内にページ付けしなければならない。このため、
多くの余分なディスクヘッドの動きが必要になり、コン
ピュータシステムのスループットを低下する。また、デ
ィスクの空きスペース(free space)についての情報
が、FATの多数のセクタにわたって分散されるため、連
続的にファイルスペースを割り当てることは非実用的で
あり、ファイルが細分化され、更に、コンピュータシス
テムのスループットを低下する。また、ハードディスク
上での相対的に大きなクラスタの使用は、多くの無駄な
スペースを生ずる。
の場合のディスクフォーマットを示す一連のダイアグラ
ムである。このファイルシステムは、高性能ファイルシ
ステム(High performance file system、HPFS)と呼ば
れている。本発明の高性能ファイルシステムは、FATフ
ァイルシステムに伴う上記問題を解消でき、かつあらゆ
る形式のディスクメディアに優れた性能を提供する。第
5A図に示すように、HPFSボリュームは、予め定められた
FATパーティション形の側面に沿って固定ディスク上に
設けることができる。HPFSボリュームは、512バイトの
セクタサイズを用いており、2199Gb(232のセクタ)の
最大サイズを有している。HPFSは固定ディスクに使用す
ることを主として設計されているが、実際上、あらゆる
形式のディスクメディアとの互換性を有している。
ることを要求される。ボリューム(8Kb)のセクタ0〜1
5は、ブートブロック502に割り当てられており、ボリュ
ームのネームフィールド(名前欄)504、32ビットボリ
ュームのIDフィールド506、BIOSパラメータブロック50
8、及びディスクブートストラッププログラム510を含
む。ディスクブートストラッププログラム510は、オペ
レーティングシステムファイルが見出される限り、これ
らのオペレーティングシステムファイルを位置付けしか
つ読取るべく限定モードで使用することができる。
ロック(SuperBlock)512及びスペアブロック(SpareBl
ock)514が続いている。スーパーブロック512は、ディ
スクメインテナンスユーティリティによってのみ変更さ
れる。スーパーブロック512は、空きスペースのビット
マップを指すポインタ516、バッドブロックリスト518、
ディレクトリブロックバンドを指すポインタ520、ルー
トディレクトリを指すポインタ522を含む。更に、スー
パーブロック512は、ボリュームがCHXDSKにより最終チ
ェック及び修復されたデート(日付け)を含むデートフ
ィールド(日付け欄)524をも含んでいる。CHXDSKは、
ディスクの悪い部分を検出しかつ目録を作るためのよく
知られたOS/2ディスクユーティリティである。
んでおり、これらについては以下に詳述する。スペアブ
ロック514は、コンピュータシステムが実行されるとき
に変更される。
ば、ファイルを記憶するために使用されるバンド516〜5
22である。第5A図には4つの8Mbバンドが示されている
が、HPFSは、非常に多数のバンドを提供(供給)する。
各バンドには、それ自体の空きスペースビットマップが
設けられている。例えば、ビットマップ524〜534参照。
空きスペースビットマップの各ビットは、セクタを表し
ている。セクタが使用されている場合にはビットは、0
であり、セクタが使用可能(アベイラブル)である場合
には、ビットは、1である。ビットマップは、バンドの
ヘッド又はテールに位置付けされるため、2つのビット
マップは、交互にバンドの間に隣接している。ビットマ
ップのバンドサイズは、任意のサイズのファイルを収容
できるように変更できるが、これ(上記構成)は、ファ
イルに割当てることができる最大の連続空きスペースを
16Mbになるようにさせる。ディスクのシークセンタにお
いて又はシークセンタに向かって位置付けされた1つの
バンドは、ディレクトリブロックバンドと呼ばれ、後述
するような特別の待遇(扱い)を受ける。
第5B図及び第5C図に示すFanodeと呼ばれる基本的なファ
イルシステムオブジェクトに固定(アンカー;anchor)
される。Fnode 530は、ファイル又はディレクトリに割
当てられた最初のセクタであり、スーパーブロック504
のフィールド522により指示されている。各Fnodeは、単
一のセクタを占拠し、かつ、第5B図に示すように、ファ
イルシステムにより内部で用いられる制御及びアクセス
情報フィールド540、拡大属性(extended attribute、
「EA」)及びアクセス制御リスト(access control lis
ts、「ACLs」)を記憶する領域542、関連するファイル
又はディレクトリのネームの長さ及び最初の15文字を表
示したい場合にはそのためのフィールド544、及び割当
て構成(構造)546を含む。Fnodeは、それが表わすファ
イル又はディレクトリの近くに常に記憶されている。
ディレクトリの連続性のサイズ及び度合に基づいて幾つ
かの形態をとる。本発明のHPFSは、1つ又はそれ以上の
連続的なセクタの1つ又はそれ以上の実行(runs)又は
エクステント(extent)の収集として、ファイルを検分
(view)する。各実行は、1対の二重ワードにより記号
化される:セクタにおける32ビットのスターティングセ
クタ数及び32ビットの長さ(これは、実行長さエンコー
ディングと称される)。アプリケーションプログラムの
観点からすると、エクステントは目で見ることはできな
い;ファイルはバイトの継ぎ目のない流れであると思わ
れる。
は、各16Mbまでのセクタの8回の実行と同数のポインタ
を保持することができる。従って、高度に連続的なサイ
ズのかなり小さなファイルは、Fnodeの中で完全に記述
され得る。
つ8回以上の実行よりなるファイルの位置を表わすため
の新しい方法を採用している。Fnodeの割当ては、割当
てセクタのB+ツリー(木)のルート(根)となり、こ
のルートは、第5D図に示すように、ファイルのセクタ実
行への実際のポインタを包含する。B+ツリー及びB−
ツリーの概念については後で詳述する。Fnodeのルート
は、12のエレメントのためのメモリ空間(ルーム;roo
m)を有する。各割当てセクタは、種々の制御情報に加
えて、セクタ実行への40程のポインタを包含することが
できる。従って、本発明の好ましい実施例においては、
2レベル割当てのB+ツリー(two level allocation B
+Tree)が、7.68Gb(12*40*16Mb)の理論的な最大サ
イズをもつ480(12*40)のセクタ実行のファイルを記
述することができる。
当てのB+ツリーが充分でないという非現実的な場合に
は、HPFSファイルシステムは、要求されたようにツリー
に付加的レベルを導入する。中間レベルにおける割当て
セクタは、60程の内部(端部ではない)B+ツリーノー
ドを保持することができ、このことは、この構成の記述
能力が極めて大きな数に急速に成長することを意味して
いる。例えば、3レベル割当てB+ツリーは、28,800
(12*60*40)のセクタ実行を記述することができる。
h encoding)及びB+ツリーは、ファイルのサイズ及び
位置を特定するための記憶効率的方法(memory efficie
nt way)であり、従来技術に比べ幾つかの優れた長所を
有している。論理的ファイルオフセットをセクタ数へ変
換することは、極めて速い:ファイルシステムは、正し
い範囲が見出されるまで実行サイズを要約し、実行ポイ
ンタ(run pointers)のリスト(またはリストのB+ツ
リー)を単に横切るだけである。そのとき、簡単な計算
により、実行(run)の中でセクタを識別することがで
きる。また、新たに割り当てられたセクタがファイルの
前の最終セクタと連続している場合には、実行長さエン
コーディングは、論理的にファイルを拡大することを自
明にしてしまう;このファイルシステムは、ファイルの
最終実行ポインタのサイズ二重ワード(size double−w
ord)を単に増大させるだけであり、適当な空きスペー
スのビットマップにおけるセクタのビットをクリアす
る。
れる。ルートディレクトリについてのFnodeへのポイン
タは、スーパーブロック512において見出される。第5E
図は、本発明によるディレクトリ構成を示しており、こ
こにはディレクトリFnode 550が示されている。ルート
以外のディレクトリについてのFnodeは、それらの親デ
ィレクトリにおけるサブディレクトリエントリを通って
到達する。
されており、ディスク上に4つの連続セクタ(consecut
ive sectors)として割当てられており、かつ任意のサ
イズに成長することができる。例えば、ディレクトリブ
ロック552、554、556を参照されたい。このファイルシ
ステムは、ディスクのシークセンタ又はその近くに位置
付けされたディレクトリバンドにディレクトリブロック
を割当てることを試みている。ディレクトリバンドが満
たされると、スペース(空間)が利用できる限り、ディ
レクトリブロックが割当てられる。
レクトリエントリを包含できる。例えば、エントリ558
〜568を参照されたい。ディレクトリエントリは幾つか
のフィールド(欄)を包含し、これらのフィールドに
は、第5E図に示すように、時間及び日付スタンプのため
のフィールド570、Fnodeポインタを包含するフィールド
572、ディスクメインテナンスプログラム(このプログ
ラムはよく知られたものである)による使用のための用
法カウントフィールド(usagecount field)574、ファ
イル長さ又はディレクトリネームを包含するフィールド
576、ネーム自体のフィールド578、B−ツリーポインタ
を包含するフィールド580が含まれている。各ディレク
トリエントリは、エントリの長さを包含するワード582
で始まる。これは、各エントリの終時におけるフレック
ススペースの可変量を提供する。この可変量は、ファイ
ルシステムの特別なバージョンによって使用でき、かつ
ディレクトリブロックを極めて迅速に横切らせる。
によって変化する。平均的なファイルネームの長さが13
文字であるときには、平均的なディレクトリブロック
は、ほぼ40のエントリを保持する。ディレクトリブロッ
クのエントリは、それらのネームフィールド(名前欄)
の2進字句順序(binary lexical order)により分類さ
れる。最終エントリは、ブロックの終了をしるすダミー
レコードである。
憶されなくなった場合には、B−ツリーとして編成され
る2Kbブロックの付加によりサイズを大きくできる。特
定のネームをサーチする場合には、それ(ファイルシス
テム)が一致を見出すか、目的とするネームよりも字句
的に多いネームを見出すまで、ファイルシステムは、デ
ィレクトリブロックを横行する。後者の場合、ファイル
システムが、エントリからB−ツリーのポインタを抽出
する。このポインタがどこも指示しないならば、サーチ
は失敗する;さもなければ、ファイルシステムは、ツリ
ーにおける次のディレクトリブロックへの次のポインタ
までポインタをたどって、サーチを続行する。
ィレクトリブロックの2レベルツリーは1,640のディレ
クトリエントリを保持でき、3レベルツリーは65,640の
エントリを保持することができる。換言すれば、最大限
3つのディスクアクセスを有する65,640のファイルの一
般的なディレクトリにおいて、特定のファイルを見出す
ことができる(又は、それが存在しないことを示すこと
ができる)。ディスクアクセスの実際の数は、キャッシ
ュの内容(cache contents)及びディレクトリブロック
のB−ツリーにおけるファイルネームの位置に基づく。
これは、同数のファイルを包含しているディレクトリに
ファイルが存在するか否かを画定するために、最悪の場
合、4,000のセクタを読取らなければならないFATファイ
ルシステムに対して顕著な改善を与える。
見出し操作にその影響を及ぼす興味ある含意(implicat
ions)を有している。ディレクトリブロックが付加又は
解放されるか、或いはツリーのバランスを保つべくネー
ムが一つのブロックから他のブロックに移動されて、フ
ァイルの生成、リネーミング又は削除により、複雑な作
業のカスケードを生じさせるかもしれない。実際、ファ
イル自体が成長することはないけれども、リネーム作業
は、ディスクスペースの不足により失敗するであろう。
この問題を回避するには、HPFSが、ディレクトリの緊急
時に引き出すことができる空きブロックの小さなプール
を確保する;このプールを指すポインタは、スペアブロ
ックに記憶されるのが好ましい。
レーティングシステムにより維持されるファイルについ
ての情報である。
As」)を支持し、 ネーム(name)=バリュー(value) の形態をとる。但し、バリュー部分は、空で終わる列
(null−terminated string、「ASCIIZ」)又は2進デ
ータのいずれかであることを除く。本発明の好ましい実
施例においては、各ファイル又はディレクトリは、これ
に取付けられたEAsの64Kbの最大値をとることができ
る。但し、この制限は容易に変更することができる。
ファイル又はディレクトリと関連するEAsが充分に小さ
い場合には、これらのEAsはFnodeに記憶されるであろ
う。もしEAsの全体のサイズが非常に大きいならば、こ
れらのEAsはセクタ実行においてFnodeの外に記憶され
て、実行を記述すべく割当てセクタのB+ツリーが生成
される。もし単一のEAが非常に大きくなったならば、そ
れ(該EA)は、Fnodeの外に押し出されて、それ(該E
A)自体のB+ツリー内に押し込まれる。
いて拡大属性(extended attributes)を操作させるOS/
2カーネルのAPI機能DOSQFileInfo及びDosSetFileInfoへ
の改善を提供する。更に、本発明は、任意のパスネーム
(パス名)に関連するEAsを読取る又は書込むために用
いることができる2つの新たな機能DOSQPathInfo及びDo
sSetPathInfoを提供する。アプリケーションプログラム
は、特定のEA(一致させるべきネームを供給する)のバ
リューを要求するか、ファイル又はディレクトリについ
ての全てのEAsを一度に得ることができる。EAsの支持
は、オブジェクト指向アプリケーションプログラムの使
用を容易にする。ファイルを所有するアプリケーション
のネームから、従属ファイルのネーム、アイコン及び実
行コード(executable code)に至る殆ど全ての形式の
情報は、EAsに記憶され得る。
なボトルネックをアタックする。性能を向上させるた
め、HPFSは、進歩したデータ構成、連続セクタ割当て、
インテリジェントキャッシング、先読取り、及び据置き
書込み(deferred writes)を使用する。最初に、HPFS
は、そのデータ構成をタスクにすぐ一致させる:ファイ
ルネーム、ディレクトリネームへの高速ランダムアクセ
スのための複雑なデータ構成(B−ツリー及びB+ツリ
ー)、ファイル又はディレクトリに割り当てられたセク
タのリスト、及び適当なサイズの空きスペースのチャン
クを位置付けるための簡単でコンパクトなデータ構成
(ビットマップ)。これらのデータ構成を操作するルー
チンは、アセンブラ言語で記載されるのが好ましい。
割当てることである。ディスクの読取り/書込みヘッド
を或るトラックから他のトラックに移動させるのに要す
る時間は、可能性のある他の遅延よりも遥かに重大であ
り、このため、HPFSは、ファイルスペースを連続的に割
当てることにより、そしてFnode及び該Fnodeが制御する
事柄の近くの空きスペースビットマップのような制御構
成を維持することにより、このようなヘッドの移動を回
避するか又は最小にする。高度の連続的なファイルは、
また、一度における多くのセクタに対するディスクドラ
イバのリクエストを少なくすべくファイルシステムを補
助し、ディスクドライバにディスクコントローラの多数
セクタ移送能力を活用させ、かつ、サービスされるべき
ディスクの完全な中断の数を低減する。
ペレーティングシステムにおいてファイルが細分化され
ないように維持することは、従来技術には見られない特
徴である。HPFSが用いている1つの方法(手順)は、新
しく生成されたファイルを別々のバンドのディスクにわ
たって分散して、できるならば、セクタが拡大されると
きにファイルに割当てられるセクタがインターリーブさ
れないようにすることである。他の方法は、ファイルを
拡大しなければならない度毎に、連続スペースの4Kbを
ファイルに予め割当てて、ファイルを閉じるときに全て
の過剰のスペースを戻す方法である。
予め知ることができるならば、HPFSがファイルを生成す
るときに、初期ファイル割当てを特定することにより、
HPFSを補助することができるであろう。そうすれば、シ
ステムは、全ての空きスペースビットマップをサーチし
て、ファイルを充分に保持できる連続セクタの実行を見
出すことができるであろう。これが失敗ならば、システ
ムは、ファイルのサイズの1/2である2ラウンドをサー
チする、等である。
HPFSが要求する物理ディスク転送の数を最小限にしてい
る。HPFSは、FATファイルシステムが行ったようにし
て、セクタをキャッシュする。しかしながら、FATファ
イルシステムとは異なり、HPFSは非常に大きなキャッシ
ュを効率良く管理し、セクタキャッシングを、パーハン
ドルベーシス(per−handle basis)で、ファイルが用
いられる方法に調節するようになっている。また、HPFS
は、パスネーム及びディレクトリをキャッシングし、デ
ィスクディレクトリエントリを記憶表現(memory repre
sentation)において、よりコンパクトで効率のよいも
のに変形する。
ラムが必要とすると考えられるデータを予め読取ること
である。例えば、ファイルが開かれるとき、ファイルシ
ステムは、Fnode及びファイルの内容の最初の幾つかの
セクタを予め読取りかつキャッシュする。ファイルが、
該ファイル中の実行プログラム(executable program)
又はヒストリー情報である場合には、Fnodeは、開放作
業が一般的に、全ファイルの即時逐次読取りによって後
続されていることを示し、ファイルシステムは、ファイ
ル内容のより多くを予め読取りかつキャッシュする。プ
ログラムが比較的少量の読取り要求を発行する場合に
は、ファイルシステムは2Kbのチャンクのファイルから
絶えずデータを取り出し、過剰のデータをキャッシュ
し、殆どの読取り作業がキャッシュから満足されるよう
にする。
スク処理機能(multitasking capabilities)に基づく
怠惰な書込み(lazy writes、デファード書込み又はラ
イトビハインド(write behand)とも呼ばれている)に
多いに依存している。例えば、プログラムがディスク書
込みを要求する場合には、データは、キャッシュ内に置
かれ、キャッシュバッファがダーティとしてフラグされ
る(即ち、ディスクのデータの状態と一致しないことを
示す)。ディスクがアイドル状態になるか或いはキャッ
シュがダーティバッファで飽和されると、ファイルシス
テムは、デーモンプロセス(daemon process)からのキ
ャプティブスレッド(captive thread)を用いて、最も
古いデータで開始して、バッファをディスクに書込む。
キャプティブスレッド及びデーモンプロセスについて
は、Hastings、他の著によるテキストシリーズ「マイク
ロソフト社のOS/2プログラマーズリファレンス(“Micr
osoft OS/2 Programmers Reference")」(1989年、Mic
rosoft Press社刊)において説明されている。
りリクエストは、書込み要求が完了するまで待機するこ
とにより一般に機能を停止されないので、プログラムが
より高速で実行されることを意味している。記録(レコ
ード)の小さなワーキングセットを繰り返し読取り、変
更し、そして書込むプログラムについては、それはまた
多くの不必要な又は冗長な物理ディスク書込みは回避さ
れ得るであろうことを意味する。怠惰な書込みは、それ
らのある特定の危険(状態)を有しており、従って、本
発明は、DosOpenについてのOpenModeパラメータにライ
トスルーフラグ(write−throughflag)を設定すること
により、プログラムが、パーハンドルベーシス(per−h
andle basis)上で怠惰な書込みを負かすことができる
こと、或いは、DosBufReset機能により、それ(プログ
ラム)が、パーハンドルベーシス上のディスクにデータ
を委託(引渡:commit)できることを提供する。OS/2の
現行バージョンにおいても、DosOpen及びDosBufRestの
両機能は、利用可能である。
ついて、最も急を要する情況を除いてどのような情況の
下でも書込みエラーから優雅に回復できるように(強制
的に)させる。例えば、書込みの失敗が知られるときま
でに、アプレケーションは、それがデータをディスク記
憶装置内に安全に運び込んだという錯覚の下に、そのま
ま突っ走ってしまった(それ自体の道をかなりいってし
まった)。
(ディスクアダプタにより戻される「セクタが見つから
ない」(“sector not found"error)のようなエラ
ー)、又は、そのようなエラーは、データのリードアフ
タライト検査(read−after−write verification)の
間にハードウェアにもかかわらずディスクドライバによ
り検出される。
(hotfix)と呼ばれる。エラーが検出されると、ファイ
ルシステムは、リザーブされたホットフィックスプール
から空きブロックを取り出し、該ブロックにデータを書
込んで、ホットフィックスマップを更新する。(ホット
フィックスマップとは、単に、一連の対をなす二重ワー
ドのことであり、二重ワードの各対は、そのホットフィ
ックス交換の番号と関連する悪いセクタの番号を包含し
ている。)次に、ホットフィックスマップのコピーがス
ペアブロック(SpareBlock)に書込まれ、ディスク装置
に問題があることをユーザに知らせるために警告メッセ
ージが表示される。ファイルシステムがディスクドライ
バからセクタ読取り又は書込みを要求する度に、それ
(ファイルシステム)は、ホットフィックスマップを走
査して、悪いセクタの番号を実際のデータを保持してい
る対応する良いセクタに置換える。
を空にすることである。ホットフィックスマップの各交
換ブロックに対し、それ(CHKDSK)は、データを所有す
るファイルについて好ましい位置にある新しいセクタを
割当て、データをホットフィックスブロックから新しく
割当てられたセクタに移動して、ファイルの割当て情報
を更新する(この情報には、再バランスしている割当て
ツリー及び他の精巧なオペレーションが含まれてい
る)。次いで、CHKDSKは、悪いブロックリストに悪いセ
クタを付加し、交換セクタを解放してホットフィックス
プールに戻し、ホットフィックスマップからホットフィ
ックスエントリを削除し、かつ、更新したホットフィッ
クスマップをスペアブロック(SpareBlock)に書込む。
FSフラグ(Dirty FS flag)を維持する。HPFSボリュー
ムの全てのファイルが閉じられるとき、及びキャッシュ
内の全てのダーティバッファが読出されたとき、或い
は、ブートボリュームの場合には、シャットダウン(Sh
utdown)が選択されかつその作業を完了したときに、フ
ラグがクリアされる。
FSボリューム上のダーティFSフラグ(Dirty FS flag)
を検査して、フラグが設定されている場合には、CHKDSK
が実行されるまでブートボリュームへの更なるアクセス
をさせないようにする。ブートボリュームにダーティFS
フラグ(Dirty FS flag)が設定されている場合には、
システムは自動的にCHKDSKを実行する。
ような真に重大な大事故の場合には、HPFSは、データ回
復に最も可能な成功の機会を与えるべく設計されてい
る。Fnode、割当てセクタ及びディレクトリブロックを
備えている、重要なファイル目的(オブジェクト)の殆
ど全ての型は、その親及び子の両方に二重にリンクされ
ており、かつ、ユニークな32ビットのサインを包含す
る。Fnodesも、また、それらのファイル又はディレクト
リのネームの最初の部分を包含する。従って、SHODS
は、Fnode、割当てセクタ及びディレクトリブロックに
ついて、ディスクを規則正しく走査し、ファイル及びデ
ィレクトリを再構成するためにそれら(Fnode、割当て
セクタ及びディレクトリブロック)を用い、そして最後
に空きスペースのビットマップを再発生(regeneratin
g)することにより、全ボリュームを再建(rebuild)で
きる。
論理的に順序付けるためにB+ツリー及びB−ツリー
(2進ツリー)を用いる。2進ツリーは、データの物理
的な順序付けを気にすることなく、ポインタによってデ
ータ項目の集合に論理的順序付けを強要するための技術
である。
ードは、ツリーにおけるノードの論理的位置を決定する
キー値を含むあるデータ、並びに、ノードの左右のサブ
ツリーを指すポインタを包含する。ツリーを開始するノ
ードは、ルート(根)として知られており、ツリーの枝
の端部に位置するノードは、ときどきリーフ(葉)と呼
ばれている。
ートから横断される。各ノードにおいて、所望のキーが
ノードのキーと比較される;もし両キーが一致しない場
合には、所望のキーがノードのキーより小さいか或いは
大きいかに基づいて、ノードのサブツリーの1つのブラ
ンチ又は別のブランチが選択される。このプロセスは、
一致が見出されるまで、又は第5F図に示すように空のサ
ブツリーに出合うまで続けられる。
は容易であるが、実用では欠点を有している。キーが非
ランダムな態様でツリーに首尾良く分散されなかったり
付加されなかったりすると、ツリーが全く非対称的にな
り、ツリーの横断時間に広範囲な変化をもたらす。
第5図に示すようなB−ツリーとして知られているバラ
ンス形ツリーを好む傾向にある。B−ツリーについての
重要な点は、データが全てのノードに記憶され、1つ以
上のデータ項目が1つのノードに記憶され、かつ、ツリ
ー全てのブランチが同じ長さをもっているということで
ある。
であり、簡単な2次ツリーの挙動より遥かに良好である
が、B−ツリーのメインテナンスは、かなり複雑であ
る。新しいデータ項目の付加、キーバリューの変更、又
はデータ項目の削除により、ノードのスプリッティング
(分割)又はマージング(併合)が生じ、これにより、
(それを)再び均衡にするためにツリーには他の作業の
カスケードが強制される。
を有するB−ツリーの特殊化されたフォームである:内
部ノードは、他のノードを指すだけであり、外部ノード
は、実際のデータを有している。
リーの内部ノードが、B−ツリーの中間レベルノードよ
り非常に多くの決定バリューを保持でき、そのため、ツ
リーの外のファンが高速になりかつブランチの平均長さ
が短くなることである。これにより、必要データを見出
すにはB+ツリーのブランチがその端部に続かなければ
ならないという事実を補償でき、一方、B−ツリーにお
いては、データは、中間ノード或いはルート(根)にお
いても見出される。
のであり、多くのユーティリティとOS/2の現行バージョ
ンにおいて利用できるサブルーチンを用いて実施するこ
とができる。本発明は、主としてOS/2オペレーティング
システムに使用することを意図しているが、本発明の原
理は、実際のあらゆるコンピュータのオペレーティング
システムに適用できるものである。こで説明する新しい
ユーティリティ及びサブルーチンを除き、他の全てのユ
ーティリティ及びサブルーチンは現在利用されていてよ
く知られたものである。OS/2オペレーティングシステム
の詳細な説明については、前述のOS/2プログラマ用参考
書を参照されたい。
ボリュームマネージメントは、OS/2の従来のバージョン
において行われているものと同じデューティ、即ち、悪
いボリュームがドライブにインサートされたときの検
出、ボリュームが除去されたときの検出、ボリュームパ
ラメータブロック(VPB)を介してドライブ内に置かれ
た新しいメディアに関する新しい情報の生成、適当なデ
バイスドライバとの通信、新しいインサートメディアに
アクセスする必要のあるデバイス情報をシステムに与え
ること、バッファ及びCDS機構とのインタフェース、及
び特定ボリュームへの変更をシステムに知らせること等
に応答することができる。
イルシステムがあったに過ぎない。本発明によれば、統
一された環境内に多数のファイルシステムを備えること
ができる。ボリュームマネージャは、どのファイルシス
テムが特定のボリュームにアクセスするべきかを決定
し、ファイルシステムドライバ(FSDs)が特定のボリュ
ームについてのそれらの資源を管理できるようにする機
構を提供し、かつボリュームの管理のために過去に設け
られた全てのFSDsに対して同じサポートを提供する。本
発明は、良く知られている既存のOS/2呼び出し並びに以
下に説明する幾つかの新しい機能に依存している。本発
明の設置可能なファイルシステムについての完全な説明
は、マイクロフィッシュの形態で本願に添付されかつ参
考として提示する付録I(Appendix I)において述べら
れている。
システムドライバの識別及びローディングが容易に行え
るマウントプロセス及びアンマウトトプロセスを用いる
ことを意図している。
に開始される: 1. ボリュームへの最初のアクセス。
も。(このことは、通常、ユーザが新しいメディアをド
ライブに入れることを意味する) 3. ドライブ内にないボリュームへのアクセスが要求さ
れるときはいつでも。
ック(DPB)の指すポインタであり、このドライブパラ
メータブロックは、デバイスドライブにI/Oを行うこ
と、及びドライブ内にあると現在考えられているボリュ
ームのVPBにハンドルを記憶させることに使用される。
マウント操作によりこれが更新される。ローカルVPBが
スタック上に割当てられ、DPBポインタと共に初期化さ
れる。
論理的セクタ0を読取ることにより、マウントプロセス
600が開始される。異なる形式のメディア(即ち、光学
ディスク又はシーディロム(CD−ROM))がトラック0
を読取り不能にできるので、デバイスドライバからエン
カウンタ(遭遇)されたどのエラーも無視される。論理
的セクタ0を読取る前に、テンポラリマウントバッファ
が0に初期化される。ボリュームのラベルテキストフィ
ールドが「UNLABELED」に初期化される。セクタ0がチ
ェックされ、特定バリュー(41)に対してサインバイト
(signature byte)を比較することにより、フォーマッ
トが認識されているか否かを決定する。フォーマットが
認識されていない場合には、VPBに直接関係のある情報
がスタック上に充填される(即ち、32ビットボリューム
連続番号)。
ll)が、DPBにおいて特定化されたデバイスドライバに
発行される。BUILDBPBは、デバイスドライバによりエク
スポート(移出)される手順である。このBUILDBPB手順
については、付録Iにおいて詳細に説明されている。BU
ILDBPBは、装置の物理的パラメータ(バイトパーセクタ
(byte pet sector)、セクタパーラック(sector per
track)等)を学習するために呼出される。デバイスド
ライバは、ボリュームの物理的パラメータを決定するの
に用いることができる情報を包含するバッファを指すべ
くポインタを移行する。殆どのドライバにとっては、こ
れはセクタ0であり、非常に古い幾つかのドライバにと
っては、FATの最初のセクタである。装置が、セクタ0
から読み取られるデータを解釈できない場合(例えば、
この場合のフロッピがFATではなく、従ってFAT IDバイ
トが意味をもたない場合)には、装置は最小のBPBを戻
し、カーネル及びFSDsが必要なI/Oを行ってボリューム
を完全に識別できるようにする。
eld)は、スタックのローカルVPB(即ち、Sectors/trac
k、Numberoflleads、Total Sectors、Sector Size)に
コピーされる。新しいVPBが割当てられ、ローカルVPBか
らの情報がそれにコピーされる。
すように、新しく創出されたVPB、論理的セクタ0を指
すポインタ、及びVPBのVPBファイルシステム独立及び従
属領域(independent and dependent areas)を指すポ
インタの処理と共にFS_MOUNT(フラグ=0)のエントリ
点を呼び出すことにより、各FSDをポール(poll)す
る。FSDは、FSH_DoVolIOを呼出し、ボリュームから他の
セクタを読取る(それ自体のバッファを割り当てなくて
はならない)。もしFSDがERROR_ENCERTAIN_MEDIAをリタ
ーンしたならば、エラーがリターンされ、プロセスは、
決定(decision)610によって示されるように再スター
トされる。もしFSDがブートセクタをサポートするなら
ば、FSDは、ブートセクタのファイルシステムのネーム
フィールドをチェックして、これがネームフィールドを
認識しているか否かを決定する。もしFSDがブートセク
タをサポートしないならば、FSDがボリュームを認識す
るか否かを決定すべく装置へのI/Oが実行される。ひと
たびFSDがボリュームを認識したならば、項目612で示す
ように、VPBファイルシステム独立及び従属領域におけ
る関連フィールドを更新する。VPBファイルシステム独
立及び従属領域は、第7図に関連して更に詳細に説明す
る。この時点においては、FSDは、FS Helper(FSH)機
能を発行し、新しいボリュームが、本発明が管理する他
の任意のボリュームと同じであるか否かを決定する。こ
のFS Helperは、ファイルシステム独立及び従属領域を
指すポインタをリターンする。次いでFSDは、項目614で
示すように、新しく生成されたVPBから古いVPBへ情報を
コピーする。新しく生成されたVPBは、MOUNTの呼出しを
行った後に破棄される。次に、ドライブからボリューム
が除去されていることがあるので、FSDは、あらゆるバ
ッファを無効にするような、古いVPBに対してあらゆる
クリーンアップ作業(cleanup work)を行う。
致するものが見出されたならば、本発明は新しいVPBを
除去する。リスト内に一致するものが見出されない場合
には、VPBはマウントされたFSDsのリストにリンクされ
る。もしFSDsが認識されないならば、決定614及び項目6
16に示すように、VPBが空にされかつFATファイルシステ
ムが装填される。
ボリュームに対してカーネルがもはや関与しない場合に
は、本発明は、FSDにFS_MOUNT(フラグ=2)を発行し
て、そのボリュームに割り振られた資源は、割り振りを
解除される。
ドライブの最終ボリュームとは異なるものであることが
検出された場合には、FSDにFS_MOUNT(フラグ=1)の
呼出しが発行されて、除去されたボリュームに関するバ
ッファ無効のような、あらゆるクリーンアップ形式の作
業が実行されるであろう。ボリュームに対してもはやカ
ーネルが関与しない場合には、FS_MOUNT(フラグ=2、
UNMOUNT)が続く。新しくインサートされたボリューム
が、ドライブにおいて最後に見られたボリュームと同じ
ものである場合には、この呼出しは発行されない。
ーネル資源を利用するために、効率のよい機構の使用を
企図する。特に、FSDがカーネル内に存在する機能を要
求する場合には、FSDは、ファイルシステムヘルパ(FS
H)を呼出す(invoke)ファイルシステムヘルパ呼出し
(call)を発行する。呼び出されたFSHは、次に、要求
された情報を戻す。以下に、ファイルシステムヘルパに
ついて簡単に説明する。以下に述べる要約においては幾
つかの重要なファイルシステムヘルパがリストアップさ
れているけれども、必要に応じて付加的なファイルシス
テムヘルパが供給されるように企図されている。ファイ
ルシステムヘルパは、Appendix Iにおいて詳細に説明さ
れている。
がFSDに渡されて、FSDが、VPBのファイルシステム独立
及び従属領域にアクセスすることがしばしば必要にな
る。このヘルパは、そのようなサービスを与えるもので
ある。
う必要があるときには、FSDは、このヘルパを使用し
て、要求されたボリュームが実際にドライブ内にあるこ
とを保証し、適当なデバイスドライバを呼出し、かつハ
ードエラーを取り扱う。このヘルパは、PSD内で常時用
いることができる。FS_MOUNT呼出しの範囲内で呼出され
るとき、FSDは、ドライブのボリュームに適用される。
しかしながら、FSDがFS_MOUNT呼出しに戻るまでは、ボ
リュームの認識が完了していないので、ERROR_UNCERTAI
N_MEDIAが戻される場合には、FSDは注意しなければなら
ない。このことは、ドライブにおけるメディアの識別を
試みる間に、メディアが不確実になっていることを示す
ものである。また、このことにより、FSDが認識を試み
ていたボリュームが除去されたことを示すであろう。こ
の場合には、FSDは、FS_MOUNT呼出しで渡されたhVPBに
取り付けられた(attached)全ての資源を解放し、ERRO
R_UNCERTAIN_MEDIAがFS_MOUNT呼出しに戻される。これ
は、マウントプロセスを再スタートすべく、ボリューム
トラッキング論理を指導する。
理されている他の1つのボリュームと同じボリュームで
あろう。新しいボリュームに関する更新情報を創出しか
つ古い複製VPB(older duplicate VPB)へその情報をコ
ピーすることが、FSDの責任である。このヘルパは、古
い複製VPBが存在しているか否かを決定し、存在してい
る場合には、古い複製VPBのファイルシステム独立及び
従属領域を指すポインタが戻されて、これらの領域がFS
Dによって更新され得る。次いで、FSDは、ボリュームが
除去されているので、古いボリュームについてあらゆる
クリーンアップ作業を行う。
るOS/2資源を使用することを企図する。以下のリスト
は、本発明の動作中に呼び出される機能の階層(hierar
chy)の要約である。
最初にアクセスされるときはいつでも、呼出される。本
発明のボリュームマネージメント機能(ボリューム管理
機能)はライン1.により表される。最初のプロセスは、
ライン1.1で示すように、どのボリュームがシステムに
与えられたかを決定することである。ライン1.1.1のPro
beChangeは、デバイスドライバにアクセスすべく呼出さ
れ、メデイアの変化をデバイスドライバが検出したか否
かを決定する。メディアの変化が検出されたときは、ラ
イン1.1.2においてResetMediaが呼出されて、メディア
へのI/Oを許容すべくデバイスドライに命令する。次
に、ライン1.1.3においてGenhVPBが呼出され、ボリュー
ムパラメータブロックが生成される。このプロセスは、
Lock−GBufが呼出されてオペレーティングシステムのカ
ーネル内のバッファをクリアしかつ直列化(serializ
e)するライン1.1.3.1と共に開始する。ライン1.1.3.2
においては、メディアブートセクタのデータは、オペレ
ーティングシステムのバッファに読取られる。システム
はライン1.1.3.3に進み、該ライン1.1.3.3においては、
BuildBPBが呼出されて(invoked)、ディスクドライバ
を呼出し(call)、ブートパラメータブロックを作る。
次に、FS_MOUNTがライン1.1.3.4で呼出される。FS_Moun
tにおける最初のステップは、ライン1,1,3,4,1のBmp_Ge
tを呼出す。ライン1.1.3.4.1は、BPBについてのバッフ
ァを設定すべく呼出されるカーネルにおけるメモリマネ
ージメントユーティリティである。ライン1.1.3.4にお
いては、FSMountVolumeが呼出されると、FSMount Volum
eは、FSDsのリストを介して反復し、サクセスを戻すか
リストの終部(エンド)に到達するまで、各FSDのFS_Mo
unt手順を呼出す。ライン1.1.3.4.2においてFSDがサク
セスを戻すと、VPBCopyが呼出されて、BPBのコピーのた
めのテンポラリバッファを生成する。次に、ライン1.1.
3.4.3におけるVPBLinkが呼出され、VPBをチェーンにリ
ンクさせ、該チェーンにおける次のVPBを指すべくBPBを
設定し、リストの開始に現在のVPBを初期化する。VPBFi
ndがライン1.1.3.4.4に呼出されてVPBsのチェーンを試
験し、プロセス中のVPBと同じボリューム識別子を所有
しているVPBを見出す。複製VPBの識別子が見出された場
合には、ライン1.1.3.4.5にVPBfreeが呼び出され、複製
VPBがVPBsのリスト内に見出された場合には、試験を受
けてVPBがBPBから自由になる。FSMountVolumeが完了す
ると、VPBに適当なフィールドを設定するライン1.1.3.5
にSetVPBが呼出される。ライン1.1.3.6において、FindV
IDが呼出され、ボリューム識別子が見出される。メディ
アのセクタ0にブートブロックが見出されない場合に
は、ライン1.1.3.7にDiskIOが呼出され、ボリュームのB
PBが位置付けされる。FSDのFS_Mountルーチンがサクセ
スを戻さない場合には、(残留)FATファイルシステム
のFS_Mount手順と論理的に等価のインラインコードが呼
出される。ライン1.1.3.8においては、古いFATボリュー
ムの最初のディレクトリを検査合計(checksum)すべ
く、CRCが呼出され、それらのブートセクタで連続番号
をもたないボリュームについてのユニークなボリューム
連続番号が生成される。次に、ライン1.1.3.9〜ライン
1.1.3.13にリストアップされた機能が呼出されて、新し
いボリューム識別子が生成されかつボリューム識別子バ
ッファが空にされる。ライン1.1.2.14においてはBufInv
alidateが呼出されて、プロセス開始以来メディアが変
化している場合にはバッファ内の全てのデータを無効に
する。その場合には、ライン1.1.3.15にFlushBufが呼出
され、新しいメディアに対してバッファをフラッシュさ
せる。
ない場合には、ライン1.1.4のIncVPBRefが呼出されて、
現在のVPBの基準カンウタが増大(increment)される。
この基準カウンタは、ここで問題にしているボリューム
が、オペレーティングシステムのカーネルに対して依然
として解放しているか否かを記録するのに使用される。
ライン1.1.5においては、DecVPBRefが呼出され、前のVP
Bの基準カウンタが減少(decrement)される。基準カウ
ンタがゼロに減少された場合には、VPBFreeがライン1.
1.5.1に呼出され、VPBが空にされる。ライン1.1.6にはR
esetCurrencyが呼出され、現在のディレクトリ構成にお
ける位置データを無効であるとしてマークする。NextCD
S(ライン1.1.6.1)及びPointComp(ライン1.1.6.2)
は、現在のディレクトリ構成(CDSs)を列挙するのに用
いられる内部ルーチンである。ライン1.1.6.3においてB
ufInvalidateが呼出され、ファイルシステムのバッファ
プールから、(現在は陳腐化している)VPB基準が除去
される。
れている特定のボリュームについての情報を記憶するシ
ステムにより用いられるボリュームは、ブロック装置に
おけるメディアとして規定され、メディアに関する情報
は、このボリュームを他の全てのボリュームから区別す
る。
システムは記録が使用されているトラックのみを必要と
しかつ空のリストを管理する。
VPB作製(VPB built)がシステムに既存のいかなるVPBs
とも一致しない場合に、新しいエントリ(new entry)
が、BMP管理されたセグメント内で割当てられ、メディ
アからの適切なデータで充填される。システムがVPBで
完了する度毎に、即ちシステムのRefCountがゼロになる
場合に、BMP管理されたセグメントのエントリが空にな
り、BMPは、この空になった記憶機構(storage)を再使
用のためにトラックする。テーブルIの機能により用い
られた構成を以下に説明する。
ルがVPB(例えば、基準カウント)を管理するために必
要な情報を維持するのに使用される。これは、カーネル
にとってのプライベートなものであり、FSDsは決してこ
のプライベート部分にアクセスしないし、かつそれを変
更しないことを意味している。
ファイルシステムにより使用されかつ特定のあらゆるフ
ァイルシステムから独立している。この部分は、或るフ
ァイルシステム(file system、「FS」)コールに対し
て設置可能なファイルシステムに渡される。
この部分は、必要に応じてファイルシステムが使用でき
る「作業領域」として設定される。この部分は、或るFS
コールに対してIFSに渡される。VPBのレイアウトは第7
図に示される。
る。この構成は、ファイルシステムの形式の如何に係わ
りなく、あらゆるファイルシステムにより使用できるも
のである。
する。この構成は、適合すると考えられるファイルシス
テムにより使用される。
の構成を定めるものである。
れるフィールド(欄) vpb_flink DW ?;前方リンクのハンドル vpb_blink DW ?;後方リンクのハンドル vpb_IDsector DD ?;IDのセクタ数 vpb_ref_count DW ?;VPBを指す目的のカウント vpb_search_count DE ?;VPBを指すサーチのカウント vpb_first_access DB ?;これは、メディアを強制すべ
く−1に初期化される vpb_signature DW ?;VPBの有効性を明記するサイン vpb_flags DB ?;フラグ vpb_FSC DD ?;ファイルシステム制御ブロック(FSC)
を指すポインタ 下記のフィールド(欄)は、ファイルシステム従属作業
に使用される。
される。
は、VPBハンドルからVPBデータを得るのに使用される。
は、ボリュームベース形のセクタ配向転送(volume−ba
sed sector−oriented transfers)に使用される。
れは、複製(古い)VPBへのVPBデータを得るのに使用さ
れる。
トリパラメータ(entry parameters)を有している。
インタフェースに使用される。
る。戻された全てのエラーは、ユーザに送られる。
呼出される(即ち、認識されたプートセクタを有してい
ないディスク)。新しいディスクは、プートセクタ内に
KNOWN(既知)で正しいすなわち正当なBPB(VALID BP
B)を有している。デバイスドライバへのバッファは、B
uildBPB呼出しの一部である。
ムを認識しているか否かを決定すべくチェックする。
を呼出すFSDチェーンを通してループし、IFSが関心をも
つボリュームを認識しているか否かを決定する。このル
ープは、最初のIFSがボリュームを認識するとき、又は
システム内に設置されたFSドライバの番号のループカウ
ンタが0に減少するときに終端する。
トからそのブロックを空にする。
し、新しいVPB及び古い最初のVPBの前方及び後方のリン
クフィールドを調節する。
ュームIDをもつVPBを探す。
ピーし、かつ正当であるとしてVPBをスタンプする。
たときにこれを検出してオペレータに正しい処置をとる
ように知らせることは、オペレーティングシステムのカ
ーネル及び適当なデバイスドライバを介して直接行われ
る。本発明の原理によれば、各ファイルシステムドライ
バ(FSD)は、ボリュームラベルと、ファイルシステム
に使用される各ボリュームについての32ビットのボリュ
ーム連続番号とを生成する。これらは、ボリュームがフ
ォーマット化されるときに、論理的セクタゼロのリザー
ブされた位置に記憶されるのが好ましい。この情報を記
憶するのに、特別なフォーマットは必要ない。オペレー
ティングシステムのカーネルは、FSDを呼出して、それ
を含むであろう動作を実行する。FSDは、ボリュームラ
ベル又は連続番号が変更された場合にはいつでも、ボリ
ュームパラメータブロック(VPB)を更新する。
イスドライバは、32ビットのボリュームを連続番号及び
ボリュームラベルを(VPBを介して)渡す。ボリューム
に関してI/Oが実行されるとき、オペレーティングシス
テムのカーネルは、リクエストされたボリュームの連続
番号を、装置を維持している現在のボリュームの連続番
号と比較する。これは、ドライブにマウントされたボリ
ュームのドライバパラメータブロック(DPB)のVPBをチ
ェックすることによって行われるイン−ストレージ試験
(in−storage test)であり、いかなるI/Oも必要とさ
れない。比較の結果、等しくない場合には、オペレーテ
ィングシステムのカーネルは、クリティカルエラーハン
ドラに信号を送って、特定の連続番号及びラベルを有す
るボリュームを挿入すべくユーザを促す。
ンプログラムのインタフェース(API)の機能呼出しの
代わりに、ドライブがアクセスされたときには、本発明
は、そのボリュームへのI/Oを管理するために応答する
ファイルシステムドライバ(FSD)を決定する。次に、
本発明は、ボリュームパラメータブロック(VPB)を割
当て、設置されたFSDsをポーリング(poll)する。FSD
は、これがメディアを認識することを示す。FSDsは上記
のようにしてポーリングされる。
アを認識することにより、他のFSDの認識が生じない場
合には省略時FSDとして作用する。
つの分類がある: 1. ローカルすなわち遠隔に(仮想ディスク)装置に対
してI/Oを行うブロックデバイスドライバを用いているF
SD(これは、ローカルファイルシステムと呼ばれてい
る)、 2. ブロックデバイスドライバを用いることなくして遠
隔システムにアクセスするFSD(これは、遠隔ファイル
システムと呼ばれている)。
ムとの間の連結は、プログラムのインタフェースを介し
て行われる。DosFSAttachシステムコールは、システム
のネームスペース(例えば、ドライブ)の目的とFSDと
の間の結合を生成するのに用いられる。
イルシステムとの間の連結も、DosFsAttachインタフェ
ースを介して行われる。DosFsAttachインタフェース
は、DosFsAttach呼出し及びDosQFsAttach呼出しで構成
されており、これらは、Appendix Iにおいて詳細に説明
されている。
は、FSDチェーンの各ローカルFSDを連続的に尋ねて(as
k)、各FSDのFS_MOUNTエントリ点への呼出しを介してメ
ディアを受け入れるようになっている。どのFSDもメデ
ィアを受け入れない場合には、メディアは、省略時ファ
イルシステムに割当てられる。FORMAT以外による、認識
されないメディアにアクセスするために行われる他の全
ての試みは、「無効メディアフォーマット(INVALID ME
DIA FORMAT)」のエラーメッセージを結果として生じ
る。
と、ボリュームの連続番号と、ボリュームのラベルとの
間の関係が記憶される。ボリュームの連続番号及びラベ
ルは、ボリュームのバラメータブロック(VPB)に記憶
される。VPBは、開放ファイル(ファイルハンドルに基
づくI/O)、サーチ及びバッファリファレンス(buffer
references)についてのオペレーティングシステムによ
り維持される。
OUNTを呼出すことによりボリューム認識についての設置
されたFSDsのポーリングを必要とする。認識しているFS
Dにより戻されたVPB及び既存のVPBのボリューム連続番
号及びボリュームラベルが比較される。試験が成功した
場合には、ボリュームにFSDがアクセスされる。試験が
失敗した場合には、オペレーティングシステムがクリテ
ィカルエラーハンドラに信号を送り、正しいボリューム
にユーザを促す。
放ファイルが閉じられるまでセーブされ、サーチリファ
レンス及びキャッシュバッファリファレンスが除去され
る。ボリュームの変化のみが、次のアクセス時における
メディアの再決定をならしめる。
アに関するオペレーティングシステムの区分へのアクセ
スは、OS/2オペレーティングシステムで利用可能な機能
セットのようなフルオペレーティングシステムの機能セ
ットを介して行われる。
n)についての詳細な説明は、前述のOS/2プログラマ用
参考書で入手可能である。
グシステムと通信する遠隔装置を識別するためのDosQFs
Attach機能が提供される。DosQFsAttachの目的は、取付
けられた遠隔ファイルシステム、ローカルファイルシス
テム、文字装置(character device)、又は、ローカル
FSD又は遠隔FSDに取付けられた疑似文字装置ネームに関
する情報を問合せることである。
字(drive letter)を指すか、或いは文字又は疑似文字
装置ネームを指すか、或いはFSAInfoLevelのいくつかの
バリューについては無視される。DeviceNameがドライブ
であるときには、DeviceNameは、コロンが付された駆動
文字の形態を有するASCIIZストリングである。DeviceNa
meが、文字又は疑似文字の装置ネームであるときには、
そのフォーマットは、呼出されたサブダイレクトリのフ
ァイルネームのフォーマットにおけるASCIIZストリング
のフォーマットであり、\DEV\のように示すのが好ま
しい。
装置又はドライブの組のリストのインデックスである。
序数は常に1からスタートする。リストの1つの項目の
序数位置は重要でない。序数は、リスト全体を厳格にス
テップするのに使用される。序数から項目へのマッピン
グは揮発性であり、DosQFsAttachに対する或る呼出しか
ら次の呼出しまで変化しうる。
Bufferのデータがどの項目に関するものであるかを決定
する。
のドライブ又は装置ネームのデータを戻す。序数のフィ
ールド(欄)は無視される。
文字装置のリストのエントリのデータを戻す。DeviceNa
meのフィールドは無視される。
リストのエントリのデータを戻す。DeviceNameのフィー
ルドは無視される。
uffer)であり、次のフォーマット内にある: struct{ unsigned short iType; unsigned short cbName unsigned char szName〔〕; unsigned short cbFSDName; unsigned char szFSDName〔〕; unsigned short cbFSAData; unsigned char rgFSAData〔〕; }; iType項目の形式 1=常駐文字装置(Resident character device) 2=疑似文字装置 3=ローカルドライブ 4=FSDに取付けられた遠隔ドライブ sbName 項目ネームの長さ、ゼロ(null)は数えない szName 項目ネーム、ASCIIZストリング cbFSDName FSDネームの長さ、ゼロは数えない szFSDName ASCIIZストリングに取付けられたFSD項目の
ネーム cbFSAData FSDにより戻されたFSDアタッチデータの長
さ rgFSAData FSDにより戻されたFSDアタッチデータ szFSDNameは、FSDにより移出(エクスポート)されたFS
Dネームであり、このネームは、必ずしもプートセクタ
のFSDネームと同じネームである必要はない。
=0であり、szFSDNameは、ゼロで終わるバイトのみを
含んでいて、cbFSAData=0である。
は、呼出しの時点でドライブに取付けられたFSDのネー
ムを含んでいる。この情報はダイナミックに変化する。
ドライブがオペレーティングシステムのカーネルの常駐
ファイルシステムに取付けられている場合には、szFSDN
ameに“FAT"又は“UNKNOWN"が含まれる。常駐ファイル
は、他のFSDsがMOUNT(マウント)することを拒む任意
のディスクに取付けられているので、認識可能なファイ
ルシステムを含んでいないディスクを有することができ
るが、常駐ファイルシステムに取付けることもできる。
この場合、差異を検出することができ、この情報は、適
格に認識されなかったディスク上のデータを破壊しない
ようにプログラムを助ける。
戻りにおいて、この長さは、FSDによりDataBufferに戻
されたデータの長さである。
ついての情報は、DosQFsAttachにより戻される。この呼
出しにより戻される情報は、揮発性が高い。
しプログラムに戻されるまでに既に変化されていること
を気付くべきである。カーネルの常駐ファイルシステム
に取付けられたディスクに戻された情報は、ディスクが
ファイルシステムを備えたものであることをカーネルが
明確に認識しているか否か、又は、他のFSDsがディスク
を取付けていないのでカーネルがそのファイルシステム
をカーネルに取付けたか否かを決定するために使用する
ことができる。
ーコードの組は、0×EE00−0×EEFFである。必要に応
じて他のエラーを付加できるが、次のエラーが定められ
ている: ERROR_VOLUME_NOT_MOUNTED=0×EE00−FSD は、ボリュームを認識しなかった。
−0×EEFFである。
は、次の構成により記述される。ファイルシステムに与
えられるデータは、ブロック装置に取付けられたデバイ
スドライバにより与えられるファイルシステムサポート
のレベルに基づきうる。これらの構成は、ローカルファ
イルシステムについてのみ関連する。
vpfsi{ unsigned long vpi_vid;/“32ビットボリュームID"/ unsigned long vpi_hDEV;/“デバイスドライバへのハン
ドル"/ unsigned short vpi_bsize;/“バイトのセクタサイズ"/ unsigned long vpi−totses;/“セクタの全数"/ unsigned short vpi_trksec;/“セクタの全数"/ unsigned short vpi_nhead;/“セクタの全数"/ chart vpi_text〔12〕;/“asciizボリュームネーム"/ };/“vpfsi"/ /“file system dependent−volume params"/ struct vpfsd{ char vpd_work〔36〕;/“作業領域"/ };/“vpfsi"/ 上記のように、FS_MOUNT機能は、ボリュームをマウント
及びアンマウント(UNMOUNT)するために呼出され、そ
して、その目的は、FSDがファイルシステムのフォーマ
ットを認識するか否かを決定するためにボリュームを試
験することにある。FS MOUNTを呼出すシーケンスは下記
の通りである: int far pascal FS_MOUNT(flag、pvpfsi、pvpfsd、pBo
ot) unsigned short flag; struct vpfsi far"pvpfsi; struct vpfsd far"pvpfsd; unsigned short hVPB; char far"pBoot; ここで、フラグは、要求された作業を示す。
にFSDが要求されることを示す。
がアドバイスされていることを示す。
ときにそのボリュームに割当てられた全ての内部記憶装
置及びそのボリュームが除去されたことへの最後のカー
ネル管理されたリファレンスを開放するために、FSDが
要求されることを示す。
備において、認識の如何に係わらずボリュームを受け入
れることをFSDが要求されることを示す。
されたバリューは有効である。
タ。もしメディアが、オペレーティングシステム−認識
可能なブートセクタを包含するならば、vpi_vidフィー
ルドは、そのボリュームについての32ビット識別子を包
含する。もしメディアがそのようなブートセクタを包含
しないならば、FSDは、メディアに対してユニークなラ
ベルを生成して、該ラベルをvpi_vidフィールドに配置
する。
タ。FSDは必要に応じて情報をこの領域に記憶しうる。
ンタ。このポインタは、フラグ==0のときにのみ有効
である。ポインタが参照するバッファは、「MUST NOT B
E MODIFIED(変更されてはならない)」。ポインタは常
に有効であり、フラグ==0のときには確かめる必要は
ない;もし読取りエラーが生じたならば、バッファはゼ
ロを包含する。
ァイルシステムを認識するか否かを決定する。もしボリ
ュームがファイルシステムを認識するならば、vpfsi及
びvpfsdの適当な部分を充填した後に、ゼロを戻す。vpi
_vid及びvpi_textのフィールドは、FSDにより充填され
る。もしFSDがオペレーティングシステムのフォーマッ
トセクタを有するならば、FSDは、メディアをラベルか
らasciizフォームに変換する。vpi_hDevのフィールド
は、オペレーティングシステムにより充填される。もし
ボリュームが認識されないならば、ドライバは非ゼロ
(non−zero)を戻す。
度毎に、FSDにより更新される。
いるか否かを決定する。もし複製VPBが存在しているな
らば、新しいVPBのVPB fs従属領域が無効であり、FSDが
FS_MOUNTの呼出しから戻った後に、新しいVPBがアンマ
ウントされる。FSDは、古い複製VPBのfs従属領域を更新
する。
初期化する。
ある。
ある。
用いて、ボリュームパラメータは試験されうる。ボリュ
ームパラメータは、メディア認識プロセスの後に変更す
べきではない。
H_DOVOL−IOを用いることによりメディアの他のセクタ
を試験しうる。もし不確実メディアの戻りが検出された
ならば、FSDは「cleans−up(クリーンズアップ)」で
あり、ERROR_UNCERTAIN_MEDIA戻して、新しくインサー
トされたメディアに関してボリュームマウント論理が再
スタートできるようにする。付加されるI/Oに使用する
ためにFSDは、バッファを提供する。
ント(refcount)カウンタを介してVPBを管理する。全
てのボリューム特定目的(volume−specific objects)
は、適当なボリュームハンドルでラベリングされて、VP
Bへの基準を表わす。ボリュームに対する全てのカーネ
ル基準が消滅すると、フラグ=2でFS_MOUNTが呼出さ
れ、ディスマウントリクエストを示す。
ルが検出し、かつ、依然としてボリュームに対する未決
定の基準(outstanding references)が存在するときに
は、FS_MOUNTがフラグ=1で呼出されて、FSDに、ボリ
ュームについてのクリーンなデータ(又は、他の再生可
能なデータ)を記憶させる。ダーティで再生不可能なデ
ータは保持されて、それがドライブ内にリマウントされ
るときに、そのデータがボリュームに書き込まれる。本
発明の目的に対して、クリーンデータは、変化されない
データであり、ダーティなデータは、変更されたデータ
である。
るときには、オペレーティングシステムのカーネルは、
フラグ=3でFSDのFS_MOUNTエントリを呼出し、FSDにフ
ォーマット作業の準備をさせる。フォーマットがボリュ
ームに関してファイルシステムを変化させるので、FSD
は、ボリュームがFSDの認識するボリュームでない場合
でもボリュームを受け入れる。もしフォーマット化が完
了できないならば(例えば、FSDがCD−ROMのみをサポー
トする場合)には、作業は失敗しうる。
アのカーネル媒体除去(Kernel−mediated removal of
media)を許容しないので、ボリュームがどのドライブ
にも存在しないときに、アンマウントリクエストが発行
されることは確実である。
る。FSH_DOVOLIOは、リクエストされたI/Oに対するデバ
イスドライバのリクエストバケットをフォーマット化
し、データ転送領域をロックし、デバイスドライバを呼
出し、そして、FSDに戻る前に、あらゆるエラーをハー
ドエラーデーモンに報告する。
tries)又はDOSERRORにより示されたアクションは、FSH
_DOVOLIOへの呼出し内に行われる。
て記載する。
Sec,iSec) unsigned short operation; unsigned short hVPB; char far* pData; unsigned short far* pcSec; unsigned long iSec; ここで、オペレーションビットマスク(operation bit
mask)は、実行されるべきread/read−by pass/write w
rite−bypass/verify−after−write/write−through及
びノーキャッシュ作業(no−cacheope−ration)を示
す。
示する。
られたエラーを表示する。
表示する。
とを表示する。
を表示する。
きことを表示する。
きではないことを表示する。
he(ノーキャッシュ)」ビットとの間の相違は、デバイ
スドライバが渡されるところのリクエストパケットの形
式においてである。「cacheb−ypass」では、コマンド
コード24、25又は26でパケットが得られ、「no cache」
では、システムは、コマンドコード4、8又は9に対す
る拡大されたパケット得る。
レス。
は、これは首尾良く転送されたセクタ数である。
ード。
ngthは有効ではない。
きには、デバイスドライバは信頼性をもって告げること
はできない。このことは、FS_MOUNTのコンテクスト内に
おいてのみ生じる。
常に長い。
FS_MOUNT呼出しの範囲内で呼出されるとき、FSH_DOVOLI
Oは、ボリュームの如何に係わらず、ドライブのボリュ
ームに適用される。しかしながら、FSDがFS_MOUNTの呼
出しを戻すまでは、ボリュームの認識が完了しないの
で、FSDは、ERROR_UNCERTAIN_MEDIAが戻されたいときに
は、特別な注意を払わなければならない。これは、ドラ
イブにおけるメディアを識別するのに、メディアが不確
実な試みを行ったことを示す。また、これは、FSDが認
識を試みたボリュームが除去されたことを示しうる。こ
の場合、FSDは、FS_MOUNTの呼出しで渡されたhVPBに取
付けられたあらゆる資源を解放し、かつERROR_UNCERTAI
N_MEDIAをFS_MOUNT呼出しに戻す。これは、マウントプ
ロセスを再スタートするように、ボリュームトラッキン
グ論理を仕向ける。
を制御するために、FSH_DOVOLIO2を呼出す。このルーチ
ンは、IOCTL作業に対するボリューム管理をサポートす
る。FSDに戻る前に、全てのエラーはハードエラーデー
モンに報告される。ハードエラーデーモンにより示され
るすべての再試行又はDOSERRORにより示されるアクショ
ンは、FSH_DOVOLIO2への呼出し内に行われる。
rm,cbParm,pData,cbData) unsigned long hdev; unsigned short sfn; unsigned short cat; unsigned short func; char far* pParm; unsigned short cbParm; char far* pData; unsigned short cbData; ここで、 hDev−VPBから得られたデバイスハンドル。
スタンス(open instance)からのシステムファイルの
数。このフィールドは、変化されない状態で、sfi self
sfnフィールドから渡されるべきである。どのオープン
インスタンスもこの呼出しに一致しないときには、この
フィールドは、0×FFFF cat−実行すべきIOCTLのカテゴリ。
ーコード。
性をもたない場合には、ERROR_INVALID_FUNCTIONが呼出
される。メディアが不確実になるときにはいつでも、新
しいVPBが割当てられる(メディアが変更されていない
ことがもはや確かではないことを、デバイスドライバは
認識している)。このVPBは、FS_MOUNT呼出しが戻るま
で、(メディアの再インサートにより)前に割当てられ
たVPBと共に崩壊することはない。しかしながら、前のV
PBは、メディア(このメディアは、該メディアが除去さ
れている間に書込むことができる)から更新されなけれ
ばならない幾つかのキャッシュデータをもつことができ
る。古いVPBについてのキャッシュ情報(cached inform
ation)を更新するため、FSH_FINDDUPHVPBは、FSDにボ
リュームのこの前の発生(this previous occurrence)
を見出させる。このボリュームについて他の古いVPBが
存在するならば、新しく生成されたVPBは、アンマウン
トされる。
の通りである。
ed short hVPB; unsigned short far* phVPB; ここで、 hVPB−見出すべきボリュームに対するハンドル。
させるかを指すポインタ。
コード。それ以外は、0。
立及び従属データを検索させる。FSルータはVPBハンド
ル内を通るので、個々のFSDsは、関連部分を指すポイン
タ内にハンドルをマッピングする。FSH_GETVOLPARMにつ
いての呼出しシーケンスは次の通りである: void far pascal FSH_GETVOLPARM(hVPB,ppVPB−fsi,pp
VPBfsd) unsigned short hVPB; struct vpfsi far* far* pVPBfsi; struct vpfsi far* far* pVPBfsd; ここで、 hVPB−関心のあるボリュームハンドル。
記憶されている位置。
が記憶されている位置。
D−DD連結は、FSD及びDDの独立方法により、オペレーテ
ィングシステムのカーネルを介して行われるので、あら
ゆるFSD、DDsがこのFSDからローディングされたボリュ
ームを含むあらゆるボリュームにアクセスできる。ボリ
ュームは、除去可能なメディアの特定のピース(片)、
又は区分できる任意のメディアの任意の区分にマッピン
グするので、多数のFSDsは、特定のハードディスク又は
他のメディアへのアクセスを有しうるということが企図
される。
る:それらは、ネームベース作業(named−based opera
tions)及びハンドルベース作業(handle−based opera
tions)である。ネームベース作業は一般にユーザによ
って開始され、システム100がファイルについてネーム
作業を行うことをユーザがシステム100に命令(instruc
t)する。ハンドルベース作業は、一般に、システムの
バックグラウンド作業中に開始される。通常、ハンドル
ベース作業は、ネームベース作業の後に行われる。
付きに基づくオペレーションを行っているときに、ルー
チン800が呼出される。名前付きオペレーションは、文
字ネームにより指示されたオペレーションである。即
ち、このオペレーションは、ファイル又はディレクトリ
のネームにより特定される。「Open file‘xxx'」は、
名前付きに基づくオペレーションの一例である。プロセ
ス802は、ネームをパーズ(parse)すべく呼出されて、
3つの変数、即ち、PathNameType、TCBThishVPB及びTCB
ThisFSCを戻す。このプロセス802については、第9図に
関連して詳細に説明する。(注、hはハンドルをいい、
TCBは、TCHThichVPBが現に関心をもっているVPBへのハ
ンドルでありそしてTCBThisFCHが関心のあるファイルシ
ステムを指すポインタであるようなスレッド制御ブロッ
ク(thread control block)をいう。)次に、項目804
は、プロセス802により戻された変数PathType、TchThis
hVPB及びTCBThisFCHに基づいて適当な機能に制御をルー
チング(route)する。UNC FSDが呼出されるユニバーサ
ルネーミングコンベンション(Universal Naming Conve
ntion、「UNC」)のグローバルネットワーク名を表示す
る「\\」で経路(path)が始まる場合には、制御は項
目806に渡される。ローカル装置が表示される場合に
は、制御が項目808に渡されて、カーネル内でリクエス
トが処理される。疑似装置又は遠隔ファイルが表示され
るときには、制御は項目810に渡されて、疑似装置又は
遠隔ファイルが取付けられた遠隔FSDに対するリクエス
トをルーチングする。名前付けされたパイプ(named pi
pe)が検出された場合には、制御は項目812に渡され
て、カーネル内で局所的な名前付けされたパイプコード
(local named pipe code)を呼出す。ローカルファイ
ルが表示される場合には、制御は項目814に渡される。
この項目814は、項目816におけるFSHDOVOLIOを呼出すこ
とによりボリュームへの読取り及び書込みを行うFSDに
おけるFSDワーカーである。FSHDO−VOLIOについては、
第11図に関連して更に詳細に説明する。
る。呼出しがあると、項目902は、現在のドライブ、現
在のディレクトリ及びネーム自体に基づいて、関心のあ
るネームを基準形(canonical form)に変形する。次
に、変数TCBTHISFSC、TCHThisVPB及びpathnamet−ypeが
下記のようにして決定される。デシジョン904は、ユー
ザのネームが「\\」で始まっているか否かを決定し
て、UNCネームが表示されているか否かを決定する。UNC
ネームが表示されていれば、制御が項目905に渡され
て、ここで、変数PathType、TchThishVPB及びTCBThisFC
Hが初期化され、ユーザのネームを適当な位置にルーチ
ングする。UNCネームが表示されていなければ、デシジ
ョン906は、関心をもつネームが、カーネルにより維持
された装置ネームリスト中のネームであるか否かを決定
する。装置のネームリストに載ったネームであるときに
は、デシジョン908は、それが疑似文字装置であるか否
かを決定する。疑似文字装置であれば、項目910は表示
されたように変数を設定する。疑似文字装置でないとき
は、制御は、表示されたように変数を設定する項目912
に渡される。
を探すことにより、そのネームが、名前付けされたパイ
プであるか否かを決定する。そのネームが名前付けされ
たパイプであるときは、項目916は、表示のように変数
を設定する。名前付けされたパイプでないときは、デシ
ジョン918は、そのネームがローカルドライブ又は遠隔
ドライブのパスネーム(pathname)を表示するか否かを
決定する。遠隔ドライブが表示されているときは、制御
は、表示されたように変数PathType、TchThishVPB及びT
CBThisFCHを設定する項目920に渡される。それ以外のと
きは、制御は、項目922に導かれ、ここでは、どのボリ
ュームから適当なデータを読取るかが呼出される。What
Volumeが戻ると、制御は、表示されたように変数PathT
ype、TchThishVPB及びTCBThisFCHを設定する項目924に
渡される。
に関するプロセス1000が呼出される。プロセス1000が呼
出されたときに、項目1002は、SFTエントリを検索す
る。SFTエントリ及びハンドルは、両方ともDosOpenによ
り設定される。次いで、TCBThisFSCが表示されたように
設定される。次に、項目1004は、FSCが指し示すファイ
ルシステムについて適合FSDワーカーを呼出す。hVPB
は、SFTエントリから次々に渡される。次いで、項目100
6は、項目1016を呼出し、必要に応じて項目1016を呼出
すことにより、呼出し者(caller)によりリクエストさ
れたあらゆるI/Oを実行する。
項目1102において呼出されると、hVPBが使用されて、ど
のようなボリュームがドライブにあり関心のあるボリュ
ームであるのかを決定する。次に、デシジョン1104は、
ドライブにおけるボリュームが関心のあるボリュームで
あるか否かを決定する。関心のあるボリュームであると
きは、項目1106が呼出されて、デバイスドライバが呼出
されかつ特定されたパラメータでI/Oを実行する。次に
デシジョン1108は、オペレーション中にメディアが不確
実に移行したか否かを決定する。不確実に移行していな
いときには、プロセスは項目1114に戻る。デシジョン11
08が、メディアは不確実ではないと決定するときには、
制御は項目1112に渡されて、ここでは、WhatVolumeが呼
出されてメディアを確実にする。次いで、制御はデシジ
ョン1104に戻る。ドライブにおけるボリュームが関心の
あるボリュームに一致しないときには、項目1110が呼出
されて、HardErrorが呼出され、ドライブに正しいボリ
ュームを置くことをユーザに知らせる。次に制御は上記
項目1112に渡される。
テムの資源の一例としてここに包含される。ここで、 付録IIは、本発明の教示に従ってサポートすることが期
待されるファイルシステムを移出インタフェース(expo
rted interfaces)のリストである。
り移出されるインタフェースのリストである。
ルシステムの一例の資源コードである。
いられる定義ファイル(definitions file)のリストで
ある。
ラメータを定義するヘッダファイルである。
クボリュームトラッキングに関する改善された方法及び
システムが説明された。本発明の教示によれば、コンピ
ュータシステムは、リンクされたリストで編成された複
数のファイルシステムドライバを備える。コンピュータ
システムは、更に、省略時ファイルシステムドライバを
備える。コンピュータシステムに新しいボリュームが与
えられたとき、又はメディアが不確実になったときには
いつでも、コンピュータシステムは、ファイルシステム
ドライバがボリュームを受け入れるまで、自動的かつダ
イナミックにファイルシステムドライバを呼び出す。ど
のファイルシステムドライバもボリュームを受け入れな
い場合には、省略時ファイルシステムがマウントされ
る。従って、当業者には、本発明の他の用法及び変更が
可能であり、そのようなあらゆる用法及び変更は本発明
の範囲及び精神に含まれるものである。
タシステムのブロックダイアグラムである。 第1B図は、第1A図のコンピュータシステムの作業及びフ
ァイルシステムアーキテクチュアを示すブロックダイヤ
グラムである。 第2A図は、MS−DOSオペレーティングシステムのファイ
ルシステム構成の詳細を示すブロックダイアグラムであ
る。 第2B図は、本発明の設置可能なファイルシステムのファ
イルシステム構成の詳細を示すブロックダイヤグラムで
ある。 第3図は、第2B図のファイルシステムのより詳細なブロ
ックダイヤグラムである。 第4図は、FATファイルシステムのディスクフォーマッ
トを示すブロックダイヤグラムである。 第5A図〜第5H図は、本発明に使用できるように構成され
た設置可能なファイルシステムのディスクフォーマット
を示すブロックダイヤグラムである。 第6図は、本発明のマウントプロセスの全作業の詳細を
示すフローチャートである。 第7図は、本発明の設置可能なファイルシステムの構成
を示すブロックダイヤグラムである。 第8図は、本発明の原理に従がうネームベース作業の実
行の詳細を示すフローチャートである。 第9図は、ネームベース作業プロセスにより呼出されう
パーシングプロセスを示すフローチャートである。 第10図は、本発明の原理に従がうハンドルベース作業の
実行を示すフローチャートである。 第11図は、第8図及び第10図に関連して説明したプロセ
スにより呼出されるFSH_DoVolloプロセスを示すフロー
チャートである。 100……コンピュータシステム、 102……マイクロプロセッサ、 104……ランダムアクセスメモリ、 106……リードオンリメモリ、 108……マウス、 110……キーボード、 112……ディスプレイ、 114……プリンタ、 116……フロッピディスクドライブ、 120……ハードディスクドライブ、 122……CD−ROMドライブ、 124……テープドライブ、 126……ネットワーク。
Claims (16)
- 【請求項1】データ記憶装置とコンピュータシステムと
の通信に用いるファイルシステムドライバを装填する方
法であって、前記方法は、 (a)省略時ファイルシステムドライバモジュールを含
むコンピュータオペレーティングシステムに複数のファ
イルシステムドライバモジュールを含み、 前記ファイルシステムドライバモジュールが順次に編成
され、前記複数のファイルシステムドライバのそれぞれ
及び前記省略時ファイルシステムモジュールが識別子と
対応付けられており、 (b)データ記憶装置を前記コンピュータシステムに結
合し、 (c)前記データ記憶装置での媒体の変化又は最初に前
記コンピュータシステムが前記データ記憶装置をアクセ
スするときを検出し、 (d)ロードされたファイルシステムドライバモジュー
ルとして前記複数のファイルシステムドライバモジュー
ルの一つを識別し、 (e)前記媒体からボリューム識別子を読み取り、前記
ボリューム識別子の位置が前記ロードされたファイルシ
ステムドライバモジュールによって特定され、 (f)前記媒体から読み取られたボリューム識別子を前
記ロードされたファイルシステムドライバモジュールに
対応付けられた識別子と比較し、 (g)もし前記識別子が一致するならば、前記ロードさ
れたファイルシステムドライバモジュールを前記媒体に
対応付け、 (h)もし前記識別子が一致しないならば、前記ロード
されたファイルシステムドライバモジュールとして前記
複数のファイルシステムドライバモジュールのリストの
中の次のファイルシステムドライバモジュールを識別
し、 (i)前記リストの中の前記複数のファイルシステムド
ライバモジュールのそれぞれがテストされるまで又は一
致が見出されるまで前記段階(e)へ戻り、 (j)もし一致が見出されないならば、前記省略時ファ
イルシステムドライバモジュールを前記媒体に対応付け
る段階を具備することを特徴とする方法。 - 【請求項2】ファイルシステムドライバを記憶媒体に対
応付けるべくコンピュータシステムを動作する方法であ
って、前記コンピュータシステムは、少なくとも第1及
び第2のファイルシステムドライバを含んでおり、もし
前記ファイルシステムドライバが前記記憶媒体を認識す
るならば、各前記第1及び第2のファイルシステムドラ
イバは、ある一定の媒体信号を供給すべく装填指令に応
答するように構成されており、前記方法は、 (a)前記記録媒体を読み出すのに必要な前記記憶媒体
の基礎的特性を識別すべく一時的なボリュームパラメー
タブロックを生成し、前記ボリュームパラメータブロッ
クを識別すべくブロックポインタを供給し、 (b)前記第1のファイルシステムドライバへ前記装填
指令及び前記ブロックポインタを供給し、ある一定の媒
体信号について前記第1のファイルシステムドライバを
監視し、そして、もし前記ある一定の媒体信号が供給さ
れたならば、前記第1のファイルシステムドライバを前
記記録媒体に対応付け、もし前記ある一定の媒体信号が
供給されなければ、段階(c)を実行し、 (c)前記第2のファイルシステムドライバへ前記装填
指令及び前記ブロックポインタを供給し、ある一定の媒
体信号について前記第2のファイルシステムドライバを
監視し、そして、もし前記ある一定の媒体信号が供給さ
れたならば、前記第2のファイルシステムドライバを前
記記憶媒体に対応付ける段階を具備することを特徴とす
る方法。 - 【請求項3】前記方法は、更に、 (e)前記記憶媒体に対応付けられたファイルシステム
を識別すべく、前記記憶媒体の一時的なボリュームパラ
メータブロックにファイルシステムドライバ識別ワード
を記憶し、 (f)前記一時的なボリュームパラメータブロックを前
記記憶媒体に対応付け、それによって前記ファイルシス
テムドライバ識別ワードにより識別された前記ファイル
システムドライバを前記記憶媒体に対応付ける段階を備
えていることを特徴とする請求項2に記載の方法。 - 【請求項4】予め識別された媒体について複数の永久的
なボリュームパラメータブロックが存在する請求項2に
記載の方法であって、前記方法は、更に、 (g)それが記述する前記記憶媒体が前記ファイルシス
テムドライバに対応付けられた後、前記一時的なボリュ
ームパラメータブロックに前記記憶媒体の付加的な特性
を供給し、 (h)いずれかの永久的なボリュームパラメータブロッ
クが前記一時的なボリュームパラメータブロックと同一
の記憶媒体を記述するかどうかを決定すべく、前記一時
的なボリュームパラメータブロックの前記予め決められ
た特性及び前記付加的な特性を前記複数の永久的なボリ
ュームパラメータブロックの特性と比較し、もしそうで
あれば、前記永久的なボリュームパラメータブロックの
情報を更新しかつ前記一時的なボリュームパラメータブ
ロックを削除し、もしそうでなければ、前記一時的なボ
リュームパラメータブロックを前記永久的なボリューム
パラメータブロックに変換する段階を具備することを特
徴とする方法。 - 【請求項5】前記コンピュータシステムは、更に、取り
外し可能な記憶媒体を受け取るためのディスクドライブ
を含んでおり、前記ディスクドライブは、前記ディスク
ドライブの記憶媒体が変更されたことを示すラッチ信号
を供給すべく構成されている請求項2に記載の方法であ
って、前記方法は、更に、 (i)前記段階(a)から(c)を実行すべく前記ラッ
チ信号に応答する段階を具備することを特徴とする方
法。 - 【請求項6】前記方法は、更に、 (j)前記記憶媒体のいずれのアクセスより以前に、記
憶媒体への連続するアクセスの間で経過した時間間隔を
決定し、もし時間間隔が予め決められた最大間隔を越え
たならば、前記段階(a)から(c)を実行することを
特徴とする請求項2に記載の方法。 - 【請求項7】第1及び第2のファイルシステムに従って
書式化された記憶媒体とインタフェースするべくコンピ
ュータシステムを動作する方法であって、前記方法は、 (a)コンピュータを第1及び第2のファイルシステム
に従って書式化された記憶媒体とインタフェースするた
めの第1及び第2のファイルシステムドライバをそれぞ
れ供給し、 各前記第1及び第2のファイルシステムドライバは、前
記記憶媒体を調べるために、かつ前記ファイルシステム
ドライバが前記記憶媒体を認識するならばある特定の媒
体信号を供給するために、装填指令に応答するように構
成されており、 (b)前記記憶媒体を調べるために前記第1及び第2の
ファイルシステムドライバを許容すべく前記記憶媒体の
基本的特性を識別すべく一時的なボリュームパラメータ
ブロックを生成し、 (c)前記第1及び第2のファイルシステムドライバに
装填指令及びブロックポインタを逐次供給し、ある一定
の媒体信号について前記第1及び第2のファイルシステ
ムドライバを監視し、もし前記ある一定の媒体信号が前
記第1のファイルシステムドライバによって供給された
ならば、前記第1のファイルシステムドライバを前記記
憶媒体に対応付け、もし前記ある一定の媒体信号が前記
第2のファイルシステムドライバによって供給されたな
らば、前記第2のファイルシステムドライバを前記記憶
媒体に対応付け、そして (d)前記記憶媒体を前記コンピュータシステムとイン
タフェースするべく、前記記憶媒体に対応付けられた前
記ファイルシステムドライバを用いる段階を具備するこ
とを特徴とする方法。 - 【請求項8】前記コンピュータシステムは、更に、第3
のファイルシステムドライバを含んでおり、前記第1及
び第2のファイルシステムドライバに装填指令及びブロ
ックポインタを供給する前記段階(c)は、更に、 (e)もし前記ある一定の媒体信号が前記第1及び第2
のファイルシステムドライバによって供給されなかった
ならば、前記第3のファイルシステムドライバを前記記
憶媒体に対応付ける副段階を具備することを特徴とする
請求項7に記載の方法。 - 【請求項9】前記方法は、更に、 (f)前記記憶媒体に対応付けられたファイルシステム
を識別すべく前記記憶媒体の一時的なボリュームパラメ
ータブロックにファイルシステムドライバ識別ワードを
記憶し、 (g)前記一時的なボリュームパラメータブロックを前
記記憶媒体に対応付け、それによって前記ファイルシス
テムドライバ識別ワードによって識別されたファイルシ
ステムドライバを前記記憶媒体に対応付ける段階を具備
することを特徴とする請求項8に記載の方法。 - 【請求項10】予め識別された媒体について複数の永久
的なボリュームパラメータブロックが存在する請求項8
に記載の方法であって、前記方法は、更に、 (h)それが記述する前記記憶媒体がファイルシステム
ドライバに対応付けられた後、前記記憶媒体の付加的な
特性を前記一時的なボリュームパラメータブロックに供
給し、 (i)いずれかの永久的なボリュームパラメータブロッ
クが前記一時的なボリュームパラメータブロックと同一
の記憶媒体を記述するかどうかを決定すべく、前記一時
的なボリュームパラメータブロックの前記予め決められ
た特性及び前記付加的な特性を前記複数の永久的なボリ
ュームパラメータブロックの特性と比較し、同一の記憶
媒体を記述する場合には、前記永久的なボリュームパラ
メータブロックを更新しかつ前記一時的なボリュームパ
ラメータブロックを削除し、同一の記憶媒体を記述しな
い場合には、前記一時的なボリュームパラメータブロッ
クを前記永久的なボリュームパラメータブロックに変換
する段階を具備することを特徴とする方法。 - 【請求項11】第1及び第2のファイルシステムに従っ
て書式化された記憶媒体とインタフェースするコンピュ
ータシステムであって、前記コンピュータシステムの動
作を制御するデータプロセッサ手段と、第1及び第2の
ファイルシステムドライバを記憶する第1の記憶手段
と、装填ルーチンを記憶する第2の記憶手段とを備えて
おり、各前記第1及び第2のファイスシステムドライバ
は、前記データプロセッサ手段を前記第1及び第2のフ
ァイルシステムに従って書式化された記憶媒体とインタ
フェースするための命令をそれぞれ含んでおり、各前記
第1及び第2のファイルシステムドライバは、更に、装
填指令に応答して前記記憶媒体を読み出すべく、かつ、
もし前記ファイルシステムドライバが前記記憶媒体を認
識するならば、ある一定の媒体信号を提供すべく、前記
データプロセッサ手段を制御する装填命令を含んでお
り、前記装填ルーチンは、前記第1の記憶手段の前記第
1及び第2のファイルシステムドライバの装填命令を連
続的にアクセスすべく、もし前記ある特定の媒体信号が
前記第1のファイルシステムドライバによって供給され
るならば前記第1のファイルシステムドライバを前記記
憶媒体に対応付けるべく、そしてもし前記ある特定の媒
体信号が前記第2のファイルシステムドライバによって
供給されるならば前記第2のファイルシステムドライバ
を前記記憶媒体に対応付けるべく前記データプロセッサ
手段を制御する命令を含むことを特徴とするコンピュー
タシステム。 - 【請求項12】前記コンピュータシステムは、更に、取
り外し可能な記憶媒体を受け取るディスクドライブ手段
を備えており、前記ディスクドライブ手段は、当該ディ
スクドライブでの記憶媒体が変更されたことを示すため
のラッチ信号を供給すべく構成されており、 前記データプロセッサ手段は、前記第2の記憶手段の装
填ルーチンをアクセスすべく前記ラッチ信号に応答する
ことを特徴とする請求項11に記載のコンピュータシステ
ム。 - 【請求項13】第1及び第2のファイルシステムに従っ
て書式化された記憶媒体とインタフェースすべくコンピ
ュータシステムを動作する方法であって、前記方法は、
第1及び第2のファイルシステムドライバを供給し、前
記第1及び第2のファイルシステムドライバは、前記第
1及び第2のファイルシステムにそれぞれ対応付けられ
ており、各前記第1及び第2のファイルシステムドライ
バは、記憶媒体が、前記ファイルシステムドライバが対
応付けられているファイルシステムに従って書式化され
たかどうかを決定するための命名の集合を含んでおり、
記憶媒体が、前記第1及び第2のファイルシステムドラ
イバにそれぞれ対応付けられた、前記第1及び第2のフ
ァイルシステムに従って書式化されたかどうかを決定す
べく、前記第1及び第2のファイルシステムドライバの
前記命令の集合を逐次実行し、もし前記記憶媒体が前記
第1のファイルシステムに従って書式化されたならば、
前記第1のファイルシステムドライバを前記記憶媒体に
対応付け、もし前記記憶媒体が前記第2のファイルシス
テムに従って書式化されたならば、前記第2のファイル
システムドライバを前記記憶媒体に対応付ける段階を具
備することを特徴とする方法。 - 【請求項14】前記方法は、更に、第3のファイルシス
テムに対応付けられた第3のファイルシステムドライバ
を供給し、もし前記記憶媒体が前記第1及び第2のファ
イルシステムに従って書式化されないならば、前記第3
のファイルシステムドライバを前記記憶媒体に対応付け
る段階を具備することを特徴とする請求項13に記載の方
法。 - 【請求項15】前記コンピュータシステムは、更に、取
り外し可能な記憶媒体を受け取るディスクドライブを含
んでおり、前記ディスクドライブは、当該ディスクドラ
イブでの記憶媒体が変更されたことを示すためのラッチ
信号を供給すべく構成されており、前記方法は、更に、
前記ディスクドライブでの前記記憶媒体が、前記第1又
は第2のファイルシステムに従って書式化されたかどう
かを決定するラッチ信号に応答する段階を具備すること
を特徴とする請求項13に記載の方法。 - 【請求項16】前記方法は、更に、前記記憶媒体のいず
れのアクセスより以前に、当該記憶媒体への連続するア
クセスの間で経過した時間間隔を決定し、もし時間間隔
が予め決められた最大間隔を越えたならば、前記ティス
クドライブでの記憶媒体が前記第1又は第2のファイル
システムに従って書式化されたかどうかを決定する段階
を具備することを特徴とする請求項13に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/400,531 US5363487A (en) | 1989-08-29 | 1989-08-29 | Method and system for dynamic volume tracking in an installable file system |
US400531 | 1989-08-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03171238A JPH03171238A (ja) | 1991-07-24 |
JPH07104808B2 true JPH07104808B2 (ja) | 1995-11-13 |
Family
ID=23583983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2227905A Expired - Lifetime JPH07104808B2 (ja) | 1989-08-29 | 1990-08-29 | 設置可能なファイルシステムにおいてダイナミックボリュームトラッキングを行う方法及び装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US5363487A (ja) |
EP (1) | EP0415346B1 (ja) |
JP (1) | JPH07104808B2 (ja) |
AU (1) | AU631452B2 (ja) |
CA (1) | CA2024125C (ja) |
DE (1) | DE69032517T2 (ja) |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0618540B1 (en) * | 1993-04-01 | 2001-12-12 | Microsoft Corporation | Common name space for long and short filenames |
US6286013B1 (en) * | 1993-04-01 | 2001-09-04 | Microsoft Corporation | Method and system for providing a common name space for long and short file names in an operating system |
US5692128A (en) * | 1993-06-23 | 1997-11-25 | Microtest, Inc. | Computer network with reliable and efficient removable media services |
JP3197403B2 (ja) * | 1993-09-07 | 2001-08-13 | 富士通株式会社 | 計算機システムのアプリケーションプログラム障害発生時の制御方法 |
JP3315779B2 (ja) * | 1993-11-16 | 2002-08-19 | 富士通株式会社 | ディスク装置間のファイル転送装置およびファイル転送方法 |
JP3796551B2 (ja) * | 1994-04-25 | 2006-07-12 | ソニー株式会社 | 情報記憶処理装置 |
US5574903A (en) * | 1994-05-13 | 1996-11-12 | Apple Computer, Inc. | Method and apparatus for handling request regarding information stored in a file system |
US5668970A (en) * | 1994-06-20 | 1997-09-16 | Cd Rom, U.S.A., Inc. | Method and apparatus for generating a file allocation table for a storage medium with no file allocation table using file storage information |
US5624265A (en) * | 1994-07-01 | 1997-04-29 | Tv Interactive Data Corporation | Printed publication remote contol for accessing interactive media |
US5711672A (en) * | 1994-07-01 | 1998-01-27 | Tv Interactive Data Corporation | Method for automatically starting execution and ending execution of a process in a host device based on insertion and removal of a storage media into the host device |
JPH0830397A (ja) * | 1994-07-20 | 1996-02-02 | Sony Corp | 情報記憶装置 |
US5590320A (en) * | 1994-09-14 | 1996-12-31 | Smart Storage, Inc. | Computer file directory system |
US5689701A (en) * | 1994-12-14 | 1997-11-18 | International Business Machines Corporation | System and method for providing compatibility between distributed file system namespaces and operating system pathname syntax |
US5930831A (en) * | 1995-02-23 | 1999-07-27 | Powerquest Corporation | Partition manipulation architecture supporting multiple file systems |
US6108759A (en) * | 1995-02-23 | 2000-08-22 | Powerquest Corporation | Manipulation of partitions holding advanced file systems |
US5706472A (en) * | 1995-02-23 | 1998-01-06 | Powerquest Corporation | Method for manipulating disk partitions |
US5675769A (en) * | 1995-02-23 | 1997-10-07 | Powerquest Corporation | Method for manipulating disk partitions |
US5740469A (en) * | 1995-04-24 | 1998-04-14 | Motorola Inc. | Apparatus for dynamically reading/writing multiple object file formats through use of object code readers/writers interfacing with generalized object file format interface and applications programmers' interface |
US5715455A (en) * | 1995-05-18 | 1998-02-03 | International Business Machines Corporation | Apparatus and method for storing file allocation table efficiently in memory |
US5680303A (en) * | 1995-06-07 | 1997-10-21 | Compuserve Incorporated | Communication device sharing on a local area network |
US5727205A (en) * | 1995-06-28 | 1998-03-10 | Canon Information Systems, Inc. | File installation system for displaying bitmaps during file installation |
US5633843A (en) * | 1995-07-24 | 1997-05-27 | International Business Machines, Corporation | User friendly compact disk (CD) read only memory (ROM) player |
US5778383A (en) * | 1995-08-08 | 1998-07-07 | Apple Computer, Inc. | System for dynamically caching and constructing software resource tables |
US5923876A (en) * | 1995-08-24 | 1999-07-13 | Compaq Computer Corp. | Disk fault prediction system |
US5819276A (en) | 1995-10-06 | 1998-10-06 | International Business Machines Corporation | Method for supporting multiple file-systems in file input/output operations |
US5721948A (en) * | 1996-02-29 | 1998-02-24 | Sun Microsystems, Inc. | System for creating mount command from verified programmable options compatible with file system types to attach media file system to an existing file system |
US5983283A (en) * | 1996-04-15 | 1999-11-09 | Sun Microsystems, Inc. | Storage manager independent configuration interface translator and method |
US5668996A (en) * | 1996-04-29 | 1997-09-16 | Microsoft Corporation | Rendering CD redbook audio using alternative storage locations and formats |
US6119118A (en) * | 1996-05-10 | 2000-09-12 | Apple Computer, Inc. | Method and system for extending file system metadata |
US5673382A (en) * | 1996-05-30 | 1997-09-30 | International Business Machines Corporation | Automated management of off-site storage volumes for disaster recovery |
US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
US5999972A (en) * | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US6304893B1 (en) | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US5987245A (en) * | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
US6038590A (en) * | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
US5848246A (en) * | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
US5832213A (en) * | 1996-07-03 | 1998-11-03 | Sun Microsystems, Inc. | Flexible mounting and unmounting of user removable media |
US5991542A (en) * | 1996-09-13 | 1999-11-23 | Apple Computer, Inc. | Storage volume handling system which utilizes disk images |
US5832501A (en) * | 1996-12-31 | 1998-11-03 | Apple Computer, Inc. | Method and system for filtering file manager attribute values |
US5956745A (en) * | 1997-04-23 | 1999-09-21 | Novell, Inc. | System and method for automatically resizing a disk drive volume |
US6119212A (en) * | 1997-04-23 | 2000-09-12 | Advanced Micro Devices, Inc. | Root size decrease on a UNIX based computer system |
US5991777A (en) | 1997-09-19 | 1999-11-23 | Microsoft Corporation | System and method for performing defined actions when grafting the name space of one storage medium into the name space of another storage medium |
US6125373A (en) * | 1997-09-19 | 2000-09-26 | Microsoft Corporation | Identifying a driver that is an owner of an active mount point |
US6226711B1 (en) | 1998-06-09 | 2001-05-01 | International Business Machines Corporation | Method, apparatus and frame format to prevent data loss in a removable media library system due to incorrect configuration of devices |
US6732303B1 (en) * | 1998-10-22 | 2004-05-04 | Matsushita Electric Industrial Co., Ltd. | Information recording medium, and method and apparatus for managing defect thereof |
ES2618230T3 (es) * | 1998-11-16 | 2017-06-21 | Microsoft Technology Licensing, Llc | Procedimiento de ejecución de una aplicación sin estar instalada |
US7296060B2 (en) * | 1998-12-24 | 2007-11-13 | Intel Corporation | System and method for automatically identifying and attaching related documents |
US6578054B1 (en) * | 1999-10-04 | 2003-06-10 | Microsoft Corporation | Method and system for supporting off-line mode of operation and synchronization using resource state information |
US7167867B1 (en) * | 1999-10-05 | 2007-01-23 | Emc Corporation | Self-describing file system |
GB0102515D0 (en) * | 2001-01-31 | 2001-03-21 | Hewlett Packard Co | Network adapter management |
US6850929B2 (en) * | 2001-03-08 | 2005-02-01 | International Business Machines Corporation | System and method for managing file system extended attributes |
US6988101B2 (en) * | 2001-05-31 | 2006-01-17 | International Business Machines Corporation | Method, system, and computer program product for providing an extensible file system for accessing a foreign file system from a local data processing system |
US7640582B2 (en) | 2003-04-16 | 2009-12-29 | Silicon Graphics International | Clustered filesystem for mix of trusted and untrusted nodes |
US20040139125A1 (en) * | 2001-06-05 | 2004-07-15 | Roger Strassburg | Snapshot copy of data volume during data access |
US6757695B1 (en) * | 2001-08-09 | 2004-06-29 | Network Appliance, Inc. | System and method for mounting and unmounting storage volumes in a network storage environment |
US6697924B2 (en) | 2001-10-05 | 2004-02-24 | International Business Machines Corporation | Storage area network methods and apparatus for identifying fiber channel devices in kernel mode |
US6909910B2 (en) | 2002-02-01 | 2005-06-21 | Microsoft Corporation | Method and system for managing changes to a contact database |
US7917466B2 (en) * | 2002-02-21 | 2011-03-29 | Hewlett-Packard Development Company, L.P. | Automatically processing digital assets of a digital camera |
US20040024856A1 (en) * | 2002-07-30 | 2004-02-05 | Gary Gere | Method and system for a services environment management engine |
US8001088B2 (en) * | 2003-04-04 | 2011-08-16 | Avid Technology, Inc. | Indexing media files in a distributed, multi-user system for managing and editing digital media |
US7644376B2 (en) | 2003-10-23 | 2010-01-05 | Microsoft Corporation | Flexible architecture for notifying applications of state changes |
US7698744B2 (en) * | 2004-12-03 | 2010-04-13 | Whitecell Software Inc. | Secure system for allowing the execution of authorized computer program code |
US9639554B2 (en) * | 2004-12-17 | 2017-05-02 | Microsoft Technology Licensing, Llc | Extensible file system |
US7873596B2 (en) | 2006-05-23 | 2011-01-18 | Microsoft Corporation | Extending cluster allocations in an extensible file system |
US8321439B2 (en) | 2004-12-17 | 2012-11-27 | Microsoft Corporation | Quick filename lookup using name hash |
US8606830B2 (en) | 2004-12-17 | 2013-12-10 | Microsoft Corporation | Contiguous file allocation in an extensible file system |
US8290901B2 (en) * | 2005-03-07 | 2012-10-16 | Novell, Inc. | Techniques for remote resource mounting |
US7640292B1 (en) * | 2005-04-29 | 2009-12-29 | Netapp, Inc. | Physical server to virtual server migration |
US9971776B1 (en) * | 2006-06-29 | 2018-05-15 | Veritas Technologies Llc | Method and apparatus for extending functionality of an operating system |
JP5033095B2 (ja) * | 2008-09-29 | 2012-09-26 | 株式会社日立ソリューションズ | ストレージ管理媒介サーバ及びその制御方法 |
US8234316B2 (en) * | 2008-09-30 | 2012-07-31 | Microsoft Corporation | Nested file system support |
US8200895B2 (en) * | 2009-05-04 | 2012-06-12 | Microsoft Corporation | File system recognition structure |
US8589913B2 (en) * | 2009-10-14 | 2013-11-19 | Vmware, Inc. | Tracking block-level writes |
US9558074B2 (en) * | 2010-06-11 | 2017-01-31 | Quantum Corporation | Data replica control |
US8984032B2 (en) * | 2011-12-15 | 2015-03-17 | Sandisk Technologies Inc. | Method and system for providing storage device file location information |
US20170083630A1 (en) * | 2015-09-21 | 2017-03-23 | Egemen Tas | Method to virtualize large files in a sandbox |
US9542277B2 (en) * | 2014-09-30 | 2017-01-10 | International Business Machines Corporation | High availability protection for asynchronous disaster recovery |
US10496607B2 (en) * | 2016-04-01 | 2019-12-03 | Tuxera Inc. | Systems and methods for enabling modifications of multiple data objects within a file system volume |
US10307649B1 (en) | 2017-12-06 | 2019-06-04 | Acushnet Company | Multi-material iron golf club head |
JP7362349B2 (ja) * | 2019-08-23 | 2023-10-17 | キヤノン株式会社 | 制御装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4158865A (en) * | 1975-01-24 | 1979-06-19 | Olympus Optical Company Ltd. | Automatic switching device for cassette tape recorder |
DE2938937C2 (de) * | 1978-09-27 | 1985-12-12 | Hitachi, Ltd., Tokio/Tokyo | Einstellvorrichtung und Verfahren für ein Magnetband-Aufzeichungs- und Wiedergabegerät |
JPS5570915A (en) * | 1978-11-24 | 1980-05-28 | Pioneer Electronic Corp | Detection method for optimum recording bias for magnetic recording and reproducing unit |
US4589063A (en) * | 1983-08-04 | 1986-05-13 | Fortune Systems Corporation | Data processing system having automatic configuration |
US4701848A (en) * | 1984-11-19 | 1987-10-20 | Clyde, Inc. | System for effectively paralleling computer terminal devices |
US4974151A (en) * | 1985-02-21 | 1990-11-27 | International Business Machines Corporation | Configuration capability for devices in an open system having the capability of adding or changing devices by user commands |
US4649479A (en) * | 1985-02-28 | 1987-03-10 | International Business Machines Corp. | Device driver and adapter binding technique |
US4912627A (en) * | 1985-08-14 | 1990-03-27 | Apple Computer, Inc. | Method for storing a second number as a command address of a first peripheral device and a third number as a command address of a second peripheral device |
US4787028A (en) * | 1985-09-03 | 1988-11-22 | Ncr Corporation | Multicommunication protocol controller |
US4825354A (en) * | 1985-11-12 | 1989-04-25 | American Telephone And Telegraph Company, At&T Bell Laboratories | Method of file access in a distributed processing computer network |
US4975829A (en) * | 1986-09-22 | 1990-12-04 | At&T Bell Laboratories | Communication interface protocol |
-
1989
- 1989-08-29 US US07/400,531 patent/US5363487A/en not_active Expired - Lifetime
-
1990
- 1990-08-28 DE DE69032517T patent/DE69032517T2/de not_active Expired - Lifetime
- 1990-08-28 CA CA002024125A patent/CA2024125C/en not_active Expired - Lifetime
- 1990-08-28 EP EP90116473A patent/EP0415346B1/en not_active Expired - Lifetime
- 1990-08-29 JP JP2227905A patent/JPH07104808B2/ja not_active Expired - Lifetime
- 1990-08-29 AU AU61913/90A patent/AU631452B2/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
AU631452B2 (en) | 1992-11-26 |
EP0415346B1 (en) | 1998-07-29 |
CA2024125A1 (en) | 1991-03-01 |
DE69032517T2 (de) | 1998-12-10 |
AU6191390A (en) | 1991-03-07 |
CA2024125C (en) | 1995-11-14 |
DE69032517D1 (de) | 1998-09-03 |
EP0415346A2 (en) | 1991-03-06 |
JPH03171238A (ja) | 1991-07-24 |
EP0415346A3 (en) | 1992-10-21 |
US5363487A (en) | 1994-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2024125C (en) | Dynamic volume tracking in an installable file system | |
US5608901A (en) | Method and system for improving the contiguity of sectors of a file | |
US6792518B2 (en) | Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies | |
US6185575B1 (en) | In-place disk partition canonization and storage optimization | |
US6934822B2 (en) | Organization of multiple snapshot copies in a data storage system | |
US6957362B2 (en) | Instantaneous restoration of a production copy from a snapshot copy in a data storage system | |
EP1918836B1 (en) | Apparatus and method for a hardware-based file system | |
US7363540B2 (en) | Transaction-safe FAT file system improvements | |
US5261088A (en) | Managing locality in space reuse in a shadow written B-tree via interior node free space list | |
US7680836B2 (en) | Systems and methods for a snapshot of data | |
US8055864B2 (en) | Efficient hierarchical storage management of a file system with snapshots | |
US7882071B2 (en) | Systems and methods for a snapshot of data | |
US7680842B2 (en) | Systems and methods for a snapshot of data | |
US8296264B1 (en) | Method and system for file-level continuous data protection | |
US6223269B1 (en) | Stacked mapped storage system | |
KR100317691B1 (ko) | 로그 구조화 목표 저장장치를 사전에 구성하여 볼륨을 효율적으로 복사하는 방법 및 장치 | |
US20110082992A1 (en) | Communication-link-attached persistent memory system | |
US20080046432A1 (en) | Systems and methods for a snapshot of data | |
US7356493B2 (en) | Apparatus and method for passing information between catalogs in a computer operating system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071113 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081113 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091113 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091113 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101113 Year of fee payment: 15 |
|
EXPY | Cancellation because of completion of term |