Diferencia entre llamada al sistema e interrupción

Diferencia entre llamada al sistema e interrupción
Diferencia entre llamada al sistema e interrupción

Video: Diferencia entre llamada al sistema e interrupción

Video: Diferencia entre llamada al sistema e interrupción
Video: Difference between Adobe Media Encoder CS4, CS5 and CS5.5 2024, Diciembre
Anonim

Llamada al sistema frente a interrupción

Un procesador típico ejecuta las instrucciones una por una. Pero puede haber ocasiones en las que el procesador tenga que detenerse temporalmente y retener la instrucción actual y ejecutar algún otro programa o segmento de código (que resida en algún otro lugar). Después de hacer esto, el procesador vuelve a la ejecución normal y continúa desde donde lo dejó. Una llamada al sistema y una interrupción son tales ocasiones. Una llamada al sistema es una llamada a una subrutina integrada en el sistema. Una interrupción es una interrupción del control del programa provocada por eventos de hardware externos.

¿Qué es una llamada al sistema?

Las llamadas al sistema brindan a los programas que se ejecutan en la computadora una interfaz para comunicarse con el sistema operativo. Cuando un programa necesita solicitar un servicio (para el que no tiene permiso) desde el núcleo del sistema operativo, utiliza una llamada al sistema. Los procesos a nivel de usuario no tienen los mismos permisos que los procesos que interactúan directamente con el sistema operativo. Por ejemplo, para comunicarse con un dispositivo de E/S externo o para interactuar con cualquier otro proceso, un programa debe usar llamadas al sistema.

¿Qué es una interrupción?

Durante la ejecución normal de un programa de computadora, puede haber eventos que hagan que la CPU se detenga temporalmente. Eventos como este se llaman interrupciones. Las interrupciones pueden ser causadas por fallas de software o hardware. Las interrupciones de hardware se denominan (simplemente) Interrupciones, mientras que las interrupciones de software se denominan Excepciones o Trampas. Una vez que se genera una interrupción (software o hardware), el control se transfiere a una subrutina especial llamada ISR (rutina de servicio de interrupción) que puede manejar las condiciones que genera la interrupción.

Como se mencionó anteriormente, el término interrupción generalmente se reserva para las interrupciones de hardware. Son interrupciones del control del programa causadas por eventos de hardware externo. Aquí, externo significa externo a la CPU. Las interrupciones de hardware generalmente provienen de muchas fuentes diferentes, como un chip temporizador, dispositivos periféricos (teclados, mouse, etc.), puertos de E/S (serie, paralelo, etc.), unidades de disco, reloj CMOS, tarjetas de expansión (tarjeta de sonido, video). tarjeta, etc.). Eso significa que las interrupciones de hardware casi nunca ocurren debido a algún evento relacionado con el programa en ejecución. Por ejemplo, un evento como la pulsación de una tecla en el teclado por parte del usuario, o un tiempo de espera del temporizador de hardware interno puede generar este tipo de interrupción e informar a la CPU que un determinado dispositivo necesita atención. En una situación como esa, la CPU dejará de hacer lo que estaba haciendo (es decir, detiene el programa actual), brinda el servicio requerido por el dispositivo y vuelve al programa normal.

¿Cuál es la diferencia entre llamada al sistema e interrupción?

La llamada al sistema es una llamada a una subrutina integrada en el sistema, mientras que la interrupción es un evento que hace que el procesador retenga temporalmente la ejecución actual. Sin embargo, una diferencia importante es que las llamadas al sistema son sincrónicas, mientras que las interrupciones no lo son. Eso significa que las llamadas al sistema ocurren en un momento fijo (generalmente determinado por el programador), pero las interrupciones pueden ocurrir en cualquier momento debido a un evento inesperado, como la presión de una tecla en el teclado por parte del usuario. Por lo tanto, cada vez que ocurre una llamada al sistema, el procesador solo tiene que recordar a dónde regresar, pero en caso de una interrupción, el procesador debe recordar tanto el lugar al que regresar como el estado del sistema. A diferencia de una llamada al sistema, una interrupción generalmente no tiene nada que ver con el programa actual.

Recomendado: