問題タブ [interrupt-handling]

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.

0 投票する
1 に答える
2031 参照

linux-kernel - 複数のキューイングおよび作業キュー

Linuxカーネルで下半分をコーディングするワークキューを学んでいます。割り込みハンドラが 2 回実行された場合 (つまりschedule_work2 回呼び出された場合)、ワーク キュー ハンドラは 1 回または 2 回呼び出されるのでしょうか。

0 投票する
5 に答える
21273 参照

interrupt-handling - 割り込みを無効にするとはどういう意味ですか?

割り込みハンドラーに入るときは、最初にそのCPUで「割り込みを無効にする」(x86のcli命令のようなものを使用)。割り込みが無効になっている間に、ユーザーがキーボードの文字「a」を押したと仮定します。これにより、通常は割り込みが発生します。しかし、割り込みが無効になっているので、それは次のことを意味しますか?

  1. クリティカルセクションで割り込みが無効になっているため、「a」の割り込みハンドラは呼び出されません。
  2. 割り込みはOSによって処理されますが、割り込みが再び有効になるまで遅延します。具体的には、ユーザーが最初に「a」を押したのが割り込みが無効になっているときだった場合、ユーザーはもう一度「a」を押す必要がありますか?
0 投票する
1 に答える
780 参照

linux - Perl: system() 経由で mpirun によって実行されるコードを制御できるように、割り込みハンドラを追加する方法は?

Perceus (warewulf) ソフトウェアを備えたクラスターを使用して、コンピューティングを実行します。このソフトウェア パッケージにはwwmpirun、ホストファイルを準備して実行するためのプログラム (Perl スクリプト) が含まれていますmpirun

このスクリプトを使用して、複数のノードで数学プログラム (CODE) を実行します。CODE は、通常、Ctrl+C でステータス、停止、停止のオプションを含む短いメニューを表示することで停止することになっています。ただし、MPI を使用して実行している場合、Ctrl+C を押すと、データが失われて CODE が強制終了されます。

CODE の開発者は回避策を提案しています - name のファイルを作成することでプログラムを停止できますstop%s。ここで、%sは CODE によって実行されるタスクファイルの名前です。これにより停止できますが、計算のステータスを取得できません。非常に長い時間がかかる場合があり、この機能を元に戻すことは非常にありがたいことです。

どう思いますか - 問題は CODE にありますかmpirun?

によって実行される CODE と通信する方法を見つけることができますmpirunか?

更新1

単一の実行では、Ctrl+C を押しstatusて、提供されたメニューで を入力してオプションを選択することにより、計算のステータスを取得しますs。CODE はステータス情報を STDOUT に出力し、計算を続行します。

0 投票する
2 に答える
3743 参照

multithreading - Javaでスレッドを停止するための最良の方法は何ですか?

実行中にスレッドを停止したいのですが。読んでみると、ローカル変数をチェックして、スレッドを続行するか、クリーンアップしてrun()を終了するかを判断する必要があると思います。これをきれいに実装するアイデアはありますか?

0 投票する
3 に答える
6648 参照

microcontroller - ISR内の割り込みを無効にするとどうなりますか?

その割り込みのISR内の割り込みを無効にするとどうなりますか?
たとえば、バッファからUSARTを介してデータを送信していて、そのバッファのデータが不足している場合、一時的に送信を停止したいので、バッファの最後のバイトを送信した後、割り込みを無効にします。

(これはPIC18F4580にあります)

PIC18F4580のデータシートには、ISR内で割り込みが無効になっている場合、「異常な動作が発生する可能性がある」と記載されています。

0 投票する
2 に答える
2663 参照

interrupt-handling - ソフトウェア割り込みとシグナルの違い

「ソフトウェア割り込みはシグナルを使用して配信されます」

そうでない場合、これは常に真ですか?

a)2つの違いは何ですか

はいの場合、信号を配信する以外に、ソフトウェア割り込みが発生する他のメカニズムがあります。

0 投票する
2 に答える
4838 参照

c - ピン変更割り込み-内部割り込みを伴う外部割り込み

このプログラムでは、タイマー割り込みを使用してLEDを循環しています。誰かがスイッチを押すと、最初の割り込みを停止し、押されたスイッチに応じてLEDを点灯させる2番目の割り込みをトリガーする必要があります。ここで、どの割り込みが呼び出されているか少し混乱しています。ピン変更割り込みについていくつかの本を参照し、PCMSK2を設定するための数行を書きました。取得している出力は、「スイッチが押されると、最初はすべてのLEDが循環しています... LEDの循環が停止して最初からやり直します(つまり、プログラムが入力を読み取っており、2番目の割り込みをトリガーしていません)。停止しません。または一時停止して、後続のLEDが点灯しません。」誰か助けてもらえますか?

たくさんのご支援ありがとうございます。

0 投票する
1 に答える
132 参照

interrupt - 分散割り込み

分散環境でOSが割り込みを処理する方法に関する情報を探しています。

0 投票する
1 に答える
3041 参照

interrupt-handling - 割り込みハンドラのブロックまたはスリープ

仮定:
1)マルチCPU環境
2)中断されるプロセスは、割り込みハンドラーを実行するプロセスと同じであるため、技術的には、プロセスが以前に実行していたこと以外は何も中断されないと思いますが、実行中のプロセスは引き続き実行されます。ハンドラ。
3)上半分も下半分もありません。割り込みが発生すると、ハンドラーが呼び出され、実行されてから、割り込みから戻ります。これは単純なことです。

ハンドラーをスリープ状態にする(スリープキューに入れ、コンテキストを次の実行可能なプロセスに切り替える)のはなぜ悪い考えですか?

0 投票する
2 に答える
306 参照

operating-system - 誰かが私が理解できないいくつかのオペレーティングシステムの概念について私を助けてくれませんか - re Interrupts

申し訳ありませんが、ここで質問するのが適切かどうかわかりませんでしたが、受け入れられることを願っています。そうでない場合は申し訳ありません。:)

私は現在、オペレーティング システム理論のモジュールを行っていますが、理解できない概念がいくつかあります。質問するのに適切な場所でしょうか?

私の主な質問は割り込みについてです。CPU が割り込みが発生したことを検出すると、この割り込みが発生した場所を特定する必要があることを理解しています。私の理解は次のとおりです。誰かがこれが正しいかどうか教えてください。私の知識のいくつかのギャップを説明してください。

CPU が割り込みの発生場所を検出するには、すべてのオブジェクトにクエリを実行してソースを特定できますが、これらの I/O ベースの質問には時間がかかります。代わりに、割り込みサイクルを使用し、データ バス上の割り込み識別子を期待します。8 ビット データ バスの場合、256 の割り込みレベル (つまり 2^8) があります。(どうしてこれなの?)

そのため、割り込みサービス ルーチン (ISR) は、考えられるすべての割り込みレベルに対して記述され、プロセッサによって標準化された固定位置 (割り込みベクトル) のテーブルに格納されます。私のメモには、「住所を取得する前に場所を知っておく必要があります」と書かれています(これはどういう意味ですか?)

割り込みサイクルの一部として受信された割り込みレベル識別子は、割り込みベクトルへのインデックスとして使用されます (誰かがこれを少し分解してもらえますか?)。私の理解では、割り込みレベル識別子である値がCPUに渡され、割り込みベクトルを指すために使用されます。

また、割り込みが「処理された」と言われるとき、それはどういう意味ですか?

どうもありがとうございました。長い段落で申し訳ありません。これについて多くの点で少し混乱しています。