問題タブ [interrupt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pythonマルチプロセッシングatexitエラー「atexit._run_exitfuncsのエラー」
Pythonで単純な複数プロセスアプリケーションを実行しようとしています。メインスレッドは1からNのプロセスを生成し、それらがすべて処理を完了するまで待機します。プロセスはそれぞれ無限ループを実行するため、ユーザーが中断することなく永久に実行できる可能性があるため、KeyboardInterruptを処理するためのコードを追加しました。
問題は、CTRL-Cを使用して終了すると、プロセスがすぐに終了したように見えても、追加のエラーが発生することです。
私はWindows上でPython2.6を実行しています。Pythonでマルチプロセッシングを処理するためのより良い方法がある場合は、私に知らせてください。
operating-system - アセンブリOUTB機能はどのようにしてトリプルフォールトを引き起こす可能性がありますか?
私のシステムプログラミングクラスでは、小さくてシンプルな趣味のOSに取り組んでいます。個人的には、ATAハードディスクドライバに取り組んでいます。私は、1行のコードが障害を引き起こし、すぐにシステムを再起動するように見えることを発見しました。問題のコードは、IDE割り込みの割り込みサービスルーチンの最後にあります。IDEチャネルを使用していたので、それらはスレーブPIC(マスターを介してカスケードされます)を介して送信されます。元々、私のコードは割り込み終了バイトをスレーブに送信するだけでしたが、教授はそれをマスターPICにも送信する必要があると言いました。
だからここに私の問題があります。EOIバイトをマスターPICに送信する行のコメントを外すと、システムは3回障害を起こし、その後再起動します。同様に、コメントを残しておくと、システムは実行されたままになります。
システムの残りの部分を見ずに、誰かがここで何が起こっている可能性があるかを説明することは可能ですか?
注:暗闇の中でのショットと同じように、_outb()呼び出しを別の_outb()呼び出しに置き換えました。これにより、IDEコントローラーで割り込みが有効になっていることを確認しましたが、生成されたアセンブリはほぼ同じでした。これは障害を引き起こしませんでした。
* _outb()は、x86OUTB命令のラッパーです。
問題となっているマスターPICにEOIを送信する機能の何が特別なのですか?
コードを見ないと答えられないかもしれませんが、見てくれてありがとう!
x86 - マスター PIC の割り込みが終了すると、トリプル フォールト (再起動) が発生するのはなぜですか?
わかりました、学校ではオペレーティングシステムを開発しています。私のプロジェクトは、ATA ハードディスク ドライバを開発することでした。割り込み終了コマンドをスレーブ PIC に送信しているだけで、マスターにも送信していないことを教授が指摘したとき、割り込みサービス ルーチンは非常にうまく機能していると思いました。
私の問題は、割り込みの終了をマスター PIC に送信するたびに、トリプル フォールトが発生し、システムが再起動することです。これで、一連の行のコメントを外したり、コメントを外したりしましたが、割り込みの終了をマスター PIC に送信する関数がコードに残っていると、トリプル フォールトが発生するようです。
今、私は次のことを確信しています:
- ISR に入ると割り込みが無効になります
- 割り込み終了バイトを適切に送信しています (クラス テスト済み)
- 同じ割り込みを再確認していない
これは大きなフラストレーションを引き起こしているので、私たちのコードを見る必要なく誰かが私に何らかのガイダンスを与えてくれることを願っています.
ありがとう!
embedded - タイマーを使用して時間を維持すると、組み込みマイクロコントローラーが中断されます
この質問は、OSなしで小型マイクロコントローラをプログラミングすることについてです。特に今はPICに興味がありますが、質問は一般的です。
私は時間を保つために次のパターンを数回見ました:
タイマー割り込みコード(タイマーが毎秒起動するとします):
メインラインコード(割り込みなし):
メインラインコードが繰り返されたり、カウンターがさまざまな値(秒だけでなく)に設定されたりする場合があります。
sec_counter
メインラインコードのへの割り当てがアトミックでない場合、ここに競合状態があるように思われます。たとえば、PIC18では、割り当ては4つのASMステートメントに変換されます(一度に各バイトをロードし、その前にメモリバンクから適切なバイトを選択します)。割り込みコードがこの途中にある場合、最終的な値が破損している可能性があります。
不思議なことに、割り当てられた値が256未満の場合、割り当てはアトミックであるため、問題はありません。
私はこの問題について正しいですか?このような動作を正しく実装するためにどのパターンを使用しますか?いくつかのオプションがあります。
- sec_counterへの各割り当ての前に割り込みを無効にし、後で有効にします-これはきれいではありません
- 割り込みを使用しないでください。ただし、開始されてからポーリングされる別のタイマーを使用してください。これはクリーンですが、タイマー全体を使い果たします(前の場合、1秒の起動タイマーは他の目的にも使用できます)。
他のアイデアはありますか?
python - Pythonで殺される前に最後の関数を実行する方法は?
実行中のPythonスクリプトが他のスクリプトやキーボード割り込みなどによって強制終了される前に、最後のコマンドを実行する方法はありますか.
arm - FIQ と IRQ 割り込みシステムの違いは何ですか?
ARM926EJ などのマイクロプロセッサの FIQ 割り込みシステムと IRQ 割り込みシステムの違いを知りたいです。
interrupt - プロセッサは、割り込みを要求しているデバイスをどのように認識できますか?
1) プロセッサは、割り込みを要求しているデバイスをどのように認識できますか?
2) 異なるデバイスが異なる ISR を必要とする可能性が高い場合、プロセッサはそれぞれの場合に開始アドレスをどのように取得できますか?
3) 別の割り込みが処理されている間に、デバイスがプロセッサに割り込むことを許可する必要がありますか?
4) 2 つ以上の同時割り込み要求をどのように処理する必要がありますか?
java - 将来のキャンセル時にCallable内でCXFWebサービス呼び出しを終了する方法
編集
この質問はこれまでに数回繰り返されてきたので、改訂を自由に調べて、歴史や試みられた事柄に関する背景情報を確認してください。
CompletionServiceをExecutorServiceおよびCallableと一緒に使用して、CXFで生成されたコードを介していくつかの異なるWebサービス上の多数の関数を同時に呼び出しています。これらのサービスはすべて、使用している単一の情報セットに対して異なる情報を提供します。私のプロジェクト。ただし、サービスは例外をスローせずに長期間応答できない可能性があり、情報の組み合わせセットの待機が長くなります。
これに対抗するために、私はすべてのサービスコールを同時に実行しています。数分後、まだ終了していないコールをすべて終了し、できれば、呼び出し可能ファイル内から、またはスローすることによって、まだ実行されていないコールをログに記録します。詳細な例外。
これは、私がすでに行っていることを説明するための非常に単純化されたコードです。
また、WS呼び出しを同時に開始するコードは次のとおりです。
このコードで私が抱えている問題は、port.getXXXFeatures(...)が戻るのを待っているときに、Callablesが実際にはキャンセルされないが、どういうわけか実行を続けることです。ステートメントからわかるように、port.getFeaturesが戻った後if (Thread.currentThread().isInterrupted()) log.error("XXX was interrupted");
に中断フラグが設定されます。これは、キャンセルを呼び出したときに中断されたのではなく、Webサービス呼び出しが正常に完了した後にのみ使用できます。
誰かが私が間違っていることと、一定期間後に実行中のCXF Webサービス呼び出しを停止し、この情報をアプリケーションに登録する方法を教えてもらえますか?
よろしく、ティム
c# - アプリのシャットダウン時に長いスリープを停止するための Thread.Interrupt - より良いアプローチはありますか
アプリケーションの存続期間中実行される小さなバックグラウンド スレッドがありますが、アプリケーションがシャットダウンされると、スレッドは正常に終了するはずです。
問題は、スレッドが 15 分間隔でコードを実行することです。つまり、かなりスリープ状態になります。
スリープ状態から抜け出すために、割り込みを投げます。ただし、割り込みは ThreadInterruptedException を生成するため、これに対するより良いアプローチがあるかどうかが私の質問です。
これが私のコードの要点です(やや疑似):
c++ - 10 マイクロ秒以上の速度で実行されているホスト コンピューター上のタイマー割り込みサービス ルーチン
Windows XP オペレーティング システムで実行されているホスト コンピューター (512 MB RAM、Intel 2.5 GHz Pentium 4 プロセッサなど) で、10 マイクロ秒以上のレートで次の擬似コードを実行しようとしています。
MFC タイマーがあることは承知していますが、タイマーを 1 ミリ秒より速くトリガーする必要がある場合、それらは機能しません。私の疑似コードの目標を達成する最も簡単な方法は何ですか? 前もって感謝します。