2
Linuxカーネルのバディシステムアロケータには疑問があります。Linuxカーネルのバディシステムアロケータ
この例を考えてみます。
は、バディシステムは割り当てられた128キロバイトのRAMがあると仮定する。 kmallocを使用して32KBを割り当てた場合、私の理解は
です。ステップ1で128KBを2つの64KBに分割し、最初の64KBを2つの32KBに分割します。 最初の32KBが私に割り当てられます。
明らかに、連続した96KBのメモリが利用可能です。
ここで90KBを割り当てると、どうなりますか? kmallocが失敗するか、またはバディ(またはスラブ)アロケータがこれを処理し、要求されたメモリを割り当てますか?