> man operating_systems
Центр информации по операционным системам :: Форумы :: Концепции :: Ядро
 
<< Предыдущая тема | Следующая тема >>
Как лучше организовать простейший менеджер памяти?
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
mzprog
Среда 06.07.2005 13:22
ID пользователя #306
Зарегистрирован: Четверг 05.05.2005 10:16
Сообщений: 23
Решил посоветоваться с профи о том, как лучше организовать простейший менеджер памяти?

У меня есть, конечно, мысли. В голову приходят несколько способов организации такого менеджера. И всё-таки, может есть готовый и опробованный способ?

Да кстати, я так пишу программы, что постоянно использую new и delete, поэтому без чётко работающей динамической памяти ну никак нельзя...
Наверх
Сайт
ossadchy
Четверг 11.10.2007 01:16
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
Ну тут читаем D. Knuth "Искуство программирования", там описанные простейшие алгоритмы(на связанных списках, buddy system и т.д.)
Наверх
Сайт
alman
Четверг 11.10.2007 01:24

ID пользователя #753
Зарегистрирован: Суббота 28.10.2006 01:21
Местонахождение: планета Земля
Сообщений: 95
mzprog написал(а) ...

Да кстати, я так пишу программы, что постоянно использую new и delete, поэтому без чётко работающей динамической памяти ну никак нельзя...


Обычно менеджеры памяти берут память из HEAP, который динамически растёт вверх, навстречу стеку.
Т.е. когда new не может найти кусок памяти достаточного размера, то он обращается к системе для увеличения HEAP. В юниксах функции malloc для этого используют вызов sbrk.



[ Редактирование Четверг 11.10.2007 01:24 ]
Наверх
Сайт
ossadchy
Четверг 11.10.2007 10:38
ID пользователя #941
Зарегистрирован: Среда 10.10.2007 22:55
Местонахождение: Украина, Николаевская обл., г. Первомайск
Сообщений: 181
alman написал(а) ...

mzprog написал(а) ...

Да кстати, я так пишу программы, что постоянно использую new и delete, поэтому без чётко работающей динамической памяти ну никак нельзя...


Обычно менеджеры памяти берут память из HEAP, который динамически растёт вверх, навстречу стеку.
Т.е. когда new не может найти кусок памяти достаточного размера, то он обращается к системе для увеличения HEAP. В юниксах функции malloc для этого используют вызов sbrk.




Ответ проясняет многое
Наверх
Сайт
 

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.