第2章 オペレーティングシステムの目的
2002/05/24 第6回
仮想記憶(2-3-A & 6-7)
仮想記憶とは、
・実際にあるメインメモリの容量(実メモリreal memory)が足りなかったり小さかったりすると、
多重プログラミングの多重度(同時にメインメモリに置いておいて実行する数)を増やせないので、
メインメモリは大きい方がいい
・だけど、実際はお金がかかるのでなかなか・・・
・それなら、実メモリと磁気ディスク(補助メモリ)を使って仮想的なメインメモリを作っちゃおう!
(実メモリを仮想的に大きくみせよう)
という、考えかた。
仮想記憶には2つの方式がある。
昔)単一仮想記憶
・大きな仮想のメインメモリがある。使うときには分割する。
・しかし、大きなプログラム同士が入ってきたときに競合してしまうという不便な面もありました。
・それなら、仮想記憶をいっぱい作っちゃおう!
・と、いうことで↓
今)多重仮想記憶
・磁気ディスクが必要な数だけ(プロセスの数だけ)ある。
・しかし、無限にはならない。
・なんで?
・アドレスは指定しなくてはいけないから。命令のアドレス部は24ビットなので16MBまでしか使えない。
・4G(32ビット)あれば十分でしょう。ということで、24→32ビットに拡張したい。
・もう一つ別に、足りない8ビット分を補うレジスタを用意して32ビットのアドレスを可能にする
(「下駄をはかせる」というのだそうです。ほほぅほぅほぅ)
<<条件>>
フレームは有限の状態で、できるだけ多くのプロセスを実行したい。その方法として
1)多重度を小さくする。しかし、CPUが遊ぶ問題が発生。
2)ページイン、ページアウトを少なくする。そのためには
・ジャンプを減らす
・ジャンプの距離を減らす
- 実メモリとは何か。
- 補助メモリとは何か。
- 仮想的とはどんなことか。
- メインメモリと磁気ディスクを組み合わせて、あたかもメインメモリが無限に
あるように見える(=仮想)こと。
(プログラムから見たとき、無限に近いメインメモリがあるように見える)
- 多重仮想記憶の利点は何か。
- プロセスが何個あろうとも、いつも最大の仮想空間を使える。
仮想計算機
- なぜ仮想計算機が必要か。
- 改良されたOSのテストをする場合に、
OSのテストと従来の仕事を同時に進めなければならない場合、
互いに影響がないように仮想計算機を使用してうまく作業する。
リアルタイム処理
- リアルタイム処理はどんなところで使われるか。
- 外界の信号とは何か。
- 工場のパイプの中の圧力や温度など。
圧力が上がったら圧力を逃がす。決められた時間内に制御信号を出してあげる。
|