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

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

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

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

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

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








Дата добавления: 2015-07-24; просмотров: 878;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.