仮想メモリは、ユーザーに非常に大きなメイン メモリがあるかのような錯覚を与えるストレージ スキームです。これは、二次記憶の一部を主記憶として扱うことによって行われます。
このスキームでは、ユーザーはプロセスをロードするためにメモリが利用可能であると錯覚することで、利用可能なメインメモリよりも大きなサイズのプロセスをロードできます。
オペレーティング システムは、1 つの大きなプロセスをメイン メモリにロードするのではなく、複数のプロセスのさまざまな部分をメイン メモリにロードします。
これにより、マルチプログラミングの度合いが高まるため、CPU 使用率も増加します。
仮想メモリはどのように機能するのでしょうか?
現代の言葉で言えば、仮想メモリは最近非常に一般的になりました。このスキームでは、実行のために一部のページをメイン メモリにロードする必要があり、それらの多くのページにメモリが利用できない場合、その場合、ページがメイン メモリに入るのを停止する代わりに、OS が次のページを検索します。最近最も使用されていない、または参照されていない RAM 領域を 2 次メモリにコピーして、メイン メモリ内に新しいページ用のスペースを作成します。
この手順はすべて自動的に行われるため、コンピューターは無制限の RAM を搭載しているように感じられます。
デマンドページング
デマンド ページングは、仮想メモリ管理の一般的な方法です。デマンド ページングでは、最も使用されていないプロセスのページが二次メモリに保存されます。
ページは、要求が行われたとき、またはページフォルトが発生したときにメインメモリにコピーされます。置換されるページを決定するために使用されるさまざまなページ置換アルゴリズムがあります。それぞれについては後で詳しく説明します。
仮想メモリ管理システムのスナップショット
2 つのプロセス P1 と P2 にそれぞれ 4 ページが含まれていると仮定します。各ページのサイズは 1 KB です。メイン メモリには、それぞれ 1 KB のフレームが 8 つ含まれています。 OS は最初の 2 つのパーティションに存在します。 3 番目のパーティションでは、1セントP1 のページが保存され、他のフレームもメイン メモリ内のプロセスの異なるページで満たされていることが示されています。
両方のページのページ テーブルのサイズはそれぞれ 1 KB であるため、それぞれ 1 つのフレームに収まります。両方のプロセスのページ テーブルには、画像にも示されているさまざまな情報が含まれています。
CPU には、ページ テーブルのベース アドレスを含むレジスタが含まれています。このアドレスは、P1 の場合は 5、P2 の場合は 7 です。このページ テーブルのベース アドレスは、実際の対応するエントリにアクセスする際に、論理アドレスのページ番号に追加されます。
仮想メモリの利点
- マルチプログラミングの度合いが高まります。
- ユーザーは、少ない実 RAM で大規模なアプリケーションを実行できます。
- メモリ RAM を追加購入する必要はありません。
仮想メモリの欠点
- スワップに時間がかかるため、システムが遅くなります。
- アプリケーションの切り替えに時間がかかります。
- ユーザーが使用できるハードディスク容量は少なくなります。