推奨されます, 2024

エディターズチョイス

連続メモリ割り当てと非連続メモリ割り当ての違い

メモリはバイトの大きな配列で、各バイトはそれ自身のアドレスを持ちます。 メモリ割り当ては、連続メモリ割り当てと非連続メモリ割り当ての2つの方法に分類できます。 連続メモリ割り当てと 非連続メモリ割り当ての主な違いは、 連続メモリ割り当てはメモリを要求するプロセスにメモリの連続ブロックを割り当てるのに対し、 非連続メモリ割り当てはメモリ空間の異なる場所にある別々のメモリブロックを連続しない方法で割り当てることです。メモリを要求しているプロセス。 以下に示す比較チャートを使用して、連続メモリ割り当てと非連続メモリ割り当ての違いについて説明します。

比較表

比較の基礎連続メモリ割り当て非連続メモリ割り当て
基本プロセスに連続したメモリブロックを割り当てます。プロセスに別々のメモリブロックを割り当てます。
経費連続メモリ割り当ては、プロセスの実行中にアドレス変換のオーバーヘッドを持ちません。連続していないメモリ割り当ては、プロセスの実行中にアドレス変換のオーバーヘッドがあります。
実行率プロセスが、連続したメモリ割り当てでより高速に実行される連続していないメモリ割り当てでは、プロセスの実行速度がかなり遅くなります。
溶液メモリスペースは固定サイズのパーティションに分割する必要があり、各パーティションは単一のプロセスにのみ割り当てられます。プロセスをいくつかのブロックに分割し、利用可能なメモリスペースの可用性に応じてそれらをメモリのさまざまな部分に配置します。
テーブルはオペレーティングシステムによって管理され、メモリスペースに使用可能なパーティションと占有されているパーティションのリストが保持されます。メモリ内のプロセスによって獲得された各ブロックのベースアドレスを搬送する各プロセスに対してテーブルを維持しなければならない。

連続メモリ割り当ての定義

オペレーティングシステムとユーザーのプロセスの両方がメインメモリに収容されている必要があります。 したがって、メインメモリは2つのパーティションに分割されます。1つのパーティションにオペレーティングシステムが存在し、他のパーティションにユーザープロセスが存在します。 通常の状況では、複数のユーザープロセスが同時にメモリに常駐する必要があるため、プロセスへのメモリの割り当てを考慮することが重要です。

連続メモリ割り当ては、メモリ割り当ての方法の1つです。 連続メモリ割り当てでは、プロセスがメモリを要求すると、その要件に従って、メモリブロックの単一の連続セクションがプロセスに割り当てられます。

連続したメモリ割り当ては、メモリを固定サイズのパーティションに分割し、各パーティションを単一のプロセスにのみ割り当てることで実現できます。 しかし、これはマルチプログラミングの程度を引き起こし、メモリ内で行われる固定パーティションの数に制限されます。 連続したメモリ割り当ては、 内部の断片化にもつながります。 同様に、プロセスに割り当てられた固定サイズのメモリブロックがその要件よりもわずかに大きい場合、ブロック内の残りのメモリスペースは内部フラグメンテーションと呼ばれます。 区画内にあるプロセスが終了すると、その区画は別のプロセスで使用可能になります。

可変分割方式では、オペレーティングシステムは、メモリのどの区画が空いており、どれがプロセスによって占有されているかを示すテーブルを維持する。 連続したメモリ割り当ては、アドレス変換のオーバーヘッドを減らすことによってプロセスの実行を高速化します。

定義非連続メモリ割り当て

不連続メモリ割り当ては、プロセスがその要求に従ってメモリ内の異なる位置にあるいくつかのメモリブロック獲得することを可能にする。 連続しないメモリ割り当てにより、内部および外部の断片化によるメモリの無駄削減されます。 それが内部と外部の断片化中に作成されたメモリホールを利用するように。

ページングとセグメンテーションは、プロセスの物理アドレス空間を隣接しないようにする2つの方法です。 非連続メモリ割り当てでは、プロセスはブロック (ページまたはセグメント)に分割され、メモリの空き状況に応じてメモリ領域の異なる領域に配置されます。

不連続なメモリ割り当てには、メモリの無駄を減らすという利点ありますが 、アドレス変換のオーバーヘッド増加ます 。 プロセスの一部がメモリ内の別の場所に配置されると、アドレス変換に時間がかかるため、メモリの実行遅くなります。

ここで、オペレーティングシステムは、メモリ空間内のプロセスによって獲得された各ブロックのベースアドレスを含む各プロセスのためのテーブルを維持する必要がある。

連続メモリ割り当てと非連続メモリ割り当ての主な違い

  1. 連続メモリ割り当てと非連続メモリ割り当ての基本的な違いは、連続割り当ては1つの連続メモリブロックを プロセスに割り当てるのに対し、非連続割り当てはプロセスを複数のブロックに分割し、それらをメモリの異なるアドレス空間に配置することです。 。
  2. 連続メモリ割り当てでは、プロセスは連続メモリ空間に格納されます。 実行中のアドレス変換のオーバーヘッドはありません 。 しかし、連続しないメモリ割り当てでは、プロセスブロックがメモリ空間に分散されるため、プロセス実行中のアドレス変換のオーバーヘッドがあります
  3. 連続したメモリに格納されているプロセスは、連続していないメモリ空間に格納されているプロセスよりも高速に実行されます。
  4. 連続したメモリ割り当ての解決策は、メモリ空間を固定サイズのパーティションに分割し、パーティションを単一のプロセスにのみ割り当てることです。 一方、非連続メモリ割り当てでは、プロセスはいくつかのブロックに分割され 、各ブロックはメモリの可用性に応じてメモリ内の異なる場所に配置されます。
  5. 連続メモリ割り当てでは、オペレーティングシステムは、どのパーティションがプロセスに使用可能で、どれがプロセスによって占有されているかを示すテーブルを維持する必要があります。 非連続メモリ割り当てでは、メモリ空間に配置されたプロセスの各ブロックのベースアドレスを示すテーブルプロセスごとに維持されます。

結論:

連続したメモリ割り当てによってオーバーヘッドが発生することはなく、プロセスの実行速度は速くなりますが、 メモリの無駄増えます 。 その結果、連続していないメモリ割り当ては、アドレス変換のオーバーヘッドを生み出し、プロセスの実行速度を低下させますが、 メモリ使用量を増加させます 。 したがって、両方の割り当て方法には長所と短所があります。

Top