Interrupção: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
m Typo fixing, replaced: as vezes → às vezes (3), typos fixed: tipicos → típicos, periodo → período utilizando AWB (8853)
Linha 54:
Vários dispositivos podem compartilhar uma linha de interrupção de borda-desencadeada (Edge-Triggered) se forem designados para isso. A linha de interrupção deve ter resistores pull down e pull up, para que quando não ativamente conduzido, pouse em um estado particular. Dispositivos de interrupção de sinalização de breve condução da linha para o seu estado de non-default, e deixar a linha flutuar (o não ativamento da condução) quando não sinalizar uma interrupção. Esse tipo de conexão é também referida como [[coletor aberto]]. A linha, em seguida, carrega todos os pulsos gerados por todos os dispositivos. (Isto é análogo ao cabo de tração em alguns ônibus e carros que qualquer passageiro pode puxar para sinalizar ao motorista que eles estão pedindo uma parada.) Entretanto, interrupção de pulsos a partir de diferentes dispositivos podem mesclar se ocorrerem próximos no tempo. Para evitar perder interrupções a CPU pode acionar a trailing edge do pulso (Por exemplo, a borda de subida, se a linha é puxada para cima e conduzido de baixo). Depois de detectar uma interrupção a CPU pode verificar todos os dispositivos por necessidade de serviço.
 
Interrupções da Edge-triggered não sofrem os problemas que as interrupções do level-triggered tem com o compartilhamento. Serviços de dispositvos de baixa-prioridade podem ser arbitrariamente adiados, e interrupções serão continuas para serem recebidas a partir de dispositivos de alta-prioridade que estão sendo atendidos. Se existir um dispositivo que a CPU não sabe como atender, ele pode causar uma interrupção falsa ou falsas interrupções periódicas, mas ela não interfere na sinalização de interrupção de outros dispositivos. Entretanto, isto é razoavelmente fácil para uma interupção edge-triggered ser perdida – por exemplo, se as interupções tem que ser mascaradas por um periodoperíodo – e a menos que exista algum tipo de hardware latch (trava) que grave o evento, é impossível recuperar. Tais problemas causados em muitos “travamentos” no hardware dos primeiros computadores porque o processador não sabia o que era preciso fazer. Hardwares modernos tem muitas vezes um ou mais registros de estado de interrupção que travam os pedidos de interrupção: os softwares de interrupção bem escritos edge-driven muitas vezes verificam esses registros para garantir que os eventos não sejam peridos.
 
A antiga [[ISA|Industry Standard Architecture]] (ISA) usa interrupções edge-triggered mas não delega que os dispositivos sejam ábeis para o compartilhamento entre eles. A [[Interface paralela|porta paralela]] também usa interrupções de edge-triggered. Muitos dispositvos antigos assumem que tem uso exclusivo de suas linhas de interrupção, fazendo isto eletricamente inseguro para o compartilhamento. No entanto, placas-mãe ISA incluem resistores pull-up nas linhas IRQ, dispositivos tão bem comportados compartilhados com interrupções [[ISA]].
Linha 78:
===Campainha===
 
Em uma analogia com o botão de pressão aplicado a sistemas de computador, o termo '''campainha''' ou '''campainha de interrupção''', é muitas vezes para descrever um mecanismo pelo qual um sistema de [[software]] pode sinalizar ou verificar um dispositivo de [[hardware]] que tenha algum trabalho para ser feito. Normalmente, o sistema de software irá colocar os dados em algum lugar conhecido mutuamente concordando acerca do(s) local(ais) da memória, e “tocar a campainha” por escrever para um local de memória diferente. Esse local de memória diferente é muitas vezes é chamado de região da campainha, e pode até haver várias campainhas com diferentes finalidades nesta região. Este ato de escrever para a região da memória da campainha da qual “tocar o sino” e notificar o dispositivo de hardware que os dados estão prontos e esperando. Os dispositivos de hardware que agora são conhecidos, os dados são válidos e sem postos em prática. Os dados são normalmente gravados em um [[disco rígido]], enviados através de uma [[Rede de computadores|rede]], [[Encriptação|criptografados]], etc.
 
O termo '''campainha de interrupção''' é geralmente um equivoco. Ele é similar a interrupção porque ele causa algum trabalho para ser feito pelos dispositivos, entretanto a região da campainha é, asàs vezes implementado como uma região ''polled'', asàs vezes a região da campainha escreve através de registros de dispositivos físicos, e asàs vezes a região da campainha está diretamente conectada aos registros de dispositivos físicos. Quando escritos ou diretamente aos [[Registro|registrosregistro]]s de dispositivos físicos, o que pode, mas não necessariamente causar uma real interrupção para ocorrer na [[Unidade central de processamento|CPU]]. Se houver uma.
 
A campainha de interrupção pode ser comparada a mensagens sinalizadas de interrupção, elas têm algumas similaridades.
Linha 96:
==Usos típicos==
 
Usos tipicostípicos de interupções incluem os seguintes: system timer (temporizador so sistema), disks I/O (discos E/S), Power-off signal (liga-desliga o sinal), e [[Tratamento de exceção|traps]] (armadilhas). Outras interrupções para transferir dados usando [[UART|UARTs]]s ou [[Ethernet]]; sentido de teclas pressionadas; controle de motores; ou qualquer outra coisa que o equipamento deve fazer.
 
Um [[temporizador|timer]] de sistema clássico gera interrupções periódicas de um contador ou o power-line. O manipulador de interrupção conta as interrupções para manter o tempo. A interrupção do timer também pode ser usado por um agendador de tarefas do sistema operacional para reagendar as prioridades de [[Processos da gerência de projetos|processos]] em execução. Contadores são populares, mas alguns computadores mais antigos utilizadam a freqüência da linha de energia, já que as empresas de energia na maioria dos países ocidentais controlam a freqüência da corrente elétrica com um [[relógio atômico]] muito preciso.
Linha 106:
Interrupções também são usadas em typeahead Features para o buffer de eventos como as teclas digitadas.
{{Sistema Operativo}}
 
[[Categoria:Arquitetura de computadores]]