オペレーティング システムでは、ページングは、プロセスを二次ストレージからページの形式でメイン メモリに取得するために使用されるストレージ メカニズムです。
ページングの背後にある主なアイデアは、各プロセスをページの形式で分割することです。メインメモリもフレームの形で分割されます。
CSV Javaから読み取る
プロセスの 1 ページはメモリのフレームの 1 つに保存されます。ページはメモリのさまざまな場所に保存できますが、常に連続したフレームまたはホールを見つけることが優先されます。
プロセスのページは、必要な場合にのみメイン メモリに取り込まれ、それ以外の場合は二次ストレージに保存されます。
オペレーティング システムが異なれば、定義されるフレーム サイズも異なります。各フレームのサイズは等しくなければなりません。ページングではページがフレームにマッピングされることを考慮すると、ページ サイズはフレーム サイズと同じである必要があります。
例
メイン メモリのサイズが 16 KB、フレーム サイズが 1 KB であると考えます。したがって、メイン メモリは、それぞれ 1 KB の 16 個のフレームのコレクションに分割されます。
システムには 4 つのプロセス (それぞれ 4 KB の P1、P2、P3、および P4) があります。各プロセスは 1 フレームに 1 ページが格納できるように、1 KB のページに分割されます。
Javaで整数を文字列に変換する方法
最初はすべてのフレームが空であるため、プロセスのページが連続して保存されます。
フレーム、ページ、および 2 つの間のマッピングを以下の図に示します。
しばらくして P2 と P4 が待機状態に移行したとします。これで、8 つのフレームが空になり、その空いた場所に他のページをロードできるようになります。サイズ 8 KB (8 ページ) のプロセス P5 がレディキュー内で待機しています。
メモリ内で使用可能な 8 つの非連続フレームがあり、ページングによりプロセスをさまざまな場所に保存できる柔軟性が提供されるという事実を考慮します。したがって、P2 と P4 の代わりにプロセス P5 のページをロードできます。
メモリ管理ユニット
メモリ管理ユニット (MMU) の目的は、論理アドレスを物理アドレスに変換することです。論理アドレスはページごとに CPU によって生成されるアドレスであり、物理アドレスは各ページが格納されるフレームの実際のアドレスです。
文字列比較Java
CPU が論理アドレスを使用してページにアクセスする場合、オペレーティング システムはそのページに物理的にアクセスするための物理アドレスを取得する必要があります。
論理アドレスには 2 つの部分があります。
- ページ番号
- オフセット
OSのメモリ管理部はページ番号をフレーム番号に変換する必要があります。
例
Javaの区切り文字
上の画像を考慮して、CPU がプロセス P3 の 4 ページ目の 10 ワード目を要求したとします。プロセス P1 のページ番号 4 はフレーム番号 9 に格納されるため、9 番目のフレームの 10 番目のワードが物理アドレスとして返されます。