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

786
appa yip yip

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

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

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

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

-2
виртуальная память не всегда используется phuclv 6 лет назад 2
@phuclv Но даже если он не используется, MMU все равно должен переводить адрес, не так ли? appa yip yip 6 лет назад 0
Вы не можете деактивировать виртуальную память. Просто как тот. Это часть того, как процесс разделения и так далее работает. Daniel B 6 лет назад 4
Да, MMU всегда будет переводить адреса, поскольку операционная система отсутствует, поскольку DOS использует реальные адреса физической памяти. zymhan 6 лет назад 2
Это отличный вопрос для вашего профессора. Вы можете провести несколько семестров в колледже, чтобы выяснить, как разные ОС обрабатывают виртуальную память. Christopher Hostage 6 лет назад 2
«… Почему отключение виртуальной памяти не улучшает производительность моего компьютера?» В «Ye Olden» дни [Connectix RamDoubler] (http://www.ambrosiasw.com/Ambrosia_Times/January_96/3.1HowTo.html) на Mac Может быть, это будет работать. Но не на современной ОС по большому счету. JakeGould 6 лет назад 0
под «Виртуальной памятью» я имею в виду файл подкачки [Обмен, разбиение по страницам, сегментация и виртуальная память на архитектуре x86 PM] (https://superuser.com/q/454747/241386) phuclv 6 лет назад 0
Может кто-нибудь объяснить, почему этот вопрос обесценивается? appa yip yip 6 лет назад 0

4 ответа на вопрос

7
Mokubai

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

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

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

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

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

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

2
zymhan

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

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

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

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

Я хотел бы отметить, что в зависимости от точной рабочей нагрузки, вы можете увидеть улучшение производительности Windows, уменьшив или полностью отключив файл подкачки. Windows имеет очень агрессивную подсистему виртуальных машин, которая имеет тенденцию выталкивать вещи в файл подкачки, когда они не нужны. В последнее время ситуация значительно улучшилась, но все же она намного агрессивнее, чем Linux или Mac. Austin Hemmelgarn 6 лет назад 0
1
LawrenceC

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

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

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

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


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

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

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

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

1
harrymc

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

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

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

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

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

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

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

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