![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Защита памяти (англ. Memory protection) — это способ управления правами доступа к отдельным регионам памяти. Используется большинством многозадачных операционных систем. Основной целью защиты памяти является запрет доступа процессу к той памяти, которая не выделена для этого процесса. Такие запреты повышают надежность работы как программ так и операционных систем, так как ошибка в одной программе не может повлиять непосредственно на память других приложений.
+ Страничное распределение
При страничном распределении виртуальная память делится на части одинакового и фиксированного для данной системы размера, называемыми виртуальными страницами. Вся оперативная память также делится на части такого же размера, называемые физическими страницами. Размер страницы выбирается равным степени двойки: 512, 1024, 4096 и т.д.
Адрес страницы входит в контекст процесса. Таблица страниц состоит из дескрипторов. Каждый дескриптор включает:
Номер физической таблицы
Признак присутствия в ОЗУ (формируется аппаратно)
Признак модификации (формируется аппаратно)
Признак обращения (формируется аппаратно)
Виртуальный адрес, который представлен парой (p, sv) преобразуется в (n, sf).
Объем страницы равен степени 2k, тогда смещение (s) можно получить отделением к разрядов
Например. Если размер страницы = 1кб (2^10), то 50718= 101 000 111 0012, 108=28 – номер страницы
Аппаратно, из регистра извлекается адрес таблицы страниц. На основании номера страницы Р и длины записи L, определяется адрес дескриптора (A=AT+P*L).
Из таблицы извлекается номер физической страницы N. К номеру N присоединяется смещение S.
Размер страниц, (часто 4096) влияет на размер таблиц, а это в свою очередь отражается на производительности. для устранения этого недостатка ВАП может делится на разделы, а в каждом разделе формируется своя таблица страниц. Этот вариант ускоряет поиск.
+ Сегментное распределение
При страничном распределении виртуальное адресное пространство делится на равные части механически, без учета смыслового значения данных. В одной странице могут одновременно оказаться код программы и исходные данные. Такой подход не позволяет обеспечить раздельную обработку, например защиту, совместный доступ и т.д.
Разбиение адресного пространства на "осмысленные" части устраняет эти недостатки и называется сегментным распределением. Примеры сегментов: код программы, массив исходных данных и пр.
На этапе создания процесса, ОС создает таблицу сегментов процесса, аналогичную таблице страниц.К недостаткам сегментного распределения можно отнести следующие:
Использование операции сложения при формировании физического адреса приводит к понижению производительности
Избыточность. Т.к. сегмент в общем случае может быть больше страницы, то следовательно единица обмена между ОЗУ и диском более крупная, что приводит к замедлению работы.
+ Сегментное - страничное распределение
+ Механизм ключей защиты
+ Симуляция сегментации
+ Адресация основанная на Capability
Дата публикования: 2015-02-03; Прочитано: 1715 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!