ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
6 мая
158988 Топик полностью
Evgeny_CD, Архитектор (14.06.2009 01:01, просмотров: 269) ответил Evgeny_CD на Ветка для идей по продвинутому API для RTOS
Была ветка про продвинутые алгоритмы управления памятью ->. Вот меня какие мысли посетили. http://caxapa.ru/157408.html
Как правило, потоку может потребоваться память "не более чем". т.е. есть максимальный кусок, который ему может понадиться. Шедулер, перед тем как отдать ему управление, находит такой кусок, и ставит некую управляющую структуру. Прцесс, когда ему надо malloc, лезет в эту структуру, берет указатель, жрет, сколько надо, и пишет, сколько отожрал. Шедулер, после того, как отберет управление у потока, и перед тем, как отдать управление другому потоку, оценивает ситуацию по времени и по памяти. Например, по времени жопа - критический момент друго процесса близок, времени на возню с распределением памяти нет, а потребность будущего процесса в "новой памяти" невелика, и такая память есть. Шедулер выделяет память, как описано выше, и отдет управление потоку. Если при следующем переключении по времени есть запас - шедулим менеджер памяти, затем поток. Если и по времени и по памяти жопа - нам песец :) В таком случае алритимы с константным временим поиска куска памяти очень даже годятся. Мы заранее знаем, сколько на это уйдет времени, и сожем рассчитать.