OSDev

для всех
Текущее время: 30 апр 2024, 08:49

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Библиотека ядра
СообщениеДобавлено: 04 июн 2012, 11:41 

Зарегистрирован: 19 май 2011, 14:54
Сообщения: 73
Внутри ядра должно храниться N-ое количество разнообразных структур данных. Соответственно возникает необходимость распределения памяти внутри ядра. Кроме того ряд функций необходим для отладки.

Вопрос. Кто чем пользуется для распределения памяти в ядре, кто чем пользуется в качестве библиотеки ядра? Какие есть готовые варианты библиотек?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека ядра
СообщениеДобавлено: 04 июн 2012, 13:24 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
Для динамического распределения памяти внутри ядра я использую самодельное выделение/освобождение памяти с использованием таблицы памяти.
Цитата:
Кроме того ряд функций необходим для отладки.

Когда такие функции нужны - я их создаю. Когда они больше не нужны - я их удаляю. Все команды в консоли (и функции, которые вызываются при их вводе) у меня сейчас только для отладки различных частей ядра.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека ядра
СообщениеДобавлено: 04 июн 2012, 17:30 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
У меня всё библиотечное полностью самописное не только в ядре (которое вообще на ассемблере), но и для прикладного кода. Выделение-освобождение памяти пока примитивнейшее, а значит, не самое эффективное по скорости, зато простое в реализации и жрущее минимум памяти (для микроконтроллеров сие может быть весьма важным).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека ядра
СообщениеДобавлено: 04 июн 2012, 19:54 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Распределение памяти в ядре сильно похоже на slab. Страницы различных таблиц могут перемешиваться в ВАП. Все писал сам.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека ядра
СообщениеДобавлено: 04 июн 2012, 20:11 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Пока ещё не определился статика или динамика. Причём склоняюсь к первому. В качестве динамики использую кучу. Все алгоритмы писал сам по статьям и изучению сторонних.
Страницы распределяю очередью.
По поводу скорости. В данном направление мои результаты такие. Как я не пытался ускорить, но чем код проще тем он быстрее работает. Так что для кучи используется самый простой код.

SII писал что он использует стек как динамическую память. Такое тоже использую во вторичном загрузчике.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека ядра
СообщениеДобавлено: 04 июн 2012, 21:27 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Хм, где это я использовал стек как динамическую память?.. Стек -- это стек, годится только для временных данных, но никак не для управляющих структур и т.п., имеющих сравнительно большое время жизни.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека ядра
СообщениеДобавлено: 04 июн 2012, 22:45 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Я использую стек процессора для передачи данных из RM в PM, в частности в стеке передаются структуры, описывающие доступные для использования области физической памяти. Таблица свободных страниц физической памяти имеет стековую структуру, только растет вверх, а не вниз. Списки частично свободных блоков и списки свободных элементов в каждом блоке системных таблиц по сути являются динамическими стеками.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB