tarosukeの日記: talosという名の俺OS
なーんかn木メモリ管理のコードが降って来ない。べんとらべんとら(違
...単にn木にした所で必要なサイズの空きブロックをサクッと検索できないわけで、そのための方法も考えなきゃなんない。領域を分断するタイプのn木なら組んだ事もあるけど、こいつは分断しちゃダメだし。それとも単にもれがバカなだけかのー。
...ん~。各枝の場所は実際に枝をたどらなくてもアドレスがわかれば計算できるんだよなぁ...16木ならニブル毎に値を見ていけばいいんだし...てことは再帰よりループの方が賢いかなぁ...むぅぅぅん。
確保したいサイズは最初からわかってるわけだから、確保するべき階層も最初からわかってるわけだ(つまりサイズ中で高位側から数えた連続して0になってるニブルの数が階層の深さ)。そうすると最初からその階層を横断的に探せるはずだな。
問題は各階層のステータス位置が一定じゃないって事で...えーと、これは...最初(0番)の枝のがn番目にあるとすると、次は上位の階層が同じだから0、で、同一階層には16まで収容してるから15番までは0。16番は一つ上の階層が違うだけだから1、17~31番は0、んですっ飛ばして255番は0、256番は2階層上が代わるから2、257番は0...ぅみゅぅ...アドレスの下位側から数えた連続して0になってるニブルの数?
もちろん枝がない所もあるわけで...それはステータス位置が0でない枝の前のステータス(上位階層のステータスが入ってる)を見ればわかるから、枝になってるとこだけ見ていけばいいわけで...見るビットはアドレスの該当階層のニブルの値...これは上位階層についても同じ...
# 頭沸いてきた...この程度で沸くなんてヤワ過ぎるなぁ...
# つーわけで続きは後で。
talosという名の俺OS More ログイン