13.1 メモリマップトファイル
- ページング機能によって物理アドレスを論理アドレスに対応づけることを、物理アドレスを論理アドレスに「マップする」という
- EMS機能は、プロテクトモードメモリをEMSページのメモリにマップする機能
- メモリマップトファイルをサポートしたオペレーティングシステムでは、アプリケーションソフトウェアがマップさせたメモリに書き込みを行うと、オペレーティングシステムが書いた内容をファイルに反映する
- 本来は、メモリ上でデータを操作するためには、すべてのデータを一旦メモリ上に読み込まなければならないが、無駄な処理も多く非効率
- ファイルサイズが非常に大きい場合も仮に仮想記憶を利用できたとしても物理アドレスに対応づけていない論理アドレスにあるデータは、スワップ用のファイルに保存することとなり、二重にディスク上に記憶させる必要があり非効率
- メモリマップトファイルではこれらの問題を解消し効率の良い、わかりやすいプログラムが作成できるメリットがある
- メモリマップトファイルの仕組み
- 指定した領域を指定したファイルに対応させる
- 仮想記憶ではメモリ空間全体をディスク上のスワップファイルに対応させる
- ファイルをマップした領域のページをすべて物理メモリに対応づけられていない状態にする
- アプリケーションソフトウェアがこの領域にアクセスすると486がページフォルトを発生させ、オペレーティングシステムに制御が移る
- オペレーティングシステムはページフォルトへの対応処理として、アドレスに対応する位置のデータをファイルから物理メモリに読み込み、論理ページとの対応づけを行う
- 物理メモリが不足してくると、使用頻度の低いページに対応づけられた物理メモリの内容を対応するファイルの位置に書き込み、そのページを解放する
- アプリケーションソフトウェアがマップの解除を要求すると、オペレーティングシステムは書き込みの行われたページに対応づけられた物理メモリの内容をすべてファイルに書き込む
- 指定した領域を指定したファイルに対応させる
13.2 I/Oモニター
- I/Oアクセスの管理
- I/Oアクセスの管理は486のタスクの保護機能を応用して実現する
- オペレーティングシステムは、仮想8086モード用のタスクのTSS内にあるI/O許可マップに、個々のI/Oポートへのアクセスの設定を行う
- アプリケーションソフトウェアは、許可されたI/Oポートには直接アクセスできるが、禁止されたI/Oポートにアクセスすると、486が一般保護例外を発生させてプロテクトモードに移行し、IDTに登録した割り込み処理ルーチンを呼び出す
- オペレーティングシステムに制御が移るので、I/Oポートに相当する周辺機器の操作をエミュレートしたり、排他制御を行ったりする
- I/Oアクセス管理プログラムの代わりにI/Oモニタープログラムを使ってI/Oポートのアクセス状況を記録する仕組みを考える
- 以下I/Oモニターの実装についてなので省略
13.3 486とオペレーティングシステムの将来
- オペレーティングシステムの内部のしくみを理解することは、アプリケーションソフトウェアを設計したり開発したりする際に大きな助けになる
- オペレーティングシステムが提供する多くの機能の中から、目的とする処理内容や規模に適したものを選択し、効率がよく柔軟なプログラムを作成できる
- 今後のCPUは高速化を追求していくと思われるが、本書で扱ったメモリ管理、プロセス管理の機能をベースに発展していくものと考えられる(ので内容が陳腐化することもないと思われる)