Независимость подготовки пользовательских программ и их защита от взаимных помех.

Концепции и компоненты защищенного режима.

В микропроцессорах фирмы INTEL.

Встроенные средства защиты информации

 

Защищенный режим работы в МП INTEL предусматривает аппаратную поддержку различных вариантов защиты информации от помех. Предусмотренные возможности и глубина защиты определяются используемыми операционными системами.

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

1. Независимость подготовки пользовательских программ и их защита от

взаимных помех;

2. Защиту программ операционной системы от помех при сбоях в программах

пользователей;

3. Защиту программ операционной системы верхнего уровня от помех при сбоях в программах операционной системы нижнего уровня;

4. Защиту программ от отрицательных последствий при программных сбоях;

5. Защиту целостности системы.

Рассмотрим как обеспечиваются перечисленные требования в МП INTEL.

 

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

Виртуальная память допускает многопрограммное выполнение прикладных программ, но при этом программы изолируются друг от друга таким образом, что ошибки в одной из них не влияют на корректное выполнение других программ. Когда программа осуществляет некорректное обращение к памяти, механизм виртуальной памяти блокирует обращение и сообщает ОС о попытке нарушения защиты. В МП INTEL реализованы два уровня виртуальной памяти - верхний и нижний. Верхний уровень реализован механизмом трансляции сегментов, а нижний уровень – механизмом трансляции страниц.

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

Многопользовательские режимы должны не только разделять программы пользователей. В некоторых случаях требуется совместная работа нескольких пользовательских программ. Для этого требуется не локальная , а разделяемая память. Разделяемая между несколькими программами память легко организуется при помещении дескрипторов соответствующих сегментов в общую глобальную таблицу дескрипторов (GDT) или дублированием дескрипторов разделяемых сегментов в локальных таблицах дескрипторов (LDT).

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

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