Сегментная организация виртуальной памяти. Защита сегментов. Смешанная (странично-сегментная) организация виртуальной памяти.


1) альтернатива: сегментная организация, в ней блоки имеют разный размер. Удобство для описания с точки зрения защиты, отсутствие внутренней фрагментации. Сегмент – логически обособленная группа данных. 2) комбинированный: сегментно-страничная организация. Отличие сегмент, разбитый на страницы, может размещаться не связно. Преобразование адреса при сегментной адресации У ЦПУ Intel есть 6 сегментных регистров: cs, ss, ds, es, gs и fs – 16 битные. В виртуальной памяти в них находиться номер строки в таблице дескрипторов (описателей) сегментов. Дескриптор представляет собой 8-ми байтную структуру данных, определяющую положение сегмента в памяти (базовый адрес сегментов), размер занимаемой им области (лимит), его назначение и другие атрибуты сегмента, в том числе характеристики защиты. Под номер сегмента в сегментном регистре выделено 14 бит из 16-ти, значит для использования доступно 16384 сегментов.  – таблица дескрипторов сегментов. В процессорах Intel используется глобальная и локальная дескрипторные таблицы ( и  соответственно).

 

 

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

Выход: использование сегментно-страничной организации.

Защита сегментов.

В соответствии с количеством разрядов, отводимых в таблице под указание уровня привилегий (2 разряда) имеет место 4-х уровневая иерархическая система привилегий, предназначенная для управления доступом к сегменту. Уровни привилегий нумеруются от 0-го до 3-его. 0-й уровень соответствует максимальным возможностям доступа и присваивается ядру ОС. Уровень 3 имеет самые ограниченные права доступа и обычно присваивается прикладным задачам. Систему защиты часто принято изображать в виде концентрических колец, соответствующих уровню привилегий, а сами уровни привилегий называют кольцами защиты. Задачи могут использовать сервисные программы, находящиеся в разных кольцах защиты. Передача управления между ними контролируется так называемыми вентилями или шлюзами, проверяющими правила использования уровней привилегий. Через шлюзы задачи могут получить доступ только к разрешенным им сегментам. Соответствующие шлюзы имеются для каждого способа межсегментной передачи управления. Для вызова процедур со сменой уровня привилегий используются шлюзы вызова, для переключения задач – шлюзы задач. Процедуры обслуживания прерываний обслуживают шлюзы прерываний. Для каждого типа шлюзов используются дескрипторы шлюзов. Дескрипторы и шлюзы являются основой системы защиты. Дескрипторы определяют структуры программных элементов, без которых эти элементы невозможно использовать, а привилегии определяют возможность доступа к дескрипторам. Таким образом, защита памяти не позволяет: 1) использовать сегменты не по назначению (например, трактовать область данных, как коды команд); 2) нарушать права доступа (например, пытаться модифицировать сегмент, предназначенный только для чтения, или обращаться к сегменту, не имея достаточных привилегий); 3) адресоваться к элементам, выходящим за лимит сегмента; 4) изменять содержимое таблиц дескрипторов, то есть параметры сегментов, не имея достаточно привилегий; 5) и т.д. Любое нарушение защиты приводит к возникновению специальных прерываний, называемых исключениями, обрабатываемых ядром ОС.

Сегментно-страничной организации виртуальной памяти

 Размер сегментов выбирается кратным странице (а не произвольно, как при сегментной организации). Сегмент содержит одну или несколько страниц. à При замещении информации в ОП фрагментации нет. При этом защита данных производится на уровне логических сегментов, а сами данные внутри сегментов могут храниться несвязно, т.к. они разбиты на страницы. Объединяются достоинства страничной и сегментной организации, недостатки взаимокомпенсируются. Данный способ наиболее широко распространен.