内部断片化を生じないストレージ管理とは、セグメント化されたストレージ管理です。セグメントストレージ管理方式では、ジョブのアドレス空間がいくつかのセグメントに分割され、各セグメントが論理情報のセットを定義します。各セグメントは 0 からアドレス指定され、連続したアドレス空間を使用します。ジョブ全体のアドレス空間は複数のセグメントに分割されているため 2 次元になります。
# 内部断片化を発生させないストレージ管理は、セグメント化されたストレージ管理です。内部断片化があるのはページ ストレージ管理のみであり、外部断片化があるのはセグメント ストレージ管理です。
ページング ストレージ管理
ページング ストレージ管理は、プロセスの論理アドレス空間を複数の等しいサイズのスライスに分割します。ページまたはページと呼ばれ、各ページにはページ 0、ページ 1 など、0 から始まる番号が付けられます。 これに応じて、メモリ空間も、(物理) ブロックまたはページ フレーム (フレーム) と呼ばれる、ページと同じサイズのいくつかのストレージ ブロックに分割され、0# ブロックなどの番号が付けられます。 1#ブロックなどプロセスにメモリを割り当てるとき、プロセス内のいくつかのページがブロック単位で、連続していない可能性がある複数の物理ブロックにロードされます。プロセスの最後のページは 1 つの部分に収まらないことが多いため、使用できない断片化が形成されます。これは「ページ内断片化」と呼ばれます。セグメント化されたストレージ管理
セグメント化されたストレージ管理を導入する目的は、主にユーザー (プログラマー) のプログラミングと使用要件を満たすことです。他のストレージ管理方法では対応することが困難です。結果として、このストレージ管理アプローチは、今日のすべてのストレージ管理アプローチの基礎となっています。 セグメントストレージ管理方式では、ジョブのアドレス空間がいくつかのセグメントに分割され、各セグメントが一連の論理情報を定義します。たとえば、メインプログラムセグメント MAIN、サブプログラムセグメント X、データセグメント D、スタックセグメント S などがあります。各セグメントには独自の名前が付いています。簡単にするために、通常はセグメント名の代わりにセグメント番号を使用できます。各セグメントは 0 からアドレス指定され、連続したアドレス空間を使用します。セグメントの長さは、対応する論理情報グループの長さによって決まるため、各セグメントの長さは異なります。ジョブ全体のアドレス空間は複数のセグメントに分割されているため、論理アドレスはセグメント番号(セグメント名)とセグメント内のアドレスから構成される2次元になります。 セグメント化されたアドレスのアドレスは次の構造になっています。 このアドレス構造では、ジョブには最大 64 K のセグメントを含めることができます。セグメントの最大長は 64 KB です。セグメンテーション手法は多くのコンパイラでサポートされており、コンパイラはソース プログラムに基づいて複数のセグメントを自動的に生成できます。たとえば、Pascal コンパイラーは、グローバル変数、対応するパラメーターと戻りアドレスを格納するために使用されるプロシージャー呼び出しスタック、各プロシージャーまたは関数のコード部分、各プロシージャーまたは関数のローカル変数などに対して個別のセクションを作成できます。同様に、Fortran コンパイラーは、共通ブロックに別個のセクションを作成し、配列に別個のセクションを割り当てることができます。ローダーはこれらすべてのセグメントをロードし、各セグメントにセグメント番号を割り当てます。セグメント化されたストレージ管理方法は、主にユーザーとプログラマの次の一連のニーズを満たすために導入されています。
1) 便利なプログラミング 通常、ユーザーは論理的な関係に従ってジョブをいくつかのセグメントに分割し、各セグメントは 0 からアドレス指定され、独自の名前と長さを持ちます。したがって、アクセスしたい論理アドレスは、セグメント名(セグメント番号)とセグメント内のオフセット(セグメント内アドレス)によって決まります。たとえば、次の 2 つの命令では、セグメント名とセグメント内のアドレスを使用します: LOAD 1, [A] |動的リンクとは、ジョブの実行前に複数のターゲット プログラム セグメントがリンクされないことを意味します。実行時には、メインプログラムに対応するターゲットプログラムをメモリ上にロードして実行を開始し、実行中に特定のセクションを呼び出す必要がある場合、そのセクション(ターゲットプログラム)をメモリ上にロードしてリンクします。 。ダイナミック リンクにも管理単位としてセグメントが必要であることがわかります。
関連知識の詳細については、PHP 中国語 Web サイト をご覧ください。
以上が内部断片化を起こさないストレージ管理とは?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。