Modos de operación de la CPU

De Wiki de Sistemas Operativos
Revisión del 17:57 6 oct 2017 de Pneira (discusión | contribuciones) (No privilegiado)
Saltar a: navegación, buscar

2.2. Modos de operación de la CPU

Los fabricantes de procesadores actuales ofrecen procesadores que generalmente disponen de, al menos, dos modos de funcionamiento.

El procesador viene con un juego de instrucciones propio de cada fabricante, algunos ejemplos son: x86, x86_64, sparc, powerpc, ARM, entre muchas otras.

El estado del procesador se guarda en un conjunto de registros de 8, 16, 32 o 64 bits. Además de ellos, el procesador posee dos registros especiales, el de siguiente instrucción (IP, PC,…) y el de estado (CCR):

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 (no confundir con usuario root).

  • Modo en el que se ejecuta el núcleo del sistema operativo.
  • Ofrece acceso total a las instrucciones de la CPU.

Un fallo de programación en modo privilegiado puede plantar el SO, en modo no privilegiado nunca pasaría eso. Precisamente esa es la utilidad de tener varios modos de ejecución, la construcción de un sistema robusto. En la práctica, lo usual es que los procesadores tengan modos intermedios entre usuario y supervisor. La transición de modo supervisor a usuario es arbitraria, mientras que de usuario a supervisor se realiza mediante una interrupción. La CPU siempre arranca en modo supervisor, lo cual se intuye, pues en el inicio del dispositivo, se tendrá que ejecutar código del sistema operativo.


2.3. Interrupciones y excepciones