Режимы ЦП

редактировать

Режимы ЦП (также называемые режимами процессора, состояниями ЦП, уровнями привилегий ЦП и другими названиями) - это режимы работы центрального процессора некоторых компьютерных архитектур, которые накладывают ограничения на тип и объем операций, которые могут выполняться некоторыми процессами, выполняемыми CPU. Такая конструкция позволяет операционной системе работать с большим количеством привилегий, чем прикладное программное обеспечение.

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

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

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

Типы режимов

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

Ядро
В режиме ядра ЦП может выполнять любую операцию, разрешенную его архитектурой; может быть выполнена любая инструкция, инициирована любая операция ввода-вывода, доступна любая область памяти и так далее. В других режимах ЦП определенные ограничения на операции ЦП устанавливаются аппаратным обеспечением. Как правило, определенные инструкции не разрешены (особенно те, в том числе операции ввода-вывода, которые могут изменить глобальное состояние машины), некоторые области памяти недоступны и т. Д. Возможности ЦП в пользовательском режиме обычно являются подмножеством этих доступны в режиме ядра, но в некоторых случаях, например, при аппаратной эмуляции неродных архитектур, они могут значительно отличаться от тех, которые доступны в стандартном режиме ядра.
Пользователь
Некоторые архитектуры ЦП поддерживают несколько пользовательских режимов, часто с иерархией привилегий. Часто говорят, что эти архитектуры имеют безопасность на основе кольца, в которой иерархия привилегий напоминает набор концентрических колец с режимом ядра в центре. Оборудование Multics было первой значительной реализацией кольцевой безопасности, но многие другие аппаратные платформы были разработаны в соответствии с аналогичными принципами, включая Intel 80286 защищенный режим и IA-64, хотя в этих случаях он упоминается под другим именем.

Защита режима может распространяться на ресурсы, выходящие за рамки самого аппаратного обеспечения ЦП. Аппаратные регистры отслеживают текущий режим работы ЦП, но дополнительные регистры виртуальной памяти, записи таблицы страниц и другие данные могут отслеживать идентификаторы режима для других ресурсов. Например, ЦП может работать в кольце 0, что обозначено словом состояния в самом ЦП, но каждый доступ к памяти может дополнительно проверяться по отдельному номеру кольца для сегмента виртуальной памяти, на который направлен доступ, и / или по номеру звонка для целевой физической страницы (если есть). Это было продемонстрировано на портативной системе PSP.

Оборудование, которое поддерживает требования к виртуализации Попека и Голдберга, значительно упрощает написание программного обеспечения для эффективной поддержки виртуальной машины. Такая система может запускать программное обеспечение, которое «считает», что оно работает в режиме супервизора, но фактически работает в пользовательском режиме.

Ссылки

Последняя правка сделана 2021-05-13 12:03:10
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте