\r\n\r\n

内部と外部断片化の違い

内部フラグメンテーションと外部フラグメンテーションの違いは、コンピュータの知識を向上させるのが好きな多くの人にとって興味のあるテーマである。この違いを理解する前に、まず「フラグメンテーションとは何か」を見ておく必要があります。フラグメンテーションとは、ランダムアクセスメモリ(ラム)やハードディスクなどのコンピュータのメモリに発生する現象で、空き領域を無駄なく非効率的に使用することにつながる。空き容量の有効活用が妨げられる一方で、パフォーマンスの問題にもつながる。固定サイズのメモリに少量の空き領域を確保した場合、残りのメモリはアプリケーションに割り当てられる。外部フラグメントは、メモリを動的に割り当てる際に、複数のスロットをロード、アンロードした後に発生する...

内部および外部のごみ

内部フラグメンテーションと外部フラグメンテーションの違いは、コンピュータの知識を向上させるのが好きな多くの人にとって興味のあるテーマである。この違いを理解する前に、まず「フラグメンテーションとは何か」を見ておく必要があります。フラグメンテーションとは、コンピュータのRAM(ランダムアクセスメモリー)やハードディスクなどのメモリに発生する現象で、空き容量を無駄なく効率的に使用することにつながる。空き容量の有効活用が妨げられる一方で、パフォーマンスの問題にもつながる。固定サイズのメモリに少量の空き領域を確保した場合、残りのメモリはアプリケーションに割り当てられる。外部フラグメントは、メモリが動的に割り当てられ、空き領域が連続的にではなく、複数のスロットがロードおよびアンロードされた後に割り当てられた場合に発生します。

内部分裂は何ですか?

上図のような固定サイズのメモリ割り当て機構を考えてみましょう。最初はメモリは空っぽで、アロケータはメモリを固定サイズのパーティションに分割する。その後、A、B、Cという3つのプログラムが最初の3つのパーティションにロードされ、4番目のパーティションは空き状態のままです。プログラムAはパーティションサイズと一致するので、そのパーティションには無駄がありませんが、プログラムBとCはパーティションサイズより小さくなっています。第2パーティションには、まだスペースが残っています。しかし、メモリアロケータはプログラム用の完全なパーティションを割り当てるだけで、そのt部分は割り当てないため、この空き領域は利用できない。このように空き容量が無駄になることを内部フラグメンテーションといいます。

上記の例では、同じサイズの固定パーティションですが、様々な固定サイズのパーティションが利用可能な場合にも起こり得ます。通常、メモリやハードディスクは、2、4、8、16バイトなど、2のべき乗の大きさのブロックに分割されています。このため、3バイトのプログラムやファイルは4バイトのブロックに割り当てられるが、そのうちの1バイトが使用できなくなり、内部で断片化が発生する。

外部断片化は何ですか?

上の図で、メモリの割り当てが動的に行われる場合を考えてみましょう。動的メモリ割り当てでは、アロケータはそのプログラムに必要な正確なサイズのみを割り当てます。最初のメモリは完全に無料です。そして、大きさの異なるプログラムA、B、C、D、Eを順番にロードし、連続した順序でメモリに配置する。その後、プログラムAとプログラムCを終了し、メモリからアンロードする。現在、メモリ上には3つの空き領域がありますが、それらは互いに隣接していません。ここで、プログラムFという大きなプログラムをロードしなければならないが、2つの空き領域ブロックのどちらも、プログラムFには十分ではない。すべての空きスペースの追加は間違いなくプログラムFに十分な量ですが、隣接するスペースがないため、プログラムFに使用できません。これを外付けのフラグメンテーションという。

内部と外部断片化の違い

-固定サイズのメモリ割り当て技術を使用した場合は内部フラグメンテーションが発生し、動的メモリ割り当て技術を使用した場合は外部フラグメンテーションが発生します。

-内部フラグメンテーションは、固定サイズのパーティションが、そのパーティションより小さいプログラム/ファイルに割り当てられ、そのパーティションの残りの領域が使用できなくなる場合に発生します。外部断片化は、プログラムやファイルを一定期間ロード・アンロードした後、隣接する十分な空き領域がないために、利用可能な領域があちこちに分散してしまうことで発生します。

-外部破砕は、マイニングを圧縮し、指定されたブロックを片側に移動することにより、隣接するスペースを確保することができます。しかし、この操作には時間がかかり、特定の重要な指定領域(例えば、システム・サービスを安全に移動させることができない)を必要とします。Windowsでディスクデフラグを実行すると、このコンパクションのステップがハードディスク上で行われることが観察される。

-外部フラグメンテーションは、セグメンテーションやページングなどのメカニズムによって防止することができます。ここでは論理的に連続した仮想メモリ空間が与えられているが、実際にはファイル/プログラムは分割されてあちこちに配置されている。

-複数の内部分割と最適なサイズを割り当てることが可能。ただし、内部分割はまだ完全に排除されていない。

概要

内部および外部のごみ

  • 2020-10-29 14:06 に公開
  • 閲覧 ( 42 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