Процессор Intel

Автор работы: Пользователь скрыл имя, 23 Октября 2011 в 17:51, лекция

Краткое описание

Высокопроизводительный 32-х разрядный микропроцессор 80i86 ориентирован на эффективное выполнение программ в среде многозадачных ОС (типа Windows). Микропроцессор имеет 32-разрядные регистры и 32-х разрядные раздельные шины адреса и данных.

Содержимое работы - 1 файл

Архитектура ЭВМ.doc

— 1.20 Мб (Скачать файл)

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

    Формат дескриптора:

                               

       

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

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

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

    1. Защита  программ операционной системы от помех  при сбоях в  программах пользователей.
 

    Операционная  система служит не только для организации определенного режима работы ЭВМ и обеспечения «дружелюбного» экранного интерфейса . Одной из важнейших функций ОС является предоставление сервисных процедур  пользовательским программам. Поэтому нельзя полностью изолировать программы пользователей от операционной системы и глобальная таблица дескрипторов (GDT), определяющая сегменты ОС,  должна быть доступна пользовательским программам, естественно не во вред защите программ самой ОС. Для разрешения это проблемы используется механизм зашиты,  по режимам работы или уровням привилегий PL  (PL от английских слов – Privilege Level). Этот механизм  разрешает программам пользователей доступ только  к определенным программам ОС  и обеспечивает достаточно корректное использование этих программ.

    Практически во всех компьютерах для целей защиты предусматривается как минимум два режима работы – системный режим, называемый также режимом супервизор (от англ. Supervisor), и пользовательский режим или user. Основное различие между ними состоит в том, что программам, работающим в режиме супервизора, доступны все ресурсы системы, у программ, работающих в пользовательском режиме, возможности доступа к ресурсам системы ограничены.  

    1. Защита  программ ОС верхнего уровня от помех при  сбоях в программах ОС нижнего уровня.
 

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

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

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

    1. Защита  целостности функционирования вычислительной системы.
 

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

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

    Защита  по привилегиям фиксирует более  тонкие ошибки и попытки нарушить целостность функционирования системы.

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

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

    2. Информационная основа работы механизма защиты 

      Информационной  основой механизма защиты является дескриптор. По области использования  дескрипторы делятся  на системные  и пользовательские. По структуре и типу описываемых объектов различают следующие дескрипторы:

  • дескрипторы – описатели сегментов;
  • дескрипторы – описатели точек входа в программы, т.е.  дескрипторы шлюзов.

    К описателям сегментов относятся:

1. дескрипторы  сегментов (программных, стековых, данных)

2. системные  дескрипторы: дескрипторы сегментов состояния задач и дескрипторы сегментов различных таблиц.

      Все дескрипторы шлюзов являются системными. К ним относятся:

1. дескрипторы  шлюзов вызовов;

2. дескрипторы  шлюзов прерываний;

3. дескрипторы  шлюзов ловушек;

4. дескрипторы шлюзов задач.

      Дескрипторы сегментов имеют формат 64 разряда (8 байт), из которых механизм защиты использует 20-ти разрядное поле размера сегмента, 8-ми разрядный байт доступа (AR) и бит G – дробности (гранулярности).

Байт  прав доступа содержит следующие поля:

P (Present) - бит присутствия сегмента в оперативной памяти. Используется механизмом виртуальной памяти для организации загрузки (подкачки – свопинга) нужного сегмента с диска в оперативную память. Если сегмент в оперативной памяти отсутствует, то Р=0. Бит Р устанавливается в единицу при загрузке сегмента в ОЗУ. Механизмом защиты бит Р используется в проверках при загрузке стекового сегмента.

DPL (Descriptor Privilege Level) – двухразрядное поле, определяющее уровень привилегий сегмента. Механизмом защиты применяется в проверках корректности использования сегмента.

S – тип дескриптора сегмента. При S=0 дескриптор является сегментным, т.е. определяет сегменты программ, данных и стеков. При S=1 дескриптор используется как системный дескриптор.

TIPE – четырехразрядное поле, интерпретируемое по разному, в зависимости от типа дескрипторов.

      В системных дескрипторах, т.е. при  S=1, разряды поля TIPE кодируют подтипы системных дескрипторов. Коды подтипов системных дескрипторов используются механизмом защиты при проверках корректности обращений к программам.

      В дескрипторах сегментов программ и  данных, т.е. при S=0, поле TIPE содержит следующие признаки:

E – бит исполняемости, который уточняет тип сегмента. При E=0  сегменты определяются как сегменты данных, а при Е=1 – как кодовые сегменты. Механизмом  защиты используются при проверках корректности обращений к программам и данным.

ED/C – для сегментов данных этот бит определяет направление расширения (ED – расширение). Используется механизмом защиты при проверках соответствия адреса обращения границам сегмента. Для программных сегментов этот бит определяет подчиненность сегмента (с – conforming). Механизмом защиты используется при проверках корректности межсегментных передач управления.

W/R – определяет права использования.  Для программных сегментов, т.е. при  E=1, признак W/R определяет доступность сегментов по чтению (R от слова Read). Изменение, т.е. модификация, программных сегментов, запрещена, безусловно. При этом при R=1 разрешается производить чтение содержимого сегментов программ. При R=0 попытка чтения сегмента программ  вызывает прерывание, что делает невозможным копирование программ, т.е. чтение сегмента с целью его копирования. Следует отметить, что при R=0 программа из этого сегмента выполняться будет без всяких  ограничений, т.е.  допускается чтение команд из сегмента только для их исполнения, а не для копирования. Для сегментов данных, т.е. при Е=0, признак W/R  определяет доступность сегментов по записи (W от слова Write). Процедура чтения сегментов данных разрешена, безусловно, а запись может быть либо разрешена при W=1 , либо запрещена при W=0.  Механизмом защиты используется при проверках корректности использования  сегмента.

А – бит обращения (доступа) к сегменту. Бит А устанавливается в единицу при обращении к сегменту, т.е. при загрузке соответствующего селектора в сегментный регистр. Этот бит периодически проверяется ОС, которая выявляет невостребованные сегменты, имеющие А=0. Сегменты с А=0 выводятся из ОЗУ на диск, освобождая место для других сегментов. Этот бит механизмом защиты непосредственно не используется, а используется в механизме виртуальной памяти. 

3. Уровни привилегий 

    1. Концепция уровней привилегий.
 

     Термин  “привилегия” подразумевает права или возможности, которые обычно не разрешаются, а разрешаются только в порядке исключения из общих правил. Введение неравноправия программ в виде уровней привилегий (уровней PL) является средством защиты программных сегментов и сегментов данных операционной системы. Защищаются программы ОС различных уровней иерархии от ошибок в пользовательских программах и в программах операционной системы более низких уровней иерархии.

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

      В микропроцессоре установлено 4 уровня привилегий (PL) , которые задаются номерами от 0 до 3.

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

                               3 – программы пользователя

                              2 – служебные программы

                              1 – драйверы устройств и улиты  ОС

                              0 – ядро ОС    

      Чем меньше номер уровня, тем меньше его логический уровень управления, но тем более он привилегирован и имеет большую степень защиты.

Информация о работе Процессор Intel