-2

Я изучаю компьютерную архитектуру, точнее, виртуальную память. Кажется, я не могу понять одну вещь: почему отключение виртуальной памяти не улучшает производительность моего компьютера?

Я знаю, что есть некоторые недостатки в отключении виртуальной памяти (например, Windows не сможет создавать аварийные дампы), но разве это не должно ускорить мою систему?

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

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

4 ответа4

7

Потому что виртуальная память - это больше, чем просто отключение файла подкачки.

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

Операционные системы используют виртуальную память для обеспечения безопасности путем разделения приложений в свои собственные адресные пространства.

Предоставляя приложениям свое собственное адресное пространство, каждое приложение имеет доступ ко всему диапазону адресов без необходимости бороться с другими приложениями за области памяти.

Разделение памяти и защита от копирования при записи означают, что два приложения могут совместно использовать одни и те же библиотеки и использовать практически одинаковый набор кода, но полностью защищены друг от друга. Сбой одной программы или выполнение чего-либо, чего она не должна делать, не приведет к смерти другой программы.

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

2

Вы не сможете перехитрить систему управления виртуальной памятью вашей операционной системы, будь то Windows, Mac или Linux.

Операционная система не будет хранить данные в файле подкачки / страницы подкачки без крайней необходимости. Вы не должны видеть влияние на производительность от включения файла подкачки, так как он используется только в случае необходимости, в фоновом режиме.

Если ваш компьютер нажимает на файл подкачки / свопинга так часто, что ваш компьютер замедляется, удаление, которое ни к чему не поможет, просто приведет к сбою ваших приложений или ОС, когда у вас закончится ОЗУ.

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

1

почему отключение виртуальной памяти не улучшает производительность моего компьютера?

Когда вы делаете это в Windows, вы действительно отключаете файл подкачки. Вы говорите ОС, что она больше не должна временно выводить то, что она считает временно используемыми страницами на диск.

Это на самом деле может замедлить работу вашего компьютера, так как он хранит данные, которые могут не использоваться в ОЗУ, а не на диске и заменяться при необходимости.

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


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

Одним из улучшений, представленных в процессорах AMD64, стало добавление большего количества регистров, что означает, что можно сделать больше, не используя ОЗУ в качестве блокнота. Современные процессоры также имеют множество очень широких регистров SIMD/AVX/EVEX. Для современных процессоров x86 существует множество опций, не связанных с оперативной памятью.

И в любом случае, если не отключено, доступ к ОЗУ ЦП будет в любом случае сначала использовать внутренний кэш L1, что очень быстро, поскольку он буквально находится на том же кристалле, что и ЦП.

Любое увеличение скорости при отключении MMU/TLB будет очень небольшим, и вы не сможете защитить память от других процессов.

1

Процессоры Intel могут работать в двух режимах адресации и могут переключаться между ними:

Реальный режим

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

Защищенный режим

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

Вывод : современные операционные системы используют защищенный режим. Только ядро использует реальный режим для прямого доступа к оборудованию. Чтобы отключить виртуальную память, вам нужно написать собственную операционную систему, которая в любом случае не сможет использовать всю мощность процессора. Я предлагаю повторно включить файл подкачки, чтобы Windows могла нормально функционировать, так как этот файл не связан с режимом адресации ЦП.

Прочитайте Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32, объединенный том 1, и особенно раздел «Переключение в режим реального адреса». Обратно в школу, друг.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .