Co decyduje o tym, czy Caps Lock reaguje, gdy komputer jest zawieszony?


15

Gdy komputer nie reaguje w jakiś sposób, występują różne poziomy „zamrożenia”.

Załóżmy na przykład, że przeglądam sieć na komputerze ...

  1. Jeśli bieżąca karta przeglądarki przestanie odpowiadać (klikanie / pisanie nic nie robi), być może przeglądarka nadal.

  2. Jeśli cała przeglądarka jest zablokowana, być może system operacyjny nadal odpowiada.

  3. Jeśli interfejs GUI systemu operacyjnego nie odpowiada, często nadal mogę przełączać Caps Lockdiodę LED.

  4. Jeśli Caps Locknie odpowiada, muszę założyć „maksymalne zamrożenie”. Czasami jednak, jeśli poczekam, cały komputer może po pewnym czasie wrócić do normy.


  • Jeśli Caps Lock już się nie przełącza, czy to oznacza, że ​​komputer jest „bardziej zamrożony niż w kroku 3”?

  • Czy ma sens zastosowanie Caps Lockjako końcowy test „zamrożonego”?

  • ... A jeśli tak, to jaka jest różnica między Caps Lockprzełączaniem a przełączaniem? Co decyduje o tym, czy Caps Lockodpowiada?


10
Reakcja na Caps Lock, Num Lock i Scroll Lock wymaga, aby system operacyjny mógł nadal obsługiwać przerwania (klawiaturowe). Odpowiedź AFAIK LED jest generowana w ISR i przetwarzanie przestrzeni użytkownika nie jest wymagane. Zatem niemożność wykonania tej operacji wskazuje na poważny stan. Kiedy ten stan trwa dłużej niż kilka sekund, a Ctrl-Alt-Del również nie odpowiada, traktuję to jako niemożliwe do odzyskania i uderzam w reset lub wyłącznik zasilania
trociny

Niektóre programy robią fajne rzeczy za pomocą klawisza CapsLock, dzięki czemu klawisz CapsLock jest mniej niezawodny. W tym przypadku użyłbym Numlocka, może jako drugiego testu. Na przykład w oprogramowaniu do śledzenia muzyki, na przykład Milky Tracker, Fast Tracker, a nawet OpenMPT, CapsLock służy do wstawiania nuty i jako taki zostaje uchwycony status klawisza CapsLock. W związku z tym dioda LED nie włącza się po naciśnięciu, co daje fałszywe poczucie zamrożenia.
LPChip

@LPChip - Czy te funky wymagałyby, aby oprogramowanie muzyczne nadal reagowało?
Bort

@Bort Zależy. System operacyjny nadal musi położyć klucze do programu, ale zależy to od sposobu jego zaprogramowania i zawieszenia programu. Możliwe, że program się nie zawiesił, ale po prostu nie reaguje na naciśnięcia klawiszy i kliknięcia myszą, ale nadal działa w pełni. W takim przypadku Caps Lock nie zmieni stanu ani program nie zareaguje. Ale aktywacja innego programu działałaby normalnie.
LPChip

Odpowiedzi:


2

Zasadniczo odpowiadasz na swoje pytanie w trakcie pytania, ale dla uzyskania odpowiedzi postaram się odpowiedzieć na nie z jak najlepszej strony.

Istnieją różne sposoby, coś może przestać reagować.

Załóżmy, że używasz systemu Windows, chociaż proces ten nie różni się tak bardzo w przypadku innych systemów operacyjnych.

Kiedy wchodzisz w interakcję z programem, robisz to, klikając lub pisząc, gdy program jest aktywny.

Kliknięcie lub pisanie przechodzi za pomocą myszy lub klawiatury na płytę główną. System operacyjny zapyta, co jest wpisywane i jak porusza się mysz. Odpowiednio interpretuje sygnały i współdziała z programami.

