我々は、コンピュータ上で実行されるすべてが、多くの人が協力している巨大なプログラムであることを知っています。
コンピュータがハングアップしても何もできない場合はどうなりますか?また、すべてがプログラムで実装された何かをフリーズするこのシナリオはありますか?それとも、プログラムカウンタがスタックしていて増分できないので、プロセッサに何らかの問題がありますか?コンピュータが「ハング」またはフリーズしたとするとどうなりますか?
答えて
さまざまな状況でコンピュータがフリーズすることがあります。
のx86
CLI
とHLT
説明:これらは私が今考えることができますものです。CLI
は割り込みを無効にするため、非同期イベント(タイマー割り込みやキーの押下など)ではCS:EIP
命令ポインタを別の命令に移動できず、HLT
は文字通りプロセッサを停止します。
この命令はめったに使用されず、たとえばブートコードの初期化ルーチンが失敗した場合にのみ、カーネルが許可します。ここでは再起動はより良いオプションです。
だけでは実行で、ないすべてのコアであるコアを停止HLT
ことに注意してください。ウィンドウが応答しません(一般にWindowsでは見つかりません)。これはアプリケーションによって異なります。詳細情報here。
リソースは取得しようとしましたが、ロックによって保護されており、既に取得されています。プロセスは、最終的にリソースを取得できるまで、待機します(実際にはビジー・ループまたは別のプロセスを生成します)。これは、の一時的な状態ですが、これとは対照的に...
デッドロックです。複数の状況が発生する可能性があるが、共通の状況は、同時に提供するリソースを獲得しようとする2つのプロセスです。両方とも他のプロセスを待っているため、どちらも取得要求を処理できないため、両方のプロセスが終了します。uninterruptible。これが、Linux上の無停止プロセスの理由です。これは、シグナルが送られてきたにもかかわらず殺されることはありません。
低速プロセッサまたは少数のスレッドを持つプロセッサでマルチタスキング。悪いスケジューリングアルゴリズムは状況をさらに悪化させます。
1つのプロセスが少なくとも1つのスレッドを占有するため、効率的に並行して実行されるプロセスの数は非常に少なくなります。しかし、これは非常に高速なプロセッサで安定化することができます。
この結果、マウスクリックなどのイベントに対する応答時間が長くなります。
x86システムでは、実際には命令ポインタが進まないように指示する唯一の命令はHLT
です。
他のすべてのケースは、(潜在的に無限の)ループまたはプログラム/オペレーティングシステムのバグです。
- 1. Visual Studioがフリーズしたり、起動時にハングする
- 2. コンピュータがシャットダウンしたときにPythonスクリプトを実行するとどうなりますか?
- 3. コンピュータでゼロで割った場合どうなりますか?
- 4. コンピュータがシャットダウンしたときにPythonコードを実行したままにする方法はありますか?
- 5. なぜpopToRootViewContollerがフリーズしたり、実行に時間がかかりますか?
- 6. Illustrator/PSイメージを別のコンピュータに送信するとどうなりますか?
- 7. opencv "False"を返す代わりにカメラが切断されたときにビデオキャプチャがハング/フリーズする
- 8. TextBoxが選択されたとき、実際にはどうなりますか?または集中した..?
- 9. CUDA、OpenCL、PGIなど....しかし、GLSLとCgはどうなりましたか?
- 10. actionchain()を使用するとセレンがハングします。move then actionchain.clickまたはmouse_up
- 11. abでテストしたときにソケットサーバーがハングしました。BufferedReader.readline()
- 12. Mutexを取得したスレッドが終了するとどうなりますか?
- 13. .xibファイルを開いたりコンパイルしようとすると、Xcodeがフリーズします
- 14. ビジュアルブラシをフリーズしますか?またはより良いアイデア?
- 15. TTRがなくなったときQueueWorkerはどうなりますか?
- 16. TensorFlowのRNNとSeq2seqオプションはどうなりましたか?
- 17. CGRectGetMidX()とCGRectGetMidY()はどうなりましたか?
- 18. Windows.hのWINVERと_WIN32_WINNTのガードはどうなりましたか?
- 19. ポップアップメニューをクリックすると、プログラムがフリーズまたは停止します。 (ファンクション)
- 20. VMDepotはどうなりましたか?
- 21. NVD3はどうなりましたか?
- 22. Andengine:ITextureはどうなりましたか?
- 23. regtlibv12はどうなりましたか?
- 24. OmniXMLはどうなりましたか?
- 25. colspan = '*'はどうなりましたか?
- 26. double(またはfloat)をintに変換するとどうなりますか?
- 27. IDLEから実行した後に終了しようとすると、pygameがフリーズします!
- 28. SSHJ:execがハングしたりデータが失われたりする
- 29. call_user_funcがfalseを返すとしたらどうなりますか?
- 30. pipはどこにモジュールをインストールしますか? virtualenvを使用するとどうなりますか?また、mod_wsgiの設定エラーが発生しました
"低速プロセッサでマルチタスクを実行"するので、 "RAMが少ないシステムではスワップトラフィックが多い"と追加する必要があります。限られたハードウェアリソース:同じ球場にあります。 – bolov
興味深いのは、ユーザプロセスのバグがシステム全体を凍結するだけでなく、OSやシステムドライバにバグがなければ、それが起きる可能性があるということです。 – bolov
@bolovそれは確かにむしろ哲学的なものです。古いフォーク爆弾はユーザープログラムであり、システムを簡単にクラッシュさせることができます。 OSがそれを禁止していないという事実:バグかどうか? 「哲学的」は正しい言葉ではないかもしれませんが、とにかく私が何を意味するのか願っています。 **注:**私はあなたの最初のコメントに応じて後で自分の答えを調整しますが、現在そうすることはできません。 – Downvoter