Modos de operación de la CPU

De Wiki de Sistemas Operativos
Revisión del 21:28 3 nov 2015 de Javrodmar5 (discusión | contribuciones) (Cambio 2.3 por 2.2 y corrección menor)
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 propia 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

También llamado modo usuario (es preferible no usar este término para no llegar a confusión).

  • Modo en el que se ejecutan los procesos y bibliotecas del sistema operativo. En el caso concreto de los sistemas operativos micronúcleos, los servidores también se ejecutan en modo no privilegiado, tales como el servidor de ficheros, el administrador de memoria y los gestores de dispositivo.
  • Ofrece únicamente un subconjunto de las instrucciones disponibles.
  • Si en éste modo se intenta ejecutar una instrucción privilegiada, el sistema operativo o bien la ignora, o bien lanza una excepció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