OS の仮想メモリ: デマンド ページングとは何か、利点

仮想メモリとは

仮想メモリ は、ユーザーに非常に大きなメイン メモリがあるかのような錯覚を与えるストレージ メカニズムです。 二次記憶の一部を主記憶として扱うことで行われます。 仮想メモリでは、ユーザーは利用可能なメイン メモリよりも大きなサイズのプロセスを保存できます。

したがって、OS は、XNUMX つの長いプロセスをメイン メモリにロードするのではなく、複数のプロセスのさまざまな部分をメイン メモリにロードします。 仮想メモリは、ほとんどの場合、デマンド ページングとデマンド セグメンテーションを使用して実装されます。

なぜ仮想メモリが必要なのでしょうか?

仮想メモリを使用する理由は次のとおりです。

  • コンピュータの物理メモリに空き領域がない場合は、記憶する必要があるものを仮想メモリとしてスワップ ファイル内のハード ディスクに書き込みます。
  • コンピュータが実行されている場合 Windows より多くのメモリ/RAM が必要な場合、システムにインストールすると、この目的のためにハード ドライブのごく一部が使用されます。

仮想メモリはどのように機能するのでしょうか?

現代世界では、仮想メモリは最近非常に一般的になりました。 これは、実行のために一部のページをメイン メモリにロードする必要があり、それらの多くのページにメモリが使用できない場合に使用されます。

そのため、その場合、OS は、ページがメイン メモリに入るのを防ぐのではなく、最近使用された最小限の RAM スペース、または二次メモリに参照されていない RAM スペースを検索して、新しいページ用のスペースを確保します。メインメモリ。

理解しましょう 仮想メモリ管理 一つの例を参考にしてみましょう。

例えば、

OS が実行中のすべてのプログラムを保存するために 300 MB のメモリを必要とすると仮定します。 ただし、現在、RAM に保存されている使用可能な物理メモリは 50 MB のみです。

  • 次に、OS は 250 MB の仮想メモリを設定し、仮想メモリ マネージャー (VMM) と呼ばれるプログラムを使用してその 250 MB を管理します。
  • したがって、この場合、VMM は、必要な追加メモリを保存するために、サイズが 250 MB のファイルをハード ディスク上に作成します。
  • OS は、300 MB のスペースしか使用できない場合でも、RAM に格納されている実メモリが 50 MB であるとみなしてメモリのアドレス指定を開始します。
  • 使用可能な実メモリ領域が 300 MB しかない場合でも、50 MB のメモリを管理するのは VMM の仕事です。

デマンドページングとは何ですか?

デマンドページング

デマンド ページング メカニズムは、 ページングシステム スワッピングでは、二次メモリに保存されているプロセスとページが事前ではなくオンデマンドでのみロードされます。

したがって、コンテキストの切り替えが発生した場合、OS は古いプログラムのページをディスクからコピーしたり、新しいプログラムのページをメイン メモリにコピーしたりすることはありません。 代わりに、最初のページをロードした後に新しいプログラムの実行を開始し、参照されるプログラムのページをフェッチします。

プログラムの実行中に、スワップされたためにメイン メモリ内で使用できない可能性があるページをプログラムが参照すると、プロセッサはそれを無効なメモリ参照とみなします。 これは、ページ フォールトと転送によってプログラムから OS に制御が戻り、OS がページをメモリに格納し直す必要があるためです。

ページ置換方法の種類

ここでは、重要なページ置換方法をいくつか紹介します。

  • FIFO
  • 最適なアルゴリズム
  • LRU ページの置換

FIFO ページの置換

FIFO (先入れ先出し) はシンプルな実装方法です。 この方法では、メモリは、メモリの仮想アドレスに最も長い間存在していた置換用のページを選択します。

特徴

  • 新しいページが読み込まれるたびに、メモリに最近入ったページが削除されます。 したがって、その識別番号が常に FIFO スタックにあるため、どのページを削除する必要があるかを判断するのは簡単です。
  • メイン メモリ内の最も古いページが、置換対象として最初に選択される必要があります。

最適なアルゴリズム

最適なページ置換方法では、次の参照までの時間が最も長いページを置換対象として選択します。

