Estoy estudiando x86 y sistemas de tiempo real, y tengo una pregunta, es decir:¿Qué sucede en la arquitectura x86 cuando ocurre una interrupción?
¿Qué pasos sigue x86 para manejar cualquier interrupción?
Estoy estudiando x86 y sistemas de tiempo real, y tengo una pregunta, es decir:¿Qué sucede en la arquitectura x86 cuando ocurre una interrupción?
¿Qué pasos sigue x86 para manejar cualquier interrupción?
Comience aquí con el Interrupt Descriptor Table. Básicamente, cuando ocurre una interrupción, el control de flujo salta a esta tabla y luego a lo que está en esta tabla. Además, creo que todos los registros se envían tan pronto como se produce la interrupción, pero no estoy 100% seguro de esto, ya que ha pasado mucho, mucho tiempo desde que resolví esto.
Cuando se produce una interrupción, la CPU hace lo siguiente:
La ISR deben hacer lo siguiente:
¿Se produce en la pila del programa de espacio de usuario o en alguna pila interna de kernel? –
Todos los registros y las banderas se presionan antes de que se produzca la interrupción y se reventan después de que finaliza el código de manejo de interrupciones. – nc3b
Sí, un poco lo que pensaba. En algunas de las cosas en las que he trabajado, has tenido que empujarte y estallar. Estaba bastante seguro de que x86 hizo esto por ti. –
Las banderas del procesador se presionan automáticamente, pero los otros registros no; cuando se envía, el ISR debe preservar explícitamente todos los registros que intente alterar. – ChrisW