Skróty klawiaturowe będą wysyłane do aktywnej aplikacji, chyba że zostanie naciśnięty klawisz skrótu o statusie globalnym. W takim przypadku system operacyjny wykona inną akcję.

System operacyjny sprawi również, że program wśród innych programów będzie działał bez żadnej interakcji. Na przykład, jeśli skopiujesz plik z lokalizacji 1 do lokalizacji 2, jeśli nic nie wpiszesz lub nie poruszysz myszą, operacja kopiowania pliku będzie kontynuowana.

Nowoczesne systemy operacyjne mają funkcję o nazwie Multi Tasking, która w zasadzie oznacza, że ​​cyklicznie przechodzi przez wszystkie programy bardzo szybko, dając każdemu programowi czas na wykonanie cyklu w jego programowaniu. W ten sposób okaże się, że wszystkie programy działają płynnie w tym samym czasie. W tym cyklu sam system operacyjny otrzyma również czas procesora.

Gdy program wykonuje wiele obliczeń, procesor jest wykorzystywany w większym stopniu. Im bardziej procesor jest wykorzystywany, tym mniej energii jest dostępne dla reszty systemu, w tym cyklicznie przez wszystkie inne programy. Gdy procesor osiągnie 100% wykorzystania, komputer stanie się bardzo wolny, ponieważ czeka na czas procesora na przetworzenie wszystkich działań przez wszystkie otwarte programy. System operacyjny zwykle zapobiega zamrożeniu komputera, jeśli tak się stanie, ale możliwe jest, że komputer może się zawiesić w takich przypadkach.

Podczas tworzenia programu istnieje możliwość wystąpienia błędu, który powoduje awarię programu lub jego brak reakcji po wykonaniu szeregu zadań.

Istnieją różne poziomy braku odpowiedzi w przypadku błędów programu. Możliwe, że program wstrzyma jego wykonanie, czekając na naciśnięcie określonego przycisku, ale ten przycisk pojawił się poza ekranem. Program działa normalnie, po prostu nie akceptuje wprowadzania danych przez użytkownika i jako taki wydaje się być zablokowany, podczas gdy technicznie nie jest.

Możliwe, że program wykonuje operację pamięci, ale operacja pamięci odnosi się do innego segmentu pamięci, który ponownie odnosi się do innego segmentu pamięci i po drodze kończy się odniesieniem do pierwszego segmentu pamięci. W rezultacie powstaje niekończąca się pętla. Program uważa, że ​​wykonuje proste działanie i oczekuje wyniku w ciągu kilku nanosekund, ale powoduje przepełnienie lub przepełnienie bufora. System Windows 7 i nowszy ma kilka zabezpieczeń i wyświetla błąd krytyczny: „Program przestał odpowiadać i uległ awarii. Wyślij raport o błędzie”. We wcześniejszych wersjach systemu Windows, w zależności od tego, jak poważna była pętla pamięci, może to powodować niebieski ekran śmierci.

Sam system operacyjny jest w istocie także programem i ma te same problemy. Możliwe, że błąd w programowaniu może spowodować, że cały system operacyjny przestanie odpowiadać.

Wreszcie część systemu operacyjnego to programy służące do komunikacji ze sprzętem. Są to tak zwane sterowniki. Podobnie jak normalne programy, sterownik może również ulec awarii i przestać odpowiadać, chociaż szanse na to są mniejsze. Możliwe, że sterownik klawiatury ulega awarii i powoduje, że klawiatura przestaje reagować, podczas gdy mysz nadal działa.

System operacyjny zwykle wykrywa problemy ze sterownikami i próbuje ponownie uruchomić sterownik. W zależności od tego, jak dobrze sterownik został zaprogramowany, określa, ile użytkownik znajdzie na przeszkodzie awarii. Czasami może to powodować migotanie ekranu i nic więcej, czasami pojawia się okienko wyskakujące wskazujące, że sterownik został zawieszony i ponownie uruchomiony.

