powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Аллокатор для Си
11 сообщений из 11, страница 1 из 1
Аллокатор для Си
    #38116394
Lonely Morgan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Существуют ли реализации в исходном коде надстроек над стандартным Сишным аллокатором, работающие в указанной им области памяти? При этом, желательно, с защитой памяти :)

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

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

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

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

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

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



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

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

я реализовывал подобный диспетчер памяти(была такая лаба в универе).
подобный диспетчер реализован, емнип, в сан ос, правда там еще добавлена оптимизация связанная с кешированием. поэтому я разбирался с устройством данного диспетчера, по какой-то статейке описывающей диспетчер в сан ос(приду домой, гляну, может сохранился пдф-ник)The Slab Allocator: An Object-Caching Kernel Memory Allocator (1994) - есть у меня такая. Там как раз про санос. Ее имел в виду?вполне возможно
...
Рейтинг: 0 / 0
Аллокатор для Си
    #38118659
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaNага, есть - и эта надстройка зовется операционной системой...
ну скорее runtime library от компилятора
...
Рейтинг: 0 / 0
Аллокатор для Си
    #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]