Вопрос: Почему так много режимов в процессоре?


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


2
2017-08-20 20:11


Источник


Вы уверены, что режимы, о которых вы спрашиваете, являются режимами микропроцессора, а не режимами операционной системы?


Ответы:


Часто бывает полезно, чтобы операционная система могла запускать код из потенциально ненадежного источника без необходимости давать код неограниченной мощности для повреждения системы. Если у процессора не было понятия «пользовательский режим» и «режим супервизора», единственный способ, которым операционная система могла бы ограничить действия ненадежного кода, - это проверить каждую отдельную инструкцию, чтобы убедиться, что она ничего не делает что может нанести ущерб. Не совсем скоро. Чтобы улучшить ситуацию, процессоры, предназначенные для облегчения использования потенциально ненадежного кода, могут вызывать «ограниченный» режим. В этом режиме большинство инструкций работают так, как обычно, но им разрешен доступ только к определенным областям памяти. Чтобы вернуться в «неограниченный» режим, необходимо выполнить команду, которая одновременно переключит процессор в неограниченный режим и перенесет выполнение программы на один из нескольких специальных адресов, которые будут недоступны в ограниченном режиме. Каждый адрес связан с каким-либо видом или требует от операционной системы что-то делать (обычно точная операция будет определяться комбинациями значений в разных регистрах); код операционной системы будет проверять каждый запрос и убедиться, что он представляет собой код вызова, который разрешен; если это произойдет, операционная система выполнит указанную операцию, а затем выполнит инструкцию, которая одновременно вернет машину в режим ограничения и перенесет выполнение программы в инструкцию после последней инструкции «запрос операционной системы».

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


6
2017-08-20 21:32



Впервые я увидел имена «режим пользователя» и «режим супервизора» в ARM2 (конец 1980-х), не знаю, как это развивалось на протяжении многих лет. x86 использует модель кольца IIRC не все кольца активно используются, но виртуализация также использует их. - jippie
Первое спасибо за ответ .......... Да, я также изучаю ARM, чтобы изучить язык ассемблера. Я до сих пор не понимаю, о следующем вопросе: 1. Кто принимает первое решение режимов (это означает, что когда мы открываем компьютер, а затем в каком режиме работает микропроцессор). 2. Ограничена ли эта область памяти только ОЗУ или она также включают ПЗУ. - Jatin Khurana
@JatinKhurana: Процессоры обычно запускаются в режиме супервизора, так как только режим супервизора способен настраивать, какие функции должны быть доступны для каких-то частей кода «пользовательского режима». Что касается того, какая память доступна, многие процессоры позволяют код режима супервизора настраивать связь между логическими адресами и физическими устройствами, которые могут включать в себя ПЗУ, ОЗУ, ввод-вывод или все, что может быть подключено к внешней шине. - supercat