abivan (16.06.2008 10:17, просмотров: 387) ответил Evgeny_CD на Размышлизма о вреде вытесняющей многозадачности.
Так проблема с кучей, или где? >мы вынуждены будем переключить задачи. Что даст нам неприятность в виде
>нескольких кадров под стек задач, и бардак в куче, ибо новая задача
>может затребовать память, ей выделят ее, потом отработает вытесненная
>ранее задача, она освободит память, но куча уже будет фрагментирована.
>Дефрагментация кучи - тоска для малоресурсных систем. Для больших,
>заметим, это тоже фундаментальная проблема.
А не нужно ее фрагментировать, тогда и дефрагментировать не придется.
Пишется свой dms, состоящий из n связных списков кратных степени 2-ки.
У меня(pic18) от 16 байт до 512. ф-я Alloc находит незанятый блок в списке, он как правило сверху или запрашивает блок у кучи ф-ей malloc.
ф-я Free ставит пометку свободен на блоке в списке, куче память не отдается.