OSDev
http://osdev.su/

Программирование видеоадаптера в защищённом режиме
http://osdev.su/viewtopic.php?f=7&t=348
Страница 4 из 4

Автор:  s3dworld [ 29 окт 2010, 12:17 ]
Заголовок сообщения:  Re: Программирование видеоадаптера в защищённом режиме

phantom-84, эффективнее всё же оставлять последние элементы в таблице под код ядра операционной системы?

Я вот тут мы говорим про 4 ГБ для задачи (не учитывая последние адреса под код ядра операционной системы), но я где-то читал что для задачи можно виртуально выделить 16 ГБ. Это как же?

Автор:  phantom-84 [ 29 окт 2010, 13:18 ]
Заголовок сообщения:  Re: Программирование видеоадаптера в защищённом режиме

s3dworld писал(а):
эффективнее всё же оставлять последние элементы в таблице под код ядра операционной системы?
Не понял вопроса. Естественно, область ядра лучше делать над областью приложения, но это не означает, что код должен быть в самом конце. У меня например код ядра находится практически в самом начале области ядра и в 2G-ядре по сути располагается в середине виртуального адресного пространства.

Цитата:
Я вот тут мы говорим про 4 ГБ для задачи (не учитывая последние адреса под код ядра операционной системы), но я где-то читал что для задачи можно виртуально выделить 16 ГБ. Это как же?
В виндах есть фишка подключать к одной и той же области вирт. пространства разные участки физической памяти, причем управлять этим на па прикладном уровне.

Автор:  s3dworld [ 29 окт 2010, 13:37 ]
Заголовок сообщения:  Re: Программирование видеоадаптера в защищённом режиме

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

Правильно я понимаю?

Автор:  phantom-84 [ 29 окт 2010, 13:49 ]
Заголовок сообщения:  Re: Программирование видеоадаптера в защищённом режиме

Да. Только тогда для ядра останется меньше памяти. А ядру нужен большой запас пространства на случай большого количества загружаемых драйверов, работающих процессов и потоков, открытых файлов и т.п.

Автор:  s3dworld [ 29 окт 2010, 13:51 ]
Заголовок сообщения:  Re: Программирование видеоадаптера в защищённом режиме

phantom-84
Спасибо! Получается что "быстренько" изучаем x86 и отрываемся на x64 (там то памяти хватит для всего).

Автор:  s3dworld [ 29 окт 2010, 14:01 ]
Заголовок сообщения:  Re: Программирование видеоадаптера в защищённом режиме

phantom-84
Так это для 64-битной адресации получается как-то так:

- страничка 4 КБ = 9 бит (каталог1) + 9 бит (каталог2)+ 9 бит (каталог3)+ 9 бит (страница) + 28 бит (это смещение?)
- страничка 2 МБ = 9 бит (каталог1) + 9 бит (каталог2) + 9 бит (страница) + 37 бит (это смещение?)

Для смещения в 4 КБ, достаточно 12 бит. Для указания индекса в 512, достаточно 9 бит. Для смещения в 2 МБ, достаточно 21 бита.

Если честно, не складывается у меня. Какие-то есть нюансы?

Автор:  phantom-84 [ 29 окт 2010, 14:30 ]
Заголовок сообщения:  Re: Программирование видеоадаптера в защищённом режиме

Вообще-то тебя умные люди к руководству Интел отправляли. Чтобы это посмотреть, знание английского не требуется. Там есть картинки. Ну, так уж и быть, отвечу...

Насколько я знаю, сейчас из линейного 64-разрядного адреса используются только младшие 48 бит. Получается:

4 кб: 9-9-9-9-12
2 мб: 9-9-9-21

Автор:  Himik [ 29 окт 2010, 21:03 ]
Заголовок сообщения:  Re: Программирование видеоадаптера в защищённом режиме

s3dworld писал(а):
phantom-84, эффективнее всё же оставлять последние элементы в таблице под код ядра операционной системы?

Ядро потеряется, если при переключении корня страниц изменится отображение ядра.
Стоит заметить, что для ускорения страничного механизма, специально для страниц ядра существует атрибут Global (0x100), делающий эти страницы сохраняемыми в страничном кэше при переключении корневого адреса в CR3.
Также в глобальной видимости делают не только ядро, но и некий объём виртуальной памяти, в которой работают драйвера, разные сервисы и библиотеки.

Страница 4 из 4 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/