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

Conteúdo apagado Conteúdo adicionado
Notei um erro de digitação - parênteses fora de contexto - e corrigi.
m
Linha 1:
{{apagar4|10 de novembro}}
{{Sem-fontes|data=maio de 2012| angola=| arte=| Brasil=| ciência=| geografia=| música=| Portugal=| sociedade=|1=|2=|3=|4=|5=|6=}}
Em [[Ciência da Computação]], uma '''interrupção''' é um sinal de um dispositivo que tipicamente resulta em uma troca de contextos, isto é, o [[processador]] para de fazer o que está fazendo para atender o dispositivo que pediu a interrupção.
Linha 8 ⟶ 7:
Interrupções permitem aos processadores modernos responder a eventos gerados por dispositivos enquanto outro trabalho está sendo realizado. Os processadores também oferecem instruções para permitir os processos dispararem ''interrupções de software'' (''traps''). Isso pode ser usado para implementar uma [[multitarefa cooperativa]].
 
== Resumo ==
 
Interrupções de hardware foram introduzidas como forma de evitar o desperdício de tempo valioso do processador em [[polling loops]], a espera de eventos externos. Eles podem ser implementados no hardware como um sistema distinto, com linhas de controle, ou podem ser integrados no subsistema da memória.
 
Linha 33 ⟶ 31:
O fenômeno em que o desempenho geral do sistema é severamente prejudicado pela quantidade excessiva de tempo de processamento gasto na manipulação da interrupção, é chamado de tempestade de interrupção (interrupt storm).
 
== Tipos de Interrupção ==
=== Nível Desencadeado (Level-Triggered) ===
 
===Nível Desencadeado (Level-Triggered)===
 
Essa interrupção é um classe de interrupções em que a presença de uma interrupção sem serviço é indicada por um nível alto (1), ou nível baixo (0), da linha de [[Pedido de interrupção|solução da interrupção]]. Um dispositivo deseja um sinal em uma linha de drives de interrupção e em seguida segue neste nível até a manutenção. Ele cessa afirmando a linha quando a CPU ordena que seja lida ou não a condição que fez o sinal de interrupção.
 
Linha 49 ⟶ 45:
A razão para isso foi o ganho de eficiência acima discutidos. (Versões mais recentes do [[Peripheral Component Interconnect|PCI]] permitem, e [[PCI Express]] requer o uso de interrupções de mensagens sinalizadas).
 
=== Borda-desencadeada (Edge-Triggered) ===
 
É uma classe de interrupção que é sinalizada pelo nível de transmisão sobre a linha de interrupção, quer seja uma borda de descida (1 a 0) ou uma borda de subida (0 a 1). Um dispositivo deseja um sinal a pulsos de drives de interrupção na linha e em seguida a libera para o seu estado de repouso. Se o pulso é muito curto para ser detectado pelo polled I/O em seguida, pode ser necessários hardwares especiais para detectar a borda (edge).
 
Linha 59 ⟶ 54:
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]].
 
=== Híbrido ===
 
Alguns sistemas usam sinalização hibrida de edge-triggered e level-triggered. O hardware não só procura por uma borda mas também verifica que se o sinal de interrupção está ativo por um certo período de tempo.
 
O uso comum da interrupção hibrida é para o NMI (non-maskable interrupt). Pois geralmente os sinais importantes NMIs – ou até mesmo catastróficos - eventos, uma boa implementação deste sinal tenta assegurar que a interrupção é válida, verificando se ele permanece ativo por um período de tempo. Esta abordagem de dois passos ajuda a eliminar interrupções falsas a partir do sistema afetado.
 
=== Mensagem sinalizada ===
 
Uma '''mensagem sinalizada de interrupção''', não usa uma linha de interrupção física. Em vez disso, um sinal do dispositivo é pedido por serviço enviando uma curta mensagem sobre algum meio de comunicação, normalmente [[Barramento|barramento do computador]]. A mensagem pode ser um tipo reservado para interrupções, ou pode ser de algum tipo pré-existente, como memória escrita.
 
Linha 77 ⟶ 70:
PCI Express, barramento computacional serial, usa exclusivamente mensagens de interrupção sinalizadas.
 
=== 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.
 
Linha 85 ⟶ 77:
A campainha de interrupção pode ser comparada a mensagens sinalizadas de interrupção, elas têm algumas similaridades.
 
== Dificuldades de compartilhamento com linhas de interrupção ==
 
Vários dispositivos de compartilhamento em linha de interrupção (de qualquer estilo de origem) agem como fonte falsa de interrupção em relação uns aos outros. Com muitos dipositivos em uma linha de cada trabalho (workload), as interrupções no serviço crescem em proporção ao quadrado do número de dispositivos. Não é, portanto, preferência para espalhar uniformemente dispositivos disponíveis as linhas de interrupção. Escassez de linhas de interrupção é um problema nos desenhos mais antigos do sistema onde as linhas de interrupção são distintos condutores físicos. Interrupções de mensagens sinalizadas, onde a linha de interrupção é virtual, são favorecidas em um novo sistema de arquitetura (como a [[PCI Express]]) e alivia este problema de forma considerável.
 
Alguns dispositivos com uma interface de programação mal desenhada não fornecem nenhuma maneira de determinar se eles têm os serviços solicitados. Eles podem trancar ou não o mal comportamento quando eles querem. Tais dispositvos não podem tolerar interrupções falsas, e também não podem tolerar o compartilhamento em linha de interrupção. Placas [[ISA]], muitas vezes devido ao projeto de construção barato, são verificados estes problemas. Tais dispositivos são cada vez mais raros, como a lógica de hardware se torna mais barato e novos sistemas de arquiteturas delegam interrupções partilháveis.
 
== Problemas de desempenho ==
 
Interrupções fornecem baixa sobrecarga e boa latência a baixa carga oferecida, mas desagradar significativamente a alta taxa de interrupção salvo cuidado que é tomado para evitar várias patologias. Trata-se de várias formas de [[livelocks]], quando o sistema gasta todo o seu tempo processando interrupções, com a exclusão de outras tarefas necessárias. Em condições extremas, um grande número de interrupções (como o tráfego de rede muito alta) podem parar completamente o sistema. Para evitar tais problemas, o sistema operacional deve programar a manipulação de interrupção de rede com o mesmo cuidado como cronogramas de execução de processos.
 
== Usos típicos ==
 
Usos tí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]]s ou [[Ethernet]]; sentido de teclas pressionadas; controle de motores; ou qualquer outra coisa que o equipamento deve fazer.
 
Linha 106 ⟶ 95:
 
Interrupções também são usadas em typeahead Features para o buffer de eventos como as teclas digitadas.
 
{{Sistema Operativo}}