O que determina se o Caps Lock responde ou não enquanto o computador está congelado?

15

Quando um computador não está respondendo de alguma forma, existem diferentes níveis de "congelamento".

Por exemplo, digamos que estou navegando na Web no meu PC ...

  1. Se a guia atual do navegador parar de responder (clicar / digitar não faz nada), talvez o navegador ainda o faça.

  2. Se o navegador inteiro estiver bloqueado, talvez o sistema operacional ainda esteja respondendo.

  3. Se a GUI do SO não responder, muitas vezes ainda posso alternar o Caps LockLED.

  4. Se Caps Locknão responder mais, devo assumir "congelamento máximo". Às vezes, porém, se eu esperar, o computador todo ainda poderá voltar ao normal depois de um tempo.


  • Se o Caps Lock não alternar mais, isso significa que o computador está "mais congelado do que na etapa 3"?

  • Faz sentido usar Caps Lockcomo teste final de "congelado"?

  • ... E se sim, qual é a diferença entre quando Caps Lockalterna e não? O que determina se Caps Lockresponde ou não ?

Bort
fonte
10
A resposta a Caps Lock, Num Lock e Scroll Lock exige que o sistema operacional ainda consiga reparar as interrupções (teclado). A resposta do LED AFAIK é gerada no ISR e nenhum processamento do espaço do usuário é necessário. Portanto, a incapacidade de executar esta operação indica uma condição grave. Quando esta condição dura mais do que alguns segundos e Ctrl-Alt-Del, também não são sensíveis, então eu tratá-lo como irrecuperável e bateu o reset ou poder swittch
serragem
Alguns programas fazem coisas divertidas com a tecla CapsLock, tornando a tecla CapsLock menos confiável para garantir. Eu usaria o Numlock neste caso, talvez como segundo teste. Por exemplo, no software Music Tracker, por exemplo, Milky Tracker, Fast Tracker e até OpenMPT, o CapsLock é usado para inserir uma nota e, como tal, o status da tecla CapsLock é capturado. Assim, o LED não acenderá uma vez pressionado, dando uma falsa sensação de congelamento.
LPChip
@LPChip - Esse material desagradável exigiria que o software de música ainda estivesse respondendo?
Bort
@Bort Depends. O sistema operacional ainda deve definir as chaves do programa, mas isso depende de como está programado e de como o programa trava. É possível que o programa não tenha travado, mas simplesmente não reaja a pressionamentos de teclas e cliques do mouse, mas ainda funciona totalmente. Nesse caso, o caps lock não mudaria de estado, nem o programa responderia. Mas ativar um programa diferente funcionaria normalmente.
precisa saber é

Respostas:

2

Você está basicamente respondendo sua própria pergunta durante sua pergunta, mas, para obter uma resposta, tentarei responder da melhor maneira possível.

Existem maneiras diferentes, algo pode ficar sem resposta.

Vamos supor que você esteja usando o Windows, embora o processo não seja tão diferente para outros sistemas operacionais.

Ao interagir com um programa, você clica ou digita enquanto o programa está focado.

Clicar ou digitar passa o mouse ou o teclado até a placa-mãe. O sistema operacional consultará o que está sendo digitado e como o mouse está sendo movido. Ele interpreta os sinais e interage com os programas de acordo.

Os atalhos do teclado serão enviados para o aplicativo ativo, a menos que uma tecla de atalho esteja com status global. Nesse caso, o sistema operacional executará uma ação diferente.

O sistema operacional também fará com que o programa entre outros programas funcione sem nenhuma interação. Por exemplo, quando você copia um arquivo do local 1 para o local 2, se você não digitar nada ou não mover o mouse, a operação de cópia do arquivo continuará.

Os sistemas operacionais modernos têm um recurso chamado Multi Tasking, que basicamente significa que ele percorre todos os programas muito rapidamente, dando a cada programa tempo para executar um ciclo em sua programação. Ao fazer isso, parece que todos os programas são executados ao mesmo tempo fluentemente. Nesse ciclo, o próprio sistema operacional também terá tempo de CPU.

Quando um programa executa muitos cálculos, a CPU está sendo mais utilizada. Quanto mais uma CPU estiver sendo utilizada, menos energia estará disponível para o restante do sistema, incluindo a alternância de todos os outros programas. Quando a CPU atinge 100% de utilização, o computador fica muito lento, pois aguarda o tempo da CPU para processar todas as atividades de todos os programas abertos. O sistema operacional normalmente impede que o computador congele, se isso acontecer, mas é possível que o computador possa congelar nessas ocasiões.

Quando um programa está sendo criado, é possível que exista um bug que faça com que o programa trave ou deixe de responder quando uma série de tarefas é executada.

Existem diferentes níveis de falta de resposta ao falar sobre erros do programa. É possível que o programa pare sua execução esperando que um determinado botão seja pressionado, mas esse botão apareceu fora da tela. O programa funciona normalmente, simplesmente não aceita a entrada do usuário e, como tal, parece estar parado enquanto tecnicamente não está.

