Cтраница 2
При попытке выполнения указанных команд на виртуальной машине на процессоре ВМ происходит программное прерывание по особому случаю употребления привилегированной операции. [16]
Чтобы контролировать порядок использования привилегированных операций, принято выделять два альтернативных состояния процессора: состояние супервизор, в котором процессор выполняет программы супервизора, и состояние задача, в котором процессор выполняет прикладные программы. В состоянии супервизор допускается выполнение любых операций, а в состоянии задача - только непривилегированных операций. Если процессор находится в состоянии задача, появление в программе привилегированной операции считается ошибкой и выполнение программы прекращается. Состояние супервизор-задача устанавливается командой, инициирующей программу. Эта команда относится к классу привилегированных и используется только супервизором. Если инициируется прикладная программа, то устанавливается состояние задача; если инициируется программа супервизора, процессор переключается в состояние супервизор. [17]
Команды, которые недопустимы в состоянии задача, называются привилегированными. К их числу относятся команды, предназначенные для модификации и проверки ключей памяти, полей управления системой, расположенных в PSW и управляющих регистрах, а также команды, предназначенные для измерения времени, обработки префиксов, обеспечения связи между несколькими CPU и для управления вводом-выводом. Привилегированная команда, встретившаяся в состоянии задача, вызывает программное прерывание по привилегированной операции. [18]
Задача системы виртуальных машин состоит в том, чтобы создать для каждой операционной системы, работающей в качестве подсистемы, иллюзию возможности перехода в режим управления, не позволяя ей в то же время выполнить подобный переход на самом деле. Таким образом, физические операционные системы всегда работают в режиме задачи, а система виртуальных машин отслеживает логические режимы для каждой из них. Если какая-либо из машин логически находится в режиме управления, то виртуальная система выполняет определенные привилегированные операции. А если операционная система выдает привилегированную команду, когда соответствующая машина логически находится в режиме задачи, то результат будет таким же, как в отсутствие контроля со стороны СВМ. [19]
От состояния пары задача-супервизор зависит отношение вычислителя к привилегированным операциям. Если вычислитель находится в состоянии супервизор, то все команды являются допустимыми. В состоянии задача все команды ввода-вывода и системные операции рассматриваются как недопустимые и появление привилегированной операции является причиной прерывания. Переключение вычислителя в состояние задача или супервизор происходит при занесении нового ССП, например в случае прерывания. [20]
Действия по вводу-выводу информации представляются в основных программах командами обращения к супервизору, в которых определяется процедура, затребованная программой, и фактические параметры процедуры. При выполнении указанной процедуры в супервизоре используются команды управления вводом - выводом. После начала операции ввода-вывода выполнение программы, обратившейся к супервизору, прекращается и вычислитель загружается программой, ожидавшей момента освобождения вычислителя. Поскольку супервизор централизует у правление работой системы, то все операции системного характера и операции ввода-вывода используются только в супервизоре и рассматриваются как недопустимые операции в программах решения задач. Операции такого типа называются привилегированными операциями. [21]
Программы пользователя обычно выполняются в режиме задача. В режиме задача запрещено использование привилегированных команд. Такие меры в ЕС ЭВМ вызваны тем, чтобы предотвратить вмешательство программы пользователя в работу операционной системы. В режиме супервизора ( Р 0) употребление привилегированных операций разрешено. [22]
Метод ключей защиты используется в ЕС ЭВМ. В мультипрограммном режиме могут одновременно обрабатываться до 16 ( включая операционную систему) программ. Поэтому для исключения влияния программ друг на друга следует иметь возможность задавать 16 различных вариантов кодов ключей защиты памяти и ключей программы, для чего необходимы 4-разрядные коды. В ключе защиты памяти предусматривается дополнительный, пятый ( младший), разряд режима защиты. Коды ключей защиты памяти и ключей программы устанавливаются операционной системой с помощью специальных команд, относящихся к привилегированным операциям. [23]