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