Llamada al sistema vs interrupción
Un procesador típico ejecuta instrucciones una por una. Pero puede haber ocasiones en que el procesador tenga que detenerse temporalmente y mantener la instrucción actual y ejecutar algún otro programa o segmento de código (que reside en algún otro lugar). Después de hacer esto, el procesador vuelve a la ejecución normal y continúa desde donde dejó. Una llamada del sistema y una interrupción son tales ocasiones. Una llamada del sistema es una llamada a una subrutina integrada en el sistema. Una interrupción es una interrupción de control de programa causada por eventos de hardware externos.
¿Qué es una llamada del sistema??
Las llamadas del sistema proporcionan a los programas que ejecutan en la computadora una interfaz para hablar con el sistema operativo. Cuando un programa necesita solicitar un servicio (para el cual no tiene permiso) desde el núcleo del sistema operativo, utiliza una llamada del 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 tiene que usar llamadas al sistema.
Que es una interrupción?
Durante la ejecución normal de un programa de computadora, podría haber eventos que pueden hacer 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 llaman (simplemente) interrupciones, mientras que las interrupciones de software se denominan excepciones o trampas. Una vez que se plantea 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 planteadas por la interrupción.
Como se mencionó anteriormente, el término interrupción generalmente se reserva para interrupciones de hardware. Son interrupciones de control de programas causadas por eventos de hardware externos. Aquí, los medios externos externos a la CPU. Las interrupciones de hardware generalmente provienen de muchas fuentes diferentes, como chip de 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, tarjeta de video, etc.). Eso significa que las interrupciones de hardware casi nunca ocurren debido a algún evento relacionado con el programa de ejecución. Por ejemplo, un evento como una tecla Presione en el teclado por parte del usuario, o un tiempo de tiempo de temporizador de hardware interno puede elevar este tipo de interrupción y puede informar a la CPU que un determinado dispositivo necesita atención. En una situación como esa, la CPU detendrá lo que sea que estuviera haciendo (yo.mi. Pausa el programa actual), proporciona el servicio requerido por el dispositivo y volverá al programa normal.
¿Cuál es la diferencia entre la llamada del sistema y la interrupción??
La llamada del sistema es una llamada a una subrutina integrada en el sistema, mientras que la interrupción es un evento, lo que hace que el procesador mantenga la ejecución temporal temporalmente. Sin embargo, una diferencia importante es que las llamadas del sistema son sincrónicas, mientras que las interrupciones no son. Eso significa que las llamadas del sistema ocurren en un tiempo fijo (generalmente determinado por el programador), pero las interrupciones pueden ocurrir en cualquier momento debido a un evento inesperado, como una tecla, presione el teclado por parte del usuario. Por lo tanto, cuando se produce una llamada al sistema, el procesador solo tiene que recordar dónde volver, pero en caso de interrupción, el procesador debe recordar tanto el lugar para regresar como el estado del sistema. A diferencia de una llamada del sistema, una interrupción generalmente no tiene nada que ver con el programa actual.