Diferencia entre revisiones de «Interrupciones y excepciones»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Tratamiento de interrupciones y excepciones)
(Tratamiento de interrupciones y excepciones)
Línea 7: Línea 7:
  
 
Cuando una interrupción es causada por un componente hardware, su tratamiento es el siguiente:
 
Cuando una interrupción es causada por un componente hardware, su tratamiento es el siguiente:
1 La CPU termina la instrucción que esté ejecutando actualmente.
 
2 Almacena el estado de la CPU en la pila.
 
  
3 La CPU pasa a modo supervisor.
+
1 La CPU termina la instrucción que esté ejecutando actualmente.
  
4 Se determina la dirección del Subprograma de Servicio de Interrupciones (SSI).
+
2 Almacena el estado de la CPU en la pila.
  
5 Se salta al SSI y se ejecuta.
+
3 La CPU pasa a modo supervisor.
  
6 Se retorna del SSI restaurando el estado de la CPU desde la pila, así como el modo de ejecución.
+
4 Se determina la dirección del Subprograma de Servicio de Interrupciones (SSI).
  
7 La CPU continúa con la ejecución del siguiente programa que corresponda.
+
5 Se salta al SSI y se ejecuta.
 +
 
 +
6 Se retorna del SSI restaurando el estado de la CPU desde la pila, así como el modo de ejecución.
 +
 
 +
7 La CPU continúa con la ejecución del siguiente programa que corresponda.
  
 
Por otro lado, cuando la interrupción es causada por una instrucción de petición, el proceso es el mismo hasta el cuarto punto, a partir de ahí, difiere, ya que la CPU no siempre tiene por qué volver al mismo punto.
 
Por otro lado, cuando la interrupción es causada por una instrucción de petición, el proceso es el mismo hasta el cuarto punto, a partir de ahí, difiere, ya que la CPU no siempre tiene por qué volver al mismo punto.
 
Por último, en el caso de las excepciones, nunca se vuelve al mismo punto, ya que es donde se ha causado el error en cuestión. En éste caso se procede como antes, pero se llama al SSE (Subprograma de Servicio de Excepciones).
 
Por último, en el caso de las excepciones, nunca se vuelve al mismo punto, ya que es donde se ha causado el error en cuestión. En éste caso se procede como antes, pero se llama al SSE (Subprograma de Servicio de Excepciones).
 
En los sistemas operativos, existe una tabla de vectores de interrupción, en la cual, cada vector apunta a la dirección de memoria del gestor, que se encargará de tratar la interrupción del tipo que corresponda. Ésta tabla está separada de otra, que contiene los vectores de excepciones.
 
En los sistemas operativos, existe una tabla de vectores de interrupción, en la cual, cada vector apunta a la dirección de memoria del gestor, que se encargará de tratar la interrupción del tipo que corresponda. Ésta tabla está separada de otra, que contiene los vectores de excepciones.

Revisión del 12:21 19 ene 2013

Tipos de interrupciones y excepciones

Se llama interrupción a una alteración en la secuencia de ejecución de instrucciones. Las interrupciones pueden estar causadas por hardware, por una excepción o por una petición de interrupción por parte de algún proceso (interrupción software). Una excepción es una interrupción de la propia CPU cuando se intenta ejecutar una instrucción prohibida. La interrupción software, por otro lado, se produce cuando un proceso pide un recurso al SO mediante una llamada al sistema (open, write, read…).

Tratamiento de interrupciones y excepciones

Cuando una interrupción es causada por un componente hardware, su tratamiento es el siguiente:

1 La CPU termina la instrucción que esté ejecutando actualmente.
2 Almacena el estado de la CPU en la pila.
3 La CPU pasa a modo supervisor.
4 Se determina la dirección del Subprograma de Servicio de Interrupciones (SSI).
5 Se salta al SSI y se ejecuta.
6 Se retorna del SSI restaurando el estado de la CPU desde la pila, así como el modo de ejecución.
7 La CPU continúa con la ejecución del siguiente programa que corresponda.

Por otro lado, cuando la interrupción es causada por una instrucción de petición, el proceso es el mismo hasta el cuarto punto, a partir de ahí, difiere, ya que la CPU no siempre tiene por qué volver al mismo punto. Por último, en el caso de las excepciones, nunca se vuelve al mismo punto, ya que es donde se ha causado el error en cuestión. En éste caso se procede como antes, pero se llama al SSE (Subprograma de Servicio de Excepciones). En los sistemas operativos, existe una tabla de vectores de interrupción, en la cual, cada vector apunta a la dirección de memoria del gestor, que se encargará de tratar la interrupción del tipo que corresponda. Ésta tabla está separada de otra, que contiene los vectores de excepciones.