El SO ocupa una posición intermedia entre los programas de aplicación y el hardware. No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute código del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones:
• Algún dispositivo de E/S necesita atención.
• Se ha producido una situación de error al intentar ejecutar una instrucción del programa (normalmente de la aplicación).
En ambos casos, la acción realizada no está ordenada por el programa de aplicación, es decir, no figura en el programa.
Según los dos casos anteriores tenemos las interrupciones y la excepciones:
• Interrupción: señal que envía un dispositivo de E/S a la CPU para indicar que la operación de la que se estaba ocupando, ya ha terminado.
• Excepción: una situación de error detectada por la CPU mientras ejecutaba una instrucción, que requiere tratamiento por parte del SO.
Tratamiento de las interrupciones
Una interrupción se trata en todo caso, después de terminar la ejecución de la instrucción en curso.
El tratamiento depende de cuál sea el dispositivo de E/S que ha causado la interrupción, ante la cual debe poder identificar el dispositivo que la ha causado.
Importancia de las interrupciones
El mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicación, mientras otra permanece a la espera de que concluya una operación en un dispositivo de E/S.
El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se continúe ejecutando.
En ciertos intervalos de tiempo puede convenir no aceptar señales de interrupción. Por ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas).
Excepciones
Cuando la CPU intenta ejecutar una instrucción incorrectamente construida, la unidad de control lanza una excepción para permitir al SO ejecutar el tratamiento adecuado. Al contrario que en una interrupción, la instrucción en curso es abortada. Las excepciones al igual que las interrupciones deben estar identificadas.
Clases de excepciones
Las instrucciones de un programa pueden estar mal construidas por diversas razones:
• El código de operación puede ser incorrecto.
• Se intenta realizar alguna operación no definida, como dividir por cero.
• La instrucción puede no estar permitida en el modo de ejecución actual.
• La dirección de algún operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso.
Importancia de las excepciones
El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de ejecución de la CPU y los mecanismos de protección de la memoria, que las aplicaciones realicen operaciones que no les están permitidas. En cualquier caso, el tratamiento específico de una excepción lo realiza el SO.
Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y éste es el que trata la situación como convenga.
Es bastante frecuente que el tratamiento de una excepción no retorne al programa que se estaba ejecutando cuando se produjo la excepción, sino que el SO aborte la ejecución de ese programa. Este factor depende de la pericia del programador para controlar la excepción adecuadamente.
domingo, 23 de agosto de 2009
Archivo del blog
-
▼
2009
(14)
-
▼
agosto
(14)
- ¿¿QUE SON LOS SISTEMAS OPERATIVOS?????
- FUNCIONES BÁSICAS
- PERSPECTIVA HISTÓRICA
- LLAMADAS AL SISTEMA OPERATIVO
- INTERRUPCIONES Y EXCEPCIONES
- COMPONENTES DE UN SISTEMA OPERATIVO
- PROGRAMAS DEL SISTEMA
- CARACTERÍSTICAS
- DEFICION DE UN SISTEMA OPERATIVO
- DEFINICIÓN DE SISTEMA OPERATIVO
- CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
- CÓMO FUNCIONA UN SISTEMA OPERATIVO
- CÓMO SE UTILIZA UN SISTEMA OPERATIVO
- EJEMPLOS DE SISTEMAS OPERATIVOS
-
▼
agosto
(14)