Como os teclados manipulam entradas simultâneas? [fechadas]

0

Ultimamente tenho trabalhado com conceitos básicos de simultaneidade em programação. Um dos pensamentos que me veio à mente foram entradas simultâneas de teclados. Na programação, um método ou função é chamado por meio de um ouvinte de evento que passa apenas uma tecla pressionada de cada vez. Um programador tem que programar o código de uma certa maneira para lidar com pressionamentos de teclas simultâneos / múltiplos. Eu estou querendo saber como o hardware processa uma entrada "verdadeiramente simultânea". Existe algum tipo de mecanismo que priorize automaticamente as entradas percebidas em uma determinada ordem?

    
por Bennett Yeo 14.09.2014 / 18:01

2 respostas

0

Responda à sua pergunta específica sobre as entradas do teclado. O computador recebe pressionamentos de teclas ao longo de um link serial, portanto, os pressionamentos de tecla não são recebidos simultaneamente, pois devem ser - er - serial.

No teclado, há um pequeno processador que lê as teclas pressionadas e as envia para o computador no link serial. Vamos considerar o caso em que alguém tenta pressionar duas teclas "simultaneamente" (o que quer que isso realmente signifique em termos de precisão temporal). O processador do teclado está digitalizando uma matriz de entradas digitais que fornecem as teclas pressionadas. Ele sempre verá uma impressora antes da outra, simplesmente por causa de sua digitalização pelas teclas. Mesmo nesta varredura leva microssegundos, uma impressora será detectada antes da outra.

É realmente possível que, devido a esta varredura, as impressoras possam estar muito próximas, mas a segunda é vista em primeiro lugar.

No campo mais geral dos controles de processo em tempo real, é provável que um mecanismo de interrupção seja empregado, pelo qual as entradas interrompem um processador para informá-lo de um evento. Novamente, mesmo que os eventos não possam ser separados no tempo, uma interrupção chegará ao processador antes do outro.

O software baseado em eventos escrito decentemente deve permitir que dois eventos sejam detectados muito próximos e possam ser vistos na sequência inversa.

Outras técnicas de sequenciamento podem ser encontradas em casos de processadores de E / S que se reportam a um computador controlador com um protocolo que agrega entradas efetivamente.

Em resumo, pode-se obter uma entrada verdadeiramente simultânea - Não.

    
por 15.09.2014 / 15:44
0

Cada pressão ou liberação da tecla será transferida do teclado para o computador através do cabo USB, portanto, não há como o teclado enviar operações de teclas simultâneas verdadeiras. O teclado apenas envia mensagens quando uma tecla é pressionada ou liberada. O computador informará ao aplicativo que duas teclas serão pressionadas se uma mensagem "chave pressionada" chegar antes da mensagem "chave liberada" da última tecla pressionada.

    
por 15.09.2014 / 15:07