stringtranslate.com

Режимы процессора

Режимы ЦП (также называемые режимами процессора, состояниями ЦП, уровнями привилегий ЦП и другими названиями) — это режимы работы центрального процессора большинства компьютерных архитектур , которые накладывают ограничения на тип и объем операций, которые могут выполняться инструкциями, выполняемыми процессором. ПРОЦЕССОР. Например, такая конструкция позволяет операционной системе работать с большим количеством привилегий, чем прикладное программное обеспечение, за счет запуска операционных систем и приложений в разных режимах. [1]

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

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

Типы режимов

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

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

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

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

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

Архитектуры

Несколько компьютерных систем, представленных в 1960-х годах, таких как IBM System/360 , DEC PDP-6 / PDP-10 , серия GE-600 / Honeywell 6000 , а также серии Burroughs B5000 и B6500 , поддерживают два режима ЦП; режим, который предоставляет полные привилегии коду, работающему в этом режиме, и режим, который предотвращает прямой доступ к устройствам ввода-вывода и некоторым другим аппаратным средствам для кода, работающего в этом режиме. Первый режим обозначается такими именами, как состояние супервизора (System/360), исполнительный режим (PDP-6/PDP-10), главный режим (серия GE-600), режим управления (серия B5000) и состояние управления ( Серия B6500). Второй режим обозначается такими именами, как состояние проблемы (System/360), пользовательский режим (PDP-6/PDP-10), подчиненный режим (серия GE-600) и нормальное состояние (серия B6500); В серии B5000 имеется несколько режимов без управления.

РИСК-V

RISC-V имеет три основных режима ЦП: режим пользователя (U), режим супервизора (S) и режим компьютера (M). [3] Виртуализация поддерживается через настройку ортогонального CSR вместо четвертого режима.

Рекомендации

  1. ^ «Режимы процессора». flint.cs.yale.edu . Проверено 23 августа 2023 г.
  2. ^ Авивиано (04.11.2022). «Режим пользователя и режим ядра — драйверы Windows». Learn.microsoft.com . Проверено 23 августа 2023 г.
  3. ^ Харрис, Сара; Харрис, Дэвид (12 июля 2021 г.). Цифровой дизайн и компьютерная архитектура, издание RISC-V. Морган Кауфманн. ISBN 978-0-12-820065-0.