Modos de operación de la CPU
2.2. Modos de operación de la CPU
Los fabricantes de hardware ofrecen procesadores que generalmente disponen de, al menos, dos modos de funcionamiento.
Cada procesador viene con un juego de instrucciones propio de cada fabricante, algunos ejemplos de procesadores son: x86, x86_64, sparc, powerpc, ARM, Z80, entre muchos otros.
Un procesador generalmente cuenta con un conjunto de registros sobre los que se pueden anotar datos y sobre los que operan las instrucciones.
Se dispone de registros de propósito general que permiten trabajan con datos de 8, 16, 32 o 64 bits. Además de ellos, unb procesador dispone al menos de dos registros especiales, el de puntero de instrucciones y el de estado.
No privilegiado
Este modo de operación de la CPU también se conoce como modo usuario (ojo, no tiene nada que ver con el ser humano que trabaja con el equipo).
Se trata del conjunto de instrucciones que puede ejecutar un proceso de usuario. Es un subconjunto de las instrucciones que soporta un procesador. Por ejemplo, las instrucción add, sub, and, or, xor, jmp, test y similares que permiten modelar el comportamiento de un programa. Las instrucciones load y store típicas que se emplean para traer datos de memoria a un registro del procesador y viceversa pertenecen a este modo de ejecución.
Privilegiado
También llamado modo supervisor (ojo, no confundir con usuario root o administrador del sistema). Este modo ofrece acceso a todo el juego de instrucciones del procesador y recursos del sistema. Es el modo en el que se ejecuta el núcleo del sistema operativo.
Un fallo de programación en modo privilegiado puede plantar el SO, en modo no privilegiado nunca pasaría eso.
La transición de usuario a supervisor se realiza mediante una instrucción del procesador, ya sea INT (para elevar una interrupción por software) o SYSCALL. El sistema operativo, antes de asignar el recurso CPU a una aplicación, pone el procesador en modo de funcionamiento no privilegiado.
En tiempo de arranque, la CPU se ejecuta en modo supervisor para dar paso a la secuencia de arranque del sistema operativo.