0 évaluation0% ont trouvé ce document utile (0 vote)
37 vues2 pages
Una interrupción suspende la ejecución de un programa para que el sistema atienda una acción como una operación de E/S. Las interrupciones sincronizan la ejecución de programas con eventos externos mediante la terminación de la instrucción en curso, el almacenamiento del estado del procesador en la pila, la ejecución de una rutina de servicio de interrupción y la restauración del estado al finalizar. Existen interrupciones de hardware, excepciones y de software, y el sistema de prioridades determina qué interrupción se procesa primero
Una interrupción suspende la ejecución de un programa para que el sistema atienda una acción como una operación de E/S. Las interrupciones sincronizan la ejecución de programas con eventos externos mediante la terminación de la instrucción en curso, el almacenamiento del estado del procesador en la pila, la ejecución de una rutina de servicio de interrupción y la restauración del estado al finalizar. Existen interrupciones de hardware, excepciones y de software, y el sistema de prioridades determina qué interrupción se procesa primero
Una interrupción suspende la ejecución de un programa para que el sistema atienda una acción como una operación de E/S. Las interrupciones sincronizan la ejecución de programas con eventos externos mediante la terminación de la instrucción en curso, el almacenamiento del estado del procesador en la pila, la ejecución de una rutina de servicio de interrupción y la restauración del estado al finalizar. Existen interrupciones de hardware, excepciones y de software, y el sistema de prioridades determina qué interrupción se procesa primero
Una interrupción es una situación especial que suspende la ejecución de un
programa de modo que el sistema pueda realizar una acción para tratarla. Tal situación se da, por ejemplo, cuando un periférico requiere la atención del procesador para realizar una operación de E/S.
Las interrupciones constituyen quizá el mecanismo más importante para la
conexión del microcontrolador con el mundo exterior, sincronizando la ejecución de programas con acontecimientos externos.
Procesamiento de una interrupción
Terminar la ejecución de la instrucción máquina en curso.
Salvar el estado del procesador (valores de registros y flags) y el valor del contador de programa, IP, en la pila, de manera que en la CPU, al terminar el proceso de interrupción, pueda seguir ejecutando el programa a partir de la última instrucción. La CPU salta a la dirección donde está almacenada la rutina de servicio de interrupción (Interrupt Service Routine, o abreviado ISR) y ejecuta esa rutina que tiene como objetivo atender al dispositivo que generó la interrupción. Una vez que la rutina de la interrupción termina, el procesador restaura el estado que había guardado en la pila en el paso 2 y retorna al programa que se estaba usando anteriormente.
Tipos de interrupciones
1. Interrupciones de hardware. Estas son asíncronas a la ejecución del procesador,
es decir, se pueden producir en cualquier momento independientemente de lo que esté haciendo el CPU en ese momento
2. Excepciones. Son aquellas que se producen de forma síncrona a la ejecución
del procesador. Normalmente son causadas al realizarse operaciones no permitidas tales como la división entre 0, el desbordamiento, el acceso a una posición de memoria no permitida, etc.
3. Interrupciones por software. Son aquellas generadas por un programa en
ejecución. Para generarlas, existen distintas instrucciones en el código máquina que permiten al programador producir una interrupción.
Sistemas de prioridad.
El sistema operativo necesita un mecanismo para priorizar las interrupciones y tratar
primero las más urgentes. Para ello, existen varias alternativas:
Interrupciones simultáneas: No tienen por qué ocurrir de manera simultánea,
sino que se refiere a que en un momento dado puede haber varias interrupciones activas. Interrupciones anidadas: Mientras se está procesando una determinada rutina de servicio de interrupción sucede otra señal de interrupción. Inhibición de interrupciones: Se deshabilitan las demás interrupciones mientras se está tratando una.
Determinación de la fuente que genera la interrupción
Hay distintas formas de identificar la fuente de una determinada interrupción.
Polling: el microprocesador comprueba de manera sistemática todos los
dispositivos de manera que «busca» cuál de ellos fue el que solicitó la interrupción. Interrupciones vectorizadas: Como ventajas podemos destacar que suele ser rápido, pero implica un alto costo en el hardware. Hardware paralelo: se utiliza un registro de interrupción cuyos bits se controlan de forma independiente por las señales de petición de interrupción de cada periférico. Según la posición de cada bit en el registro, se establece la prioridad.
1.5 LLAMADAS A SERVICIOS DEL SISTEMA
Una llamada al sistema es un método o función que puede invocar un proceso para solicitar un cierto servicio al sistema operativo. Dado que el acceso a ciertos recursos del sistema requiere la ejecución de código en modo privilegiado, el sistema operativo ofrece un conjunto de métodos o funciones que el programa puede emplear para acceder a dichos recursos. En otras palabras, el sistema operativo actúa como intermediario, ofreciendo una interfaz de programación (API) que el programa puede usar en cualquier momento para solicitar recursos gestionados por el sistema operativo. Algunos ejemplos de llamadas al sistema son las siguientes: Time: que permite obtener la fecha y hora del sistema. Write: que se emplea para escribir un dato en un cierto dispositivo de salida, tales como una pantalla o un disco magnético. Read: que es usada para leer de un dispositivo de entrada, tales como un teclado o un disco magnético. Open: que es usada para obtener un descriptor de un fichero del sistema, ese fichero suele pasarse a write.