Як було зазначено раніше, Linux
Обробник виняткових ситуацій має відрізняти винятки, спричинені помилками програмування, від тих, які викликані посиланням на сторінку, яка законно належить до адресного простору процесу, але просто ще не була виділена.
Помилка сторінки тип помилки, яка виникає, коли програма намагається отримати доступ до даних, яких на даний момент немає в основній пам’яті або оперативній пам’яті (RAM). Коли це відбувається, операційна система (ОС) намагається отримати необхідні дані з жорсткого диска або іншого носія інформації, і цей процес відомий як помилка сторінки.
Ядро Linux зберігає статистику як про незначні, так і про серйозні помилки сторінки. Вони зберігаються як частина “task_struct” (current->maj_flt та і current->min_flt) — ви можете побачити це за наступним посиланням із вихідного коду — https://elixir.bootlin.com/linux/v6.0.1/source/include/linux/sched.h#L1030).
Процес обробки помилок сторінки Завантаження сторінки: необхідна сторінка завантажується з диска в пам'ять. Оновлення таблиць сторінок: ОС оновлює таблицю сторінок за допомогою нового відображення. Перезапуск процесу: коли виникає будь-яка помилка сторінки, процес перезапускається.
Обробник винятків завжди перевіряє, чи сталася виняток у режимі користувача чи режимі ядра, і в останньому випадку чи сталася вона через недійсний аргумент системного виклику. Ми опишемо в розділі 9.2. 6 як ядро захищається від недійсних аргументів системних викликів.
Як зазначалося раніше, обробник винятків Linux Page Fault повинен відрізняти винятки, викликані помилками програмування, від тих, які викликані посиланням на сторінку, яка законно належить до адресного простору процесу, але просто ще не була виділена.