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


Предыдущая | Следующая

Уровни привилегий
В предыдущем разделе рассмотрена мультизадачность Р-режима процессора 286 и описано огромное адресное пространство этого режима. Покажем теперь, как можно разместить в виртуальном адресном пространстве несколько задач полностью независимо друг от друга. Помимо независимости, каждой задаче придаются средства защиты, которые реализованы с помощью уровней привилегий.
Защита каждой задачи обеспечивается путем размещения кода и данных в памяти на различных уровнях привилегий. Процессор 286 поддерживает четыре уровня привилегий. Какие же привилегии назначаются различным уровням?
На нижнем уровне процессор 286 запрещает программе выполнение некоторых команд, которые могут помешать ее выполнению. На этот уровень процессор 286 переводит приклаЛные программы пользователей. В прикладной программе могут быть некоторые команды ввода-вывода для периферийных устройств. Не исключено, что такие команды могут привести к краху программы, так как операции ввода-вывода выполняются очень медленно. Команды ввода-вывода необходимо выполнять не на нижнем, а на другом
уровне. Если для команд ввода-вывода отведен не самый нижний уровень, процессор 286 не разрешает их выполнять на нижнем уровне привилегий.
Таким образом, программа защищается от этих потенциально опасных команд с помощью уровней привилегий.
Процессор 286 имеет четыре уровня привилегий, причем нижний отведен для прикладных программ. Уровни привилегий нумеруются 0, 1, 2 и 3 (рис. 16.7). Наименее привилегированным или нижним является уровень 2, а самым привилегированным — уровень 0. Уровни 2, 1 и 0 обычно отводятся операционной системе.

При разработке программы программист обычно разделяет ее на модули. Затем он назначает каждому модулю уровень привилегий, а процессор 286 наблюдает за выполнением программы. Более привилегированные уровни операционной системы практически не имеют ограничений. На нижнем уровне, где выполняются прикладные программы, многое запрещено. Прикладной программе запрещается выполнять команды ввода-вывода, обращаться по адресам, отведенным для более высоких уровней, и контактировать с операционной системой, кроме как в специальных ситуациях.
Четыре уровня привилегий придают процессору 286 особую ценность, которая нравится программистам. Для специалиста по аппаратным средствам уровни привилегий представляются ограниченный интерес. Во многих приложениях все четыре уровня не нужны. Можно обойтись, например, всего одним уровнем. Конечно, этот уровень должен быть высшим, чтобы было можно выполнять все команды и не испытывать никаких ограничений.
Уровни привилегий приписаны всем задачам. Если делается попытка переключения задачи с переходом с одного уровня на другой, процессор 286 не разрешает этого. Неуправляемое переключение задач может легко привести к краху системы. Процессор 286 разрешает переключение задачи на тот же самый или нижний уровень привилегий и запрещает переключение на более высокий уровень.
Для переключения с одного уровня на другой применяются команды, похожие на переключение задачи. Они являются разновидностями знакомых команд JMP и CALL. Допускается прямое выполнение этих команд, если адрес назначения разрешен по правилам уровней привилегий.
Когда переключение запрещено из-за более высокого уровня назначения, требуются меры предосторожности. Обычно такая ситуация возникает из-за ошибки в программе. Однако предусмотрены средства перехода на более высокие уровни привилегий. Для этого применяются так называемые шлюзы вызова. Для изучения программирования процессора 286 на машинном языке следует обратиться к соответствующей литературе.
Таким образом, процессор 286 ведет себя как два отдельных процессора. В R-режиме он действует как процессор 8086, но работает даже на одной и той же частоте синхронизации в 2 — 3 раза быстрее. В Р-режиме он действует как истинный процессор 286. Он может реализовать мультизадачность, причем каждая задача защищена с помощью четырех уровней привилегий. Важно знать о новых возможностях этого процессора. Рассмотрим теперь регистры и шины процессора 286.

 

 

 Поиск и устранение неисправностей в персональных компьютерах