OS の仮想メモリ: デマンド ページングとは何か、利点
⚡ スマートサマリー
仮想メモリは、二次記憶装置の一部をRAMとして扱うことで、ユーザーに大容量のメインメモリがあるかのような錯覚を与える記憶メカニズムです。物理メモリよりも大きなプロセスを実行でき、デマンドページングによって実装されます。

仮想メモリとは
仮想メモリ 仮想メモリは、ユーザーに非常に大きなメインメモリを持っているかのような錯覚を与えるストレージメカニズムです。これは、二次記憶装置の一部をメインメモリとして扱うことで実現されます。仮想メモリでは、ユーザーは利用可能なメインメモリよりも大きなサイズのプロセスを格納することができます。
したがって、OS は、XNUMX つの長いプロセスをメイン メモリにロードするのではなく、複数のプロセスのさまざまな部分をメイン メモリにロードします。 仮想メモリは、ほとんどの場合、デマンド ページングとデマンド セグメンテーションを使用して実装されます。
なぜ仮想メモリが必要なのでしょうか?
仮想メモリを使用する理由は以下のとおりです。
- コンピュータの物理メモリに空き容量がない場合、コンピュータは記憶しておく必要のあるデータを仮想メモリとしてスワップファイルに保存し、ハードディスクに書き込みます。
- コンピュータが実行されている場合 Windows システムに搭載されているメモリ/RAMよりも多くのメモリが必要な場合、ハードドライブのごく一部をこの目的に使用します。
仮想メモリはどのように機能するのでしょうか?
現代社会において、仮想メモリはごく一般的になっています。これは、実行のために複数のページをメインメモリにロードする必要があるものの、それらのページをロードできるだけのメモリがメインメモリに確保できない場合に使用されます。
そのため、その場合、OSはページがメインメモリに入るのを阻止するのではなく、最近ほとんど使用されていない、あるいは参照されていないRAM領域を探し出し、それを二次記憶装置に移動させて、メインメモリに新しいページのための領域を確保します。
理解しましょう 仮想メモリ管理 一つの例を参考にしてみましょう。
例えば、
OSが実行中のすべてのプログラムを格納するために300MBのメモリを必要とすると仮定しましょう。しかし、現在RAMに格納されている物理メモリは50MBしかありません。
- すると、OSは250MBの仮想メモリを設定し、仮想メモリマネージャ(VMM)と呼ばれるプログラムを使用してその250MBを管理します。
- そのため、この場合、VMMはハードディスク上に250MBのファイルを作成し、必要な追加メモリを保存します。
- OSは、たとえ利用可能な容量が50MBしかない場合でも、RAMに300MBの実際のメモリが格納されているかのようにメモリのアドレス指定を進めます。
- VMMの役割は、実際に使用できるメモリ容量が50MBしかない場合でも、300MBのメモリを管理することです。
デマンドページングとは何ですか?
デマンド ページング メカニズムは、 ページングシステム スワップ付きpingプロセスは二次記憶装置に格納され、ページは事前にではなく、必要に応じてのみロードされる。
したがって、コンテキストスイッチが発生すると、OSは古いプログラムのページをディスクからコピーしたり、新しいプログラムのページをメインメモリにコピーしたりすることはありません。代わりに、最初のページをロードした後、新しいプログラムの実行を開始し、参照されているプログラムのページを取得します。
プログラム実行中に、プログラムがスワップアウトされたためにメインメモリに存在しないページを参照した場合、プロセッサはそれを無効なメモリ参照とみなします。これは、ページフォルトによって制御がプログラムからOSに戻り、OSがそのページをメモリに再度格納するよう要求するためです。
ページ置換方法の種類
以下に、重要なページ置換方法をいくつか示します。
- FIFO
- 最適なアルゴリズム
- LRU ページの置換
FIFO ページの置換
FIFO (先入れ先出し) はシンプルな実装方法です。 この方法では、メモリは、メモリの仮想アドレスに最も長い間存在していた置換用のページを選択します。
特長
- 新しいページが読み込まれるたびに、メモリに最も長く保持されていたページが削除されます。そのため、どのページを削除するかは簡単に判断できます。なぜなら、そのページの識別番号は常にFIFOスタックの先頭にあるからです。
- メインメモリ内で最も古いページが、最初に置換対象として選択されるべきです。
最適なアルゴリズム
最適なページ置換方法では、次の参照までの時間が最も長いページを置換対象として選択します。
特長
- 最適なアルゴリズムは、ページフォールトの発生回数を最小にする。ただし、このアルゴリズムの実装は困難である。
- 最適なページ置換アルゴリズムは、すべてのアルゴリズムの中で最もページフォールト率が低い。このようなアルゴリズムは存在し、MINまたはOPTと呼ばれるべきである。
- 長期間使用される可能性の低いページは置き換えてください。ページが必要な時だけ使用されます。
LRU ページの置換
LRUの正式名称は「Least Recently Used Page(最近最も使用頻度の低いページ)」です。この方法は、OSが短期間におけるページの使用状況を把握するのに役立ちます。このアルゴリズムは、各ページにカウンタを関連付けることで実装する必要があります。
システムを教えてください。
- メインメモリ内で最も長い間使用されていないページが、置換対象として選択されます。
- 実装は簡単で、リストを作成し、過去を振り返ってページを置き換えます。
特長
- LRU置換方式は最も高いカウント数を持ちます。このカウンタはエイジングレジスタとも呼ばれ、ページの経過時間と、関連するページがどの程度参照されるべきかを指定します。
- メインメモリ内で最も長い間使用されていないページが、置換対象として選択されるべきです。
- また、リストを保持し、過去を遡ってページを置き換えます。
故障率
故障率とは、設計されたシステムまたはコンポーネントが故障する頻度のことです。単位時間あたりの故障回数で表され、ギリシャ文字のλ(ラムダ)で示されます。
仮想メモリの利点
仮想メモリを使用するメリットは以下のとおりです。
- プログラムの実行にプログラムの特定のセグメントのみが必要な場合、仮想メモリは速度の向上に役立ちます。
- マルチプログラミング環境の実装に非常に役立ちます。
- これにより、より多くのアプリケーションを一度に実行できるようになります。
- これは、多くの大きなプログラムを小さなプログラムに組み込むのに役立ちます。
- 共通のデータまたはコードはメモリ間で共有される場合があります。
- プロセスによっては、物理メモリ全体の容量を超える場合もある。
- データ/コードは必要に応じてディスクから読み込むべきである。
- コードは、再配置することなく、物理メモリ内のどこにでも配置できます。
- より多くのプロセスをメイン メモリに保持する必要があるため、CPU の効率的な使用率が向上します。
- 各ページは必要になるまでディスクに保存され、その後削除されます。
- より多くのアプリケーションを同時に実行できるようになります。
- マルチプログラミングの程度に特別な制限はありません。
- 仮想アドレス空間は物理メモリに比べて利用できる容量が大きいため、大規模なプログラムを作成する必要がある。
仮想メモリのデメリット
仮想メモリを使用する際の欠点/デメリットは以下のとおりです。
- システムが仮想メモリを使用している場合、アプリケーションの実行が遅くなる可能性があります。
- アプリケーションを切り替えるのに、おそらくより多くの時間がかかるでしょう。
- 利用できるハードディスク容量が少なくなります。
- システムの安定性が低下します。
- これにより、物理RAMだけでは十分な容量を備えていないシステムでも、より大規模なアプリケーションを実行できるようになります。
- RAMと同じ性能は提供しません。
- システム全体のパフォーマンスに悪影響を及ぼします。
- それはストレージスペースを占有し、そのスペースは本来、長期データ保存のために使用できるはずである。

