Оглавление Об учебном пособии
Использованные источники1 Использованные источники2 Использованные источники3 Использованные источники4 Использованные источники5 Использованные источники6

Особенности механизма смены кодовых сегментов в МП Intel.

В МП iх86 нет команд загрузки кодового сегмента CS и указателя команд IP. Содержимое IP устанавливается при начальной загрузке после включения или рестарта МП, увеличивается (продвигается) при выборке очередной команды в команде и произвольно изменяется при выполнении команд перехода, вызова процедур, процедур прерывания или возврата. Содержимое CS устанавливается при начальной загрузке и меняется при выполнении команд межсегментного перехода, вызова процедур, процедур прерывания или возврата. В МП Intel для защищенного режима предусмотрены два механизма перехода:

  • передача управления,
  • переключение задач (смена контекста).

Оба механизма перехода предусматривают возможности перехода с возвратом (переход на подпрограмму).

Причинами перехода могут быть команды передачи управления, прерывания и ловушки.

Модели взаимодействия программ.

Для обеспечения эффективного взаимодействия программных продуктов процессор предоставляет пользователям определенный набор средств организации взаимодействия программ:

  • команды условных или безусловных переходов (JMP);
  • команды перехода на подпрограмму (переход с возвратом CALL);
  • команды возврата из подпрограммы (RET);
  • прерывания и ловушки, включая команды прерывания;
  • команды возврата из подпрограммы обработки прерывания (IRET).

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

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

Механизм защиты различает следующие типы межсегментных переходов:

  1. использующие процедуры передачи управления и переключения задач;
  2. с возможностью и без возможности возврата;
  3. на подпрограмму и возврата из подпрограмм;
  4. с изменением и без изменения уровня привилегий;
  5. на обычные и подчиненные кодовые сегменты.

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

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

Основными постулатами, определяющими стратегию функционирования механизма защиты, являются:

  1. программы и данные на одном уровне привилегий можно достаточно надежно защитить от взаимных помех за счет разделения адресных пространств средствами механизма виртуальной памяти;
  2. сервисные программы всегда относятся к программам операционной системы. Они расположены на не менее привилегированном уровне, чем программы, использующие их услуги;
  3. переход программ на более высокий уровень привилегий увеличивает опасность нарушения защиты и должен производится под жестким контролем операционной системы;
  4. попытки передачи управления с уменьшением уровня привилегий, кроме возврата из подпрограммы и переходов с использованием механизма переключения задач, считаются ошибочными и недопустимыми;
  5. возврат из (сервисной) подпрограммы или программы обработки прерывания без использования механизма переключения задач производится только командами RET или IRET;
  6. при использовании механизма переключения задач допускаются переходы с уменьшением уровня привилегий с использованием команд CALL и JMP.
<< Назад