stringtranslate.com

Режимы ЦП

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

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

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

Типы режимов

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

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

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

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

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

Архитектуры

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

RISC-V

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

Ссылки

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