Jump to content

Ошибка страницы

В вычислительной технике — страничная ошибка (иногда называемая PF или аппаратная ошибка ). [а] является исключением , которое вызывает блок управления памятью (MMU), когда процесс обращается к странице памяти без надлежащей подготовки. Для доступа к странице необходимо добавить отображение в виртуальное адресное пространство процесса . Кроме того, возможно, потребуется загрузить фактическое содержимое страницы из резервного хранилища, например с диска . ​​операционной системы MMU обнаруживает ошибку страницы, но ядро обрабатывает исключение, делая требуемую страницу доступной в физической памяти или запрещая несанкционированный доступ к памяти.

Допустимые ошибки страниц распространены и необходимы для увеличения объема памяти, доступной программам в любой операционной системе, использующей виртуальную память , например Windows , macOS и ядро ​​Linux . [1]

Типы [ править ]

Незначительный [ править ]

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

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

Майор [ править ]

Это механизм, используемый операционной системой для увеличения объема программной памяти, доступной по требованию. Операционная система откладывает загрузку частей программы с диска до тех пор, пока программа не попытается их использовать и не будет сгенерирована ошибка страницы. Если страница не загружена в память во время ошибки, это называется серьезной или жесткой ошибкой страницы. Обработчик ошибок страниц в ОС должен найти свободное место: либо свободную страницу в памяти, либо несвободную страницу в памяти. Последний может использоваться другим процессом, и в этом случае ОС необходимо записать данные на этой странице (если они не были записаны с момента последнего изменения) и пометить эту страницу как не загружаемую в память в своем процессе. таблица страниц . Как только пространство станет доступным, ОС может считать данные новой страницы в памяти, добавить запись в ее местоположение в блоке управления памятью и указать, что страница загружена. Таким образом, серьезные ошибки обходятся дороже, чем мелкие, и увеличивают задержку доступа к памяти при выполнении прерванной программы.

Неверно [ править ]

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

Неверные условия [ править ]

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

Операционные системы предоставляют различные механизмы сообщения об ошибках страниц. Microsoft Windows использует структурированную обработку исключений , чтобы сообщать об ошибках недопустимых страниц как об исключениях нарушения доступа . UNIX-подобные системы обычно используют сигналы , такие как SIGSEGV , чтобы сообщать программам об этих ошибках. Если программа, получившая ошибку, не обрабатывает ее, операционная система выполняет действие по умолчанию, обычно включающее завершение запущенного процесса , вызвавшего состояние ошибки, и уведомляющее пользователя о сбое в работе программы. Windows часто сообщает о таких сбоях, не вдаваясь в подробности. Опытный пользователь может получить подробную информацию с помощью WinDbg и минидампа , который Windows создает во время сбоя. UNIX-подобные операционные системы сообщают об этих условиях такими сообщениями об ошибках, как «нарушение сегментации» или «ошибка шины», и могут создавать дамп ядра .

Влияние на производительность [ править ]

Ошибки страниц снижают производительность системы и могут привести к сбоям . Серьезные ошибки страниц на обычных компьютерах, использующих жесткие диски, могут существенно повлиять на их производительность, поскольку средний жесткий диск имеет среднюю задержку вращения 3 мс, время поиска 5 мс и время передачи 0,05 мс/страницу. . Таким образом, общее время пейджинга составляет около 8 мс (= 8000 мкс). Если время доступа к памяти составляет 0,2 мкс, то страничная ошибка замедлит операцию примерно в 40 000 раз.

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

Больший объем физической памяти также уменьшает количество ошибок страниц.

См. также [ править ]

Примечания [ править ]

  1. ^ Microsoft использует термин «серьезная ошибка» в некоторых версиях своего монитора ресурсов , например, в Windows Vista (как он используется в справке по представлению ресурсов в операционных системах Microsoft).

Ссылки [ править ]

  1. ^ Бовет, Даниэль; Чезати, Марко (ноябрь 2005 г.). Понимание ядра Linux (PDF) (3-е изд.). О'Рейли Медиа. ISBN  0-596-00565-2 . Проверено 9 октября 2021 г.
  • Джон Л. Хеннесси, Дэвид А. Паттерсон, Компьютерная архитектура, количественный подход ( ISBN   1-55860-724-2 )
  • Таненбаум, Эндрю С. Операционные системы: проектирование и реализация (второе издание) . Нью-Джерси: Прентис-Холл, 1997.
  • Руководство разработчика программного обеспечения для архитектуры Intel – Том 3: Системное программирование

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 6cf7cd6c6bca79d236a7efbafd9242b3__1705138500
URL1:https://arc.ask3.ru/arc/aa/6c/b3/6cf7cd6c6bca79d236a7efbafd9242b3.html
Заголовок, (Title) документа по адресу, URL1:
Page fault - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)