4

Я нашел очевидный вопрос, а также его старший брат на ServerFault.

Но мой вопрос совершенно другой: если Page Faults - это моменты, когда ОС требуется загрузить что-то из файла SWAP, почему я получаю Page Faults, даже если я полностью деактивировал его?

Или я неправильно понял, что такое Page Fault?

2 ответа2

6

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

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

5

Немного старый, но зацените эту статью MSDN.

Он описывает два типа ошибок страниц.

Тяжелые неисправности - это то, о чем вы думаете - это когда данные не находятся в оперативной памяти и должны извлекаться из файла подкачки. Они снижают производительность (в 10 000 раз медленнее, чем доступ к ОЗУ для механических жестких дисков).

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .