Pregunta

Quiero saber que se enrosca interrupciones procesos de dispositivos. ¿Qué pasa cuando hay una interrupción cuando un hilo se está ejecutando en modo de usuario? También lo hacen otros subprocesos de usuario tienen la oportunidad de correr cuando el sistema está procesando una interrupción?

Por favor, me sugieren algún material de referencia que describe cómo las interrupciones son manejadas por las ventanas.

¿Fue útil?

Solución

Dispositivo interrumpe sí son (generalmente) procesado por cualquier hilo tenido la CPU que tuvo la interrupción, pero en un anillo 0 y en un nivel de protección diferente. Esto limita algunas de las acciones del manejador de interrupciones puede tomar, porque la mayoría de las veces el hilo actual no estará relacionada con el hilo que está a la espera para el evento suceda que la interrupción se indica.

El núcleo en sí es de código cerrado, y sólo documentado a través de su API interna. API que se expone a los autores de controladores de dispositivo, y se describe en los kits de desarrollo de pilotos.

Algunos recursos para empezar:

  • Cualquier edición de Microsoft Windows Internals por Solomon y Russinovich. La actual parece ser la 4ª edición, pero incluso una vieja edición será de ayuda.

  • El DDK de Windows, que ahora se llama la WDK . Su documentación es disponibles en línea también. Asegúrese de leer la Kernel Guía de diseño de modo ...

  • Sysinternals dispone de herramientas y artículos de sonda a y explicar el comportamiento del núcleo. Esto solía ser un sitio independiente hasta que Microsoft se cansó de Mark Russinovich pareciendo saber más acerca de cómo el núcleo trabajó de lo que hizo. ; -)

Tenga en cuenta que el código fuente de muchos de los controladores de dispositivos comunes están incluidos en el DDK en las muestras. Aunque las versiones de producción son casi ciertamente diferente, la lectura de los conductores de la muestra puede responder a algunas preguntas, incluso si no se desea implementar un controlador usted mismo.

Otros consejos

Al igual que cualquier otro sistema operativo, Windows procesa las interrupciones en modo kernel, con un nivel de interrupción de prioridad elevada (creo que las llaman de IRPL, pero no sé lo que la "R" significa). Cualquier hilo usuario o de nivel inferior Kernel hilo que se ejecuta en la misma máquina se interrumpirá mientras que la solicitud de interrupción se procesa, y se reanudará cuando el procesamiento ineterrupt es completa.

Para obtener más información sobre el dispositivo interrumpe en Windows es necesario estudiar el desarrollo de controladores de dispositivos. Este es un asunto del lugar, no creo que usted puede encontrar muchos recursos útiles en la Web y puede que tenga que buscar un libro o un curso de formación.

De todos modos, la manija de Windows interrumpe con niveles de solicitud de interrupción (IRQLs) y procedimiento diferido llama . Una interrupción es manejado en el modo de Kernel, que se ejecuta en una prioridad mayor que el modo de usuario. Un controlador de interrupción adecuada tiene que reaccionar muy rápidamente. Sólo realiza las operaciones necesarias y absolutamente registra un Procedimiento Diferida llamada a ejecutar en el futuro. Esto sucederá, cuando el sistema está en una solicitud de interrupción de nivel.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top