OSDev

для всех
Текущее время: 26 авг 2019, 12:25

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




Начать новую тему Ответить на тему  [ Сообщений: 93 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 10  След.
Автор Сообщение
 Заголовок сообщения: Re: Управление физической памятью
СообщениеДобавлено: 17 фев 2015, 19:50 

Зарегистрирован: 01 фев 2015, 10:02
Сообщения: 54
pavia писал(а):
В ВАП для менеджера памяти отвожу 32 МБайта. Большинство свободно.
Физическая память по делена на страницы. Для менеджера выделяются только столько нужно.
Если каталог пустой, то под него физическая память не расходуется.
Моя текущая реализация требует 4К (верхушка стэка) + 8 байт (счетчик доступных фрэймов и указатель стэка). Улучшать не планирую :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление физической памятью
СообщениеДобавлено: 17 фев 2015, 19:51 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
При использовании PAE в приложении все равно не больше 4 ГБ виртуальной памяти. А значит, все таблицы, отображенные в ВАП, займут по идеи 4-8 мегабайта.


Последний раз редактировалось Bargest 17 фев 2015, 19:52, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление физической памятью
СообщениеДобавлено: 17 фев 2015, 19:51 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1111
Actium писал(а):
Хорошо, конкретизирую: имеется x32, 32 GB оперативки; планируется paging, PAE. По моим прикидкам в худшем случае нужно откусывать примерно полгига виртуальной памяти, если располагать в ней все таблицы для отображения. Либо я неправильно считаю, либо?

Неправильно считаете.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление физической памятью
СообщениеДобавлено: 17 фев 2015, 19:56 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
Одна таблица (4КБ) отображает 2МБ ВАП, получаем 32ГБ / 2МБ * 4КБ = 64МБ


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление физической памятью
СообщениеДобавлено: 17 фев 2015, 20:06 

Зарегистрирован: 01 фев 2015, 10:02
Сообщения: 54
Короче, без рекурсивного отображения получается (4 + 4 * 512) * 4096 = ~8M, с рекурсивным 1 ГБ!!! Кто там рекомендовал рекурсивный mapping? =)

pavia писал(а):
Неправильно считаете.
Да, худший вариант оказался еще хуже :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление физической памятью
СообщениеДобавлено: 17 фев 2015, 20:30 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
Цитата:
с рекурсивным 1 ГБ!!! Кто там рекомендовал рекурсивный mapping? =)

А разве кто-то предлагал? И вообще, что это и зачем?)
Используемый у большинства подход - просто отобразить в ВАП процесса еще и те физические страницы, в которых находятся сами таблицы страниц. Это как раз те самые 8 МБ памяти.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление физической памятью
СообщениеДобавлено: 17 фев 2015, 20:40 

Зарегистрирован: 01 фев 2015, 10:02
Сообщения: 54
Bargest писал(а):
А разве кто-то предлагал? И вообще, что это и зачем?)
Одна из записей каталога содержит физический адрес самого каталога. В итоге отображение страницы/отмена отображения выполняются одной строчкой кода.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление физической памятью
СообщениеДобавлено: 17 фев 2015, 20:46 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
Цитата:
Одна из записей каталога содержит физический адрес самого каталога.

Зачем? Мы резервируем в одной-единственной таблице самого нижнего уровня первые(последние) N записей под те физические страницы, в которых хранятся все таблицы, и никогда эти записи больше не трогаем. После этого мы можем из системного кода писать в любое место любой таблицы страниц или каталога страниц одной строчкой, т.к. находится всё это по известному нам виртуальному адресу (где-то между 0 и 8 мб, если заменяем N первых записи таблицы нижнего уровня).
EDIT:
Конкретно для адресации 8 МБ нам понадобится зарезервировать первые 4 таблицы нижнего уровня (4*512 записей, каждая описывает 4 кб), все остальные будут доступны для свободного использования.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление физической памятью
СообщениеДобавлено: 17 фев 2015, 20:51 

Зарегистрирован: 01 фев 2015, 10:02
Сообщения: 54
Bargest писал(а):
Зачем?
Ну дак, оптимизация же! :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление физической памятью
СообщениеДобавлено: 17 фев 2015, 20:53 

Зарегистрирован: 31 окт 2011, 18:20
Сообщения: 230
Цитата:
Ну дак, оптимизация же!

Так я описал, как получить такой же результат (модификация любой таблицы в одну строку), используя только 8 МБ ВАП.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 93 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 10  След.

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


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

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


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

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