Linux 3/1 виртуальный адрес разделяется

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

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

9
задан Ciro Santilli 新疆改造中心法轮功六四事件 5 April 2016 в 12:54
поделиться

3 ответа

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

В схеме «старого стиля» ядро ​​устанавливает все устроено так, что таблицы страниц каждого процесса отображали виртуальные адреса от 0xC0000000 до 0xFFFFFFFF непосредственно на физические адреса от 0x00000000 до 0x3FFFFFFF (эти страницы были отмечены так, что они были доступны только в кольце 0 - режим ядра). Эти " сопоставления виртуальных адресов ядра с физическими адресами не фиксированы - части физической памяти отображаются в виртуальное адресное пространство ядра и из него, поскольку ядру требуется доступ к этой памяти. Это позволяет использовать больше физической памяти, но за счет необходимости постоянно изменять сопоставления виртуального и физического, что является довольно дорогостоящей операцией.

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

11
ответ дан 4 December 2019 в 14:29
поделиться

Отображение 1 ГБ для ядра в каждом процессе позволяет процессам переключаться в режим ядра, не выполняя также переключение контекста. Ответы на системные вызовы, такие как read () , mmap () и другие, затем могут быть надлежащим образом обработаны в адресном пространстве вызывающего процесса.

Если места для ядра не было Зарезервировано в каждом процессе, переключение в «режим ядра» между выполнением кода пользовательского пространства будет более дорогостоящим и не позволит использовать отображение виртуальных адресов через аппаратный MMU (блок управления памятью) для обслуживаемых системных вызовов.

Системы работает 32-битное ядро ​​с более чем 1 ГБ физической памяти, может назначать ячейки физической памяти в ZONE_HIGHMEM (примерно выше отметки в 1 ГБ), что может потребовать от ядра «перепрыгивать» через обручи, чтобы определенные операции взаимодействовали с ними. Добавление PAE (расширение физического адреса) расширяет эту проблему, позволяя использовать до 64 ГБ физической памяти, уменьшая соотношение памяти в пределах 1 ГБ физической адресной памяти к областям, выделенным в ZONE_HIGHMEM .

5
ответ дан 4 December 2019 в 14:29
поделиться
  1. Например, системные вызовы используют пространство ядра.
  2. У вас может быть 64 ГБ физической оперативной памяти, но на 32-разрядных платформах процессоры могут получить доступ только к 4 ГБ из-за 32-разрядной виртуальной адресации. . На самом деле у вас может быть 1 ГБ ОЗУ и 3 ГБ подкачки, а виртуальная адресация будет выглядеть так, как будто у вас 4 ГБ. На 64-битных платформах виртуальная адресация практически не ограничена.
-2
ответ дан 4 December 2019 в 14:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: