MS-DOS での利用
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/02/21 16:18 UTC 版)
「Upper Memory Area」の記事における「MS-DOS での利用」の解説
DR-DOSの機能はマイクロソフトが真似をして、1991年6月にMS-DOS 5.0をリリースした。結局、さらにDOSのデータ構造をコンベンショナルメモリから追い出すことに成功し、640KBのうち631KBが空くようになった。MS-DOS 6.0からはmemmakerというプログラムが追加され、TSRを高位メモリに追い出すことで自動的にコンベンショナルメモリを最適化できるようになった。 1990年代初期にはアプリケーションが巨大化してきたため、それを複雑な構成のPC上で動作させるためのDOSのメモリマップ最適化は非常に重要なスキルとなっていた。まずUMBを最大限多く用意するため、不要なメモリブロック(カラーディスプレイのマシンでのモノクロビデオメモリ領域など)のマッピングを変更する。そして、DOSの多数のサブコンポーネントを正しい順序でUMBにロードしてメモリブロックをなるべく効率的に使用できるようにし、ロードの最中だけ必要とされるTSRプログラムが使うメモリを考慮する(ロード完了後、TSRの使っていたメモリは解放される)。幸いモジュール間の依存関係はそれほど複雑ではなく、多くの場合はどういう順序でロードしても大丈夫だった。例外としては、CD-ROM をキャッシュするにはたいていのディスクのキャッシュをCD-ROMドライバの後からロードする必要があり、ネットワーク系のモジュールはOSI参照モデルの階層の順序に従ってロードする必要があった。 簡単だが効果的な最適化手法として、HIMEM.SYS をデバイスとしてロードし、その後にEMM386.EXEをデバイスとして "RAM AUTO" オプション付きでロードするという手法がある。それによってデバイスドライバが自動的にUMAにロードされる。この手法は基本メモリマネージャを効率的にコンベンショナルメモリにロードし、それ以外をすべてUMAにロードするというものである。MSCDEXのようにコンベンショナルメモリを大量に消費するプログラムも同様の手法でUMAにロードでき、それによってコンベンショナルメモリを大きく解放することができた。
※この「MS-DOS での利用」の解説は、「Upper Memory Area」の解説の一部です。
「MS-DOS での利用」を含む「Upper Memory Area」の記事については、「Upper Memory Area」の概要を参照ください。
- MS-DOS での利用のページへのリンク