連続したメモリ割り当てと非連続なメモリ割り当ての違いとは?分かりやすく解説!

この記事には、アフィリエイト広告を利用しています。

スポンサーリンク


連続メモリ割り当てと非連続メモリ割り当ての主な違いは、連続メモリ割り当てが連続したメモリブロックをプロセスに割り当てるのに対して、非連続メモリ割り当ては別々のメモリブロックをプロセスに割り当てることです。

連続メモリ割り当てと非連続メモリ割り当ては、2つのメモリ割り当てモデルです。

連続メモリアロケーションは、連続したメモリブロックをプロセスに割り当てます。

非連続メモリ割り当てでは、プロセスに対して、非連続的に異なるメモリブロックを割り当てます。

連続メモリ割り当てでは、プロセスに十分な大きさのメモリブロックを見つけることが困難な場合があります。

しかし、非連続メモリ割り当てでは、連続したメモリブロックを必要としないため、さまざまな場所のメモリブロックを容易に見つけることができます

スポンサーリンク

メモリの連続割り当てとは

連続メモリ割り当てでは、メモリブロックの連続した1つのセクションがプロセスに割り当てられます。

したがって、1つのプロセスは、連続したメモリブロックの1つのブロックに存在します。

連続メモリ割り当てを実現するために、メモリは固定サイズのパーティションに分割することができます。

各パーティションには、1つのプロセスが割り当てられます。

内部フラグメンテーションでは、あるプロセスに割り当てられたメモリが必要以上に大きい場合、残りの部分は未使用となる

他のプロセスで使用することはできません。

この内部フラグメンテーションは、メモリの連続的な割り当てが原因です。

連続したメモリ配置は、アドレス変換のオーバーヘッドを最小にするため、プロセスの実行を高速化することができます。

しかし、プロセスを収めるのに十分な大きさの連続したメモリブロックを見つけるのが難しい場合があります。

非連続メモリ割り当てとは

非連続メモリ割り当てでは、プロセスは、メモリ内の異なるメモリ位置にある複数のメモリブロックに割り当てられます。

内部フラグメンテーションでは、あるプロセスに割り当てられたメモリブロックが大きいため、残りの部分を他のプロセスに使用することができず、未使用のままとなる。

外部フラグメンテーションでは、プロセスが常駐するのに十分なメモリ空間が確保されているが、連続ではないため使用することができない。

非連続型メモリ割り当てでは、内部および外部のフラグメンテーションに対する解決策を提供します。

メモリの浪費を最小限に抑えることができます。

非連続メモリ配置はメモリの浪費を減らすとはいえ、いくつかの欠点があります。

それは、アドレス変換によるオーバーヘッドが発生することです。

さらに、同じプロセスの異なるセクションが異なるメモリ位置に存在するため、全体的な実行速度が低下する可能性があります

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

定義

連続メモリ割り当てとは、連続したアドレスを持つメモリブロックをプロセスに割り当てるメモリ割り当てモデルです。

非連続メモリ割り当てとは、異なる場所にあるメモリブロックにプロセスを割り当てるメモリ割り当てモデルです。

基本情報

連続メモリ割り当てでは、連続したメモリブロックをプロセスに割り当てます。

非連続メモリ割り当てでは、異なる場所にあるメモリブロックにプロセスを割り当てます。

非連続的に割り当てる。

オーバーヘッド

連続メモリ割り当ての場合、オーバーヘッドは最小です。

プロセスの実行中にアドレス変換があまりない。

非連続メモリ割り当てでは、アドレス変換が多くなるため、より多くのオーバーヘッドが発生します。

実行速度

連続したメモリにあるプロセスは、プロセス全体がシーケンシャルなブロックになっているため、実行速度が速くなります。

一方、非連続メモリ内のプロセスは、メモリ内の異なる場所にあるため、実行に時間がかかる。

制御

オペレーティングシステムが連続したメモリーを制御するのは簡単です。

非連続メモリを制御するのは難しい。

結論

連続メモリ割り当てと非連続メモリ割り当ての違いは、連続メモリ割り当てが連続したメモリブロックをプロセスに割り当てるのに対し、非連続メモリ割り当ては、別々のメモリブロックをプロセスに割り当てることです。

タイトルとURLをコピーしました