Sterowniki Plug and Play są zwykle stabilne i nie powodują awarii. Niestandardowe sterowniki dla określonego sprzętu mogą ulec awarii łatwiej, ponieważ szanse są większe, niektóre błędy nie zostały jeszcze znalezione.

Po wyjaśnieniu powyższego czas na odpowiedź na pytanie.

Jak wskazano, awaria może się zdarzyć z różnych powodów i z różną intensywnością. Jeśli klawisz CapsLock uruchomi się, światło LED wymaga dwóch rzeczy. Wymaga to działania sterownika i systemu operacyjnego, który ma czas na przetworzenie cyklu programowania sterownika (część wielozadaniowa, o której wspomniałem wcześniej)

Jeśli oba są prawdziwe, naciśnięcie klawisza Capslock spowoduje:

Klawisz jest naciskany na klawiaturze, a jego sygnał jest wysyłany na płytę główną. Sterownik systemu operacyjnego wyjaśnia systemowi operacyjnemu, co się dzieje, a sterownik odsyła z powrotem do klawiatury komunikat, że stan diody LED powinien zmienić się na nowy. System operacyjny użyje tych informacji do wpisywania tekstu wielkimi literami. Niektóre programy wyłączają jednak diodę LED, wysyłając drugi sygnał blokady klawiszy do kierowcy. W zależności od klawiatury lampka CapsLock może nigdy się nie włączyć.

Jeśli kierowca nie dostanie cyklu bezpośrednio po naciśnięciu klawisza Caps Lock, dioda LED nie zmieni się. Ale możliwe jest, że system z jakiegoś powodu jest bardzo wolny, a cykl jest opóźniony. W takim przypadku może się zdarzyć, że naciśnięcie klawisza Capslock lub Numlock nie zmieni natychmiast stanu diody LED, ale po sekundie lub dwóch.

Wreszcie możliwe jest, że z jakiegoś powodu na poziomie systemu operacyjnego czeka na cykl programowania sterowników, ponieważ na coś czeka. W takim przypadku możliwe jest przesuwanie myszy, ale wszystko inne wydaje się być zamrożone.

Biorąc pod uwagę, że komputer będzie miał poważne kłopoty, jeśli normalne funkcje LED klawiatury nie będą działać po upływie 5 sekund, można bezpiecznie założyć, że system poważnie się zawiesił i nie można go przywrócić.

Istnieją dwa inne klucze, a mianowicie Scroll Lock i Numlock. Z tych trzech kluczy Numlock jest jedynym kluczem, którego inne programy prawdopodobnie nie wykorzystają ze względu na naturę tego, co robi klucz. Bardziej niezawodne jest używanie numlocka do sprawdzania, czy system reaguje, czy nie na Capslocka lub Lock Lock, ponieważ niektóre programy zwykle używają tych klawiszy do wyzwalania innej funkcji i jako takie często wyłączają status diody LED, co powoduje, że mniej niezawodny do testowania za pomocą Capslock lub scroll lock, i bardziej niezawodny do testowania za pomocą numlock.


Moje ostateczne pytanie dotyczyło [co określa, czy dioda LED Caps Lock zareaguje]. Drugi to [jeśli właściwe jest użycie Caps Lock do przetestowania „punktu bez powrotu”]. Nie jestem pewien, w jaki sposób sugerujesz, że odpowiedziałem na własne pytanie. Moje pytanie zawierało jedynie hipotezę spekulacyjną, bez faktycznych danych ani prawdziwej teorii. Wierzę, że twoja odpowiedź potwierdza moje proponowane użycie Caps Lock, wyjaśniając mechanizmy niższego poziomu.
Bort

@Bort Zredagowałem swoje pytanie, aby, mam nadzieję, uczynić je bardziej zrozumiałym. Próbowałem odpowiedzieć na twoje pytanie, ale czułem potrzebę wyjaśnienia, jak wszystko działa, aby położyć fundament pod tym, dlaczego tak jest. W przeciwnym razie jest to postrzegane jako moja opinia i nie oparte na faktach.
LPChip
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.