私は、CPUが論理アドレスを生成するとき、ページテーブルを使用して物理アドレスに変換されることを教えています。これは通常、オペレーティングシステムのメモリ空間に割り当てられた連続配列です。この配列へのインデックスは、仮想アドレスの最上位ビット(別名ページ番号)です。ページテーブルは、スタックアドレスとヒープメモリアドレスの両方をどのように扱いますか?
また、スタックアドレスが0xffffffffffffffffから始まるスタックで反対方向に成長するので、ヒープアドレスの論理アドレスは低、スタックアドレスの論理アドレスは高いことがわかります。
私の質問は、ヒープアドレスは低いがスタックアドレスは非常に高いので、CPUが生成するページ番号(またはページテーブルのインデックス)は連続していませんが、非常に高いか非常に高い低い。次に、非常に大きなページテーブルを作成せずにページテーブルのインデックスを作成する方法を説明します。
また、ページ番号が制限(プロセス外に割り当てられたページ数/フレーム数)より大きい場合は、プロセスのサイズを維持し、セグメンテーション違反を発生させる必要があります。有効なページ番号が連続していない場合、これはどのように行われますか。