stringtranslate.com

Modos de CPU

Los modos de CPU (también llamados modos de procesador, estados de CPU, niveles de privilegios de CPU y otros nombres) son modos operativos para la unidad central de procesamiento de la mayoría de las arquitecturas de computadora que imponen restricciones sobre el tipo y alcance de las operaciones que pueden realizarse mediante instrucciones ejecutadas por el UPC. Por ejemplo, este diseño permite que un sistema operativo se ejecute con más privilegios que el software de aplicación al ejecutar los sistemas operativos y las aplicaciones en diferentes modos. [1]

Idealmente, sólo se permite ejecutar código del kernel altamente confiable en modo sin restricciones; todo lo demás (incluidas las partes del sistema operativo que no son de supervisión) se ejecuta en modo restringido y debe utilizar una llamada al sistema (a través de interrupción ) para solicitar al kernel que realice en su nombre cualquier operación que pueda dañar o comprometer el sistema, haciendo imposible que programas que no son de confianza para alterar o dañar otros programas (o el propio sistema informático). Los controladores de dispositivos están diseñados para ser parte del kernel debido a la necesidad de acceso frecuente a E/S .

Se pueden implementar múltiples modos, por ejemplo, permitir que un hipervisor ejecute múltiples supervisores de sistemas operativos debajo de él, que es el diseño básico de muchos sistemas de máquinas virtuales disponibles en la actualidad.

Tipos de modo

El modo sin restricciones a menudo se denomina modo kernel, pero existen muchas otras designaciones ( modo maestro , modo supervisor , modo privilegiado , etc.). Los modos restringidos generalmente se denominan modos de usuario, pero también se les conoce con muchos otros nombres ( modo esclavo, estado de problema, etc.). [2]

Hipervisor
El modo hipervisor se utiliza para admitir la virtualización, permitiendo el funcionamiento simultáneo de múltiples sistemas operativos.
Núcleo y usuario
En modo kernel, la CPU puede realizar cualquier operación permitida por su arquitectura; se puede ejecutar cualquier instrucción, iniciar cualquier operación de E/S, acceder a cualquier área de memoria, etc. En los otros modos de CPU, el hardware impone ciertas restricciones en las operaciones de la CPU. Normalmente, no se permiten ciertas instrucciones (especialmente aquellas, incluidas las operaciones de E/S, que podrían alterar el estado global de la máquina), no se puede acceder a algunas áreas de memoria, etc. Las capacidades de modo de usuario de la CPU suelen ser un subconjunto de esas disponibles en modo kernel, pero en algunos casos, como la emulación de hardware de arquitecturas no nativas, pueden ser significativamente diferentes de los disponibles en modo kernel estándar.

Algunas arquitecturas de CPU admiten más modos que esos, a menudo con una jerarquía de privilegios. A menudo se dice que estas arquitecturas tienen seguridad basada en anillos, en la que la jerarquía de privilegios se asemeja a un conjunto de anillos concéntricos, con el modo kernel en el centro. El hardware Multics fue la primera implementación significativa de la seguridad en anillo, pero muchas otras plataformas de hardware se han diseñado siguiendo líneas similares, incluido el modo protegido Intel 80286 y también el IA-64 , aunque en estos casos se le conoce con un nombre diferente. .

La protección del modo puede extenderse a recursos más allá del propio hardware de la CPU. Los registros de hardware rastrean el modo operativo actual de la CPU, pero registros adicionales de memoria virtual , entradas de tablas de páginas y otros datos pueden rastrear identificadores de modo para otros recursos. Por ejemplo, una CPU puede estar funcionando en el Anillo 0 como lo indica una palabra de estado en la propia CPU, pero cada acceso a la memoria puede validarse adicionalmente con un número de anillo separado para el segmento de memoria virtual al que se dirige el acceso, y/o contra un número de timbre para la página física (si la hay) a la que se dirige. Esto se ha demostrado con el sistema portátil PSP .

El hardware que cumple con los requisitos de virtualización de Popek y Goldberg hace que escribir software para soportar eficientemente una máquina virtual sea mucho más simple. Un sistema de este tipo puede ejecutar software que "cree" que se está ejecutando en modo supervisor, pero que en realidad se está ejecutando en modo usuario.

Arquitecturas

Varios sistemas informáticos introducidos en la década de 1960, como IBM System/360 , DEC PDP-6 / PDP-10 , las series GE-600 / Honeywell 6000 y las series Burroughs B5000 y B6500 , admiten dos modos de CPU; un modo que otorga privilegios completos al código que se ejecuta en ese modo, y un modo que impide el acceso directo a los dispositivos de entrada/salida y algunas otras instalaciones de hardware al código que se ejecuta en ese modo. El primer modo recibe nombres como estado de supervisor (System/360), modo ejecutivo (PDP-6/PDP-10), modo maestro (serie GE-600), modo de control (serie B5000) y estado de control ( Serie B6500). El segundo modo recibe nombres como estado de problema (System/360), modo de usuario (PDP-6/PDP-10), modo esclavo (serie GE-600) y estado normal (serie B6500); Hay múltiples modos sin control en la serie B5000.

RISC-V

RISC-V tiene tres modos de CPU principales: modo de usuario (U), modo de supervisor (S) y modo de máquina (M). [3] La virtualización se admite a través de una configuración CSR ortogonal en lugar de un cuarto modo.

Referencias

  1. ^ "Modos de procesador". flint.cs.yale.edu . Consultado el 23 de agosto de 2023 .
  2. ^ aviviano (4 de noviembre de 2022). "Modo de usuario y modo kernel: controladores de Windows". aprender.microsoft.com . Consultado el 23 de agosto de 2023 .
  3. ^ Harris, Sara; Harris, David (12 de julio de 2021). Diseño digital y arquitectura informática, edición RISC-V. Morgan Kaufman. ISBN 978-0-12-820065-0.