Организация вычислительных систем


Защищенный режим (Protected Mode) - часть 6


Сегмент состояния задачи хранит состояние регистров (контекст) процессора:

  • состояние сегментных регистров (селекторы сегментов, формирующие адресное пространство задачи);
  • состояние регистров общего назначения;
  • состояние регистра флагов (EFLAGS);
  • указатель очередной команды (EIP);
  • значение регистра CR3 (PDBR);
  • значение регистра LDTR.

В многозадачных системах TSS предоставляет механизм для связывания (вложения) задач.

Каждая задача идентифицируется селектором соответствующего ей TSS. Этот селектор загружается в регистр задачи (Task Register - TR) при переключении на задачу. В теневую часть регистра загружаются базовый адрес, предел и атрибуты TSS. Операционная система может предусматривать для каждой задачи свое линейное адресное пространство (свой набор страниц для страничного преобразования), тогда при переключении задачи загружается и регистр CR3 (PDBR), хранящий адрес каталога таблиц для страничного преобразования.

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

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

  • контроль предела;
  • контроль типа;
  • контроль уровня привилегий;
  • контроль выравнивания;
  • ограничение адресного пространства;
  • ограничение точек входа в процедуры (для шлюзов);
  • ограничение набора команд (привилегированные инструкции).




Начало  Назад  Вперед



Книжный магазин