Каким программам доступны привилегированные команды

Привилегированные команды , выполнение которых в принципе может сказаться на правильности функционирования ЭВМ, такие, как RESET, могут выполняться только в режиме супервизора, для чего заранее должен быть установлен в единичное состояние бит S ( бит 13) регистра состояния. Это свойство является фундаментальным для концепции виртуальной машины, в соответствии с которой одна операционная система может работать в пользовательском режиме, а другая — в режиме супервизора. МП МС68010 и MC68020 отличаются от MC68000 тем, как они используют привилегированные команды, определяющие возможности доступа к регистру состояния. [2]

Привилегированная команда вызывает прерывание виртуальной машины, которая продолжит работу после завершения моделирования запрашиваемой этой командой процедуры. [3]

Привилегированная команда — машинная команда, выполнение которой разрешено только в привилегированном режиме. [4]

Привилегированные команды могут выполняться только в программах супервизора. [5]

топ 7 лучших команд в free admin

Привилегированная команда , которая может выполняться только в режиме операционной системы. [6]

Привилегированные команды не могут — быть использованы в обычной программе. [7]

Некоторые привилегированные команды имеют одну единственную модификацию, другие — две. Две модификации имеют команды, для которых предусматриваются логический и физический варианты выполнения. [8]

Появление привилегированной команды в режиме задачи вызывает прерывание. [9]

Появление привилегированной команды в состоянии задача называется особым случаем по привилегированной операции и вызывает программное прерывание. [10]

Список привилегированных команд обычно включает все команды ввода-вывода. Операционная система всегда переводит центральный процессор в режим пользователя, как только-управление передается программе пользователя. Следовательно, если карты MMU являются доступными для команд ввода-вывода, то программа пользователя не может иметь доступ к картам. Конечно, все другие операции ввода-вывода также должны выполняться под управлением операционной системы, поскольку только она может реализовать команды ввода-вывода. [11]

К привилегированным командам относятся все команды ввода-вывода ( за исключением команд с КВ-1), останов с любым кодом выборки, команды засылки баз, группа системных команд дополнительного набора. Попытка их выполнить вызывает прерывание по нарушению режима. [12]

МВМ перехватывал все привилегированные команды , выдаваемые ВМ, а также все сигналы прерывания, возникающие на реальной ЭВМ. [13]

Каналы используют четыре привилегированные команды ЦП для начала и останова работы ВУ, а также для селективной проверки состояний канала и ВУ. [14]

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

Читайте также:
Не открываются программы на маке

5 принципов создания сильной команды / Управление персоналом 16+

Источник: www.ngpedia.ru

Глава 4. Работа механизма защиты.

Привилегированные команды. К привилегированным командам относятся те, на выполнение которых влияет уровень привилегий программы или привилегии устройств ввода/вывода.

МП iх86 имеет 3 группы привилегированных команд, степени привилегий которых различны:

  • PL0-команды;
  • IOPL-«чувствительные» (IOPL-sensitive) команды;
  • команды, модифицируемые в соответствии с текущим уровнем привилегии.

PL0-команды. Это команды, выполнение которых разрешено только на уровне привилегий 0. При попытке выполнить их в Р-режиме на другом уровне привилегий генерируется сигнал нарушения общей защиты (прерывание 13).

IOPL-«чувствительные» команды. Это команды, которые изменяют состояние флажка прерываний IF, выполняют захват шины или операцию ввода-вывода.

