Um dispositivo recebe atenção da CPU através de um processo chamado
Manuseio de interrupção . Aqui está um colapso:
1.
Solicitação de dispositivo: Um dispositivo periférico (como teclado, mouse, disco rígido, cartão de rede etc.) precisa da atenção da CPU. Isso acontece quando o dispositivo conclui uma operação (por exemplo, uma pressionamento de teclas, conclusão de transferência de dados) ou encontra um erro.
2.
Sinal de interrupção: O dispositivo envia um sinal * de interrupção (IRQ) * para a CPU. Esse sinal é normalmente enviado através de uma linha de hardware dedicada. A interrupção é essencialmente um sinal dizendo "Ei, CPU, eu preciso de você!"
3.
Controlador de interrupção: Antes de atingir a CPU diretamente, o IRQ geralmente passa por um *controlador de interrupção *. Este controlador gerencia as solicitações de interrupção de vários dispositivos, priorizando -os e garantindo que apenas uma interrupção seja tratada por vez. O controlador também pode executar o mascaramento de interrupção (ignorando certas interrupções) com base nas prioridades do sistema.
4.
Rotina de manuseio de interrupção: A CPU, ao receber o sinal de interrupção, interrompe sua execução atual (salvando seu estado) e salta para um manipulador de interrupção * predefinido * (ou rotina de serviço de interrupção - ISR). Esta é uma peça de código específica projetada para lidar com as solicitações desse dispositivo específico.
5.
Solicitação de serviço: O manipulador de interrupção examina a fonte da interrupção (qual dispositivo a gerou) e toma a ação apropriada. Isso pode envolver a leitura de dados do dispositivo, o envio de dados para o dispositivo ou o manuseio de uma condição de erro.
6.
retornar da interrupção: Após a manutenção da solicitação de interrupção, o manipulador de interrupção restaura o estado da CPU de antes da interrupção ocorrer e retorna o controle do programa que foi interrompido. A CPU retoma sua execução do ponto em que parou.
diferentes tipos de interrupções: *
interrupções de hardware: Gerado por dispositivos de hardware como os mencionados acima.
*
Interrupções de software: Gerado por instruções de software (por exemplo, `int` Instrução no x86). Eles são frequentemente usados para chamadas ou exceções do sistema.
prioridade e agendamento: A CPU e o controlador de interrupção gerenciam prioridades de interrupção. As interrupções de prioridade mais alta podem interromper as de menor prioridade. O agendador do sistema operacional desempenha um papel crucial no gerenciamento dessas interrupções e garantindo que os dispositivos críticos sejam atendidos prontamente. Um sistema de interrupção mal projetado pode levar à instabilidade do sistema ou perda de dados.
Em resumo, é uma interação coordenada de software de hardware, onde o dispositivo sinaliza a necessidade de atenção, o sistema prioriza e gerencia essa solicitação, e a CPU muda temporariamente seu foco para atender o dispositivo antes de retomar sua tarefa anterior.