web-dev-qa-db-ja.com

コンピューターがフリーズしているときにCapsLockが応答するかどうかを決定するものは何ですか?

コンピュータが何らかの方法で応答しない場合、さまざまなレベルの「フリーズ」があります。

たとえば、PCでWebを閲覧しているとしましょう...

  1. 現在のブラウザタブが応答しなくなった場合(クリック/入力しても何も起こらない)、おそらくブラウザは応答します。

  2. ブラウザ全体がロックされている場合は、OSがまだ応答している可能性があります。

  3. OS GUIが応答しない場合でも、 Caps Lock LED

  4. 場合 Caps Lock 応答しなくなったので、「最大フリーズ」と想定する必要があります。ただし、しばらくすると、しばらくするとコンピュータ全体が通常の状態に戻ることがあります。


  • Caps Lockが切り替わりなくなった場合、それはコンピュータが「手順3よりもフリーズしている」ことを意味しますか?

  • 使用する意味がありますか Caps Lock 「冷凍」の最終テストとして?

  • ...そして、もしそうなら、いつの違いは何ですか Caps Lock トグルしませんか?かどうかを決定するもの Caps Lock 応答しますか?

15
Bort

あなたは基本的にあなたの質問の間にあなた自身の質問に答えています、しかし答えを得るために、私は私の能力の及ぶ限りではそれに答えようとします。

さまざまな方法があり、何かが応答しなくなる可能性があります。

プロセスは他のオペレーティングシステムでもそれほど違いはありませんが、Windowsを使用していると仮定しましょう。

プログラムを操作するときは、プログラムにフォーカスがあるときにクリックまたは入力することで行います。

クリックまたは入力は、マウスまたはキーボードを介してマザーボードに移動します。オペレーティングシステムは、何が入力されているか、どのようにマウスが動かされているかを問い合わせます。それは信号を解釈し、それに応じてプログラムと対話します。

グローバルステータスのホットキーが押されていない限り、キーボードショートカットはアクティブなアプリケーションに送信されます。その場合、オペレーティングシステムは別のアクションを実行します。

オペレーティングシステムは、他のプログラムの中でプログラムを対話なしで機能させます。たとえば、場所1から場所2にファイルをコピーするときに、何も入力しないか、マウスを動かさない場合でも、ファイルのコピー操作は続行されます。

最新のオペレーティングシステムにはマルチタスクと呼ばれる機能があります。これは基本的に、すべてのプログラムを非常に高速に循環し、各プログラムにプログラミングのサイクルを実行する時間を与えることを意味します。そうすることで、すべてのプログラムが同時に流暢に実行されているように見えます。このサイクルでは、オペレーティングシステム自体にもCPU時間が与えられます。

プログラムが多くの計算を実行するとき、CPUはより多く利用されています。 CPUの使用率が高いほど、他のすべてのプログラムの循環を含め、システムの残りの部分で使用できる電力が少なくなります。 CPUの使用率が100%に達すると、開いているすべてのプログラムによるすべてのアクティビティを処理するCPU時間が待機するため、コンピューターは非常に遅くなります。これが発生した場合、オペレーティングシステムは通常、コンピューターがフリーズするのを防ぎますが、コンピューターがこれらの状況でフリーズする可能性があります。

プログラムの作成中に、一連のタスクを実行するとプログラムがクラッシュしたり応答しなくなったりするバグが存在する可能性があります。

プログラムのバグについて話すとき、無反応のさまざまなレベルがあります。プログラムが特定のボタンが押されるのを待って実行を停止する可能性がありますが、そのボタンは画面の外に表示されます。プログラムは正常に動作し、ユーザー入力を受け入れないため、技術的には停止しているように見えます。

