Keywords:IPL,ROMローダ・ルーチン,オペレーティング・システム・ローダ,BIOS,カーネル,プロセス管理,メモリ管理,システム・コール,シェル
< copyright 1994 互野恭治 >
BIOS
(basic input/output system)
カーネル
(Kernel)
プロセス管理
ロードされたプログラムに対して,プロセスの実行,プロセスの終了などのスケジューリングをするものです.マルチタスクでは,プロセスの切り替えおよびプロセス間通信も行います.トップに戻るORオペレーティング・システムトップに戻るシェル
ユーザとOSとのやり取りの仲立ちをするものです.コマンド・プロセッサとも呼ばれています. とくに重要な機能は,ユーザの要求に応じてアプリケーション・プログラムをメモリにロードし,そのプログラムに制御を渡し,実行することです.プログラムが終了すると制御はシェルに戻ってきます. また,シェルはユーザにとって便利な機能を提供してくれます.MS-DOSではCOMMAND.COMがシェル・プログラムですが,UnixではB-shell,C-shellなどが使われています. トップに戻るORオペレーティング・システムトップに戻るIPL(initial program loader)
コンピュータの電源を入れたとき,OSなどのプログラムをメモリに読み込んで始動しますが,そのOSなどを読み込むために必要なプログラムをIPLといいます. ROMローダ・ルーチンを指す場合とオペレーティング・システム・ローダを指す場合があります.トップに戻るORオペレーティング・システムトップに戻るシステム・コール
アプリケーション・プログラムがディスプレイやディスクなどのデバイスを直接操作するのではなく,OSを通じて行うのがシステム・コールです. これによって,アプリケーション・プログラムの作成が容易になり,さらに機種に対して汎用的なソフトを作ることができます. 図は,MS-DOSの場合のシステム・コールの概略です.アプリケーション・プログラムでは,ソフトウェア割り込みを利用してMSDOS.SYSを通じてデバイスにアクセスするようになっています.また,割り込みベクタのINT 21hにほとんどの機能が集約しています. しかし,日本語の漢字処理のための機能,マウス,グラフィック関係などマシン固有な処理に対して,国産のパソコンではシステム・コールを独自に拡張しています.メモリ管理
プログラムにメモリを割り当てたり,メモリを開放したり,サイズの変更を行います.また,通常メモリのほかに,拡張メモリや増設メモリの管理も行います.トップに戻るORオペレーティング・システムトップに戻るオペレーティング・システム・ローダ
CP/M,MS-DOS,OS/2などのOSでは,ディスクを媒体としてOSが供給されています.したがって,ディスクの先頭セクタにOSを読み込むためのプログラムを書き込んでおきます.これを,オペレーティング・システム・ローダと呼びます. オペレーティング・システム・ローダは,ROMローダ・ルーチンによって呼び出された後,OSを読み込んでOSに制御を移します.トップに戻るORオペレーティング・システムトップに戻るKeywords:タイム・スライス,タイム・シェアリング・システム,プライオリティ
< copyright 1994 互野恭治 >トップに戻るORマルチタスク トップに戻る
タイム・スライス
(time slice)
タイム・シェアリング・システム
(TSS time sharing system)
プライオリティ
プライオリティを直訳すれば「優先度」となり,各所で使われます. マルチタスクで使用する場合は,タスク(プロセス)の実行優先度を意味しています.タスクには緊急度が高く速く処理しなければいけないものもあれば,そうでないものもあります.そこで,緊急度の高いタスクには高いプライオリティを,そうでないタスクには低いプライオリティを設定してやることにより,効率よく処理をすることができます. OS/2では,高いほうからタイム・クリチカル,レギュラ,アイドルの三つの優先順位があります. また,プライオリティには,プログラムに設定するものと,OSが状況によりプロセスのプライオリティを判断する場合とがあります.< copyright 1995 相沢一石 >米国では本格的な32ビット次世代OSとしてウィンドウズに対抗して健闘しています.トップに戻るOROS/2Warp トップに戻る
Warp
OS/2Ver3.0をIBMでは新しい時代へのワープととらえてこの名前で発売しています.従来の,多くのメモリを必要とし重いと言われていたOS/2を日本語版では最低5Mバイト以上 英語版では4Mバイト以上のメモリで,CPUも386でも軽快に稼働するようになっています.LaunchPadの導入などで常時使うアプリケーションの立ち上げの簡略化,ドラッグ&ドロップによる操作環境の充実など,オブジェクト指向の流れに対応し,次のタリジェントが気になります.当初発売されたものはWIN-OS/2は含まれないバージョンでWindows3.1のライセンスがない分安価になっています.従来のWindows3.1がそのまま動きます. OS/2はVer2.1からCD−ROMでも供給されています.WarpのCD-ROM版にはインターネットの接続のためのツール一式が添付されると共に,IBMはWarpの利用者専用のIP接続サービスを行うなど,OS/2の拡販に躍起になっています.トップに戻るOROS/2Warp トップに戻るWIN/OS2
OS/2上でWindows3.1のアプリケーションプログラムを実行するための機能,OS/2のVer2.1まではOS/2上でWindows3.1のプログラムアプリケーションを稼働するためには必須でした.Ver2.11以後はWIN−OS/2がなくてもネイティブのWindows3.1をOS/2で稼働できるようになっています.トップに戻るOROS/2Warp トップに戻る二重ブート
DOSのユーザーがOS/2を導入した後もコマンドの指示でOS/2からDOSへ,DOSからOS/2へ切り替え再起動を行うために,O/S2が用意したものです.AT互換機のベースとなるOSのMS-DOS(PC-DOS)では起動時に導入するOSを選択する機能を持っていません.そのためDOSを使用していたシステムにOS/2を導入すると以後原則としてOS/2しか起動できなくなります.
そこでOS/2は導入時にDOSの環境がシステム上にあるときはこの二重ブートシステムを導入します.OS/2の互換DOSボックス以外にピュアなDOSも利用環境が確保されています.OS/2にはこの他に起動時にOSの選択ができるブートマネージャも用意されています.
トップに戻るOROS/2Warp トップに戻るLaunchPad
OS/2WarpVer3.0から利用できるようになった機能で,頻繁に利用するアプリケーションプログラム(オブジェクト)をLaunchPadに登録しておき直接ランチパッドのオブジェクトの絵をクリックすることでオブジェクトをアクセスできるようになりました.ワークプレース・シェル
ユーザーから見えるOS/2の仕組みをワークプレース・シェルと呼んでいます.OS/2の中身の詳細をユーザーが知らなくてもコンピュータを容易に利用できるようにグラフィカルに表示されたデスクトップで,オブジェクトをマウスで選択し,必要な指示を与えることで処理ができるような仕組みです.トップに戻るOROS/2Warp トップに戻る仮想DOSマシン
インテル386以上のCPUが持っている仮想86モードを利用し,CPU上に複数の8086の実行環境を作成しその実行環境でDOSのアプリケーションを実行します.この場合は各DOSの環境は独立に設定することができます.そのため,コンベンショナルメモリもそれぞれの実行環境に合わせた適切な設定が可能ですので,コンベンショナルメモリの確保というDOSの悩みは大いに解消されます.トップに戻るOROS/2Warp トップに戻るブートマネージャ
OS/2に標準で添付されているブート制御プログラムで,任意のOSを選択して起動することができます.二重ブートではOS/2とDOSの切り替えはできますがそれ以外のOSの切り替えはできません.ブートマネージャを利用するとそれ以外のOSについても選択起動ができます.ディスクの区画設定時にOS/2に添付されたFDISKコマンドで区画の設定,ブートマネージャの設定を行います.
トップに戻るOROS/2Warp トップに戻るプリエンプティブなマルチタスク
マルチタスクでは,複数のタスクを順次切り替えて実行することができます.これによって,処理が同時に進行しているかのように見えます.しかし,Windows3.1では,各タスクがCPUを占有する時間をシステムによって管理しないノンプリエンプティブなマルチタスクであるために,プリント作業時などにおいては,プリントのタスクが必要以上にCPUを占有し,全体の作業効率を落としています.プリエンプティブなマルチタスクではそのようなことはありません.トップに戻るOROS/2Warp トップに戻るタリジェント
IBM社とアップル社の合弁でOS開発のために設立されたタリジェント社で,オブジェクト指向による次世代OSを開発する予定になっていた. トップに戻るOROS/2Warp トップに戻るKeywords:TSR,パイプ,リダイレクト,フィルタ,FIFO
< copyright 1994 互野恭治 >トップに戻るORMS-DOS トップに戻る
TSR
(Terminate Stay Routine)
パイプ
マルチタスク・システムにおいて,タスク(プロセス)間のデータ通信に用いられる手法の一つです.パイプはあるプロセスによって書かれ,別なプロセスによって読まれます. パイプの格納場所は,メモリもしくはディスク・ファイルで典型的なFIFOの形式となります. MS-DOSの場合は,マルチタスクではありませんがパイプをサポートしており,ディスクにテンポラリ・ファイルを作って,プロセスからプロセスに情報を引き渡すことができます.例えば,リダイレクト
リダイレクトとは標準入出力の切り換えをいいます.UNIXの影響を強く受けたMS-DOSなどでは,入出力の対象がすべてファイルとして同格に扱われます. そのため,入出力の機器やファイルを簡単に切り換えることができます.例えば,フィルタ
フィルタとは,標準入力からデータを読み取り,それに対して所定の変換を行って結果を出力するコマンドのことをいいます. MS-DOSには次の3種類のフィルタが用意されていますが,UNIXなどでは,このほかにもスペル・チェックやワード・カウントといったフィルタを数多く備えています.Keywords:COMMAND.COM,AUTOEXEC.BAT,デバイス・ドライバ,Multi-Config
< copyright 1994 諏訪寿行 >トップに戻るORCONFIG.SYS トップに戻る
デバイス・ドライバ
デバイス・ドライバは,名前のとおりデバイス(装置)を駆動させるためのソフトウェアですが,CONFIG.SYSの支配下で使用させるために,その構造には図に示すような一定の規則があります.COMMAND.COM
COMMAND.COMは,キーボードからのコマンドを受け付けてアプリケーションを起動したり,COMMAND.COM自身がもつ内部コマンド,例えばDIRなどを実行したりします.このようなソフトウェアをコマンド・プロセッサと呼びます.トップに戻るORCONFIG.SYS トップに戻るAUTOEXEC.BAT(バッチ処理)
一連のコマンドを同じ順序で入力する場合,いちいちDOSのコマンド・プロンプトから入力するのは大変です.そこで,こうした煩雑さを回避するために,これらの一連のコマンドを .BATという拡張子のファイルに記述しておきます. こうしておけば,DOSのプロンプトからファイル名を入力するだけで,一連のコマンドが実行されます.これをバッチ処理と呼び,拡張子 .BATの付いたファイルをバッチ・ファイルと呼びます. このようなバッチ・ファイルの中で,MS-DOS起動時に自動的に実行される特別なファイルが,AUTOEXEC.BATです.トップに戻るORCONFIG.SYS トップに戻るMulti-Config
今まで,ワープロを使うときとLAN環境などでCONFIG.SYSの内容を書き換えてリブートするようなことが頻繁にあり,たいへん不便でした.このマルチ-コンフィグレーション・コマンドを使えば,目的に応じて最適化できます. 〈使用例〉 3個のメニュ項目で,タイムアウト10秒後[other]
メニュが自動的に選択される.[menu]
- menuitem=taro, Boot for Taro
- menuitem=hanako, Boot for Hanako
- menuitem=other, Boot for everybody
- menudefault=other, 10
[common]
- dos=high
- buffers=5
- device=c:\dos\himem.sys
[taro]
- files=30
- device=c:\dos\emm386.exe
[hanako]
- files=20
- device=c:\dos\emm386.exe noems
[other]
- files=10
Keywords:PSP,FCB,DTA,ファイル・ハンドル,INT 21h
< copyright 1994 諏訪寿行 >トップに戻る
FCB,DTA
FCB(File Control Block)とDTA(Disk Transfer Address)は,ディスクとのリード/ライトを行うときに利用される領域です.FCBとDTAのデフォルト領域は,PSP内に確保されています. これらの領域は,ユーザが独自に設定することも可能になっています.DTAの変更はDOSファンクションの1AH,FCBはファイル・オープン時にFCBの先頭アドレスを渡すことによって行われます. FCBとDTAを利用したファイルへのアクセスは,CP/Mとの互換性のために設けられているものです.この方式では階層ディレクトリを扱うことができません. しかし,MS-DOSではVer2.0から階層ディレクトリをサポートするUNIXのようなシステム・コールが追加されているので,ファイル・アクセスにはファイル・ハンドルと呼ばれる,システムが管理するファイル記述子を利用して行います.トップに戻るORシステム・コール トップに戻るPSP,システム領域
.COMや .EXEなどの実行可能なファイルは,メイン・メモリの空き領域にロードされ,その領域はプログラム・セグメントと呼ばれます. MS-DOSでは,このプログラム・セグメントの前に100Hバイトの作業領域を確保します.ここには,コマンド・ラインからのパラメータや各種エントリ・ポイントなどが格納され,ファイルをアクセスするためのFCBやDTA,その他の作業領域としてMS-DOSシステムが利用します. この領域は,PSP(Program Segment Prefix)と呼ばれています.コマンド・ラインからパラメータを入力した場合,第1パラメータは第1FCB,第2パラメータは第2FCBにそれぞれ格納され,ファイル名はFCB形式のファイル名に変換されます. コマンド・ラインの全文字列は,そのままのイメージでDTAに格納されます.トップに戻るORシステム・コール トップに戻るファイル・ハンドル
MS-DOSの標準ファイル・ハンドルは,表のようになっています. MS-DOSでは,0〜4のファイル・ハンドルをあらかじめオープンしてあるため,これらのハンドルで割り当てられたファイルもしくはデバイスにすぐアクセスすることができます.ハンドル番号 | 機能 | ||
---|---|---|---|
0 | 標準入力(キーボード) | デバイス名CON | |
1 | 標準出力(スクリーン) | デバイス名CON | |
2 | 標準エラー出力(スクリーン) | デバイス名CON | |
3 | 標準補助装置(RS-232Cなど) | デバイス名AUX | |
4 | 標準プリンタ | デバイス名PRN |
INT 21h命令
MS-DOSのバージョンによって異なりますが約70個〜115個のファンクションが公開されています.プログラミング上必要なのに公開されていないUNDOCUMENTEDなファンクションも多く存在します. 下の図はINT 21hファンクション06hの直接コンソール入出力の呼び出し方です.Keywords:プロテクト・メモリ,EMSメモリ,XMS メモリ,VCPI,DPMI,EMM386.EXE,DOS Extender
< copyright 1994 諏訪寿行 >トップに戻る
プロテクト・メモリ
プロテクト・メモリは,アドレスが1Mバイト(100000h)以上に割り当てられているメモリ領域です.80286/i386以上のCPUで利用できる領域です. ただし,この領域をMS-DOSで利用するためには,EMM386.EXEなどのメモリ管理用のデバイス・ドライバを利用しなくてはなりません. この広いメモリを複数のプログラムから有効に使えるようにするために,VCPI,DPMIという規約が作られました.VCPI,DPMI
VCPIは,Virtual Control Program Interface,DPMIは,Dos Protected Mode Interfaceの略です.80286以上のCPUのプロテクト・モードでプロテクト・メモリを利用する場合,EMS,XMS,DOS Extenderなどの方式があります.しかし,それらは独自に考案された方式であるため,統一的な管理がなされていません. VCPIは,1989年6月に,Phar Lap Software社とQuarterdeck Office Systems社の2社を中心に策定された規格です.これに対してDPMIは,Microsoft社を中心とする11社のソフト・ベンダが参加して作成した規約です.この11社の中には,先にVCPIを規定した2社も含まれています. DPMIは,MS-Windows3.0がこの規約に対応したことによって業界の標準になりました.MS-Windowsでは,プロテクト・モードで動作しているアプリケーションが,リアル・モードに存在するBIOSにアクセスするとき,DPMIを利用します. また,MS-Windows上で複数のMS-DOSアプリケーションを切り替えて使用するときにも,DPMIが利用されています.トップに戻るORメイン・メモリ,主記憶装置 トップに戻るXMSメモリ
MS-DOSの管理下に入ったプロテクト・メモリをXMSメモリと呼んでいます.現在では,プロテクト・メモリを複数のアプリケーションに解放する規格であるVCPIやDPMIが策定されています.これらのためにMS-DOSに用意されたドライバがHIMEM.SYSです. XMSメモリは,HMA(High Memory Area)とEMB(Extend Memory Block)という二つの領域に大きく分かれます.HMAは,メイン・メモリのすぐ上のアドレス(100000h〜10FFEFh)を占める約64Kバイトの領域です. 80286以上のCPUのリアル・モードでは,この領域をメイン・メモリの延長として確保することができ,メイン・メモリと同様高速にアクセスすることが可能です.トップに戻るORメイン・メモリ,主記憶装置 トップに戻るDOS Extender
DOS Extenderは,プロテクト・モード用に作られたプログラムをMS-DOS上で利用できるようにするためのプログラムです. プロテクト・モードでは,1Mバイトを超えるメモリを扱えますから,大容量のメモリを必要とするアプリケーションがDOS Extender用に作成されています. 日本では,DOS Extenderを採用している例はあまり多くありませんが,富士通のパソコンFM-TOWNSのOSでは,このDOS Extenderを標準的に採用しています. DOS Extenderによる拡張は,EMSなどと違ってMS-DOSにデバイス・ドライバを組み込む必要がない,ソフトウェアの移植が比較的容易に行えるなどの利点がありますが,DOS Extender自体の規格の統一がなされなかったこともあり,今ひとつ普及するにはいたっていません. また,仮想EMSドライバのように,ほかにもプロテクト・モードを利用したプログラムがあると,メモリなどの競合がおきてしまい,共存することは難しくなっています.それを回避するための規格がVCPIとDPMIです. トップに戻るORメイン・メモリ,主記憶装置 トップに戻るKeywords:IBMフォーマット,フォーマット,SASI,SCSI,ブート・セクタ,セクタ,物理フォーマット,IPL,FAT
< copyright 1994 諏訪寿行 >トップに戻る
フォーマット,トラック
フォーマットとは,磁気コーティングされたディスクにトラックやセクタを割り振ることです.トラックは同心円状に構成され,リード/ライト・ヘッドはこのトラック(同心円)に沿ってデータのリード/ライトを行います. レコードの溝に近い構造をしていますが,渦巻き状ではありません.磁気リングの幅は,リード/ライト・ヘッドの幅よりも若干広くなっています.各トラックは,ディスクの中心から放射線状にいくつかの区画に区切られます.この区切られた1区画をセクタと呼びます.トップに戻るORフロッピ・ディスク,ハード・ディスク トップに戻るセクタ
セクタは,ディスク上の物理的記憶域の最小単位で,サイズが一定しています. セクタによって構成されているトラックは,ディスク・フォーマット,オペレーティング・システムによってディスクに記録されています. 1Mバイトのフロッピ・ディスクでは,5.25インチ2HDと3.5インチ2HDが一般的ですが,これらのフロッピ・ディスクでは,トラック本数が77本(0〜76),1論理トラック(サーフェス0,サーフェス1を合わせたもの)あたりのセクタ数が16セクタ,1セクタのサイズは1024バイトとなっています. MS-DOSでディスク上のデータにアクセスする場合は,相対セクタ番号を利用します.相対セクタ番号は,トラック0,サーフェス0,セクタ1の位置を0にし,以下最後のセクタまで通し番号を付けたものです. 2DDや2HDのフロッピ・ディスクでは,ディスクの両面を利用してデータを記録することができます.ディスクの表面がサーフェス0もしくはサイド0,裏面がサーフェス1もしくはサイド1となっています. MS-DOSのフォーマット・コマンドでは,トラック,セクタの区画(物理フォーマット)を行った後に,0番目のトラックにIPL,FAT,ディレクトリなどの領域を確保(初期化)します(論理フォーマット).トップに戻るORフロッピ・ディスク,ハード・ディスク トップに戻るSASI,SCSI
PC98用のハード・ディスクでは,インターフェースにSASI,SCSIとIDEの3種類がありますが,現在はIDEが多くなっています. ハード・ディスクのフォーマットには標準フォーマットと拡張フォーマットの2種類があります.標準フォーマットでは,ハード・ディスク1台あたりの容量が最大20Mバイトまで,1クラスタ・サイズは常に8Kバイトを必要とします. クラスタは,ディスク・ファイルを管理するうえでの最小単位ですが,標準フォーマットでは例えば1バイトのデータのようなどんなに小さなファイルでも,1クラスタは8Kバイトのファイル・サイズを必要とすることになります. これに対して,MS-DOS 3.1以降にサポートされている拡張フォーマットでは,SASIの場合,1パーティションあたり最大40Mバイト,SCSIの場合で最大2Gバイト(ただし,MS-DOS3.3では最大128Mバイト)の容量が確保できます. 1クラスタのサイズは,確保する領域のサイズにより2Kバイト,4Kバイト,8Kバイト,16Kバイト,32Kバイトとなっています.トップに戻るORフロッピ・ディスク,ハード・ディスク トップに戻るIPL
IPL(Initial Program Loader)は,ディスクのシステムをメモリ上に読み込むためのプログラムで,MS-DOSがメイン・メモリにロードされるために必要なプログラムです.IPLは,ディスクのトラック0のセクタ1,つまり一番外周に格納されています.トップに戻るORフロッピ・ディスク,ハード・ディスク トップに戻るIBMフォーマット
IBMフォーマットは,図のような構成になっています.この中のセクタを特定するために,すべてのセクタにLSN(Logical Sector Number)と呼ばれる連番をつけ,さらにいくつかのLSNをまとめてクラスタという名にして番号をつけます. LSN0はMS-DOSの予約領域で,ブート・セクタと呼ばれます.LSN1からは,FATとそのコピーおよびルート・ディレクトリ領域などが割り当てられます.ブート・セクタ
ブート・セクタは表のような構成になっていて,ディスクの構成を示している情報を示すBPB(BIOS Parameter Block)などを含んでいます.このBPBの内容はIO.SYSが管理していますが,MSDOS.SYS側でもBPBの内容を把握している必要があるので,BPBに論理ドライブ名などを加えてDPB(Drive Parameter Block)として管理しています.物理フォーマット,論理フォーマット
ハード・ディスクのフォーマットは,物理フォーマットと論理フォーマットの2段階に分かれています.物理フォーマットでは,ディスク・ドライブ全体に対して,トラックおよびセクタを設定します.物理セクタ長の設定では,256バイトと512バイトのいずれかを選択することができます. 物理セクタ長を256バイトで設定してフォーマットしたディスクでは,分割できる最大パーティションは8となり,512バイトで設定した場合は最大16となります. 論理フォーマットは,ディレクトリ・エントリ,FATの初期化などを行い,MS-DOSで使用する領域をディスク・ドライブから確保します. ディスクの物理的なリード/ライトの単位はセクタですが,ファイルを管理する最小論理単位は,クラスタとなります. クラスタには0番からの通し番号が割り振られていて,どのファイルがどのクラスタを利用しているかは,FATに記録されています.FATテーブルのクラスタ管理用フィールドには12ビットと16ビットの二通りのものがあります.トップに戻るORフロッピ・ディスク,ハード・ディスク トップに戻るFAT
FAT(File Allocation Table)は,ファイルを管理するために記憶開始クラスタ番号および使用したクラスタ番号などを記録している領域のことで,ファイル・アクセスで重要な役割をします. MS-DOSでファイルをアクセスするにはいくつかの方法があり,ハードウェアを直接制御することも可能ですが,普通はソフトウェアからクラスタを指定してファイルをアクセスします. MS-DOSでは,ファイル・アクセスの基本単位をクラスタによって管理しています.1クラスタは,物理セクタの2のべき乗となるように確保されます.一般的に,1クラスタは,1もしくは2セクタとなっていることが多いようです. このファイル・アクセスを行うにあたって必要となる情報は,どのファイルがどのクラスタを指しているか,ということです. 大容量のハード・ディスクに対応するため,16ビットFATが採用されました.16ビットFATの場合,65536(2の16乗)個のクラスタを扱うことができるため,40Mバイトのハード・ディスクでも1クラスタ・サイズは2Kバイトですみます. トップに戻るORフロッピ・ディスク,ハード・ディスク トップに戻るKeywords:ページ・フレーム,論理ページ,仮想EMS,HMA,EMB,XMM,HIMEM.SYS,UMB,EMM386,DEVICEHIGH,LOADHIGH
< copyright 1994 諏訪寿行 >トップに戻るOREMSメモリトップに戻る
ページ・フレーム,論理ページ,仮想EMS
ページ・フレームの大きさは,16Kバイト×4ページ=64Kバイトとなります.ページ・フレームを構成する16Kバイトごとの各ページは物理ページと呼ばれ,論理ページと1対1に対応しています. ソフト的なEMSメモリの設定は,仮想EMSと呼ばれます.仮想EMSは,32ビット・マシンのプロテクト・メモリをEMSメモリとして使用します.この方法を利用する場合は,当然マシンがプロテクト・メモリを搭載した32ビット機という条件がつきます. 仮想EMSを設定するためにMS-DOS5.0からは,EMM386.EXEドライバが提供されています. EMM386.EXEは,80386以上のCPUを搭載したマシンでプロテクト・メモリをEMSメモリとして使用するためのドライバです.80386以上のマシンを使用している場合は,EMM386.EXEを使用したほうがより高速にEMSメモリにアクセスすることができます.トップに戻るOREMSメモリ トップに戻るHMAとEMB
HMAは,FFFFFHの上約64Kバイトのリアル・モードからアクセスできる特別なメモリ領域です. MS-DOS5.0からは,MS-DOSシステムの一部がHMAに対応しています.EMBは,HMAを越える領域です.EMBを利用する場合は,XMM(eXtend Memory Manager)を呼び出して,ユーザ固有のハンドル番号を受け取ります. その後,XMMに対して拡張メモリの転送要求をすると,拡張メモリからメイン・メモリにデータが転送されてきます.論理的に,EMBは80286CPUを搭載したマシンでは16Mバイトまで,80386以上のCPUを搭載したマシンでは最大4Gバイトまで確保できることになっていますが,実際には32ビット・マシンで確保できる領域は,最大15Mバイト程度となっています. XMSを設定するためにMS-DOS5.0では,HIMEM.SYSドライバが提供されています.トップに戻るOREMSメモリ トップに戻るHIMEM.SYS
XMSを設定するためには,このドライバを組み込みます.CONFIG.SYSに次のようにデバイスを登録します.EMM386.EXEの設定
EMM386.EXEでは,80386以上のCPUを搭載した32ビット機で,XMSメモリをEMSメモリとして利用します.また,EMSだけではなく,UMBを有効にする機能もあります. このドライバを組み込む前には,必ずHIMEM.SYSを組み込んでください.設定およびスイッチは,次のとおりです.UMB
UMBには,仮想UMBとUMBの2種類があります.仮想UMBは,32ビット・マシンのページング機能を利用してプロテクト・メモリを拡張ROM領域に割り当てます.したがって,この機能を利用するためには,プロテクト・メモリを装備した32ビット・マシンが必要という条件がつきます. UMBは,拡張ROM領域にUMBを割り当てるだけですから,どのCPUでも実現できます.UMBに転送することのできるプログラムには,特に制約はありません.ただし,UMBとして確保できる領域は,システムの構成によっても異なりますが,EMSを設定している場合で約48〜64Kバイト程度とされています.そのため,あまり大きなプログラムは転送することはできません. MS-DOS5.0で設定することのできるUMBは,基本的に仮想UMBです.UMB領域を確保するためには,仮想EMSドライバEMM386.EXEを組み込んで,/UMBまたは/NOEMSスイッチを指定します.DEVICEHIGH
DEVICEHIGHコマンドは,MS-DOS5.0からサポートされているデバイス・ドライバをUMB領域に転送するコマンドです.ほとんどのデバイス・ドライバは,UMB領域に転送することができますが,次のものは対象外です.LOADHIGH
LOADHIGHコマンドは,MS-DOS5.0からサポートされている常駐プログラムをUMB領域に転送する場合に利用するコマンドです.コマンド・ラインもしくはAUTOEXEC.BATの中から実行します. 次のように指定すると,MS-DOSの常駐プログラムであるMIRRORをUMBに転送します.