Что такое точно отказ страницы памяти?

Из документов:

Примечание: Базовые Данные избегают термина несбой, потому что это сбивает с толку. Нет никакого “несбоя” отсутствия страницы виртуальной памяти. Отсутствия страницы инициировали, вызывают, запускают или встречаются. Конечно, можно освободить память назад к ядру во множестве путей (использующий функции vm_deallocate, munmap, или sbrk). Базовые Данные описывают это как “превращение объекта в отказ”.

Является Отказ в Базовых Данных по существу отказом страницы памяти? Я имею только примерное представление о том, какова страница памяти. Я полагаю, что это - своего рода "часть кода в памяти", которая необходима для выполнения процедур и материала как этот, и когда приложение работает, части кода высосаны в память как "страницы" и выброшены, поскольку они больше не нужны. Вероятно, 99% неправильно ;)

Кто-либо?

5
задан dontWatchMyProfile 13 June 2010 в 11:34
поделиться

3 ответа

У меня есть лишь небольшое представление о том, что такое страница памяти. Я считаю, что это своего рода «фрагмент кода в памяти», который необходим для выполнения процедур и тому подобного, и во время работы приложения фрагменты кода засасываются в память в виде «страниц» и выбрасываются, поскольку это не так. нужно больше.

В памяти хранятся данные (то есть код и данные).

Каждая вещь, которая существует в памяти, имеет адрес (адрес памяти).

Адресное пространство памяти (например, 4 ГБ на 32-разрядной машине) разделено на «страницы», где каждая страница представляет собой непрерывный фрагмент памяти (например, 4 КБ на страницу).

Адресное пространство отображается (ЦП и ОС) в ОЗУ (или, возможно, отображается на порты ввода-вывода, но это другая история).

Может быть установлено меньше ОЗУ (например, 1 ГБ), чем имеется адресного пространства (например, 4 ГБ), поэтому некоторые данные (например, наименее недавно использовавшиеся) могут быть заменены (оператором / оператором) из RAM в файл подкачки на диске. Обмениваются целые страницы (например, блоки размером 4 КБ) (а не отдельные байты).

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

  • Освободить некоторую часть ОЗУ, переставив что-то (например, недавно использовавшееся) из ОЗУ на диск.
  • Сопоставить эту недавно освобожденную теперь доступную ОЗУ с адресом, который приложение пытается получить доступ
  • Swap в RAM, с диска, все, что должно быть по этому адресу (который в какой-то момент в прошлом был выгружен с этого адреса на диск)
  • Возобновите приложение, где оно остановлено: приложение снова пытается получить доступ к этому адресу памяти, только на этот раз без очередной ошибки страницы.
7
ответ дан 18 December 2019 в 16:36
поделиться

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

3
ответ дан 18 December 2019 в 16:36
поделиться

Пока ваша программа работает, не вся она хранится в ОЗУ.
В составе ОС есть механизмы подкачки, которые хранят в ОЗУ только наиболее используемые страницы памяти для более быстрого доступа.
Когда вы программируете, пытаясь получить доступ к области памяти, которая в настоящее время не загружена в ОЗУ, возникает ошибка страницы, и страница переносится с диска.
Поскольку доступная RAM ограничена, только самые важные страницы памяти хранятся в RAM.

Этот механизм зависит от реализации ОС.
Для более полного изучения теории операционных систем я бы порекомендовал книгу А.С. Тененбаума «Современные операционные системы».

2
ответ дан 18 December 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: