Size: a a a

pro.osdev - os development

2021 October 06

BD

Berkus Decker in pro.osdev - os development
https://github.com/metta-systems/metta/blob/develop/src/modules/heap_mod/heap.h#L119-L126 вот смотри, со своим я могу сделать примерно так - покрыть start .. end ВСЮ область, включая дырки

потом принудильно “аллоцировать” эти дырки чтобы из них больше память не выделялась, и тогда использовать один аллокатор для всех регионов
источник

BD

Berkus Decker in pro.osdev - os development
тебе нужен fake_alloc(addr, size) который будет просто убирать дырки из разрешенной для аллокации области
источник

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
зависит от того как дешевле
источник

d

disba1ancer 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
_ph2 серьезно? буквы закончились?
источник

d

disba1ancer in pro.osdev - os development
просто после инициализации управляющих структур оно выглядит как полностью аллоцированное
источник

BD

Berkus Decker in pro.osdev - os development
ну напиши _phase2 несложно же
источник

d

disba1ancer in pro.osdev - os development
скорее креатив
источник

BD

Berkus Decker in pro.osdev - os development
ок, ну вот тебе и возможное решение
источник

BD

Berkus Decker in pro.osdev - os development
деаллоцируй не всё, а только то что можно будет потом аллоцировать, а дырки оставь уже “аллоцированными"
источник

BV

Boris Vinogradov in pro.osdev - os development
когда у меня закончится нда я тоже таких перлов могу накидать вагон
источник

BV

Boris Vinogradov in pro.osdev - os development
источник

d

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

EE

Eugene Erokhin in pro.osdev - os development
Ниче се вы тут понаписали))) В общем эксепшены это определенный инструмент, для определенных задач. В ОСдеве и эмбедеде не особо хорошо применимый. В прикладных, местами очень подходящий! Так и отвертка не говноинструмент, просто ей в ухе не надо ковырять)))
источник

d

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