Size: a a a

pro.osdev - os development

2021 November 02

DF

Dollar Føølish in pro.osdev - os development
отлично, спасибо Борь
источник

RG

R G in pro.osdev - os development
а какой аллокатор для физ фреймов лучше взять?
источник

BV

Boris Vinogradov in pro.osdev - os development
Там если сходить к ним в доку то это описано, а также то что они не считают это проблемой
источник

DF

Dollar Føølish in pro.osdev - os development
выше Беркус советовал Slab/Slub
источник

RG

R G in pro.osdev - os development
а я думал это только для kmalloc типа чтобы объекты ядра создавать
источник

BV

Boris Vinogradov in pro.osdev - os development
Это просто алгоритм планирования пространств
источник

BV

Boris Vinogradov 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
инициализировать только заебешься
источник

BV

Boris Vinogradov 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
Это прям маст хэв
источник

BD

Berkus Decker in pro.osdev - os development
ну например если ты их аллоцируешь последовательно и не освобождаешь (нет фрагментации) то можно просто range [start; end) 😛
источник

BD

Berkus Decker in pro.osdev - os development
два инта и готово
источник

d

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

BD

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

d

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

BD

Berkus Decker in pro.osdev - os development
ну оно не список, а дерево рейнджей скорее
источник