2009-11-23 50 views
14

¿Cuál es la diferencia entre la interrupción y un evento?Diferencia entre interrupción y eventos

+2

depende del contexto. ¿Estás hablando de un lenguaje de programación? sistema operativo ? hardware? Los términos interrupción y evento a menudo dependen del contexto. –

+0

kernel del sistema operativo son las etiquetas. Entonces, creo que eso explica el contexto. – claws

+0

Vea también: http://stackoverflow.com/q/4835714/119790 –

Respuesta

27

Estos dos conceptos ofrecen formas para que el "sistema/programa" trate varias "condiciones" que tienen lugar durante el desenrollado normal de algún programa, y ​​que pueden requerir que el "sistema/programa" haga otra cosa, antes de regresar (o no ...) a la tarea original. Sin embargo, aparte de esto similitud funcional, son conceptos muy utilizados en los distintos contextos, a niveles distintos.

interrupciones proporcionar un dispositivo de de bajo nivel a interrumpir el desenrollado normal de cualquier pedazo de programa de la CPU está trabajando en un un momento dado, y para tener las instrucciones de procesamiento de la CPU inicio en otra dirección. Las interrupciones son útiles para manejar diversas situaciones que requieren el procesamiento inmediato de la CPU (por ejemplo, para manejar las pulsaciones de teclas, o la llegada de nuevos datos en un canal de comunicación en serie).

Muchas interrupciones son producidas por hardware (por algún dispositivo electrónico que cambia la polaridad en uno de los pines de la CPU), pero también hay interrupciones de software causadas por el propio programa que invoca una instrucción particular. (o también por el hecho de que la CPU detecta algo desviado con respecto a sí mismo o al programa en ejecución).

Una muy famosa interrupción INT 0x21 es el programa que invoca [d] para llamar a los servicios de MS-DOS.

interrupciones se envían típicamente a través de tablas de vectores, por lo que la CPU tiene una ubicación particular en memoria que contiene una matriz de direcciones [donde particulares manejador de interrupciones residen]. Al modificar el contenido de la tabla de interrupciones [si así lo permitió ...], un programa puede redefinir qué manejador particular, se pidió un número de interrupción dado.

Eventos, por el contrario, son sistema/de nivel de idioma "mensajes" que pueden ser utilizados para significar una variedad de hardware o de software (situaciones que haría uso de la palabra evento), como hace clic del ratón, las entradas del teclado, sino también las situaciones de nivel de aplicación, tales como "Nuevo registro insertado en la base de datos" o las solicitudes altamente digeridos y mensajes, que se utilizan en los programas modulares para la comunicación/solicitudes entre las distintas partes del programa.

A diferencia de las interrupciones con su comportamiento [relativamente simple] que está totalmente definido por la CPU, existen varios sistemas de sistemas de eventos, a nivel del sistema operativo, así como varios marcos (por ejemplo: MS Windows, JavaScript, .NET , Marcos de GUI como QT, etc.). Todos los sistemas de eventos, mientras que diferentes en sus implementaciones, típicamente comparten propiedades comunes tales como

  • el concepto de un controlador, que es una función/método particular del programa que está designado para manejar tipos particulares de evento de un evento particular fuentes.
  • el concepto de un evento, que es una estructura [típicamente pequeña] que contiene información sobre el evento: su tipo, su fuente, parámetros personalizados (cuya semántica depende del tipo de evento)
  • cola donde se insertan los eventos fuentes y encuestados por consumidores/manejadores (o más precisamente por despachadores, dependiendo del sistema ...)
1

Las interrupciones se implementan dentro del hardware (CPU) para interrumpir el flujo generalmente lineal de un programa. Esto es importante para eventos externos como la entrada de teclado, pero también para interrumpir programas en sistemas operativos multitarea.

Los eventos son un medio para la ingeniería de software y, probablemente, los más conocidos son los kits de herramientas GUI. Allí, el kit de herramientas/sistema operativo envuelve los sucesos como las pulsaciones de teclas o la entrada del mouse en "eventos". Esos son luego enviados a programas que fueron a registrarse para recibir tales eventos. Es tal vez un poco como un sistema de correo.

para comparar ambos, desde una vista del programa de espacio de usuario:

-Interrupts obligaría a su programa para detener el fin de dejar un cierto código de nivel inferior ejecutar (como el código del sistema operativo)

-Eventos por lo general son enviados para usted desde el código de nivel inferior y la ejecución de activación de su código

Cuestiones relacionadas