Size: a a a

pro.osdev - os development

2021 October 06

BD

Berkus Decker in pro.osdev - os development
я никуда не тороплюсь, поэтому мержу (не самое долгое занятие, но да, может провиснуть)
источник

d

disba1ancer in pro.osdev - os development
понятно, а что в моём случае делать?
источник

BD

Berkus Decker in pro.osdev - os development
так а какой у тебя случай?
источник

BD

Berkus Decker in pro.osdev - os development
читаешь про все возможные аллокаторы, выбираешь что тебе нравится, реализуешь, бенчишь, ругаешься, выбираешь что-то еще
источник

BD

Berkus Decker in pro.osdev - os development
продолжаешь пока либо бенчи не скажут ок либо не уволишься
источник

d

disba1ancer in pro.osdev - os development
у меня несколько регионов непрерывной памяти между которыми дыры, каждый регион рулится отдельным инстансом аллокатора, но хотелось бы иметь функцию которая просто выделяет немного памяти из этой кучи для не специфических нужд
источник

BD

Berkus Decker in pro.osdev - os development
добавь все эти регионы в один аллокатор, ему должно быть похуй откуда выделять же
источник

BD

Berkus Decker in pro.osdev - os development
alloc[region], alloc[region] и alloc[region] поменяй на alloc[region,region,region]
источник

d

disba1ancer in pro.osdev - os development
тогда служебные структуры получатся большие
источник

BD

Berkus Decker in pro.osdev - os development
ну схуяли
источник

d

disba1ancer in pro.osdev - os development
не понял
источник

BD

Berkus Decker in pro.osdev - os development
храни их в СВОБОДНОЙ памяти, она ж все равно свободная
источник

d

disba1ancer in pro.osdev - os development
я не понял что ты предлагаешь, не бери в голову
источник

BD

Berkus Decker in pro.osdev - os development
я не понимаю что тебе мешает добавить N-дцать регионов в один аллокатор, он же все равно принципиально так и работает - с кучей регионов
источник

BD

Berkus Decker in pro.osdev - os development
вместо freelist = [region] скажи ему freelist = [region1, region2, region3]
источник

d

disba1ancer in pro.osdev - os development
это если что-то простое на связном списке свободных блоков
источник

BD

Berkus Decker in pro.osdev - os development
это в любом случае если аллокатор не совсем тупой bump
источник

BD

Berkus Decker in pro.osdev - os development
в бамп аллокаторе регионы сложно, это да
источник

d

disba1ancer in pro.osdev - os development
хотя у меня аллокатор всё же оверхедный по выделению...
источник

BD

Berkus Decker in pro.osdev - os development
хотя можно сделать бамп аллокатор с фри листами
источник