Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Аллокатор для Си / 11 сообщений из 11, страница 1 из 1
19.01.2013, 16:33
    #38116394
Lonely Morgan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аллокатор для Си
Существуют ли реализации в исходном коде надстроек над стандартным Сишным аллокатором, работающие в указанной им области памяти? При этом, желательно, с защитой памяти :)

Предположим, при запуске приложения malloc занимает требуемый приложению объем памяти. После этого данная библиотечка своими собственными функциями осуществляет выделение/освобождение памяти внутри указанного глобального для программы участка памяти. По окончанию работы системе отдается изначально занятый огромный кусок.
...
Рейтинг: 0 / 0
19.01.2013, 17:27
    #38116422
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аллокатор для Си
Lonely Morgan,

Что имеется ввиду "над сишным аллокатором"? Аллокируете кусок виртуальной памяти каким-нибудь mmap-ом и используйте на нем свою имплементацию malloc. Например jemalloc .
Cишный аллокатор имплементирован в стандартной с библиотеке. Библиотеки линукса, БСД, с открытым кодом.
Что имеется ввиду под "защитой памяти" в этом контексте?
...
Рейтинг: 0 / 0
19.01.2013, 19:48
    #38116486
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аллокатор для Си
Lonely Morganmalloc занимает требуемый приложению объем памяти.
только не malloc, а соответсвующий вызов конкретной ОС
...
Рейтинг: 0 / 0
20.01.2013, 06:50
    #38116744
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аллокатор для Си
Lonely MorganСуществуют ли реализации в исходном коде надстроек над стандартным Сишным аллокатором, работающие в указанной им области памяти? При этом, желательно, с защитой памяти :)Нет. Они никому не нужны потому что.
Вот надстройки над физическим доступом к памяти - сколько угодно, берешь исходники любой ОС и вперед. Например XV6 для этого хорошо подходит.

Lonely MorganПредположим, при запуске приложения malloc занимает требуемый приложению объем памяти. После этого данная библиотечка своими собственными функциями осуществляет выделение/освобождение памяти внутри указанного глобального для программы участка памяти. По окончанию работы системе отдается изначально занятый огромный кусок.Если это не праздный интерес, то бери учебник по проектированию ОС, например Таненбаум хорошо описывает создание кучи. И читай, читай, читай...
...
Рейтинг: 0 / 0
20.01.2013, 22:07
    #38117111
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аллокатор для Си
Lonely MorganСуществуют ли реализации в исходном коде надстроек над стандартным Сишным аллокатором, работающие в указанной им области памяти? При этом, желательно, с защитой памяти :)

Предположим, при запуске приложения malloc занимает требуемый приложению объем памяти. После этого данная библиотечка своими собственными функциями осуществляет выделение/освобождение памяти внутри указанного глобального для программы участка памяти. По окончанию работы системе отдается изначально занятый огромный кусок.ага, есть - и эта надстройка зовется операционной системой...
...
Рейтинг: 0 / 0
21.01.2013, 13:19
    #38117915
Lonely Morgan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аллокатор для Си
ZyK_BotaNага, есть - и эта надстройка зовется операционной системой...Закроем пока вопрос с защитой памяти, она решается на уровне MMU-процессора и ОС.

Предположим, что операционная система примитивная. Выделяет оперативную память по принципу First Fit - из набора блоков свободной памяти выделяет первый удовлетворяющий требованиям кусок, который после free() возвращается системе. Если программы (в многозадачке) позанимали куски памяти, а потом почти все освободили, то может возникнуть ситуация такая:

Код: sql
1.
|______#####____|



Вроде как и есть в сумме свободное пространство, но оно раздроблено на 2 куска - одним malloc'ом не займешь. Вот мне нужно изначально под себя занять какой-то объем ОЗУ, потом уже в его недрах играться как захочется.

Сейчас читаю про http://ru.wikipedia.org/wiki/Slab
...
Рейтинг: 0 / 0
21.01.2013, 15:39
    #38118203
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аллокатор для Си
Lonely Morganu.wikipedia.org/wiki/Slab
я реализовывал подобный диспетчер памяти(была такая лаба в универе).
подобный диспетчер реализован, емнип, в сан ос, правда там еще добавлена оптимизация связанная с кешированием. поэтому я разбирался с устройством данного диспетчера, по какой-то статейке описывающей диспетчер в сан ос(приду домой, гляну, может сохранился пдф-ник)
...
Рейтинг: 0 / 0
21.01.2013, 16:46
    #38118370
Lonely Morgan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аллокатор для Си
ZyK_BotaNLonely Morganu.wikipedia.org/wiki/Slab
я реализовывал подобный диспетчер памяти(была такая лаба в универе).
подобный диспетчер реализован, емнип, в сан ос, правда там еще добавлена оптимизация связанная с кешированием. поэтому я разбирался с устройством данного диспетчера, по какой-то статейке описывающей диспетчер в сан ос(приду домой, гляну, может сохранился пдф-ник)The Slab Allocator: An Object-Caching Kernel Memory Allocator (1994) - есть у меня такая. Там как раз про санос. Ее имел в виду?
...
Рейтинг: 0 / 0
21.01.2013, 17:52
    #38118497
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аллокатор для Си
Lonely MorganZyK_BotaNпропущено...

я реализовывал подобный диспетчер памяти(была такая лаба в универе).
подобный диспетчер реализован, емнип, в сан ос, правда там еще добавлена оптимизация связанная с кешированием. поэтому я разбирался с устройством данного диспетчера, по какой-то статейке описывающей диспетчер в сан ос(приду домой, гляну, может сохранился пдф-ник)The Slab Allocator: An Object-Caching Kernel Memory Allocator (1994) - есть у меня такая. Там как раз про санос. Ее имел в виду?вполне возможно
...
Рейтинг: 0 / 0
21.01.2013, 19:35
    #38118659
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аллокатор для Си
ZyK_BotaNага, есть - и эта надстройка зовется операционной системой...
ну скорее runtime library от компилятора
...
Рейтинг: 0 / 0
22.01.2013, 14:50
    #38119753
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Аллокатор для Си
Lonely Morgan,

чтобы перейти отсюда
Код: sql
1.
|______#####____                                                     |


сюда
Код: sql
1.
|      #####__________                                               |



нужно чтобы твоя "примитивная ОС" виртуализировала память. Тем более что у тебя уже есть "уровнь MMU-процессора" и "многозадачность".
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Аллокатор для Си / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]