Обе статьи довольно запутанные.Частично проблема заключается в том, что они объединяют (как и многие руководства по аппаратному обеспечению) концепцию преобразования логической памяти с виртуальной памятью.Это не было большой проблемой в те старые времена, когда использование одного означало, что другое всегда присутствовало, но это больше не имеет места.
Если у вас есть система с чистой физической памятью, каждый адрес является физическим адресом сбез перевода.
В системе перевода логической памяти логические страницы отображаются на физические страницы с использованием таблицы страниц.Каждый процесс видит линейный диапазон возможных адресов, но сопоставления с физическими адресами могут совпадать или не совпадать.
В чисто логической системе памяти записи таблицы страниц (и, следовательно, соответствующая логическая страница) имеют два возможных состояния:
- Отображается в физическое местоположение
- Неверно (не сопоставлено)
В системе виртуальной памяти операционная система использует вторичное хранилище (диск) для памяти процесса.В диапазоне адресного пространства пользователя каждый действительный адрес отображается во вторичное хранилище.Это вторичное хранилище может находиться в разных местах, включая файл подкачки, исполняемый файл и общие библиотеки.
Система виртуальной памяти зависит от существования преобразования логической памяти.В системе виртуальной памяти таблицы страниц имеют три состояния:
- Отображено в физическое местоположение
- Не сопоставлено и недопустимо
- Не сопоставлено и допустимо
Если вы попытаетесь получить доступ к памяти (игнорируя защиту) в первом случае, ваша программа просто получит доступ к отображенной странице.
Во втором случае ваша программа вызовет исключение и, вероятно, умрет.
В третьем случае доступ к странице вызывает сбой страницы.Операционная система должна загрузить страницу с диска в память.Затем необходимо переназначить запись таблицы страниц в место, где была отображена страница.
В системе виртуальной памяти у вас есть два набора памяти, которыми нужно управлять.Управление виртуальной памятью - это структуры данных, которые определяют адресное пространство процесса на диске.Второй набор - это структуры данных (т. Е. Таблицы страниц), которые определяют ту часть процесса, которая находится в памяти.
Во времена 32-разрядных процессоров (адресные пространства 4 ГБ), где занимали 8 МБ памятиВ шкафу размером с холодильник нужно было использовать виртуальную память, потому что физической памяти просто не хватало.
В наши дни настольный компьютер обычно имеет 32 ГБ памяти.Существует меньше необходимости для хранения процессов на диске.Однако почти каждая используемая операционная система по-прежнему основана на виртуальной памяти «обратно на диск».
Я ожидаю, что виртуальная память полностью исчезнет в ближайшем будущем и что системы Windoze и Eunchs в миреуже сталкиваются с устареванием.Будут созданы новые операционные системы для работы с бездисковыми компьютерными системами.