Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Freemem (p3, 300)



Рис. 45. Список свободных блоков после выполнения запроса на освобождение памяти

Freemem (p1, 100) Getmem (p5, 50)

Рис. 46. Распределение области памяти кучи после выполнения запросов на освобождение / выделение памяти

Если освобождаемый участок памяти вплотнуюприлегает с одной или двух сторон к свободным участкам, происходит слияние и образуется более крупный свободный блок (рис.47).

Freemem (p2, 200)

Рис. 47. Слияние свободных блоков в результате освобождения памяти

Организация списка свободных блоков непосредственно в куче с использованием дескрипторов порождает следующую проблему. В любой освободившийся блок администратор кучи должен поместить дескриптор этого блока, следовательно, длина блока не может быть меньше восьми байтов. Поэтому администратор кучи всегда выделяет память блоками, размер которых кратен размеру записи TFreeRec, т.е. восьми байтам. Даже если программа запросит один байт, администратор выделит ей фактически восемь байт.





Дата публикования: 2014-11-26; Прочитано: 347 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...