В архитектуре X86, как процессор узнает, что страница не отображается в основной памяти, а находится в резервном хранилище, является ли их флаг в записи таблицы страниц, который указывает, что процессор понимает это или только после преобразования в физический адрес расположение рамы? Насколько я понимаю, когда установлен флаг 'P' в записи структуры страницы, это указывает на то, что действительное сопоставление для логического адреса не существует, и следует ошибка страницы, в случае, когда сопоставление присутствует, но страница находится в резервном хранилище, чем также возникает ошибка страницы, и страница выгружается в память и изменяется запись в таблице страниц.
Как процессор узнает, что страница не отображается в основной памяти, а находится в резервном хранилище?
Ответы (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
Спасибо за ваш ответ, я говорю о серьезной ошибке страницы (страница в резервном хранилище), но конкретный вопрос заключается в том, как оборудование (процессор) различает серьезную ошибку страницы и ошибку жесткой страницы, как ISR может различать их? Аппаратный MMU должен был оставить подсказку в каком-то регистре, прежде чем выдать ошибку, которая поможет ISR сделать различие, позволяя ей выполнить соответствующие шаги.
- person S. Aditya; 20.01.2014
Доза ЦП не знает, что это программная ошибка страницы, поскольку ЦП не тот, который управляет подкачкой страниц и управлением памятью. Это зависит от ISR, чтобы определить, является ли это программной или аппаратной ошибкой страницы. ОС может увидеть этот адрес, который вызвал эту ошибку в регистре CR2, и проверить, загружен ли он виртуально и был ли он перемещен из памяти.
- person 0xGiddi; 21.01.2014
Уловка, которая может быть сделана, - это сохранить PTE с текущим флагом 0 и PBA, указывающим на расположение страницы в файле подкачки. Когда возникает ошибка страницы, вы можете загрузить данные из файла подкачки, соответствующего PBA, и выключить запись.
- person 0xGiddi; 21.01.2014