The design of the UNIX Operating System 55 страница



 

В данной лекции рассмотрена аппаратно-независимая часть подсистемы управления виртуальной памя-тью, которая связана с конкретной аппаратной реализацией с помощью аппаратно-зависимой части.

 

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

 

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

 

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

 

Что же происходит, когда нужной страницы в памяти нет или операция обращения к памяти недопусти-ма? Естественно, что операционная система должна быть как-то оповещена о происшедшем. Обычно для этого используется механизм исключительных ситуаций (exceptions). При попытке выполнить подобное обращение к виртуальной странице возникает исключительная ситуация "страничное нарушение" (page fault), приводящая к вызову специальной последовательности команд для обработки конкретного вида страничного нарушения.

 

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

 

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


Основы операционных систем 89

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

 

• обслуживания исключительной ситуации (page fault);

 

• чтения (подкачки) страницы из вторичной памяти (иногда, при недостатке места в основной памя-ти, необходимо вытолкнуть одну из страниц из основной памяти во вторичную, то есть осущест-вить замещение страницы);

 

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

 

Для решения первой и третьей задач ОС выполняет до нескольких сот машинных инструкций в течение нескольких десятков микросекунд. Время подкачки страницы близко к нескольким десяткам миллисе-кунд. Проведенные исследования показывают, что вероятности page fault 5x10-7 оказывается достаточно, чтобы снизить производительность страничной схемы управления памятью на 10%. Таким образом, уменьшение частоты page faults является одной из ключевых задач системы управления памятью. Ее ре-шение обычно связано с правильным выбором алгоритма замещения страниц.


Дата добавления: 2021-01-21; просмотров: 93; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!