Как процессор узнает, что страница не отображается в основной памяти, а находится в резервном хранилище?

В архитектуре X86, как процессор узнает, что страница не отображается в основной памяти, а находится в резервном хранилище, является ли их флаг в записи таблицы страниц, который указывает, что процессор понимает это или только после преобразования в физический адрес расположение рамы? Насколько я понимаю, когда установлен флаг 'P' в записи структуры страницы, это указывает на то, что действительное сопоставление для логического адреса не существует, и следует ошибка страницы, в случае, когда сопоставление присутствует, но страница находится в резервном хранилище, чем также возникает ошибка страницы, и страница выгружается в память и изменяется запись в таблице страниц.


person S. Aditya    schedule 19.01.2014    source источник


Ответы (1)


Я думаю, вы имеете в виду ошибку страницы HARD VS Ошибка страницы SOFT. Ошибка аппаратной страницы будет запущена, если:

  • Флаг P (повторно отправлено) не установлен / в таблице страниц нет записи
  • Код пользовательского режима записывает постоянную память
  • Код пользовательского режима обращается к памяти ядра
  • Биты резерва записи страницы повреждены.

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

http://blogs.technet.com/b/askperf/archive/2008/06/10/the-basics-of-page-faults.aspx http://en.wikipedia.org/wiki/Page_fault (незначительное против основного)

надеюсь, что это поможет :)

person 0xGiddi    schedule 19.01.2014
comment
Спасибо за ваш ответ, я говорю о серьезной ошибке страницы (страница в резервном хранилище), но конкретный вопрос заключается в том, как оборудование (процессор) различает серьезную ошибку страницы и ошибку жесткой страницы, как ISR может различать их? Аппаратный MMU должен был оставить подсказку в каком-то регистре, прежде чем выдать ошибку, которая поможет ISR сделать различие, позволяя ей выполнить соответствующие шаги. - person S. Aditya; 20.01.2014
comment
Доза ЦП не знает, что это программная ошибка страницы, поскольку ЦП не тот, который управляет подкачкой страниц и управлением памятью. Это зависит от ISR, чтобы определить, является ли это программной или аппаратной ошибкой страницы. ОС может увидеть этот адрес, который вызвал эту ошибку в регистре CR2, и проверить, загружен ли он виртуально и был ли он перемещен из памяти. - person 0xGiddi; 21.01.2014
comment
Уловка, которая может быть сделана, - это сохранить PTE с текущим флагом 0 и PBA, указывающим на расположение страницы в файле подкачки. Когда возникает ошибка страницы, вы можете загрузить данные из файла подкачки, соответствующего PBA, и выключить запись. - person 0xGiddi; 21.01.2014