#memory #virtual-memory
#память #виртуальная память
Вопрос:
Я прочитал следующие 2 статьи, объясняющие разницу между virtual memory
и physical memory
. Одна вещь, которая меня смутила, заключается в том, что этот термин virtual memory
, по-видимому, означает разные вещи в этих 2 статьях.
В чем разница между виртуальной памятью и физической памятью?говорит, что виртуальная память используется при заполнении ОЗУ.
В то время как Википедия говорит, что виртуальная память используется для указания программам, где находится физическая память.
Одна из статей неверна? Или virtual memory
имеет разное значение в другом контексте?
Ответ №1:
Обе статьи довольно запутанные. Часть проблемы заключается в том, что они объединяют (как и многие руководства по оборудованию) концепцию преобразования логической памяти с виртуальной памятью. В старые времена это не было большой проблемой, когда использование одного означало, что другое всегда присутствует, но это все больше не так.
Если у вас чистая система физической памяти, каждый адрес является физическим адресом без перевода.
В системе преобразования логической памяти логические страницы сопоставляются с физическими страницами с помощью таблицы страниц. Каждый процесс видит линейный диапазон возможных адресов, но сопоставления с физическими адресами могут совпадать или не совпадать.
В чистой логической системе памяти записи таблицы страниц (и, следовательно, соответствующая логическая страница) имеют два возможных состояния:
- Сопоставлено с физическим местоположением
- Недопустимо (не сопоставлено)
В системе виртуальной памяти операционная система использует вторичное хранилище (диск) для памяти процесса. В диапазоне пользовательского адресного пространства каждый действительный адрес сопоставляется с дополнительным хранилищем. Это вторичное хранилище может находиться в разных местах, включая файл подкачки, исполняемый файл и разделяемые библиотеки.
Система виртуальной памяти основана на существовании логического преобразования памяти. В системе виртуальной памяти таблицы страниц имеют три состояния:
- Сопоставлено с физическим местоположением
- Не сопоставлено и недопустимо
- Не сопоставлено и допустимо
Если вы попытаетесь получить доступ к памяти (игнорируя защиту) в первом случае, ваша программа просто получит доступ к отображенной странице.
Во втором случае ваша программа вызывает исключение и, вероятно, умирает.
В третьем случае доступ к странице вызывает ошибку страницы. Операционная система должна загрузить страницу с диска в память. Затем он должен переназначить запись таблицы страниц в то место, где была отображена страница.
В системе виртуальной памяти у вас есть два набора памяти, которыми необходимо управлять. Управление виртуальной памятью — это структуры данных, которые определяют адресное пространство процесса на диске. Второй набор — это структуры данных (то есть таблицы страниц), которые определяют ту часть процесса, которая находится в памяти.
Во времена 32-разрядных процессоров (4 ГБ адресных пространств), где 8 МБ памяти занимали шкаф размером с холодильник, приходилось использовать виртуальную память, потому что просто не хватало физической памяти для выполнения очень многого.
В наши дни настольный компьютер обычно имеет 32 ГБ памяти. Меньше необходимости хранить процессы на диске. Однако почти каждая используемая операционная система по-прежнему основана на виртуальной памяти с обратным доступом к диску.
Я ожидаю, что виртуальная память полностью исчезнет в ближайшем будущем и что мировые системы Windoze и Eunchs уже сталкиваются с устареванием. Будут созданы новые операционные системы для работы с бездисковыми компьютерными системами.
Ответ №2:
Я думаю, что утверждение о том, что виртуальная память используется при заполнении ОЗУ, неверно.
Концепция виртуальной памяти решает проблему использования большего объема памяти, чем вы получили физически, очень просто.
MMU (модуль управления памятью) отображает адреса виртуальной памяти в физические адреса. Для получения дополнительной информации ознакомьтесь с MMU wikipedia.
Виртуальная память позволяет использовать дисковое пространство для дополнительного пространства памяти, но это не обязательно.
Когда вы получаете доступ к большему объему памяти, чем доступно, операционная система может менять страницы памяти, что позволяет вам использовать дополнительную память. Вот обмен памятью для получения дополнительной информации.
Итак, в заключение виртуальная память может находиться либо в ОЗУ, либо на диске, но когда требуются данные, они загружаются в ОЗУ, если их там еще нет.
Редактировать: концепция виртуальной памяти, конечно, адресует гораздо больше, чем доступная память. Такие вещи, как ограничение доступа и другие вещи.