Что это означает для реализации виртуальной памяти с помощью пейджинга? - PullRequest
0 голосов
/ 17 марта 2020

Я знаю, что означает термин «виртуальная память» и как работает система пейджинга, но я хочу понять, как виртуальная память реализуется через пейджинг?

Итак, позвольте мне привести следующий пример: если программа хочет запуститься, сначала она переносится в виртуальную память, прежде чем ее страницы переносятся в фреймы основной памяти? это связь между виртуальной памятью и системой пейджинга?

С уважением

1 Ответ

0 голосов
/ 17 марта 2020

Когда вы запускаете программу C или программу на каком-либо другом языке "до металла" и разыменовывает дикий указатель (указатель на какое-то несуществующее место в памяти), вы получаете сообщение об ошибке, говорящее Ошибка сегментации , Ошибка страницы или что-то подобное. (Но термин «Ошибка страницы» иногда зарезервирован для обозначения ошибки сегментации, которую операционная система может устранить, продолжайте читать.)

Многое происходит, прежде чем вы увидите это сообщение. Всякий раз, когда программа пытается использовать несуществующий адрес памяти, ее главный компьютер выдает ошибку. Это выглядит как прерывание от устройства. Затем ОС просматривает внутреннюю структуру данных, описывающую виртуальную память процесса, чтобы определить, является ли рассматриваемый адрес частью диапазона адресов виртуальной памяти программы. Если это так, ОС либо извлекает страницу - кусок памяти, содержащий рассматриваемый адрес, - с диска, либо, если это ответ на запрос новой памяти данных, доставляет новую страницу, полную (обычно) нулей. Затем он обновляет регистры преобразования виртуальных адресов компьютера и перезапускает инструкцию, которая вызвала ошибку. Zap! иллюзия большого количества памяти - виртуальной памяти.

Только если адрес не был частью объявленного пространства памяти программы, ошибка делает это сообщением об ошибке, видимым для программиста или пользователя.

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

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

...