Вопрос: Ошибки страницы без своп-файла?


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

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

Или я не понял, что такое Ошибка страницы?


4
2018-01-21 13:39


Источник




Ответы:


Немного старый, но проверьте это Статья MSDN.

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

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

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

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


5
2018-01-21 14:03



Кроме того, некоторые системы * nix не загружают целые программы при запуске. Секции загружаются по мере необходимости (через сбой страницы), когда вызывается нерезидентная часть. Не знаю, делает ли Windows это, я подозреваю, что не из ОЗУ, которую приложения начинают запускать. - Brian Knoblauch
Windows требует подкачки исполняемых файлов и библиотек - это просто, что многие из них также решают сосать тонну других ресурсов при запуске. Кроме того, программы сжатия exe, такие как UPX, будут разбивать вызов пейджинга, потому что теперь заглушка UPX должна распаковать весь исполняемый файл в ОЗУ до того, как загрузчик может быть запущен. - afrazier


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

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


6
2018-01-21 15:07