Pergunta

Eu quero saber quais tópicos processa interrupções do dispositivo. O que acontece quando há uma interrupção quando um fio modo de usuário está executando? Também fazer outras threads do usuário ter a chance de ser executado quando o sistema está processando uma interrupção?

Por favor, me sugerir algum material de referência que descreve como as interrupções são manipuladas por janelas.

Foi útil?

Solução

interrupções do dispositivo em si são (geralmente) processado por qualquer segmento teve a CPU que levou a interrupção, mas em um anel 0 e em um nível de protecção diferente. Isso limita algumas das ações um manipulador de interrupção pode tomar, porque na maioria das vezes o thread atual não será relacionado para o segmento que está aguardando o evento acontecer que a interrupção está indicando.

O kernel em si é de código fechado, e só documentado através de sua API interna. Essa API é exposto a autores de driver de dispositivo, e descrito nos kits de desenvolvimento de motorista.

Alguns recursos para você começar:

  • Qualquer edição do Microsoft Windows Internals por Solomon e Russinovich. O atual parece ser a 4ª edição, mas mesmo uma edição de idade vai ajudar.

  • O Windows DDK, agora renomeada WDK . Sua documentação é disponíveis online também. Certifique-se de ler a Kernel Modo Design Guide ...

  • Sysinternals tem ferramentas e artigos para sonda a e explicar o comportamento do kernel. Isto costumava ser um site independente até que a Microsoft se cansou de Mark Russinovich parecendo saber mais sobre como o kernel trabalhado do que eles fizeram. ; -)

Note que o código fonte de muitos dos drivers de dispositivo comuns estão incluídas no DDK nas amostras. Embora as versões de produção são quase certamente diferente, lendo os drivers de exemplo podem responder a algumas perguntas, mesmo se você não quer implementar um motorista de si mesmo.

Outras dicas

Como qualquer outro sistema operacional, o Windows processa interrupções no modo kernel, com uma interrupção de prioridade elevado nível (eu acho que eles chamam IRPL de, mas eu não sei o que o "R" significa). Qualquer segmento de usuário ou de nível inferior thread do kernel rodando na mesma máquina será interrompida enquanto o pedido de interrupção é processado, e será retomado quando o processamento ineterrupt está completa.

Para saber mais sobre as interrupções de dispositivos no Windows que você precisa para estudar o desenvolvimento de driver de dispositivo. Este é um assunto de nicho, eu não acho que você pode encontrar muitos recursos úteis na Web e você pode ter que olhar para um livro ou um curso de formação.

De qualquer forma, as interrupções identificador do Windows com níveis solicitação de interrupção (IRQLs) e chamadas de procedimento deferidas . Uma interrupção é tratado no modo de núcleo, que é executado em uma prioridade mais elevada do que o modo de utilizador. Um manipulador de interrupção adequada precisa reagir muito rapidamente. Ele só executa as operações absolutamente necessárias e registra uma chamada de procedimento adiada para executar no futuro. Isso vai acontecer, quando o sistema está em um Pedido nível de interrupção.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top