
Voy a esbozar mi comprensión de ambos. Busqué en Google pero no estoy seguro de mis conocimientos.¡Por favor corrigeme!
El programador de eventos del sistema operativo genera una interrupción de hardware para reasignar el tiempo de la CPU para otro proceso. ¿Es esto cierto?
La interrupción del software se puede generar a partir de un programa en ejecución que quiere, por ejemplo, leer un archivo, y para eso necesitamos reasignar la CPU para la llamada del sistema operativo apropiado. ¿Es esto cierto?
¿Existe otro tipo de interrupciones de software/hardware?
Respuesta1
Las interrupciones de hardware y software se diferencian principalmente por cómo se generan: las interrupciones de hardware son generadas por hardware, por ejemplo, un temporizador, teclado, tarjeta de red, etc., mientras que las interrupciones de software son activadas por una instrucción de software especial (por ejemplo int 0x80
). También hay una diferencia relacionada en su función: se supone que los manejadores de interrupciones de hardware manejan eventos de hardware (por ejemplo, un paquete que llega a una interfaz de red), mientras que se supone que los manejadores de software sirven otra pieza de software, generalmente una aplicación, que ejecutó la instrucción de interrupción. (por ejemplo, para solicitar al kernel que acceda a un archivo en nombre de la aplicación).
De hecho, el programador del sistema operativo utiliza la interrupción del temporizador para recuperar periódicamente el control y realizar diversas operaciones (por ejemplo, contabilidad de recursos, cambios de contexto).
Generar una interrupción de software es una forma de comunicarse con el kernel y puede usarse en algunas plataformas para invocar llamadas al sistema.