É possível que o programa esteja executando uma operação de memória, mas a operação de memória se refere a um segmento diferente de memória, que novamente se refere a um segmento diferente de memória e, ao longo do caminho, acaba se referindo ao primeiro segmento de memória. Como resultado, um loop interminável é formado. O programa pensa que está executando uma ação simples e espera um resultado em alguns nanossegundos, mas causa um estouro ou estouro de buffer. O Windows 7 e superior têm várias proteções e fornecerão um erro crítico: "O programa parou de responder e travou. Enviar relatório de erro". Nas versões anteriores do Windows, dependendo da gravidade do loop de memória, isso poderia resultar em uma tela azul da morte.

O próprio sistema operacional é, em essência, também um programa e apresenta os mesmos problemas. É possível que um erro na programação possa fazer com que todo o sistema operacional não responda.

Por fim, parte do sistema operacional são programas usados ​​para se comunicar com o hardware. Estes são chamados de drivers. Assim como os programas normais, um driver também pode travar e deixar de responder, embora as chances de isso acontecer sejam menos prováveis. É possível que o driver do teclado trave e faça com que o teclado pare de responder, enquanto o mouse ainda funciona.

O sistema operacional geralmente detecta problemas no driver e tenta reiniciar o driver. Dependendo de quão bem o driver foi programado, determina quanto o usuário encontra impedindo a falha. Às vezes, isso pode causar um tremor na tela e nada mais; às vezes, um pop-up é exibido indicando que o driver foi travado e reiniciado.

Os drivers Plug and Play geralmente são estáveis ​​e não travam. Drivers personalizados para hardware específico podem falhar com mais facilidade porque as chances são maiores de que alguns bugs ainda não foram encontrados.

Com o exposto acima, é hora de responder à pergunta.

Conforme indicado, uma falha pode ocorrer por diferentes motivos e com diferentes gravidades. Se a tecla CapsLock disparar, a luz do LED requer duas coisas. Requer que o driver esteja funcionando e que o sistema operacional dê tempo para processar o ciclo de programação do driver (a parte de multitarefa mencionada anteriormente)

Se os dois forem verdadeiros, pressionar a tecla Capslock fará o seguinte:

A tecla está sendo pressionada no teclado e seu sinal é enviado para a placa-mãe. O driver do sistema operacional explica ao sistema operacional o que acontece e o driver envia uma mensagem de volta ao teclado informando que o estado do LED deve mudar para seu novo estado. O sistema operacional usará essas informações para digitar texto em maiúsculas. Alguns programas, no entanto, desligam a tecla LED enviando um segundo sinal de capslock ao driver. Dependendo do teclado, a luz CapsLock pode nunca acender, se esse for o caso.

Se o driver não obtiver seu ciclo diretamente depois de pressionar o caps lock, o LED não mudará. Mas é possível que o sistema esteja muito lento por algum motivo e o ciclo esteja atrasado. Nesse caso, pode acontecer que pressionar o capslock ou o numlock não altere imediatamente o estado do LED, mas depois de um ou dois segundos.

Por fim, é possível que, por algum motivo no nível do sistema operacional, aguarde o ciclo de programação dos drivers porque aguarda alguma coisa. Se for esse o caso, é possível que o mouse ainda possa ser movido, mas o restante parece estar congelado.

Dado que o PC estará com sérios problemas se as funções normais do LED do teclado não funcionarem após 5 segundos, pode-se supor com segurança que o sistema travou gravemente e não pode ser recuperado.

Existem outras duas teclas, a saber, Scroll Lock e Numlock. Dessas três chaves, o Numlock é a única chave que outros programas provavelmente não abusarão devido à natureza do que a chave faz. É mais confiável usar o numlock para testar se o sistema responde ou não ao capslock ou ao scroll lock, porque alguns programas tendem a usar essas teclas para acionar uma função diferente e, como tal, geralmente desativam o status do LED, o que o torna menos confiável para testar com Capslock ou scroll lock e mais confiável para testar com o numlock.

LPChip
fonte
Minha pergunta final foi sobre [o que determina se o LED Caps Lock responde]. Secundariamente, era [se é apropriado usar o Caps Lock para testar o "ponto sem retorno"]. Não sei ao certo de que maneira você sugere que eu respondi minha própria pergunta. Minha pergunta continha apenas uma hipótese especulativa, sem dados reais ou teoria verdadeira envolvida. Acredito que sua resposta fortaleça meu uso proposto do Caps Lock, explicando os mecanismos de nível inferior.
Bort
@Bort Eu editei minha pergunta para torná-la mais clara. Tentei responder à sua pergunta, mas senti a necessidade de explicar como tudo funciona, a fim de estabelecer uma base para o porquê das coisas serem assim. Caso contrário, é visto como minha opinião e não muito baseado em fatos.
precisa