JP2005050359A - 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム - Google Patents

圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム Download PDF

Info

Publication number
JP2005050359A
JP2005050359A JP2004234624A JP2004234624A JP2005050359A JP 2005050359 A JP2005050359 A JP 2005050359A JP 2004234624 A JP2004234624 A JP 2004234624A JP 2004234624 A JP2004234624 A JP 2004234624A JP 2005050359 A JP2005050359 A JP 2005050359A
Authority
JP
Japan
Prior art keywords
drive
file
volume
function
compression system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004234624A
Other languages
English (en)
Other versions
JP3920882B2 (ja
Inventor
Benjamin W Slivka
ダブリュー スリヴカ ベンジャミン
Iii Charles A Strouss
エイ ストルース ザ サード チャールズ
Scott D Quinn
ディー クウィン スコット
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005050359A publication Critical patent/JP2005050359A/ja
Application granted granted Critical
Publication of JP3920882B2 publication Critical patent/JP3920882B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システムを提供する。
【解決手段】 非標準デバイス・ドライバをインストールするときに、非標準デバイスに予定されたドライブ文字が割り当てられることを確実にするために、先にインストールされた圧縮ボリュームに割り当てられたドライブ文字は、再割り当てされる。また、圧縮システムをインストールするときに、未決定搭載リストが、まだ搭載できないそれらの圧縮ボリュームのために保持される。各非標準デバイス・ドライバがインストールされた後に、この未決定搭載リストがチェックされ、どの圧縮ボリュームを搭載できるかが決定される。非標準デバイス・ドライバがインストールされるときに、ドライブ文字が割り当てられる。ドライブ文字が、予定されるドライブ文字でないならば、ドライブ文字の割り当てスキームが、そのドライブ文字を再割り当てするために提供される。
【選択図】 図3

Description

(産業上の利用分野)
この発明は、一般に、デバイス・ドライバを管理するためのコンピュータによる方法およびコンピュータ・システムに関し、具体的には、圧縮システムをオペレーティング・システムと統合するためのコンピュータによる方法およびコンピュータ・システムに関する。
経験則として、コンピュータ・システムのユーザは、補助記憶スペースをいつかは使い果たしてしまう。したがって、補助記憶ボリュームの記憶容量を増加させる新たな方法が常に望まれている。ボリュームの記憶容量を増加させる通常の方法の一つとして、そのボリュームから不要なデータを消去するように、オペレーティング・システムにマニュアルで指示する方法が取られる。これにより、新たなデータ用の空きスペースができる。この方法は、ユーザがどのデータを消去すべきかを慌てて決定した場合に、後にその決定を後悔することがよくあるので、望ましい方法ではない。また、たまに、ボリューム上の全データが重要な場合があり、この場合に、消去の決定が妨げられる。
ファイル・ベースのボリュームの記憶容量を増加させるもう一つの方法として、個々のファイルを圧縮し、圧縮されたファイルをボリュームに記憶する方法がある。この方法によると、ユーザがファイルを圧縮して記憶スペースを節約しなければならず、また、ファイルの使用前には、ユーザがファイルを伸張しなければならないことが要求される。この点が、この方法の好ましくない点である。
さらに、ファイル・ベースのボリュームの記憶容量を効果的に増加させるもう一つの方法として、ファイルを動的に圧縮し、圧縮されたファイルを記憶し、それらが取り出されたときにこの圧縮ファイルを伸張する方法がある。この方法を用いる圧縮システムは、一般に、オペレーティング・システムに追加される追加パッケージの形を採用している。これらの圧縮システムは、一般に、割り当てられたドライブ文字をもつデバイス・ドライバとしてインストールされる。圧縮システムは、一般に、圧縮されたファイルを「圧縮ボリューム」に記憶する。この圧縮ボリュームは、他のファイルまたはディレクトリとともにホスト・ボリュームに記憶される単一のファイル(「圧縮ボリューム・ファイル」)である。圧縮ボリュームは、圧縮ボリューム・ファイルをアクセスするためのそれ自身のデバイス・ドライバをもつ論理的なボリュームとして取り扱われる。コンピュータ・システムの他のボリュームのように、各圧縮ボリュームおよびホスト・ボリュームには、ユニークなドライブ文字(例えば、A、B、C等)が割り当てられる。したがって、圧縮ボリューム・ファイルが、ドライブ文字Dを割り当てられているホスト・ボリュームに記憶され、かつ、その圧縮ボリュームに、ドライブ文字Eが割り当てられている場合に、ドライブ文字Eの参照を行うと、ドライブ文字Dをもつホスト・ボリューム内に記憶されている圧縮ボリューム・ファイルに記憶されたファイル群へのアクセスが行われる。
図1は、従来のコンピュータ・システム100 を示すブロック図である。コンピュータ・システム100 は、読出し専用メモリ(ROM)装置101 、中央処理装置(CPU)104 、取外し可能ボリューム・ドライブ105 (すなわち、フロッピィ・ディスク・ドライブ)、固定ボリューム・ドライブ106 (すなわち、ハード・ディスク・ドライブ)、およびランダム・アクセス・メモリ(RAM)装置107 を備えている。ブート・プログラム102 および基本入出力システム(ROM-BIOS)103 が、ROM装置101 に記憶されている。この図では、MS-DOS 5.0(マイクロソフト社製)のようなオペレーティング・システム110 が、固定ボリュームに記憶されているが、取外し可能ボリュームに記憶することもできる。
圧縮ドライバのようなデバイス・ドライバのインストールは、一般に、システムの初期化のときに行われる。システムの初期化中に、オペレーティング・システムは、標準デバイスおよびそのコンピュータ・システムの特定のハードウェア構成に特有の非標準デバイスの双方のデバイス・ドライバをインストールする。例えば、標準デバイスとして、典型的には、2つのフロッピィ・ディスク・ドライブと1つのハード・ディスク・ドライブがある。これらの標準デバイス用のデバイス・ドライバは、オペレーティング・システムとともに備えられており、オペレーティング・システムによって自動的にインストールされる。MS-DOSでは、これらの標準デバイス・ドライバは、IO.SYSドライバと呼ばれる。コンピュータ・システムが、CD-ROMドライブのような非標準デバイスを有するならば、各非標準デバイス用のデバイス・ドライバがコンフィグレーション・ファイルに指定される。MS-DOSでは、“CONFIG.SYS”という名前が、このファイルに付けられている。このCONFIG.SYSファイルは、ユーザが作成可能なテキスト・ファイルであり、コンピュータ・システムが初期化されるごとに実行されるコマンドを含んでいる。このコマンドは、一定のオペレーションとデバイスをどのように操作するかをオペレーティング・システムに指示するものである。各非標準デバイス用に、ユーザは、デバイス・ドライバを提供し、CONFIG.SYSファイルにこのデバイス・ドライバを指定する。これにより、オペレーティング・システムは、適切なデバイス・ドライバをインストールすることができる。表1は、CONFIG.SYSファイルに共通に見られるコマンドのサンプルを示している。
(表1)
DEVICE=RAMDRIVE.SYS
DEVICE=CDROM.SYS
DEVICE=SCSI.SYS
FILES=40
BREAK=ON
LASTDRIVE=E
BUFFERS=20
SHELL=C:\DOS\COMMAND.COM /P /E:256
DEVICE=C:\WINDOWS\HIMEM.SYS
STACKS=9,256
コマンド“DEVICE= ”は、これに続くファイル名がインストールされるべきデバイス・ドライバの名前であることを示している。CONFIG.SYSファイルが処理されるとき、オペレーティング・システムは、デバイス・ドライバをロードし、初期化することにより、そのデバイス・ドライバをインストールする。インストールの一部として、一または複数のドライブ文字が、デバイス・ドライバに割り当てられるかもしれない。
初期化において、デバイス・ドライバは、そのドライバによって制御されるドライブの数を指定する。単一のデバイス・ドライバが、複数のドライブを制御することができる。オペレーティング・システムは、ドライブの数を用いて、ドライブ文字を割り当てる。オペレーティング・システムは、コンピュータ・システムの現在利用できるドライブ文字の先頭のものから割り当てていく。例えば、最後に割り当てられたドライブ文字がEであり、インストール中のデバイス・ドライバが4つのドライブをサポートするならば、オペレーティング・システムは、ドライブ文字としてF、G、HおよびIをその4つのデバイス・ドライバに割り当てる。このように、ドライブ文字の割り当ては、CONFIG.SYSファイルのデバイス・コマンドの順番に依存する。
圧縮ボリュームを用いる典型的なコンピュータ・システムは、圧縮システム・デバイス・ドライバを使用し、圧縮ボリューム・ファイルとのインタフェースを行う。例えば、ライン“device=COMPRESS.SYS ”がCONFIG.SYSファイルにあるならば、このコマンドにより、COMPRESS.SYSファイルに含まれる圧縮システム・デバイス・ドライバがインストールされる。オペレーティング・システムは、ユニークなドライブ文字をこの圧縮ボリュームに割り当てる。
コンピュータ・プログラムが配置されたときに、コンピュータ・プログラムは、一般に、デバイスには決められたドライブ文字の割り当てが予定されているので、ドライブ文字の割り当ては重要となる。異なるドライブ文字がデバイスに割り当てられていると、プログラムは正しく動作しない。このプログラムを、異なるドライブ文字を予定するように再構成することができるが、再構成には、時間を要する。選択的に、ユーザが、予定された割り当てに対応するドライブ文字をマニュアルで再割り当てするように、要求されるかもしれない。
この技術分野の専門家ならば、圧縮システムがCONFIG.SYSファイルに指定されたデバイス・ドライバとしてインストールされるときに発生する問題を知るであろう。例えば、圧縮ボリューム・デバイスが臨時に生成されると、他の非標準デバイス・ドライバのドライブ文字の割り当てが変えられるかもしれない。また、ユーザが、圧縮システム・デバイス・ドライバを指定するコマンドを不注意に消去するかもしれないし、そのコマンドのパラメータを変化させ、圧縮ボリュームへのアクセスをできなくするかもしれない。
ユーザが、ホスト・ボリューム(例えば、Cドライブ)のデータを圧縮するように、コンピュータ・システムに指示したときに、問題が生じる。圧縮システムは、一般に、そのボリュームに記憶されている全てのデータを圧縮し、圧縮されたデータを圧縮ボリューム・ファイルに格納する。続いて、オペレーティング・システムは、ドライブ文字(例えば、Dドライブ)をこの圧縮ボリュームに割り当てる。コンピュータ・システム上で実行されるプログラムが、ホスト・ボリュームのドライブ文字をもつ圧縮ファイルを参照しようとすると、不適切なファイル参照が発生するであろう。なぜならば、この圧縮ファイルは、圧縮ボリュームを介してのみアクセスできるからである。このため、圧縮ボリュームのドライブ文字(D)とそのホスト・ボリュームのドライブ文字(C)とは、この圧縮ボリュームがドライブ文字Cによって識別されるように、一般に交換される。典型的には、圧縮システムがロードされた直後に、圧縮システムは、CONFIG.SYSファイルにコマンド・ラインを置くことにより、ドライブ文字を交換する。しかし、ユーザが、この交換コマンドを不注意に消去することもある。
圧縮システムのインストールに伴うもう一つの問題は、不適切なファイル参照が潜在していることである。圧縮ボリュームがシステムの初期化のために必要とされるファイルを含み、ある理由により、圧縮ボリューム上のデータをアクセスすることができない場合に、コンピュータ・システムは、使用できなくなる。コンピュータ・システムが一時的に使用不可能になる可能性を最小にするために、圧縮システムは、システム・ファイルの複製をホスト・ボリュームと圧縮ボリュームとに保持する。これらの複製ファイルのサイズは、数メガバイトになる。
複製ファイルによる記憶スペースの浪費に加えて、複製ファイルが不適切に更新されることが多いので、この方法では、エラーが起こりやすくなる。すなわち、ユーザは、一般に、ファイルの一つのバージョンの更新は行うが、複製の更新を忘れる。図2は、圧縮ボリューム・ファイル112 およびそのホスト・ボリューム114 のブロック図である。ホスト・ボリューム114 は、任意の補助記憶装置であってもよい。圧縮ボリューム・ファイル112 およびそのホスト・ボリューム114 には、IO.SYSファイル、MSDOS.SYS ファイル、COMMAND.COM ファイル、CONFIG.SYSファイル、AUTOEXEC.BATファイル、圧縮ソフトウェア、CONFIG.SYSファイルの処理中にロードされるデバイス・ドライバ群、およびAUTOEXEC.BATファイルの処理中に実行されるプログラム群の複製が含まれている。
この発明は、圧縮システムをオペレーティング・システムと統合するコンピュータ・システムにおける方法を提供する。好ましい実施例においては、このコンピュータ・システムは、メモリ・デバイスおよび記憶デバイスを備えていることが好ましい。ユーザが提供するデバイス・ドライバは非標準デバイス用に提供され、このデバイス・ドライバにより、コンピュータ・システムは非標準デバイスと通信することができる。コンピュータ・システムの初期化中に、圧縮システムが、どの非標準デバイス・ドライバよりも優先して、インストールされる。非標準デバイス・ドライバをインストールするときに、非標準デバイスに予定されたドライブ文字が割り当てられることを確実にするために、先にインストールされた圧縮ボリュームに割り当てられたドライブ文字は、再割り当てされる。また、圧縮システムをインストールするときに、未決定搭載リストが、まだ搭載できないそれらの圧縮ボリュームのために保持される。各非標準デバイス・ドライバがインストールされた後に、この未決定搭載リストがチェックされ、どの圧縮ボリュームを搭載できるかが決定される。非標準デバイス・ドライバがインストールされるときに、ドライブ文字が割り当てられる。ドライブ文字が、予定されるドライブ文字でないならば、ドライブ文字の割り当てスキームが、そのドライブ文字を再割り当てするために提供される。
この発明の好ましい実施例は、圧縮システムをオペレーティング・システムと統合するためのコンピュータの方法およびコンピュータ・システムを提供する。好ましい実施例においては、オペレーティング・システムは、圧縮システムと通信して、非標準デバイス・ドライバのインストールに先立ち、圧縮システム・デバイス・ドライバをインストールする。コンピュータ・システムの初期化中に、オペレーティング・システムは、まず圧縮システムが、インストールするのに利用可能かどうかを決定する。利用可能でなければ、オペレーティング・システムは、標準的な初期化を続ける。一方、圧縮システムが利用可能な場合には、オペレーティング・システムは、圧縮システムを含むファイルをメモリにロードし、圧縮システムの初期化関数を呼び出す。この初期化関数は、圧縮システムとオペレーティング・システムとの間のバージョン互換性を確実にし、どの圧縮ボリュームが搭載されるべきか(ドライブ文字を割り当てられるべきか)を決定する。そして、初期化関数は、決定された圧縮システム・デバイス・ドライバをインストールする。初期化関数は、圧縮ボリュームとして搭載される圧縮ボリューム・ファイルを示す未決定搭載リストを生成し、圧縮ボリューム用に予約されるべきドライブ文字の個数を求める。続いて、オペレーティング・システムは、ドライブ文字割り当て関数を呼び出し、可能ならば、圧縮ボリューム・ファイルを未決定搭載リストに搭載する。続いて、オペレーティング・システムは、各非標準デバイス・ドライバをインスールし、次に利用可能なドライブ文字をその非標準デバイス・ドライバに割り当てる。非標準デバイス・ドライバをインストールしたときに、次に利用可能なドライブ文字が、圧縮ボリューム用に予約されたドライブ文字のために、予定されたものと異なるかも知れない。その結果、オペレーティング・システムは、圧縮システムのドライブ文字割り当て関数を呼び出して、圧縮ボリューム用のドライブ文字を再割り当てし、新しくインストールされたデバイス・ドライバに予定されているドライブ文字を割り当てる。
図3は、圧縮システムの様々な構成要素を示すブロック図である。圧縮システムは、“DBLSPACE.BIN”301 という名前をもつファイルに記憶されていることが好ましい。このDBLSPACE.BINファイルは、関数302 〜308 を含んでいる。これらの関数は、オペレーティング・システムによって呼び出され、圧縮システムのインストールを行う。関数FirstTime 302 は、圧縮システムの初期化関数である。関数TryToSwap 303 は、圧縮システムのドライブ文字割り当て関数である。関数304 〜308 については、後に詳述する。圧縮/伸張エンジン309 は、圧縮アルゴリズムを実行するコードを含んでいる。ファイル・システム310 は、圧縮ボリューム内のファイルを管理するコードを含んでいる。この圧縮システムは、ファイル名“DBLSPACE.INI”のファイルに記憶されている圧縮ボリューム構成データをアクセスする。このDBLSPACE.INIファイルは、以下の構文をもつ構成情報を含んでいる。



FirstDrive=<DL1>
LastDrive=<DL2>
ActivateDrive=<DL3,CVF>
ActivateDrive=<DL4,CVF>


圧縮システムが最初にコンピュータ・システム内に配置されたときに、“FirstDrive”は、標準デバイス・ドライバがインストールされた後の最初に利用可能なドライブ文字(DL1)を指定するものである。したがって、FirstDriveは、1回だけ指定され、変えられることはない。“LastDrive ”は、圧縮ボリューム用に予約されたドライブ文字の範囲内の最後のドライブ文字(DL2)を指定するものである。したがって、FirstDriveがDで、LastDrive がHならば、5つのドライブ文字が予約される。標準デバイス・ドライバが追加され、この追加の標準デバイス・ドライバにいずれのドライブ文字も割り当てられていなくても、圧縮システムは、FirstDriveからLastDrive までのドライブ文字を予約する。しかし、この追加の標準デバイス・ドライバがオペレーティング・システム内に配置され、ドライブ文字が割り当てられると、圧縮システム用のドライブ文字は、後述するスキームに従って予約される。予約されたドライブ文字は、初期化の完了後に動的に搭載される圧縮ボリューム用のドライブ文字を一般に含んでいる。“ActivateDrive ”は、“DL3,CVF ”によって指定される圧縮ボリューム・ファイルが、搭載されることを指定するものである。“DL3 ”は、圧縮ボリュームに割り当てられるドライブ文字を指定する。“CVF ”は、ホスト・ボリュームのドライブ文字とシーケンス番号(例えば“C10 ”)を含んでいる。このシーケンス番号は、ホスト・ボリューム上で、ファイル拡張子としてこのシーケンス番号をもつ“DBLSPACE”(例えば“C:\DBLSPACE.010 ”)というファイル名の圧縮ボリューム・ファイルを指定するものである。このシーケンス番号が零の場合には、圧縮ボリュームが搭載された後に、この圧縮ボリューム用のドライブ文字とそのホスト・ボリューム用のドライブ文字とが交換される(後述する)。
ドライブ文字を割り当てられたデバイス・ドライバは、ドライブ・パラメータ・ブロック(DPB)を有する。このDPBは、割り当てられた各ドライブ文字用に、オペレーティング・システムによって生成される。オペレーティング・システムは、これらのDPBがリンクされたリストを、DPBリストとして保持する。DPBリストの最初のDPBには、ドライブ文字Aが割り当てられ、2番目のDPBには、ドライブ文字Bが割り当てられる。以下同様にして割り当てられる。新しくインストールされたデバイス・ドライバが、ドライブ文字を必要とするときには、そのデバイス・ドライバに対応するDPBが、DPBリストの最後にリンクされる。その結果、デバイス・ドライバには、次に利用可能なドライブ文字が割り当てられる。
圧縮システムは、予約されるドライブ文字の個数をオペレーティング・システムに示すことにより、ドライブ文字を予約する。オペレーティング・システムは、各ドライブ文字用のDPBを生成し、DPBリストの最後にその生成されたDPBをリンクする。圧縮ボリュームが後に搭載されたときに、これらのDPBの一つが、圧縮ボリューム・ファイルを表す情報を指すように更新される。
図4は、関数FirstTime の処理の流れを示すフローチャートである。関数FirstTime は、オペレーティング・システムと圧縮システムとのバージョン互換性をチェックし、他の圧縮システム関数を呼び出すための情報を初期化し、DBLSPACE.INIファイルを処理し、圧縮システム・デバイス・ドライバをインストールする。この関数FirstTime には、デバイス・ドライバの初期化パケットを指すポインタ(ES:BX )およびバージョン番号(AX)を渡すことが好ましい(以下では、インテル80486 の技術を用いて指定されるレジスタを介して、パラメータが渡される。例えば、AXとは、インテル80486 プロセッサのAXレジスタをいう)。この関数は、バージョンに互換性がないときには、互換性エラー(キャリー・ビット・セット)を返し、別のタイプのエラーが発生したときには一般的エラー(AX!=0 )を返す。この関数は、搭載される圧縮ボリュームの未決定搭載リストを生成し、予約された各ドライブ文字のドライブ・パラメータ・ブロック(Drive Parameter Block :DPB)の配置のために初期化パケットに情報を返す。
ステップ401 において、渡されたオペレーティング・システムのバージョン番号が圧縮システムのバージョン番号と互換性があるならば、関数は、ステップ402 に進み、そうでなければ関数はバージョン互換性エラーを返す。ステップ402 では、DBLSPACE.INIファイルが検索される。この関数は、まず、ブート・ボリュームを検索し、標準ボリューム(後に詳述)を探すかもしれない。ステップ403 において、DBLSPACE.INIファイルが発見されたならば、この関数はステップ404 に進み、そうでなければ関数は一般的なエラーを返す。ステップ404 で、関数は、DBLSPACE.INIファイルをロードし、何らかの理由によりロードが失敗したならば、一般的エラーを返す。ステップ405 において、関数は、圧縮ボリューム用に予約するドライブ文字の個数を決定する。予約するドライブ個数の決定アルゴリズムについては、後に詳述する。ステップ406 〜408 では、関数は、DBLSPACE.INIファイルの各ActivateDrive(AD)ラインを処理するためにループする。関数は、それぞれの未決定搭載リスト(Pending Mount List:PML)にエントリを追加する。未決定搭載リストは、圧縮ボリュームのドライブ文字、ホスト・ボリュームのドライブ文字およびActivateDrive ラインからのシーケンス番号を含んでいる。ステップ406 で、すべてのActivateDrive ラインがすでに処理されているならば、この関数は、呼び出し元にリターンし、そうでなければステップ407 に進む。ステップ407 では、関数は、次のActivateDrive ラインを選択する。ステップ408 では、この関数は、選択されたActivateDrive ライン用の未決定搭載リストにエントリを生成し、記憶する。また、この関数は、次のActivateDrive ラインを選択するためにステップ406 からのループ処理を行う。表2は、サンプルのActivateDrive ラインおよび対応する未決定搭載リストを含んでいる。
(表2)
DBLSPACE.INI
ActivateDrive=H,C0
ActivateDrive=D,C1
ActivateDrive=E,C2
未決定搭載リスト
圧縮ボリューム ホスト・ボリューム シーケンス番号
ドライブ文字 ドライブ文字
H C 0
D C 1
E C 2
図5および図6は、圧縮ボリューム用に予約するドライブ文字の個数を決定するルーチンの処理の流れを示すフローチャートである。このルーチンは、ドライブ文字の再割り当てに使用する変数letterFirst とreservedDrivesをセットする。変数letterFirst は、圧縮ボリューム用に予約される最初のドライブ文字を示し、標準デバイス・ドライバのインストール後の最初に利用可能なドライブ文字に対応する。変数reservedDrivesは、圧縮ボリューム用に予約されたドライブ文字の個数を示している。例えば、letterFirst がDであり、reservedDrivesが5である場合に、ドライブ文字D、E、F、GおよびHが、圧縮ボリューム用に予約される。予約するドライブ文字の個数を決定するときに、このルーチンは、変数letterHighest を、ActivateDrive ラインにおける最も高位の圧縮ボリュームのドライブ文字の割り当てに等しくなるようにセットする。ドライブ文字の予約された個数は、次の式により決定される。
maximum(LastDrive, letterHighest)
minimun(FirstDrive, letterFirst)
ActivateDrive ラインにおける圧縮ボリュームのドライブ文字が、標準デバイス・ドライバに割り当てられたドライブ文字と競合するならば、圧縮ボリュームのドライブ文字は、予約された範囲(letterFirst とreservedDrives)外の次の高位のドライブ文字に変えられ、letterFirst の値は一つ増加させられる。
ステップ501 で、このルーチンは、変数reservedDrivesを1にセットする。この値は、予約されるドライブ文字の最小の個数である。ステップ502 で、このルーチンは、変数letterFirst を、標準デバイス・ドライバのインストール後に利用可能な最初のドライブ文字にセットする。ステップ503 において、LastDrive の値が変数letterFirst 以上ならば、標準デバイス・ドライバは、ドライブ文字LastDrive を含むように配置されていず、このルーチンはステップ504 に進む。そうでなければ、このルーチンはステップ505 に進む。ステップ504 で、ルーチンは、変数reserveDrives を、letterFirst からLastDrive によって示されるドライブの範囲のドライブ数に等しくなるようにセットする。ステップ505 において、変数letterFirst がFirstDriveラインの値よりも大きいならば、標準デバイス・ドライバが、圧縮システムの初期配置からオペレーティング・システムに加えられており、ルーチンは、ステップ506 に進む。そうでなければ、ルーチンは、ステップ507 に進む。ステップ506 では、ルーチンは、letterFirst とFirstDriveとの間の相違を反映するように、変数reservedDrivesを増加させる。ステップ507 では、ルーチンは、変数letterHighest を、ActivateDrive ライン内の最高位の圧縮ボリューム・ドライブ文字に等しくなるようにセットする。ステップ508 において、letterFirst からletterHighest の範囲のドライブ文字の個数が、変数reservedDrivesよりも大きいならば、ルーチンは、ステップ509 に進み、そうでなければ、ルーチンは、ステップ510 に進む。ステップ509 では、ルーチンは、予約されたドライブ文字の個数を、letterHighest からletterFirst までの範囲のドライブ文字の個数にセットする。
ステップ510 から514 では、ルーチンは、最初に利用可能なドライブ文字(letterFirst )よりも小さなドライブ文字をもつActivateDrive ラインの圧縮ボリューム・ドライブ文字を調整するためのループ処理を行う。これは、標準デバイス・ドライバが、圧縮システムの初期構成に追加された結果生じるものである。ステップ510 では、ルーチンは、最初から始まるActivateDrive ラインの次のものを選択する。ステップ511 では、すべてのActivateDrive ラインがすでに選択されているならば、ルーチンはリターンし、そうでなければ、ルーチンはステップ512 に進む。ステップ512 では、選択されたActivateDrive ラインの圧縮ボリューム・ドライブ文字が、最初に利用可能なドライブ文字よりも小さいならば、ルーチンはステップ513 に進み、そうでなけばルーチンはステップ510 にループし、次のActivateDrive ラインを選択する。ステップ513 では、ルーチンは、予約されたドライブの個数を1増加させる。ステップ514 では、ルーチンは、選択されたActivateDrive ラインの圧縮ボリューム・ドライブ文字を、最後に予約されたドライブ文字にセットし、ステップ510 にループし、次のActivateDrive ラインを選択する。変形例として、letterFirst よりも小さなドライブ文字を割り当たられた圧縮ボリュームを、圧縮ボリューム用に予約された最初のドライブ文字に再割り当てすることもできる。
図7は、関数TryToSwap の処理の流れを示すフローチャートである。関数TryToSwap には、新しくインストールされたデバイス・ドライバに割り当てる必要のあるドライブ文字の個数、圧縮ボリューム用に予約された最初のドライブ文字(letterBottom)、および予約されたドライブ文字の個数が渡される。この関数は、圧縮ボリューム用に予約されたドライブ文字と、デバイス・ドライバによって予定されたドライブ文字とが競合した場合に、これを回避するものである。この関数は、圧縮ボリューム用に予約された範囲内にあるボリュームを、利用可能なドライブ文字に割り当て、オペレーティング・システムが、新しくインストールされたデバイス・ドライバに、予定されたドライブ文字を割り当てることができるようにする。新しく割り当てられたドライブ文字用のDPBは、この関数が呼び出されたときに、DPBリストの最後にリンクされる。ドライブ文字を再割り当てした後、この関数は、再割り当てのために搭載可能な未決定搭載リストからドライブを搭載する。渡されたドライブ文字の個数が零の場合には、この関数は、ドライブ文字を再割り当てすることなく、未決定搭載リストからドライブを搭載する。ステップ601 から604 において、関数は、圧縮ボリューム・ファイルを新しいドライブ文字に再割り当てするループ処理を行う。ステップ601 において、必要とされるドライブ文字が零に等しい(nDrives=0 )の場合には、十分な圧縮ボリュームが再割り当てされたか、いずれも再割り当ての必要がなく、関数はステップ605 に進む。そうでなければ、関数はステップ602 に進む。ステップ602 では、関数は、letterBottomによって示されるドライブ文字に現在割り当てられている圧縮ボリュームを、最初に利用可能なドライブ文字(すなわち、letterBottomによって示されるドライブ文字に予約されたドライブ数(reservedDrives)を加えたドライブ文字)に再割り当てする。この再割り当ては、圧縮ボリューム用のDPBをDPBリストの最後に移動する処理を含んでいる。ステップ603 では、関数は、圧縮ボリュームの新しいドライブ文字の割り当てを反映するように、letterBottomによって示されるドライブ文字用の未決定搭載リストの全ての参照を、新しいドライブ文字に変える。ステップ604 において、関数は、圧縮ボリューム用に予約された最低位のドライブ文字を示すように、変数letterBottomを増加させ、必要とされるドライブ文字の個数を減少させ、ステップ601 へループする。
ステップ605 において、関数は、圧縮ボリュームに先に割り当てられたドライブ文字を、新しくインストールされたデバイス・ドライバに割り当てる。これは、新しくインストールされたデバイス・ドライバ用のDPB(この関数が呼び出されたときに、このDPBはDPBリストの最後にある)を圧縮ボリューム用に予約されたDPB(letterFirst )の前に移動する処理を含んでいる。ステップ606 〜610 において、関数は、それらの圧縮ボリュームを、搭載可能な未決定搭載リストに搭載するループ処理を行う。試行された搭載が不成功に終わるいくつかの理由がある。圧縮ボリュームのホスト・ボリュームが標準デバイスでない場合には、その圧縮ボリュームは、CONFIG.SYSファイルが処理されるまで、搭載できない。また、いくつかの標準デバイス・ドライバが、デバイスからの読み出しをサポートするが、書き込みはサポートしない。一方、非標準デバイス・ドライバは、CONFIG.SYSファイルを処理するときに、インストールされる。ステップ606 において、未決定搭載リストの全てのエントリが処理されたならば、関数は呼び出し元にリターンし、そうでなければ、関数はステップ607 に進む。ステップ607 において、未決定搭載リストの次のエントリの圧縮ボリュームを搭載できるならば、関数はステップ608 に進み、そうでなければ、関数はステップ606 にループする。ホスト・ボリュームのデバイス・ドライバがこの関数の最後の呼び出しからインストールされたならば、圧縮ボリュームは搭載されるであろう。ステップ608 では、関数は、未決定搭載リストの次のエントリによって示される圧縮ボリュームを搭載する。搭載は、圧縮ボリューム用に予約されたDPBを、この圧縮ボリュームを表す情報をポイントするようにセットする処理を含んでいる。ステップ609 では、シーケンス番号が零のときに、関数は、搭載された圧縮ボリュームのドライブ文字と、そのホスト・ボリュームのドライブ文字とを入れ換える(スワップする)。ステップ610 では、関数は、そのエントリを、未決定搭載リストから消去し、ステップ606 へループし、次のエントリの処理を行う。
関数InquireInitSize およびMoveToInitLocationが呼び出され、初期化関数(FirstTime )の実行後に必要とされる圧縮システム・コードを移動する。この関数InquireInitSize は、初期化関数の実行の後に圧縮システム・コードに必要なメモリの容量を指定するものである。このコードに必要なメモリのパラグラフの個数が、この関数の実行結果として返される(AX)。関数MoveToInitTimeLocationは、渡されたアドレスに圧縮システム・コードを移動させる。関数MoveToInitTimeLocationには、コードを移動させるべきセグメント・ベース・アドレス(ES)が渡される。この関数は、その実行結果として、ドライバの低位スタブの終了アドレス(AX)を返し、移動された圧縮システム・コードの部分が空きになるようにする。
関数InquireResidentImageSizeとPerformFinalPlacement は、CONFIG.SYSファイルを処理した後に必要とされる圧縮システムの常駐部を移動させるために呼び出される。これらの関数は、様々な常駐プログラムの関数を呼び出すために、多重割り込みによって呼び出される。これらの関数は、CONFIG.SYSファイル(後に詳述する)によって指定されたものとして、DBLSPACE.SYSファイルによって呼び出されることが好ましい。MS-DOSでは、多重割り込みはInt2f 割り込みであり、これらの関数のファンクション・ナンバは4A11hである。関数InquireResidentImageSizeはBX=1によって指定され、関数PerformFinalPlacement はBX=2によって指定される。関数InquireResidentImageSizeは、圧縮システムの常駐部によって必要とされるパラグラフの個数を指定する。関数InquireResidentImageSizeは、必要とされるメモリのパラグラフの個数(AX)を返す。関数PerformFinalPlacement は圧縮システムの常駐部を移動させる。関数PerformFinalPlacement には、この常駐部を配置すべきセグメント・ベース・アドレス(ES)が渡される。
関数HooksIntは、割り込みベクタ上のフックをインストールする。好ましい実施例では、圧縮システムは割り込みInt21 、Int26 およびInt2f をフックする。この関数は、オペレーティング・システムが、オペレーティング・システムの割り込みベクタをセットした後に、呼び出される。
図8〜図11は、この発明による圧縮システムのインストールのために適合されたオペレーティング・システムの好ましい初期化処理を示すフローチャートである。コンピュータ・システムが最初にパワー・オンされ、またはブートされるときに、制御はROMBoot ルーチンに渡される。図8は、ROMBoot ルーチンのフローチャートである。ステップ701 では、このルーチンは、どのボリュームからブートを行うべきかを決定し、そのブート・ボリュームからディスク・ブート・セクタをロードする。このディスク・ブート・セクタは、ディスクからブートを行うためのコードを含んでいる。ステップ702 では、このルーチンは、ロードされたコード(DiskBootSectorルーチン)にジャンプする。
図9は、DiskBootSectorルーチンのフローチャートである。DiskBootSectorルーチンは、“IO.SYS”という名前をもつファイルをロードし、そのファイルのSYSINIT ルーチンへジャンプする。IO.SYSファイルは、システムの初期化を続けるためのコードを含んでいる。ステップ801 では、このルーチンは、IO.SYSファイル用のブート・ボリュームを検索する。ステップ802 では、IO.SYSファイルが発見されると、ルーチンはステップ803 に進み、そうでなければ、ルーチンはブート処理をエラーで終了する。ステップ803 では、ルーチンは、IO.SYSファイルをロードする。ステップ804 では、ルーチンは、ロードされたIO.SYSファイルのSYSINIT (システム初期化)ルーチンにジャンプする。
図10および図11は、SYSINIT ルーチンのフローチャートを含んでいる。SYSINIT ルーチンは、標準デバイス・ドライバをインストールし、圧縮システム・デバイス・ドライバをインストールし、非標準デバイス・ドライバをインストールする。このルーチンは、圧縮システムの関数を呼び出して、圧縮システム・デバイス・ドライバのインストールを調整し、ドライブ文字の割り当てを調整する。ステップ901 では、ルーチンは、SYSINIT コードを高位のメモリに再配置する。SYSINIT コードは、最初は、低位のメモリにロードされていた。このルーチンによりロードされるデバイス・ドライバも、低位メモリにロードされるであろう。SYSINIT コードは、システム初期化の後は必要とされないので、デバイス・ドライバを可能な限り最低位のメモリにロードできるように、このルーチンは移動される。SYSINIT コードが移動されなかった場合には、その結果として、ギャップが低位のメモリに発生する。ステップ902 では、ルーチンは“MSDOS.SYS ”という名前を持つファイルを検索する。MSDOS.SYS ファイルは、オペレーティング・システムのカーネルを含んでいる。ステップ903 では、MSDOS.SYS ファイルが発見されると、ルーチンはステップ904 に進み、そうでなければ、この初期化処理はエラーで終了する。ステップ904 では、ルーチンは、MSDOS.SYS ファイルをロードする。ステップ905 において、ルーチンは、標準デバイス・ドライバをロードし、ドライブ文字を割り当てることにより、標準デバイス・ドライバをインストールする。ステップ906 では、ルーチンは、“DBLSPACE.BIN”という名前をもつファイルを検索する。このDBLSPACE.BINファイルは、好ましくは、圧縮システムを初期化するためのコードを含んでいる。ステップ907 において、DBLSPACE.BINファイルが発見されると、ルーチンはステップ908 に進み、そうでなければ、ルーチンはステップ915 に進む。ステップ908 では、ルーチンは、DBLSPACE.BINファイルをロードする。ステップ909 において、DBLSPACE.BINファイルのスタンプ・フィールドが適切ならば、ルーチンはステップ910 に進み、そうでなければルーチンはステップ915 に進む。DBLSPACE.BINファイルは、予め定められた配置(スタンプ・フィールド)に予め定められた値を備えている。この予め定められた値の存在により、DBLSPACE.BINファイルが圧縮システムであり、ユーザが不注意にDBLSPACE.BINと名付けたファイルでないことが二重にチェックされ、DBLSPACE.BINファイルが圧縮システムであることが確実になる。好ましい実施例においては、この予め定められた値は、ASCII 文字のカンマとピリオド(“,.”)であり、予め定められた配置は、ファイルの12hである。ステップ910 では、このルーチンは、DBLSPACE.BINファイルの関数FirstTime を呼び出して、圧縮システム・デバイス・ドライバをインストールし、ドライブ文字を予約し、未決定搭載リストを作成する。ステップ911 では、関数FirstTime がエラーなく実行されると、ルーチンはステップ912 に進み、そうでなければルーチンはステップ915 に進む。ステップ912 および913 では、ルーチンは、圧縮システムを指定して、初期化関数(FirstTime )の実行後に必要とされるそのコードを配置し、非標準デバイス・ドライバが低位のメモリに配置されるようにする。ステップ912 では、ルーチンは、圧縮システムの関数InquireInitSize を呼び出し、圧縮システムが必要とするメモリ容量を決定する。ステップ913 では、ルーチンは、圧縮システム・コードが再配置される場所を決定し、圧縮システムの関数MoveToInitTimeLocationを呼び出して、そのコードを移動させる。ステップ914 では、ルーチンは、ドライブ文字のカウント値0(nDrives=0 )を渡す圧縮システムの関数TryToSwap を呼び出す。これにより、圧縮システムは、先にインストールされた標準デバイス用のデバイス・ドライバに基づいて搭載できる未決定搭載リストの圧縮ボリュームを搭載する機会を提供される。ステップ915 では、ルーチンは、関数ProcessConfig を呼び出し、CONFIG.SYSファイルを処理する。関数ProcessConfig は、非標準デバイス・ドライバをインストールし、まだ搭載されていない圧縮ボリュームの搭載を指示する。圧縮システムの常駐部は、DBLSPACE.SYSファイル(後の詳述)の参照を含むCONFIG.SYSファイルを処理するときに、メモリ・マネージャによって、その最終配置に移動されていてもよい。ステップ916 および917 では、ルーチンは、圧縮システムがまで移動されていないならば、圧縮システムをその最終の常駐部に移動させる。ステップ916 では、ルーチンは、圧縮システムの関数GetResidentImageSizeを呼び出し、圧縮システムの常駐部に必要なメモリ容量を決定する。ステップ917 では、ルーチンは、圧縮システムの関数PerformFinalPlacement を呼び出し、圧縮システムの常駐部をその最終の常駐配置に移動させる。
図12は、関数ProcessConfig のフローチャートである。この関数ProcessConfig は、非標準デバイス・ドライバをインストールし、圧縮ボリュームの搭載を指示する。ステップ1001では、ルーチンは、CONFIG.SYSファイルを検索し、もしあれば、このファイルをロードする。ステップ1002では、CONFIG.SYSファイルに示された全てのデバイス・ドライバが処理されたならば、関数はリターンし、そうでなければ、関数はステップ1003に進む。ステップ1003では、関数は、CONFIG.SYSファイルに示された次のデバイス・ドライバをインストールする。インストールされたデバイス・ドライバは、それが必要とするドライブ文字の個数(nDrives )の指定を返し、圧縮システム用に予約されたドライブ文字よりも大きなドライブ文字に、一時的に割り当てられる。この割り当ては、DPBをDPBリストの最後に追加するという標準的なオペレーティング・システム技術によって達成される。ステップ1004では、必要とされるドライブ文字の個数が零ならば、関数はステップ1002にループし、次のデバイス・ドライバを処理し、そうでなければ関数はステップ1005へ進む。ステップ1005では、関数は、圧縮システムの関数TryToSwap を呼び出し、新しくインストールされたデバイス・ドライバ用のドライブ文字と、圧縮ボリューム用に予約された範囲内のドライブ文字を割り当てられた任意のボリュームのドライブ文字とを入れ換える。そして、関数はステップ1002にループし、次のデバイス・ドライバを処理する。
(表3)
DBLSPACE.INI
FIRSTDRIVE=D
LASTDRIVE=H
ACTIVATEDRIVE=H,C0
ACTIVATEDRIVE=D,C1
ACTIVATEDRIVE=E,C2
CONFIG.SYS
DEVICE=C:\RD1.SYS
SHELL=C:\DOS\COMMAND.COM C:\DOS\ /e:1024/p
DEVICE=C:\DOS\HIMEM.SYS
STACKS=9,256
DOS=HIGH,UMB
FILES=50
DEVICEHIGH=C:\DOS\DBLSPACE.SYS /MOVE
表3は、DBLSPACE.INIファイルおよびCONFIG.SYSファイルのサンプルを示している。ActivateDrive ラインは、3つの圧縮ボリュームが搭載されることを示している。C:\DBLSPACE.000 という名前をもつ圧縮ボリューム・ファイル(CVF0)は、ドライバC:として搭載され、そのホスト・ボリュームは、ライン“ACTIVATEDRIVE=H,C0”に示すように、ドライブHに交換される。C:\DBLSPACE.001 という名前をもつ圧縮ボリューム・ファイル(CVF1)は、ライン“ACTIVATEDRIVE=D,C1”に示すように、ドライブDとして搭載される。“C:\DBLSPACE.002 ”という名前をもつ圧縮ボリューム・ファイル(CVF2)は、ライン“ACTIVATEDRIVE=E,C2”に示すように、ドライブEとして搭載される。CONFIG.SYSファイルは、RD1.SYS ファイルの非標準デバイス・ドライバがインストールされることを示している。
図13は、初期化処理中のドライブ文字の割り当てを示している。ルーチンSYSINIT は、2つのフロッピィ・ディスク・ドライブ(FD)用のデバイス・ドライバと一つのハード・ディスク(HD)用のデバイス・ドライバに、ドライブ文字A、BおよびCをそれぞれ割り当てる。
続いて、ルーチンSYSINIT は、関数FirstTime を呼び出す。関数FirstTime は、標準デバイス・ドライバをロードした後に利用可能な最初のドライブ文字(letterFirst )および圧縮ボリューム用に予約されたドライブ文字(reserveDrives )の個数を決定する。また、関数FirstTime は、搭載される各圧縮ボリューム用の未決定搭載リスト(PML)にエントリを追加する。ライン1101に示すように、ドライブ文字AおよびBは、フロッピィ・ドライブ(FD)に割り当てられ、ドライブ文字Cは、ハード・ドライブ(HD)に割り当てられ、ドライブ文字DからHは、圧縮ボリューム(CR)用に予約されている。また、未決定搭載リストが、CVF0、CVF1およびCVF2用のエントリを含んでいる。
続いて、ルーチンSYSINIT は、関数TryToSwap を呼び出し、ドライブ文字が交換される必要のないことの指示およびletterBottomとreserveDrives によって示される予約されたドライブ文字を渡す。関数TryToSwap は、圧縮ボリュームを未決定搭載リストに搭載することを試みる。ライン1102に示すように、この関数は、未決定搭載リストからCVF0のエントリを消去する。関数は、ドライブ文字HのDPBを、CVF0をポイントするように更新することにより、CVF0を搭載する。続いて、関数は、ドライブ文字CとHのDPBを交換する。シーケンス番号0が、ホスト用のドライブ文字と圧縮ボリューム用のドライブ文字とが交換されることを示している。ライン1103に示すように、関数は、CVF1のエントリを未決定搭載リストから消去し、CVF1をドライブ文字DのDPBを、CVF1をポイントするように更新することにより、CVF1を搭載する。ライン1104に示すように、関数は、CVF2のエントリを未決定搭載リストから消去し、ドライブ文字E用のDPBを、CVF2をポイントするように更新することにより、CVF2を搭載する。
次に、ルーチンSYSINIT は、CONFIG.SYSファイルを処理する。このルーチンは、RD1.SYS のデバイス・ドライバをインストールし、ドライブ文字IをRD1 に一時的に割り当てる。これは、RD1 用のDPBを、DPBリストの最後に追加することにより行われる。ルーチンSYSINIT は、関数TryToSwap を呼び出し、一つのドライブ文字が交換されることを示すパラメータを渡す。この関数は、CVF0およびRD1 用のDPBを交換し、letterBottomを更新する。
図14は、追加した標準デバイス・ドライバ(RD0 )がインストールされるときに、表3のサンプルのドライブ文字の割り当てを示すものである。ライン1200に示すように、標準デバイス・ドライバが、ドライブ文字AからDに割り当てられている。ライン1201に示すように、5つのドライブ文字が圧縮ボリューム用に予約され、未決定搭載リストがエントリCVF0、CVF1およびCVF2を含んでいる。追加したデバイス・ドライバRD0 との競合が生じているので、未決定搭載リストのCVF1用の圧縮ボリューム・ドライブ文字は、Iに変えられている。ライン1206に示すように、デバイス・ドライバRD1 がインストールされたときに、そのドライブ文字がCVF2用のドライブ文字と競合したので、それらのドライブ文字は交換された。
(表4)
DBLSPACE.INI
FIRSTDRIVE=D
LASTDRIVE=H
ACTIVATEDRIVE=H,C0
ACTIVATEDRIVE=F,E1
ACTIVATEDRIVE=G,C2
CONFIG.SYS
DEVICE=C:\RD1.SYS
DEVICE=C:\RD2.SYS
SHELL=C:\DOS\COMMAND.COM C:\DOS\ /e:1024 /p
DEVICE=C:\DOS\HIMEM.SYS
STACKS=9,256
DOS=HIGH,UMB
FILES=50
DEVICEHIGH=C:\DOS\DBLSPACE.SYS /MOVE
表4は、DBLSPACE.INIファイルとCONFIG.SYSファイルのサンプルを示している。ActivateDrive ラインは、3つの圧縮ボリューム・ファイルが搭載されていることを示している。C:\DBLSPACE.000 という名前を持つ圧縮ボリューム・ファイル(CVF0)は、ドライブCとして搭載され、そのホスト・ボリュームは、ライン“ACTIVATEDRIVE=H,C0”に示すように、ドライブHに交換される。E:\DBLSPACE.001 という名前をもつ圧縮ボリューム・ファイル(CVF1)は、ライン“ACTIVATEDRIVE=F,E1”に示すように、ドライブFとして搭載される。“C:\DBLSPACE.002 ”のファイル名をもつ圧縮ボリューム・ファイルは、ライン“ACTIVATEDRIVE=G,C2”に示すように、ドライブGとして搭載される。この例では、オペレーティング・システムは、4つの標準デバイス・ドライバをインストールすると仮定されている。
図15は、初期化処理中のドライブの割り当てを示している。ルーチンSYSINIT は、2つのフロッピィ・ディスク・ドライブ(FD)、一つのハード・ディスク・ドライブ(HD)および一つのROM ドライブ(RD0 )を、ドライブ文字A、B、CおよびDにそれぞれ割り当てる。
続いて、ルーチンSYSINIT は、関数FirstTime を呼び出す。関数FirstTime は、圧縮ボリューム・ファイル用の最初のドライブ文字(letterFirst )およびその圧縮ボリューム用に予約されたドライブ文字の個数(reservedDrives)を決定する。この関数FirstTime は、また、各圧縮ボリューム用の未決定搭載リストへエントリを追加する。
続いて、ルーチンSYSINIT は、関数TryToSwap を呼び出し、ドライブ文字の交換が不要であることを示す情報を渡す。関数TryToSwap は、圧縮ボリュームを未決定搭載リストを搭載する。ライン1302に示すように、関数は、未決定搭載リストからCVF0用のエントリを消去する。関数は、ドライブ文字HのDPBをCVF0をポイントするようにセットし、続いて、そのドライブ文字をドライブ文字CのDPBと交換する。ライン1303に示すように、デバイス・ドライバがドライブ文字Eに搭載されていないので、関数は、まだCVF1を搭載することができない。この関数は、CVF2用のエントリを未決定搭載リストから消去する。関数は、ドライブ文字GのDPBをCVF2をポイントするようにセットする。
続いて、ルーチンSYSINIT は、CONFIG.SYSファイルを処理する。ライン1304に示すように、このルーチンは、RD1.SYS のデバイス・ドライバをインストールし、RD1 にドライブ文字Jを一時的に割り当てる。ルーチンSYSINIT は、関数TryToSwap を呼び出し、一つのドライブ文字が交換されることを示すパラメータを渡す。関数TryToSwap は、ライン1305に示すように、DPBを交換することにより、ドライブ文字E(letterFirst )をRD1 に割り当てる。関数は、CVF1のエントリを未決定搭載リストから消去する。関数は、ドライブ文字F用のDPBをCVF1をポイントするようにセットする。
続いて、ルーチンは、ライン1307に示すように、RD2.SYS ファイルのデバイス・ドライブをインストールし、ドライブ文字KをRD2 に一時的に割り当てる。ルーチンSYSINIT は、関数TryToSwap を呼び出し、一つのドライブ文字が交換されることを示すパラメータを渡す。関数は、ライン1308に示すように、DPBを交換することにより、ドライブ文字F(letterFirst )をRD2 に割り当てる。
図16は、この発明の好ましい実施例を実現するコンピュータ・システムのブロック図である。好ましいオペレーティング・システムおよび圧縮システムが、固定ボリューム1406に格納されている。
図17は、固定ボリュームに記憶された好ましい圧縮ボリューム・ファイル1501のブロック図である。オペレーティング/圧縮システム1410のコアを形成するシステム・ファイル(IO.SYS、MSDOS.SYS 、DBLSPACE.BINおよびDBLSPACE.INI)が、固定ボリューム1406に記憶されている。固定ボリューム・ドライブ1406が、圧縮ボリューム・ファイル1501のホスト・ボリュームとして示されているが、ホスト・ボリュームは、取り外し可能なボリューム・ドライブ1405、1408の一つであってもよい。圧縮ボリューム・ファイル1501は、ファイルCOMMAND.COM 、CONFIG.SYSおよびAUTOEXEC.BATを含んでいる。また、圧縮ボリューム・ファイル1501は、CONFIG.SYSファイル内で参照されるデバイス・ドライバおよびAUTOEXEC.BATファイルの処理中にロードされるプログラムを含んでいる。この発明の好ましい実施例によると、圧縮ボリューム・ファイルとホスト・ボリューム内の複製システム・ファイルを記憶する必要性を軽減することができる。
好ましい実施例においては、コンピュータ・システムを取り外し可能なボリュームから初期化することができ、圧縮システムをインストールすることができる。さらに、圧縮ボリュームがコンピュータ・システムに記憶されていることを示す参照を、取り外し可能なボリュームが含んでいない(すなわち、DBLSPACE.INIファイルがない)ときに、これを実行することができる。コンピュータ・システムが取り外し可能ボリューム(例えば、ドライブ文字Aを割り当てられたフロッピィ・ディスク・ドライブ)から初期化されるときに、圧縮システムをインストールすることができる。IO.SYS、MSDOS.SYS およびDBLSPACE.BINファイルが取り外し可能ボリュームに記憶されているが、DBLSPACE.INIファイルが、固定ボリューム(例えば、ドライブ文字Cを割り当てられたハード・ディスク・ドライブ)に記憶されているときに、固定ボリュームのDBLSPACE.INIファイルに指定された圧縮ボリュームが搭載される。
圧縮システムの関数FirstTime は、DBLSPACE.INIファイルを配置する。ブート・ボリュームが、DBLSPACE.INIファイルを含むならば、そのファイルは、圧縮システムによって使用される。ブート・ファイルが、MS-DOSの標準ドライブCのような固定ドライブであり、かつ、ブート・ボリュームがDBLSPACE.INIファイルを含んでいないならば、圧縮システムは、インストールされない。ブート・ボリュームが取外し可能ドライブであり、かつ、ブート・ボリュームがDBLSPACE.INIを含んでいないならば、関数FirstTime は、MS-DOSの標準ドライブCのような固定ボリュームを探す。DBLSPACE.INIファイルが発見できない場合には、圧縮システムはインストールされない。
図20は、DBLSPACE.INIファイルの配置を決定するためのフローチャートである。ステップ1801では、このルーチンは、ブート・ドライブを決定する。ステップ1802において、DBLSPACE.INIファイルがブート・ドライブ上に存在するならば、そのファイルが、圧縮システムの初期化に使用され、このルーチンはリターンし、そうでなければ、ルーチンはステップ1803に進む。ステップ1803では、DBLSPACE.INIファイルが標準ドライブ上に存在するならば、そのファイルが、圧縮システムの初期化に使用され、ルーチンはリターンし、そうでなければ、エラーを返す。
図18は、CONFIG.SYSファイルの処理後のコンピュータ・システムのRAMのメモリ・マップである。このRAMは、通常メモリ1601、上位メモリ1602および拡張メモリ1603の3つのメイン・エリアに分割されている。通常メモリ1601は、0KBから640KB までの領域である。上位メモリ1602は、640KB から1MBまでの領域であり、一般に読み出し専用メモリ(ROM)およびハードウェア・デバイス・メモリのために予約されている。拡張メモリ1603は、1MBを越えるメモリである。拡張メモリの最初の64KBは、高位メモリ・エリア(High Memory Area:HMA )として参照される。
通常メモリ1601は、オペレーティング・システムがプログラムをロードし実行するエリアである。プログラムおよびそのデータ・ファイルに加えて、通常メモリは、オペレーティング・システム、CONFIG.SYSファイルで参照されるデバイス・ドライバおよびAUTOEXEC.BATファイルによって指定される任意のメモリ常駐プログラムを含んでいる。BIOS、ビデオ・メモリ、ハードウェア・デバイス・メモリ、インストール可能ROM、およびROM-BIOS は、上位メモリ1602に記憶される。
MS-DOSおよび互換性のあるオペレーティング・システムにおいて、通常メモリ・エリア1601は、アプリケーション・プログラムによって使用される、できるだけ多くのフリー・スペースをもつことが望ましい。通常メモリ・エリアのフリー・スペースの容量を最大にするために、メモリ・マネージャと呼ばれる分類に属するソフトウェア製品が徐々に現れてきている。例えば、マイクロソフト社のEMM386は、ソフトウェアのメモリ・マネージャである。メモリ・マネージャは、CONFIG.SYSファイルにおいて指定され、オペレーティング・システムによってインストールされる。メモリ・マネージャは、(1) インテル80386 以上のCPUのページング機能、および(2) 上位メモリ1602の利用可能なフリー・スペースを利用する。インテル80386 のページング機能を用いると、これらのメモリ・マネージャは、拡張メモリ1603からメモリ1605、1606、1607および1608の未使用部分にRAMの「マップ・イン」を行うことができ、これにより、上位メモリ・ブロック(Upper Memory Block:UMB)として知られているメモリ・ブロックを生成する。UMBについての詳細な内容を示したものとして、Gookin, DOS 5 のメモリ・マネージング(1991)がある。
メモリ・マネージャは、特別のコマンドを使用して、デバイス・ドライバおよび常駐(Terminate-and-Stay Resident :TSR)プログラムを一または複数のUMBにインストールする。MS-DOSおよび互換性のあるオペレーティング・システムでは、CONFIG.SYSファイルのコマンドDEVICE[HIGH]が、デバイス・ドライバがUMB にインストールされることを示すために使用される。
圧縮システムは大きいので、通常メモリ・エリア1601の代わりにUMB に圧縮システムをインストールすることが望ましい。一方、メモリ・マネージャがCONFIG.SYSファイルの処理中にロードされるまで、圧縮システムをUMB にロードすることはできない。以下に示すように、圧縮システムを、UMB に最終配置することができる。
図19は、RAMのメモリ・マップであり、初期配置1710、一時配置1712、ならびに圧縮システム用の3つの可能な最終(常駐)配置1714、1716および1718を示している。最終配置1714は、圧縮システム・コードが通常メモリ一時配置1712から最初に利用可能なフリー・スペースに移動された結果として生じる。最終配置1716は、圧縮システム・コードが一時配置1712からUMBに移動された結果として生じる。最終配置1718は、圧縮システム・コードが高位メモリ・エリアに移動された結果として生じる。圧縮システムは、メモリ・マネージャがインストールされたことを知らないかもしれないので、圧縮システムは、UMBへ効果的に移動することができない。したがって、圧縮システムは、圧縮システムの最終配置を制御する“DBLSPACE.SYS”ファイルを含んでいる。表3に示すように、次のコマンドをCONFIG.SYSファイルに含めることができ、圧縮システムの最終配置を制御する。
DEVICEHIGH=C:\DOS\DBLSPACE.SYS /MOVE
このコマンドの他のフォーマットとして次のものがある。
DEVICE=C:\DBLSPACE.SYS /MOVE
または
DEVICE[HIGH]=C:\DBLSPACE.SYS /MOVE /NOHMA
これらのフォーマットは、メモリのどの部分が圧縮システムの最終配置のために利用可能であるかを制御する。例えば、圧縮システムをHMAにロードし、一方で、そのスタブ部分を通常メモリに残し、またはUMBに移動することができる。また、選択的に、HMAが利用可能でない場合には、圧縮システムをUMBまたは通常メモリにロードすることもできる。好ましい実施例では、圧縮システムの圧縮/伸張エンジンを、メモリの一部に記憶し、圧縮システムのファイル・システムをメモリの異なる部分に記憶することができる。DBLSPACE.SYSファイルのコードは、圧縮コードを配置する関数InquireResidentImageSizeとPerformFinalPlacement を呼び出す。上記コマンドは、様々なメモリ・マネージャの構文と適合するように変更することができる。メモリ・マネージャがインストールされない場合には、圧縮システムが最終配置を選択することが好ましい。
データを圧縮および伸張する好ましい方法が、米国特許出願「データ圧縮システムおよび方法(METHOD AND SYSTEM FOR DATA COMPRESSION)」(出願番号08/031,189)に示されている。
この発明による方法およびシステムが、好ましい実施例により説明されてきたが、この発明がこの実施例に制限されるものでないことはいうまでもない。この発明の思想内における変更が、この技術分野の専門家ならば明らかであろう。例えば、この技術分野の専門家ならば、圧縮システムと異なる他のシステム(例えば、暗号システム)のデバイス・ドライバがこの発明に従ってインストールされることも可能であることを知るであろう。この発明の範囲は、特許請求の範囲により定義される。
従来のコンピュータ・システムのブロック図である。 従来技術における圧縮ボリューム・ファイル(CVF)およびそのホスト・ボリュームのブロック図である。 圧縮システムの様々な要素を示すブロック図である。 関数FirstTime の処理の流れを示すフローチャートである。 圧縮ボリューム用に予約されるドライブ文字の個数を決定するルーチンの処理の流れを示すフローチャートである。 圧縮ボリューム用に予約されるドライブ文字の個数を決定するルーチンの処理の流れを示すフローチャートである。 関数TryToSwap の処理の流れを示すフローチャートである。 ROMBoot ルーチンの処理の流れを示すフローチャートである。 DiskBootSectorルーチンの処理の流れを示すフローチャートである。 SYSINIT ルーチンの処理の流れを示すフローチャートである。 SYSINIT ルーチンの処理の流れを示すフローチャートである。 関数ProcessConfig の処理の流れを示すフローチャートである。 初期化処理中のドライブ文字の割り当てを示すブロック図である。 初期化処理中のドライブ文字の割り当てを示すブロック図である。 初期化処理中のドライブ文字の割り当てを示すブロック図である。 この発明の好ましい実施例を実現するコンピュータ・システムのブロック図である。 固定ボリューム上に記憶された好ましい圧縮ボリューム・ファイルのブロック図である。 コンピュータ・システムのRAMのメモリ・マップである。 圧縮システムの初期配置、一時的配置、および3つの可能な最終(常駐)配置を示すRAMのメモリ・マップである。 FindINI ルーチンの処理の流れを示すフローチャートである。
符号の説明
300 関数TryToSwap
301 DBLSPACE.BINファイル
302 関数FirstTime
304 関数InquireInitSize
305 関数MoveToInitTimeLocation
306 関数Hooks
307 関数PerformFinalPlacement
309 圧縮/伸張エンジン
310 ファイル・システム
1401 ROM
1402 ブート・プログラム
1403 BIOS
1404 CPU
1405、1408 取り外し可能ボリューム
1406 固定ボリューム
1407 RAM
1410 オペレーティング/圧縮システム

Claims (6)

  1. オペレーティング・システムの圧縮システムをインストールするコンピュータ・システムにおける方法であって、
    前記コンピュータ・システムのメモリに、前記圧縮システムの初期化関数をロードし、
    圧縮ボリューム用に予約されたドライブ文字の個数の決定と前記圧縮システムのどのボリュームが搭載されるかの決定を行う初期化関数を実行し、
    前記決定された圧縮システム用のドライブ文字の個数を予約し、
    標準システム・デバイス・ドライバのインストールに基づいて搭載することができる前記決定された圧縮ボリュームを搭載し、および
    各非標準デバイス・ドライバのインストール後に、前記非標準デバイス・ドライバのインストールに基づいて搭載することができる前記決定された圧縮ボリュームを搭載するステップ、
    を含む方法。
  2. 前記初期化関数の実行後に、前記オペレーティング・システムによって決定されるメモリ配置へ初期化コードを再配置するように、前記圧縮システムに指示するステップ、
    を含む請求項1に記載の方法。
  3. 非標準デバイス・ドライバのロードの完了後に、前記オペレーティング・システムによって決定されるメモリ配置に、前記圧縮システムの常駐部を配置するように、前記圧縮システムを指示するステップ、
    を含む請求項1に記載の方法。
  4. 前記オペレーティング・システムによってインストールされるメモリ・マネージャによって決定されたメモリ配置に、前記圧縮システムの常駐部を配置するように、前記圧縮システムを指示するステップ、
    を含む請求項2に記載の方法。
  5. 標準および非標準デバイス・ドライバを有するオペレーティング・システムを備えたコンピュータ・システムに圧縮システムをインストールするための、圧縮システムにおける方法であって、
    圧縮ボリューム用に予約するドライブ文字の個数を決定し、
    どの圧縮ボリュームが搭載されるかを決定し、
    標準システム・デバイス・ドライバのインストールに基づいて搭載することができる前記決定された圧縮ボリュームを搭載し、および
    非標準デバイス・ドライバのインストール後に、前記非標準デバイス・ドライバのインストールに基づいて搭載することができる前記決定された圧縮ボリュームを搭載するステップ、
    を含む方法。
  6. 前記オペレーティング・システムによって指定されたメモリ配置に前記圧縮システムの一部を再配置するステップ、
    を含む請求項5に記載の方法。
JP2004234624A 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム Expired - Fee Related JP3920882B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/140,753 US6453363B1 (en) 1993-10-21 1993-10-21 Method and computer system for integrating a compression system with an operating system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP25563494A Division JP3993648B2 (ja) 1993-10-21 1994-10-20 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム

Publications (2)

Publication Number Publication Date
JP2005050359A true JP2005050359A (ja) 2005-02-24
JP3920882B2 JP3920882B2 (ja) 2007-05-30

Family

ID=22492657

Family Applications (4)

Application Number Title Priority Date Filing Date
JP25563494A Expired - Fee Related JP3993648B2 (ja) 1993-10-21 1994-10-20 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234626A Expired - Fee Related JP3917612B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234625A Expired - Fee Related JP3833677B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234624A Expired - Fee Related JP3920882B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム

Family Applications Before (3)

Application Number Title Priority Date Filing Date
JP25563494A Expired - Fee Related JP3993648B2 (ja) 1993-10-21 1994-10-20 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234626A Expired - Fee Related JP3917612B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
JP2004234625A Expired - Fee Related JP3833677B2 (ja) 1993-10-21 2004-08-11 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム

Country Status (5)

Country Link
US (3) US6453363B1 (ja)
EP (1) EP0650120B1 (ja)
JP (4) JP3993648B2 (ja)
CA (1) CA2117845C (ja)
DE (1) DE69425937T2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5907703A (en) * 1996-05-08 1999-05-25 Mijenix Corporation Device driver for accessing computer files
US5787019A (en) * 1996-05-10 1998-07-28 Apple Computer, Inc. System and method for handling dynamic changes in device states
US5835737A (en) * 1996-05-10 1998-11-10 Apple Computer, Inc. Method and apparatus for arbitrating access to selected computer system devices
US5822582A (en) * 1996-07-19 1998-10-13 Compaq Computer Corporation Boot drive selection and hibernation file detection
US6442753B1 (en) * 1997-08-28 2002-08-27 International Business Machines Corporation Apparatus and method for checking dependencies among classes in an object-oriented program
US6370641B1 (en) * 1999-01-26 2002-04-09 Dell Usa, L.P. Method and apparatus for determining the drive letter assignment of a CD-ROM drive during initial system setup of a computer system
JP2000267818A (ja) * 1999-03-18 2000-09-29 Matsushita Electric Ind Co Ltd リムーバブルデバイスでのパーティション実現方法
US6493822B1 (en) * 1999-09-16 2002-12-10 International Business Machines Corporation Foreign drive determination and drive letter conflict resolution
US6751719B1 (en) 2000-10-26 2004-06-15 International Business Machines Corporation Method and an apparatus to dynamically order features and to resolve conflicts in a multiple-layer logical volume management environment
US7120786B2 (en) * 2002-06-17 2006-10-10 Microsoft Corporation Booting from a compressed image
US7743102B1 (en) 2002-11-15 2010-06-22 Stampede Technologies, Inc. System for selectively and automatically compressing and decompressing data and enabling compressed data to be rendered in a pseudo-native form
US7266679B2 (en) * 2003-05-01 2007-09-04 Dell Products L.P. System and method for reducing instability in an information handling system
US8813021B1 (en) * 2006-02-16 2014-08-19 Cypress Semiconductor Corporation Global resource conflict management for an embedded application design
KR20080072202A (ko) * 2007-02-01 2008-08-06 삼성전자주식회사 데이터 처리 방법 및 데이터 처리 장치
FR2923924B1 (fr) * 2007-11-15 2011-01-07 Oberthur Card Syst Sa Procede et dispositif de detection et de resolution d'un conflit dans la gestion des peripheriques d'un ordinateur.
US20110047614A1 (en) * 2009-08-19 2011-02-24 Chi-Feng Huang Permission management system for data accessing and method thereof
US9582513B2 (en) 2013-12-08 2017-02-28 Microsoft Technology Licensing, Llc Accessing data in a compressed container through dynamic redirection

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136713A (en) 1989-08-25 1992-08-04 International Business Machines Corporation Apparatus and method for decreasing the memory requirements for bios in a personal computer system
US5210875A (en) 1989-08-25 1993-05-11 International Business Machines Corporation Initial bios load for a personal computer system
GB9012949D0 (en) 1989-08-25 1990-08-01 Ibm An apparatus and method for loading bios from a diskette in a personal computer system
US5557799A (en) * 1990-03-22 1996-09-17 International Business Machines Computer determination of operating system or data
US5136711A (en) 1990-10-17 1992-08-04 Ast Research System for multiple access hard disk partitioning
EP0483865A3 (en) * 1990-11-02 1992-09-02 Kabushiki Kaisha Toshiba Personal computer capable of changing boot priority
EP0489227B1 (en) * 1990-12-06 1998-12-23 Tandberg Data Asa Data storage system having removable media and equipped to download a control program from the removable media
US5265252A (en) * 1991-03-26 1993-11-23 International Business Machines Corporation Device driver system having generic operating system interface
JPH056268A (ja) * 1991-06-28 1993-01-14 Toshiba Corp コンピユータシステム
US5291585A (en) * 1991-07-29 1994-03-01 Dell Usa, L.P. Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
US5414850A (en) * 1991-08-23 1995-05-09 Stac Electronics, Inc. System for transparently compressing data files in a computer system
JPH05100827A (ja) * 1991-10-09 1993-04-23 Kyocera Corp パーソナルコンピユータ
US5355498A (en) 1992-02-25 1994-10-11 Sun Microsystems, Inc. Method and apparatus for booting a computer system without loading a device driver into memory
US5455577A (en) 1993-03-12 1995-10-03 Microsoft Corporation Method and system for data compression
US5418918A (en) 1993-09-10 1995-05-23 Compaq Computer Corp. Scanning initial CD-ROM sectors for a boot record and executing said boot record to load and execute floppy disk image corresponding to the existing floppy drive

Also Published As

Publication number Publication date
JP3993648B2 (ja) 2007-10-17
DE69425937T2 (de) 2001-01-18
JP3917612B2 (ja) 2007-05-23
US5815705A (en) 1998-09-29
JP2005011371A (ja) 2005-01-13
CA2117845A1 (en) 1995-04-22
JPH07160622A (ja) 1995-06-23
JP3833677B2 (ja) 2006-10-18
EP0650120B1 (en) 2000-09-20
JP2005011370A (ja) 2005-01-13
DE69425937D1 (de) 2000-10-26
JP3920882B2 (ja) 2007-05-30
US20030023772A1 (en) 2003-01-30
EP0650120A2 (en) 1995-04-26
US6453363B1 (en) 2002-09-17
CA2117845C (en) 2004-12-14
US6618768B2 (en) 2003-09-09
EP0650120A3 (en) 1997-10-01

Similar Documents

Publication Publication Date Title
JP3920882B2 (ja) 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
US5136711A (en) System for multiple access hard disk partitioning
US5933846A (en) Rewritable ROM file device having read/write buffer access control via copy of rewritable area
US6279109B1 (en) Computing system and operating method for booting and running a graphical user interface (GUI) with r/w hard drive partition unavailable
US5526523A (en) Interface between operating system and operating system extension
US5701477A (en) Method and apparatus for master boot record shadowing
US6308264B1 (en) Dual use master boot record
US7082509B2 (en) Method and system for allocating memory during system boot to reduce operating system memory resource consumption at run-time
EP1378830B1 (en) Operating system selector and data storage drive
KR19990036566A (ko) 컴퓨터기억장치의논리적드라이브의파티션맵핑갱신시스템 및 방법
JPH09282111A (ja) 半導体メモリ装置及びその制御方法
WO2000019314A1 (en) Method and device for booting a cd-rom from a single disk image having multiple emulations
EP1133730A1 (en) Method for flashing a read only memory (rom) chip of a host adapter with updated bios code
KR100393721B1 (ko) 컴퓨터기억장치의시뮬레이션방법
US6748511B2 (en) Resizing a protected area on a hard disk
US20080040572A1 (en) Method, system, and article of manufacture for reserving memory
US6874076B2 (en) Method, system, and computer program product for migrating data from one real page to another
JP2000163291A (ja) コンピュ―タ読取り可能媒体を準備するためのコンピュ―タシステムおよび方法
JP2000163255A (ja) コンピュ―タ読取り可能媒体にアクセスするためのコンピュ―タシステムおよび方法
KR940005773B1 (ko) Rom 디스크와 ram 디스크가 기능적으로 결합된 디스크 화일을 제어하기 위한 메모리 액세스 제어장치 및 방법
JPH08263377A (ja) キャッシュメモリ管理方式
JPH05298030A (ja) 外部記憶装置制御方法
KR20050096651A (ko) 부팅 시간을 감소하기 위한 향상된 임베디드 파일시스템
JPH08263364A (ja) メモリ管理方法及びメモリ管理装置
JPH07104980A (ja) 制御情報管理方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060919

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070215

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100223

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110223

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120223

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120223

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130223

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130223

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140223

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees