Modos de CPU


Los modos de CPU (también llamados modos de procesador, estados de CPU, niveles de privilegio de CPU y otros nombres) son modos operativos para la unidad central de procesamiento de algunas arquitecturas informáticas que imponen restricciones sobre el tipo y el alcance de las operaciones que pueden realizar determinados procesos ejecutados por la CPU Este diseño permite que el sistema operativo se ejecute con más privilegios que el software de aplicación .

Idealmente, solo se permite la ejecución del código kernel de alta confianza en el modo sin restricciones; todo lo demás (incluidas las partes del sistema operativo que no son de supervisión) se ejecuta en un modo restringido y debe usar una llamada al sistema (a través de una interrupción ) para solicitar que el kernel realice en su nombre cualquier operación que pueda dañar o comprometer el sistema, haciendo imposible para programas no confiables para alterar o dañar otros programas (o el propio sistema informático).

Sin embargo, en la práctica, las llamadas al sistema toman tiempo y pueden dañar el rendimiento de un sistema informático, por lo que no es raro que los diseñadores de sistemas permitan que algún software crítico (especialmente los controladores de dispositivos ) se ejecute con todos los privilegios del kernel.

Se pueden implementar múltiples modos, lo que permite 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.

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 conocen con muchos otros nombres ( modo esclavo, estado de problema, etc.).

La protección de 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 los registros de memoria virtual adicionales, las entradas de la tabla de páginas y otros datos pueden rastrear los identificadores de modo para otros recursos. Por ejemplo, una CPU puede estar operando en el anillo 0 como lo indica una palabra de estado en la propia CPU, pero cada acceso a la memoria puede validarse adicionalmente contra 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 llamada para la página física (si la hay) a la que se apunta. Esto se ha demostrado con el sistema portátil PSP .