DOSエクステンダの動作
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/23 17:44 UTC 版)
「DOSエクステンダ」の記事における「DOSエクステンダの動作」の解説
プロテクトモードアプリケーションがDOSエクステンダに対してファイルアクセスなどのファンクションコールを実行すると、DOSエクステンダはCPUをリアルモード(場合によっては仮想86モード)に切替えて、自身が受けたDOSエクステンダのファンクションコールをMS-DOSのファンクションコールに翻訳してMS-DOSを呼び出す。ファイルアクセスのような、大量のデータをMS-DOSとやり取りするファンクションコールのために、コンベンショナルメモリ上にリアルモードとプロテクトモード間のデータ通信用のバッファ領域が必要となることに注意しなくてはならない。なぜならMS-DOSはプロテクトメモリを直接アクセスできないからである。 例えば、ファイル読み出しの場合には、MS-DOSのファンクションコールを利用して、このコンベンショナルメモリ上にある通信バッファ領域にデータを読み出した後、DOSエクステンダはCPUをプロテクトモードに切替えて、読み込んだデータを通信バッファからプロテクトメモリに転送する。この時データサイズが大きくて、一度に通信バッファに読込みきれない場合には、CPUを再びリアルモードに切替えて、残りのデータを通信バッファに読み出すように再度MS-DOSにファンクションコールを発行して、ファイルデータの残りの部分の読み出しを行う。そしてデータサイズが極めて大きい場合には、このリアルモードとプロテクトモードの交互切替えの繰返しによるファイル上のデータのプロテクトメモリへの読込を行う。 このように、アプリケーションの実行中に何度もプロテクトモードとリアルモードの切替えが行われることもDOSエクステンダの特徴の一つである。 DOSエクステンダ起動時のプロテクトモードアプリケーションのプロテクトメモリへの読み出しも、上記と同様のシーケンスを経て行われる。アプリケーションをプロテクトメモリに全て読み込み終えると、DOSエクステンダはCPUをプロテクトモードに切替え、アプリケーションを実行する。 アプリケーションが終了すると、確保したプロテクトメモリを全て開放しCPUをリアルモードへ切替えて、DOSエクステンダはMS-DOSアプリケーションとして終了する。
※この「DOSエクステンダの動作」の解説は、「DOSエクステンダ」の解説の一部です。
「DOSエクステンダの動作」を含む「DOSエクステンダ」の記事については、「DOSエクステンダ」の概要を参照ください。
- DOSエクステンダの動作のページへのリンク