«Виртуальная память», упомянутая в 2 статьях, относится к разным вещам? - PullRequest
0 голосов
/ 18 апреля 2019

Я прочитал следующие 2 статьи, объясняющие разницу между virtual memory и physical memory. Одна вещь, которая показалась мне запутанной, заключается в том, что термин virtual memory, по-видимому, означает разные вещи в этих 2 статьях.

В чем разница между виртуальной памятью и физической памятью? говорит Виртуальная память используется при заполнении ОЗУ .

В то время как Википедия говорит, что виртуальная память используется, чтобы сообщать программам, где находится физическая память.

Одна из статей не так? Или virtual memory имеет разное значение в другом контексте?

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

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

Если у вас есть система с чистой физической памятью, каждый адрес является физическим адресом сбез перевода.

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

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

  1. Отображается в физическое местоположение
  2. Неверно (не сопоставлено)

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

Система виртуальной памяти зависит от существования преобразования логической памяти.В системе виртуальной памяти таблицы страниц имеют три состояния:

  1. Отображено в физическое местоположение
  2. Не сопоставлено и недопустимо
  3. Не сопоставлено и допустимо

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

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

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

В системе виртуальной памяти у вас есть два набора памяти, которыми нужно управлять.Управление виртуальной памятью - это структуры данных, которые определяют адресное пространство процесса на диске.Второй набор - это структуры данных (т. Е. Таблицы страниц), которые определяют ту часть процесса, которая находится в памяти.

Во времена 32-разрядных процессоров (адресные пространства 4 ГБ), где занимали 8 МБ памятиВ шкафу размером с холодильник нужно было использовать виртуальную память, потому что физической памяти просто не хватало.

В наши дни настольный компьютер обычно имеет 32 ГБ памяти.Существует меньше необходимости для хранения процессов на диске.Однако почти каждая используемая операционная система по-прежнему основана на виртуальной памяти «обратно на диск».

Я ожидаю, что виртуальная память полностью исчезнет в ближайшем будущем и что системы Windoze и Eunchs в миреуже сталкиваются с устареванием.Будут созданы новые операционные системы для работы с бездисковыми компьютерными системами.

0 голосов
/ 18 апреля 2019

Я думаю, что говорить, что виртуальная память используется при заполнении ОЗУ, неверно.

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

MMU (блок управления памятью) отображает адреса виртуальной памяти в физические адреса. Проверьте MMU Википедия для получения дополнительной информации.

Виртуальная память позволяет использовать место на диске для дополнительной памяти, но не обязательно должно быть .

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

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

Edit: Понятие виртуальной памяти обращается, конечно, гораздо больше, чем доступная память. Такие вещи, как ограничение доступа и другие вещи.

...