Исключительные ситуации при работе с памятью

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

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

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

Время эффективного доступа к отсутствующей в оперативной памяти странице складывается из:

· обслуживания исключительной ситуации;

· чтения (подкачки) страницы из вторичной памяти;

· возобновления выполнения процесса, вызвавшего данный page fault.