無料リストとは何ですか?

フリーリストとは、動的メモリ割り当てを使用するときに実行中のプログラムで使用できるコンピューターメモリロケーションのアドレスを保持するデータ構造です。プログラムがヒープと呼ばれるフリーメモリの領域からスペースを割り当てる必要がある場合が必要になります。フリーリストの実装は、単純なリンクリストになり、より複雑なデータ構造になります。

プログラムがプログラムの実行中に情報を保存するためにスペースを必要とする場合、基礎となるオペレーティングシステムから特定の量のメモリを要求する必要があります。使用できるメモリブロックの位置はフリーリストに保存されます。成功するには、適切なメモリが適切なメモリで利用できるようにする必要があります。場所が返され、リストの要素が削除されます。

プログラムがメモリを使用して行われた後、それを解釈することができます。これには、メモリブロックへのポインターをフリーリストに戻すことが含まれます。

メモリ管理の最も単純な形式は最初のFITシステムと呼ばれます。このシステムは、フリーメモリの位置の単一リストを維持します。メモリのリクエストが送信されると、リストが通信され、ブロックが2倍以上のリクエストサイズの場合、それが半分になり、未使用の半分がリストに追加されます。リストに返されない可能性のある断片化されたメモリ領域。

別の形式のメモリ管理はバディ割り当てシステムと呼ばれます。最初のフィットシステムとは異なり、バディ割り当てはいくつかの無料リストを保持します。それぞれが特定のサイズのみのオープンブロックを保持します。これは、割り当て要求を受信すると、リクエストを埋めるのに十分な大きさのブロックを保持するリストが、オープンリクエストが2回補充されている場合、オープンリクエストは2回のブロックを完成させます。要件。

「フリーリスト」という用語は、メモリアドレスの単一のリンクされたリストのいずれかを参照するか、より複雑なタイプのデータ構造を参照できます。さまざまなタイプの種類のツリーは、シンプルでバランスを保つと、ソースコードを複雑にすることを犠牲にしてオープンメモリブロックを見つける速度を上げることができます。Alized Sort Treeは、読み取り、デバッグ、変更がはるかに簡単なプログラミングコードを作成します。

いくつかのプログラミング言語とオペレーティングシステムは、Garbage Collectionと呼ばれる特別なメカニズムを使用しています。これは、無料リストにさまざまなエントリを取得し、フリースペースを統合して隣接するようにするのに役立つプロセスです。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?