0

これは、バディ アロケーション スキームの実装に向けた 2 番目の質問です。最初の質問はhereで、バディ アロケーションが実際に何であるかについても説明しています。標準的な実装では、2^i の大きなブロックで開始します。i は整数で、静的ヒープ サイズで動作します (この場合、ヒープ全体が最大のブロックです)。

の質問は、ヒープ サイズが 0 から始まる動的サイジング ヒープを処理する実装にかかっています。この最上位ブロックを適切に使用するためにヒープ サイズを拡張します。

問題は、この導関数がバディ システム内の不変条件 (アドレスが指定されたバディ ブロックのアドレスの計算) を破るかどうかわからないことです。これは、i 番目の次数ビットを反転することによって簡単に計算できます。この計算の説明は私の前の質問にあります。このスキームを実装すると、間違ったバディ アドレスが返されることがあります。

4

2 に答える 2