GNU/Linux >> Linux の 問題 >  >> Linux

仮想ページとページフレームの違いは?

物理メモリはページ フレームに編成されます。ページ フレームのサイズはバイト単位で 2 のべき乗であり、システムによって異なります。

論理メモリは PAGES に編成されます。ページのサイズはページ フレームに一致します。

論理アドレスは、ページ セレクタとページへのオフセットに分けられます。

論理ページは、ページ テーブルを使用してページ フレームにマップされます。ページ テーブルの構造は、システムによって異なります。論理アドレスのページ セレクターは、ページ テーブルへのインデックスとして機能します。

ほとんどのシステムでは、ページ テーブルは、関連付けられたページ フレームを持たない有効な論理アドレスを指定できます。これは仮想記憶システムです。アプリケーションがそのようなページにアクセスしようとすると、ページ フォールト例外がトリガーされます。オペレーティング システムのページ フォールト ハンドラは、物理ページ フレームを割り当て、セカンダリ ストレージからのデータを使用してページ フレームをロードし、ページ テーブルを更新して論理ページを新しく割り当てられた物理ページ フレームにマップし、最後にフォールトの原因となった命令を再開する必要があります。

オペレーティング システムは、ページ テーブルを管理します。 CPU は (アプリケーションに対して透過的に) ページ テーブルを使用して、論理ページ フレームを物理ページ フレームに変換します。


ページ フレームは、メイン メモリの物理プロパティです。一方、仮想ページは... 仮想です。

frame 0  frame 1  frame 2  frame 3  frame 4
----------------------------------------------
|        |        |        |        |        |
|        |        |        |        |        |
---------------------------------------------- Main Memory

ページ (またはメモリ ページ、仮想ページ、または論理ページ) は、仮想メモリの固定長の連続ブロックです。

フレーム (またはメモリ フレーム、または物理ページ、またはページ フレーム) は、RAM の固定長ブロックです (つまり、物理メモリ、「物理」のように存在します。仮想メモリは、数学が適切かつ効率的に機能するために発明されました。メモリを安全に管理するためです)。

フレームは連続していない可能性がありますが、ページは連続していることに注意してください。すべてを簡単にするため、プロセス、つまりOSが連続したアドレスを処理することを望んでいます。専用ハードウェア チップ (MMU) が仮想アドレスを適切な物理アドレスに対応させ、その逆も同様です。

仮想アドレスはプロセスによって使用されますが、物理アドレスはハードウェアによって使用されます。 CPU(アドレスバスにアドレスを配置してメモリアクセスを要求する)とRAMサブシステム(MMU、ページテーブルなど)。プログラムがコンパイルされると、コンパイラはプログラムコードを機械が理解できるコードに変換し、このプロセスの間に、アドレス、スペースは仮想アドレスの形式で設定されます。プロセッサによって処理されると、それらは MMU の助けを借りて、RAM か HDD かを問わず、メモリ内で利用可能な物理的な場所に再びマップされます。

PS. ページ フレームという用語の使用は容認しません。それが混乱の元であることに気付くでしょう。 「ページ」と「フレーム」という、明確な意味を持つ非常に単純な 2 つの単語に固執してください。


Linux
  1. ログインシェルと非ログインシェルの違いは?

  2. 2>&-、2> / dev / null、|&、&> / dev/nullと>/dev / null 2>&1の違いは?

  3. Sudo Su –とSudo Su —の違いは何ですか?

  1. EotとEofの違いは?

  2. [0-9]、[[:digit:]]とDの違いは?

  3. GtkとQtアプリケーションの違いは?

  1. Sudoユーザーとrootユーザーの違いは?

  2. SnatとMasqueradeの違いは?

  3. NssとPamの違いは?