Diferencia entre revisiones de «Modos de operación de la CPU»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
 
(No se muestran 20 ediciones intermedias de 4 usuarios)
Línea 1: Línea 1:
= 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.
+
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.
 
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 [[http://www.eecg.toronto.edu/~amza/www.mindsec.com/files/x86regs.html registros]].
+
Un procesador generalmente cuenta con un conjunto de [http://www.eecg.toronto.edu/~amza/www.mindsec.com/files/x86regs.html registros] sobre los que se pueden anotar datos y sobre los que operan las instrucciones.
  
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):
+
Se dispone de registros de propósito general que permiten trabajar con datos de 8, 16, 32 o 64 bits. Además de ellos, un procesador dispone al menos de dos registros especiales, el de puntero de instrucciones y el de estado.
  
 
== No privilegiado ==
 
== No privilegiado ==
Línea 13: Línea 12:
 
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).
 
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.
+
Se trata del conjunto de instrucciones que puede ejecutar una aplicación. El conjunto de instrucciones que se pueden ejecutar en modo no privilegiado representa un subconjunto del total de las instrucciones que ofrece el procesador. Por ejemplo, las instrucciones ''add'', ''sub'', ''and'', ''or'', ''xor'', ''jmp'', ''test'' y similares que permiten modelar el comportamiento de un programa. Las instrucciones ''load'' y ''store'' que se emplean para traer datos de memoria a un registro del procesador y viceversa pertenecen a este modo de ejecución.
  
 
== Privilegiado ==
 
== Privilegiado ==
También llamado modo supervisor (no confundir con usuario root).
+
 
* Modo en el que se ejecuta el núcleo del sistema operativo.
+
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, por tanto, incluye también el conjunto de instrucciones del modo no privilegiado. Es el 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.
+
Un fallo de programación en modo privilegiado puede "colgar" el sistema - nos referimos a una pérdida del control sobre el sistema que suele mostrar un mensaje de pánico e implica intervenir mediante el botón de ''reset''.
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 usuario a supervisor se realiza mediante una instrucción del procesador, ya sea INT (para elevar una [[Interrupciones_y_excepciones|interrupción]] por software) o SYSCALL (para invocar a una [[Llamadas_al_sistema|llamada al sistema]]). El sistema operativo, antes de asignar el recurso CPU a una aplicación, pone el procesador en modo de funcionamiento no privilegiado.
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.
+
En tiempo de arranque, la CPU se ejecuta en modo supervisor para dar paso a la secuencia de arranque del sistema operativo.
  
  
 
2.3. [[Interrupciones y excepciones|Interrupciones y excepciones]]
 
2.3. [[Interrupciones y excepciones|Interrupciones y excepciones]]

Revisión actual del 11:54 15 mar 2019

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 trabajar con datos de 8, 16, 32 o 64 bits. Además de ellos, un 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 una aplicación. El conjunto de instrucciones que se pueden ejecutar en modo no privilegiado representa un subconjunto del total de las instrucciones que ofrece el procesador. Por ejemplo, las instrucciones add, sub, and, or, xor, jmp, test y similares que permiten modelar el comportamiento de un programa. Las instrucciones load y store 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, por tanto, incluye también el conjunto de instrucciones del modo no privilegiado. Es el modo en el que se ejecuta el núcleo del sistema operativo.

Un fallo de programación en modo privilegiado puede "colgar" el sistema - nos referimos a una pérdida del control sobre el sistema que suele mostrar un mensaje de pánico e implica intervenir mediante el botón de reset.

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 (para invocar a una llamada al sistema). 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.


2.3. Interrupciones y excepciones