Saltar al contenido principal
LibreTexts Español

4.2: Mecanismos de interrupción- reconocimiento de vector, y prioridad de interrupción

  • Page ID
    154365
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)\(\newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    Introducción

    En la siguiente sección se presenta al alumno las interrupciones que ocurren en E/S programadas

    Detalles de la actividad

    En la programación del sistema, una interrupción es una señal al procesador emitida por hardware o software que indica un evento que necesita atención inmediata. Una interrupción es una señal de un dispositivo conectado a una computadora o de un programa dentro de la computadora que hace que el programa principal que opera la computadora (el sistema operativo) se detenga y averigüe qué hacer a continuación. Una interrupción alerta al procesador de una condición de alta prioridad que requiere la interrupción del código actual que el procesador está ejecutando. El procesador responde suspendiendo sus actividades actuales, guardando su estado y ejecutando una función llamada manejador de interrupciones (o una rutina de servicio de interrupción, ISR) para hacer frente al evento. Esta interrupción es temporal y, una vez finalizado el manejador de interrupciones, el procesador reanuda las actividades normales. Hay dos tipos de interrupciones: interrupciones de hardware e interrupciones de software.

    Interrupciones de hardware

    Las interrupciones de hardware son utilizadas por los dispositivos para comunicar que requieren atención del sistema operativo. Internamente, las interrupciones de hardware se implementan mediante señales de alerta electrónicas que se envían al procesador desde un dispositivo externo, que es una parte de la propia computadora, como un controlador de disco, o un periférico externo.

    Por ejemplo, al presionar una tecla en el teclado o mover el mouse, se activan interrupciones de hardware que hacen que el procesador lea la pulsación de tecla o la posición del mouse. A diferencia del tipo de software (descrito a continuación), las interrupciones de hardware son asíncronas y pueden ocurrir en medio de la ejecución de instrucciones, requiriendo cuidados adicionales en la programación. El acto de iniciar una interrupción de hardware se denomina interrupción (IRQ).

    Interrupción de software

    Una interrupción de software es causada por una condición excepcional en el propio procesador, o una instrucción especial en la instrucción que causa una interrupción cuando se ejecuta. El primero se suele llamar trampa o excepción y se utiliza para errores o eventos que ocurren durante las ejecuciones del programa que son lo suficientemente excepcionales como para que no puedan manejarse dentro del programa mismo.

    Por ejemplo, si se ordena a la unidad lógica aritmética del procesador dividir un número por cero, esta demanda imposible provocará una excepción de división por cero, quizás haciendo que la computadora abandone el cálculo o muestre un mensaje de error. Las instrucciones de interrupción de software funcionan de manera similar a las llamadas de subrutina y se utilizan para una variedad de propósitos, como solicitar servicios de software de sistema de bajo nivel, como controladores de dispositivos. Por ejemplo, las computadoras suelen utilizar instrucciones de interrupción de software para comunicarse con el controlador de disco para solicitar que los datos sean leídos o escritos en el disco.

    Cada interrupción tiene su propio controlador de interrupciones. El número de interrupciones de hardware está limitado por el número de líneas de solicitud de interrupción (IRQ) al procesador, pero puede haber cientos de interrupciones de software diferentes. Las interrupciones son una técnica de uso común para la multitarea por computadora, especialmente en computación en tiempo real. Se dice que un sistema de este tipo es impulsado por interrupciones

    Las interrupciones se pueden clasificar en estos diferentes tipos:

    • Interrupción enmascarable (IRQ): una interrupción de hardware que puede ignorarse estableciendo un bit en una máscara de bits del registro de máscara de interrupción (IMR).
    • Interrupción no enmascarable (NMI): una interrupción de hardware que carece de una máscara de bit asociada, para que nunca pueda ser ignorada. Los NMI se utilizan para las tareas de mayor prioridad, como los temporizadores, especialmente los temporizadores de vigilancia.
    • Interrupción entre procesadores (IPI): un caso especial de interrupción que es generado por un procesador para interrumpir otro procesador en un sistema multiprocesador.
    • Interrupción de software: una interrupción generada dentro de un procesador mediante la ejecución de una instrucción. Las interrupciones de software se utilizan a menudo para implementar llamadas al sistema porque resultan en una llamada de subrutina con un cambio de nivel de anillo de CPU.
    • Interrupción espuria: una interrupción de hardware que no es deseada. Por lo general, se generan por condiciones del sistema, como interferencias eléctricas en una línea de interrupción o a través de hardware diseñado incorrectamente.

    Conclusión

    Esta sección ha introducido a los alumnos a las diferentes categorías de interrupciones de E/S, es decir, las interrupciones de hardware y software

    Evaluación

    Describa brevemente las interrupciones de hardware y software

    Interrupciones de hardware

    Las interrupciones de hardware son generadas por ciertos eventos que surgen durante la ejecución de un programa. Este tipo de interrupciones es manejado en su totalidad por el hardware y no es posible modificarlas.

    Un claro ejemplo de este tipo de interrupciones es la que realiza la actualización del contador del reloj interno de la computadora, el hardware realiza la llamada a esta interrupción varias veces durante un segundo con el fin de mantener el tiempo actualizado.

    Interrupciones de Hardware

    Las interrupciones externas son generadas por dispositivos periféricos, como teclados, impresoras, tarjetas de comunicación, etc. También son generadas por coprocesadores. No es posible desactivar las interrupciones externas.

    Estas interrupciones no se envían directamente a la CPU sino que se envían a un circuito integrado cuya función es manejar exclusivamente este tipo de interrupciones

    Interrupciones de software

    Las interrupciones del software pueden ser activadas directamente por el ensamblador invocando el número de la interrupción deseada con la Instrucción INT.

    El uso de interrupciones nos ayuda en la creación de programas y al usarlos nuestros programas se acortan. Es más fácil entenderlos y suelen tener un mejor rendimiento principalmente debido a su menor tamaño. Este tipo de interrupciones se pueden separar en dos categorías: las interrupciones DOS del sistema operativo y las interrupciones del BIOS.


    This page titled 4.2: Mecanismos de interrupción- reconocimiento de vector, y prioridad de interrupción is shared under a CC BY-SA license and was authored, remixed, and/or curated by Harrison Njoroge (African Virtual University) .