そのため、私が取っている OS のコースの一環として、メモリ アロケータを実装しました (C の malloc のように)。フリースペースはリンクリストに保存されます。
私の質問は次のとおりです。さまざまな割り当て戦略 (たとえば、最初に適合、最適に適合、最悪に適合) をテストするにはどうすればよいでしょうか。現在、私は事前に定義された回数だけ反復しており、そのたびにサイズが 1 ~ N バイトのブロックを割り当てています。ここで、N は 20000 のようなものです。ブロック。終了する前に、フリーリストを確認し、外部フラグメンテーションを計算します。これが進むべき道なのか、それともこれを行うためのより良いアプローチがあるのか わかりません。
各戦略にランダムなブロック サイズを選択する際の問題の 1 つは、割り当てられたブロック サイズが異なる場合、それらを実際に比較できないことですよね? したがって、代替手段は同じテストを実行することですが、各戦略をテストするときに同じ割り当てサイズを使用し、同じブロックを解放するだけです。
これが混乱しないことを願っています:)