プログラムがメモリ操作を実行している可能性がありますが、メモリ操作はメモリの別のセグメントを参照します。これもメモリの別のセグメントを参照し、途中でメモリの最初のセグメントを参照することになります。その結果、無限ループが形成されます。プログラムは単純なアクションを実行すると考え、数ナノ秒以内の結果を期待しますが、バッファのアンダーランまたはオーバーフローを引き起こします。 Windows 7以降にはいくつかの保護機能があり、「プログラムが応答を停止してクラッシュしました。エラーレポートを送信してください」という重大なエラーが発生します。以前のバージョンのウィンドウでは、メモリループの深刻度に応じて、ブルースクリーンが表示されることがありました。

オペレーティングシステム自体も本質的にプログラムであり、同じ問題があります。プログラミングのバグにより、オペレーティングシステム全体が応答しなくなる可能性があります。

最後に、オペレーティングシステムの一部は、ハードウェアとの通信に使用されるプログラムです。これらはドライバと呼ばれます。通常のプログラムと同様に、ドライバーもクラッシュして応答しなくなる可能性がありますが、これが発生する可能性は低くなります。マウスが機能しているときに、キーボードドライバがクラッシュしてキーボードが応答しなくなる可能性があります。

オペレーティングシステムは通常、ドライバーの問題を検出し、ドライバーの再起動を試みます。ドライバーがどれだけうまくプログラムされているかに応じて、ユーザーがクラッシュを妨げると感じる程度が決まります。ディスプレイのちらつきが発生するだけの場合もあれば、ドライバーがクラッシュして再起動したことを示すポップアップが表示される場合もあります。

プラグアンドプレイドライバは通常安定しており、クラッシュしません。特定のハードウェア用のカスタムドライバーは、可能性が高いためにクラッシュしやすく、一部のバグはまだ発見されていません。

上記の説明で、質問に答える時が来ました。

示されているように、クラッシュはさまざまな理由でさまざまな重大度で発生する可能性があります。 CapsLockキーがトリガーされる場合、LEDライトは2つのことを必要とします。ドライバーが機能している必要があり、オペレーティングシステムがドライバーのプログラミングサイクルを処理する時間を与える必要があります(前述のマルチタスク部分)

両方が当てはまる場合、Capslockキーを押すと次のようになります。

キーボードのキーが押されていて、その信号がマザーボードに送信されています。オペレーティングシステムのドライバは、オペレーティングシステムに何が起こるかを説明し、ドライバはLEDの状態を新しい状態に変更する必要があるというメッセージをキーボードに送り返します。オペレーティングシステムは、この情報を使用してテキストを大文字で入力します。ただし、一部のプログラムでは、2番目のCapslock信号をドライバーに送信してLEDキーをオフにします。キーボードによっては、CapsLockライトが点灯しない場合があります。

キャップスロックを押した直後にドライバーがサイクルを取得しない場合、LEDは変化しません。ただし、何らかの理由でシステムが非常に遅く、サイクルが遅れている可能性があります。その場合、capslockまたはnumlockを押してもすぐにはLEDの状態が変化せず、1〜2秒後に変化することがあります。

最後に、何らかの理由でオペレーティングシステムレベルで、何かを待機しているため、ドライバーのプログラミングサイクルの循環を待機している可能性があります。これが事実である場合、マウスはまだ動かせる可能性がありますが、それ以外はすべてフリーズしたように見えます。

5秒経過しても通常のキーボードのLED機能が動作しない場合、PCに深刻な問題が発生することを考えると、システムがひどくクラッシュし、回復できないと安全に推測できます。

他の2つのキー、つまりScroll LockとNumlockがあります。これらの3つのキーのうち、Numlockは、キーの機能の性質上、他のプログラムが悪用しない可能性が高い唯一のキーです。一部のプログラムはこれらのキーを使用して別の機能をトリガーする傾向があるため、numlockを使用してシステムが応答するかどうかをテストする方が、capslockまたはscroll lockよりも信頼性が高く、LEDステータスがオフになることがよくあります。 Capslockまたはスクロールロックを使用したテストの信頼性は低く、numlockを使用したテストの信頼性は高くなります。

2
LPChip