特徴

  • 最適なアルゴリズムにより、ページ フォールトの数が最小限に抑えられます。 このアルゴリズムは実装が困難です。
  • 最適なページ置換アルゴリズム手法は、すべてのアルゴリズムの中でページ フォールト率が最も低くなります。 このアルゴリズムは存在しており、MIN または OPT と呼ばれます。
  • 長期間使用しない場合はページを交換してください。 ページを使用する必要がある時間のみを使用します。

LRU ページの置換

LRU の完全な形式は、最も最近使用されていないページです。 この方法は、OS が短期間でのページの使用状況を見つけるのに役立ちます。 このアルゴリズムは、カウンターを偶数ページに関連付けることによって実装する必要があります。

システムを教えてください。

  • メインメモリ内で最も長期間使用されていないページが置換対象として選択されます。
  • 実装は簡単で、リストを作成し、過去を振り返ってページを置き換えます。

特徴

  • LRU 交換方式の数が最も多くなります。 このカウンタはエージング レジスタとも呼ばれ、カウンタの経過時間と、関連するページをどの程度参照するかを指定します。
  • メインメモリ内で最も長期間使用されていないページが置換対象として選択される必要があります。
  • また、リストを保持し、過去を遡ってページを置き換えます。

故障率

故障率は、設計されたシステムまたはコンポーネントが故障する頻度です。 単位時間当たりの故障率で表されます。 それはギリシャ文字?で表されます。 (ラムダ)。

仮想メモリの利点

仮想メモリを使用する利点は次のとおりです。

  • プログラムの実行にプログラムの特定のセグメントのみが必要な場合、仮想メモリは速度の向上に役立ちます。
  • マルチプログラミング環境の実装に非常に役立ちます。
  • これにより、より多くのアプリケーションを一度に実行できるようになります。
  • これは、多くの大きなプログラムを小さなプログラムに組み込むのに役立ちます。
  • 共通のデータまたはコードはメモリ間で共有される場合があります。
  • プロセスは、すべての物理メモリよりもさらに大きくなる可能性があります。
  • データ/コードは、必要なときにいつでもディスクから読み取る必要があります。
  • コードは、再配置することなく、物理メモリ内のどこにでも配置できます。
  • より多くのプロセスをメイン メモリに保持する必要があるため、CPU の効率的な使用率が向上します。
  • 各ページは必要になるまでディスクに保存され、必要になった後は削除されます。
  • より多くのアプリケーションを同時に実行できるようになります。
  • マルチプログラミングの程度に特別な制限はありません。
  • 利用可能な仮想アドレス空間は物理メモリに比べて大きいため、大規模なプログラムを作成する必要があります。

仮想メモリのデメリット

仮想メモリを使用する場合の欠点/短所は次のとおりです。

  • システムが仮想メモリを使用している場合、アプリケーションの実行が遅くなる可能性があります。
  • アプリケーション間の切り替えにはさらに時間がかかる可能性があります。
  • 使用できるハードドライブの容量が少なくなります。
  • システムの安定性が低下します。
  • これにより、大規模なアプリケーションを、単独では実行するのに十分な物理 RAM を備えていないシステムでも実行できるようになります。
  • RAM と同じパフォーマンスは得られません。
  • システム全体のパフォーマンスに悪影響を及ぼします。
  • 他の用途に使用できるストレージスペースを占有します。wise 長期のデータ保存に。

まとめ

  • 仮想メモリは、ユーザーに非常に大きなメイン メモリがあるかのような錯覚を与えるストレージ メカニズムです。
  • コンピュータの物理メモリに空きがない場合は、仮想メモリが必要になります。
  • デマンド ページング メカニズムは、二次メモリに格納されているプロセスとページが事前ではなくオンデマンドでのみロードされるスワッピングを備えたページング システムに非常によく似ています。
  • 重要なページ置換方法は、1) FIFO、2) 最適アルゴリズム、3) LRU ページ置換です。
  • FIFO (先入れ先出し) 方式では、メモリは、メモリの仮想アドレス内に最も長い間存在していた置換用のページを選択します。
  • 最適なページ置換方法では、次の参照までの時間が最も長いページを置換対象として選択します。
  • LRU 方式は、OS が短期間でのページの使用状況を検出するのに役立ちます。
  • プログラムの実行にプログラムの特定のセグメントのみが必要な場合、仮想メモリは速度の向上に役立ちます。
  • システムが仮想メモリを使用している場合、アプリケーションの実行が遅くなる可能性があります。