No estoy seguro si entiendo el concepto de interrupciones de hardware y software.
Si entiendo correctamente, el propósito de una interrupción de hardware es llamar la atención de la CPU, parte de la implementación de la multitarea de la CPU.
- Entonces, ¿qué emite una interrupción de hardware? ¿Es el proceso del controlador de hardware?
- En caso afirmativo, ¿dónde se ejecuta el proceso del controlador de hardware? Si se está ejecutando en la CPU, entonces no tendrá que llamar la atención de la CPU por interrupción de hardware, ¿verdad? Entonces, ¿se está ejecutando en otro lugar?
- ¿Una interrupción de hardware interrumpe la CPU directamente, o primero se pone en contacto con el proceso del kernel y el proceso del kernel luego contacta / interrumpe la CPU?
Por otro lado, creo que el propósito de una interrupción de software es que un proceso que se ejecuta actualmente en una CPU solicite algunos recursos.
- ¿Cuáles son los recursos? ¿Están todos en forma de procesos en ejecución? Por ejemplo, ¿el proceso del controlador de CPU y los procesos del controlador de memoria representan recursos de CPU y memoria? ¿El proceso del controlador de los dispositivos de E / S representa los recursos de E / S? ¿Hay otros procesos en ejecución que el proceso quisiera comunicar también con recursos?
- En caso afirmativo, ¿una interrupción de software contacta los procesos (que representan los recursos) indirectamente a través del proceso del kernel? ¿Es cierto que, a diferencia de una interrupción de hardware, una interrupción de software nunca interrumpe directamente la CPU, sino que interrumpe / contacta el proceso del kernel?