無料リストとは何ですか?
フリーリストとは、「コンピューターのメモリの場所のアドレスを保持するデータ構造」であり、動的なメモリ割り当てを使用するときに実行中のプログラムで使用できるようにするものです。ヒープと呼ばれる空きメモリ領域から。free free offree free freefreelistツリーを並べ替えます。ost ostほとんどの高レベルのコンピュータープログラミング言語free free無料リストを処理します。
プログラムがプログラムの実行中に情報を保存するためのスペースを必要とする場合、基礎となるオペレーティングシステムに特定の量のメモリを要求する必要があります。使用可能なメモリブロックの場所は空き領域に保存されますallocation割り当てを成功させるには、「要求されたメモリの量がこれらのブロックの1つ以上で利用可能である必要があります。」ポインタが「適切なメモリ位置に返されたら」リストの要素が削除されます。
メモリを使用してプログラムを実行した後、メモリの割り当てを解除できます。これはメモリへのポインタを渡すことを含みます。ブロックを空きリストに戻し、次に割り当てが使用可能になったときに使用できるようにします。 「リストが空であるか、プログラムの要求を満たすのに十分な大きさの使用可能なメモリブロックがないため、メモリ割り当てが失敗する可能性があります。
メモリ管理の最も簡単な形式は、ファーストフィットシステムと呼ばれます。このシステムは、単一の空きメモリロケーションのリストを維持します。 enough twiceブロックが要求されたサイズの2倍以上である場合、size半分になり、未使用の半分がtheリストに追加されます。method methodこのメソッドは、リストに戻されないかもしれない断片化されたメモリ領域を持つリスク。
メモリ管理の別の形式は、バディ割り当てシステムと呼ばれます。ファーストフィットシステムとは異なり、バディ割り当てはいくつかのフリーリストを保持します。それぞれが特定のサイズのオープンブロックを保持します。割り当て要求が受信されると、「要求を満たすのに十分な大きさのブロックを保持するリストが参照され、オープン場所が返されます。」「いいえ」の場合、サイズが2倍未満のブロックrequested largerより大きいブロックは、要件を満たすために2つに分割されます。
「フリーリスト」という用語は、メモリアドレスの単一のリンクリストを指す場合もあれば、はるかに複雑なタイプのデータ構造を指す場合もあります。異なる種類のソートツリーを指す場合は、 openソースコードの複雑化を犠牲にして、オープンメモリブロックの検索速度を向上させることができます。linkedリンクリストは、特殊な並べ替えツリーよりも遅くなりますが、読み取りがはるかに簡単なプログラミングコードを作成します。デバッグと変更。
一部のプログラミング言語およびオペレーティングシステムは、ガベージコレクションと呼ばれる特別なメカニズムを使用します。これは、フリーリストのさまざまなエントリを取得し、それらが連続するようにフリースペースを統合するのに役立つプロセスです。フラグメンテーションの防止と、より大きなメモリブロックの割り当てを可能にする効果。