Для выполнения этих команд программа необязательно должна иметь уровень привилегий 0. Привилегированность этих команд заключается в том, что их могут выполнять программы, уровень привилегий которых выше уровня, определяемого полем IOPL уровня привилегий ввода-вывода в регистре EFLAGS. Другими словами, для выполнения этих команд требуется, чтобы CPL был численно меньше или равен IOPL (CPL IOPL генерируется нарушение общей защиты (прерывание 13).

Команды обращения к устройствам ввода/вывода (IN, INS, OUT, OUTS) являются особой подгруппой IOPL-«чувствительных» команд. На их выполнение, кроме соотношения уровней привилегий CPL

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

  • POPFD — загрузка регистра EFLAGS четырехбайтным значением из стека;
  • POPF — загрузка регистра FLAGS двухбайтным значением из стека.

Команды POPFD и POPF сами по себе не являются привилегированными, но их выполнение зависит от значения CPL, т.е. от уровня привилегий содержащего их кода. Здесь речь идет о защите по модификации полей регистра флагов IOPL и IF.

Флаг IOPL может модифицироваться только PL0-программами. По сути дела IOPL является PL0-флагом.

Флаг IF может модифицироваться IOPL-чувствительными командами при CPL

Любая программа может содержать команды POPFD и POPF. Эти команды могут изменять любые биты флагов, но биты IOPL могут быть изменены этими командами, только если выполняется PL0-программа, а флаг IF — если выполняется условие CPL

Процессор никак не сообщает об изменении действия этих команд. Это вполне штатная ситуация. Процессор просто не модифицирует биты IOPL и флаг IF, если это не разрешено.

Вопросы для самопроверки:

  1. Что такое PL0-команды.
  2. Какие команды входят в группу PL0 — команд.
  3. Чем заканчиваются попытки некорректного использования PL0 — команд.
  4. Какие команды входят в группу IOPL — чувствительных команд.
  5. В чем заключается привилегированность IOPL — чувствительных команд.
  6. В чем заключается привилегированность команд обращения к устройствам ввода/вывода.
  7. Какие команды входят в группу команд модифицируемых в соответствии с текущим уровнем привилегии.
  8. В чем заключается особенность команд модифицируемых в соответствии с текущим уровнем привилегии.
Читайте также:
На какой программе варить овощи в мультиварке

Источник: zzak.ru

Привилегированные команды. защита доступа к данным.

1. Команды воздействующие на механизм сегментации и защиты. (напр: команды остановки процессора, загрузки регистров дескрипторных табл, слово состояния машины, сброс флага вкл задачи)
также относятся: mov (передача данных), если в качестве 1-го из операндов она использует численные регистры(регистры- управления чаще всего).
эти команды доступны только для работающих на нулевом уровне привилегированных программ (или PR0)

2. Команды изменяющие значение флага IF и команды ввода-вывода. Отличительная особенность этих команд заключается в том что возможность их использования определяется двух битным полем IOPL регистра флага. Эти команды еще наз. IOPL зависимы.
Если задачи в кот-х не разрешено использовать защищенные команды попытаются это сделать, то будет сгенерированно нарушение общей защиты, в большинстве случаев, и задача будет снята с исполнения.

Защита доступа к данным:

При каждом обращении к данным средства защиты по привилегиям осущ-т проверку возможности обращения к этим данным, т.е фактически проверяется достаточно ли привилегии у текущего кода для обращения к этим данным.

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

CPL – уровень привилегий исполняющегося на данный момент кода.

Также при проверке учитывается уровень привилегий записанный в селекторе (поля RPL) при обращении к данным.

В общем случае правило защиты:

DPL >= max (CPL, RPL) = FPL(это эффективный уровень привилегий)

Защита сегмента кода. текущий уровень привилегий

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

Существует пять проверок:

Ограничение адресуемого домена

Ограничение точек входа в процедуру

Ограничение набора команд

Нарушение защиты ведет к генерации исключения.

CPL — текущий уровень привилегий (Current Privilege Level): уровень привилегий, на котором в данный момент исполняется задача. Значение CPL хранится в поле RPL селектора сегмента кода, который помещен в регистр CS. Обычно это значение соответствует уровню привилегий дескриптора исполняемого сегмента кода. Уровень привилегий меняется, когда управление передается сегменту кода с другим значением DPL (за исключением подчиняемых сегментов кода).

Читайте также:
В какой программе создать пригласительные на свадьбу на компьютере

Проверка уровня привилегий при доступе к сегментам данных.

Для доступа к операнду в сегменте данных, необходимо загрузить в сегментный регистр (DS, ES, FS или GS) селектор дескриптора сегмента данных. Для этого предназначены команды MOV, POP, LDS, LES, LFS и LGS. Перед тем, как загрузить селектор в сегментный регистр, процессор проверяет уровень привилегий, сравнивая уровень привилегий текущего кода (CPL), RPL селектора и DPL дескриптора.

Загрузка селектора производится, когда DPL больше либо равен CPL или RPL, иначе загрузка не произойдёт и процессор сгенерирует исключение общей защиты. Адресное пространство процедуры или задачи зависит от значения её CPL. Когда CPL = 0, доступны сегменты данных на всех уровнях привилегий, при CPL = 1 — на уровнях 1, 2 и 3, при CPL = 3 — только на 3-м уровне. Прикладная программа может изменить RPL селектора, например, установить его в 0, и тогда проверка доступа будет осуществляться только по CPL.

Доступ к данным в сегменте кода.

В некоторых случаях может понадобиться доступ к данным (точнее — чтение), содержащимся в сегменте кода; для этого возможны следующие способы:

Загрузить в сегментный регистр данных селектор сегмента кода, разрешённого для чтения.
Использовать префикс замены сегмента для чтения сегмента кода, разрешённого для чтения, чей селектор уже загружен в регистр CS.

Текущий уровень привилегий — CPL (Current privilege level). CPL — это уровень привилегий текущего исполняемого кода. Он хранится в битах 0 и 1 регистров CS и SS. Обычно, CPL равен уровню привилегий сегмента кода, из которого выбираются команды. Процессор меняет CPL, когда управление передаётся сегменту кода с другим уровнем привилегий.

CPL интерпретируется немного иначе, когда управление передаётся подчинённому сегменту кода. Подчинённый сегмент кода доступен с тех уровней привилегий, которые численно не меньше, чем DPL подчинённого сегмента кода. CPL не меняется, когда происходит передача управления на подчинённый сегмент кода, имеющий уровень привилегий, отличный от CPL.

Передача управления между уровнями привилегий. подчиненные сегменты кода.

Передача управления между уровнями привилегий.

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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник: studopedia.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru