私が理解しているところによると、ページは仮想メモリによって生成されたメモリ空間のクラスタであるオーバーレイから来ています。しかし、私はフレームが何であるか、またはそれらがどのように関連しているのか理解していません。
誰かがページとフレームとは何か、それがどのように機能するかを説明できますか?
ページフレームは、メインメモリの物理プロパティです。一方、仮想ページは...仮想です。
frame 0 frame 1 frame 2 frame 3 frame 4
----------------------------------------------
| | | | | |
| | | | | |
---------------------------------------------- Main Memory
物理メモリはページフレームに編成されます。ページフレームのサイズは、2の累乗であり、システムによって異なります。
論理メモリはページに編成されています。ページのサイズはページフレームと一致します。
論理アドレスは、ページセレクタとページへのオフセットに分かれています。
論理ページは、ページテーブルを使用してページフレームにマップされます。ページテーブルの構造はシステムによって異なります。論理アドレスのページセレクタは、ページテーブルへのインデックスとして機能します。
ほとんどのシステムでは、ページテーブルは、ページフレームが関連付けられていない有効な論理アドレスを指定できます。これは仮想メモリシステムです。アプリケーションがこのようなページにアクセスしようとすると、ページ違反例外がトリガーされます。オペレーティングシステムのページフォールトハンドラーは、物理ページフレームを割り当て、セカンダリストレージからのデータを使用してページフレームを読み込み、ページテーブルを更新して論理ページを新しく割り当てられた物理ページフレームにマップし、最後にエラーの原因となった命令を再起動する必要があります。
オペレーティングシステムがページテーブルを管理します。 CPUは(アプリケーションに対して透過的に)、ページテーブルを使用して論理ページフレームを物理ページフレームに変換します。
SILBERSCHATZらによると、 「ページングを実装するための基本的な方法は、物理メモリをフレームと呼ばれる固定サイズのブロックに分割することを含みますそして、論理メモリをページと呼ばれる同じサイズのブロックに分割します。 【OSコンセプト第9版】
まず、ページングはメモリ管理方式です。 物理メモリはフレームに、論理メモリはページに分割できます。ページは仮想ページとも呼ばれ、フレームはページフレームと呼ばれます。物理アドレス空間のすべてのメモリチャンクは、フレーム番号で識別され、論理アドレスはページ番号で識別されます。
ページテーブルは、ページ番号とそれに対応するオフセットで構成されます。
物理アドレス=(ページサイズ*フレーム番号)+ページオフセット
ページ(またはメモリページ、仮想ページ、または論理ページ)は、仮想メモリの固定長の連続したブロックです。
フレーム(またはメモリフレーム、または物理ページ、またはページフレーム)は、RAMの固定長ブロックです(つまり、「物理」のように、物理メモリが存在します。仮想メモリは、安全にメモリを管理するために適切かつ効率的に機能する数学)。
フレームは連続していない場合がありますが、ページは連続していることに注意してください。私たちはプロセス、つまりOSが連続したアドレスを処理することを望んでいます。専用ハードウェアチップ(MMU)で仮想アドレスを適切な物理アドレスに対応させ、その逆も可能にします。
仮想アドレスはプロセスによって使用され、物理アドレスはハードウェアによって使用されます。 CPU(アドレスバスにアドレスを配置してメモリアクセスを要求する)およびRAMサブシステム(MMU、ページテーブルなど)。プログラムがコンパイルされると、コンパイラはプログラムコードを機械が理解できるコードに変換し、このプロセスの間に、アドレススペースが仮想アドレスの形式で設定されます。プロセッサで処理されると、MMUの助けを借りて、それらはRAMでもHDDでも、メモリで利用可能な物理的な場所に再度マッピングされます。
PS。ページフレームという用語の使用は容赦しません。あなたはおそらくそれが混乱の原因であることを理解しています。明確な意味を持つ2つの非常に単純な単語である「ページ」と「フレーム」に固執します。