問題タブ [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.
linux - 割り込み中に current->pid を取得
Linux スケジューラで何かを書いていますが、割り込みが発生する前にどのプロセスが実行されていたかを知る必要があります.現在の構造は利用できますか? 割り込みハンドラ内で current->pid を実行すると、割り込みを行ったプロセスの pid を取得できますか?
assembly - 割り込みハンドラが起動しないのはなぜですか?
Bochsに割り込みハンドラをインストールしようとしていますが、何らかの理由で割り込みハンドラが起動しません。
まず、ブレークポイントを設定します。
それから私は実行しようとしint 3
ます。
ただし、そうすると、エラーが表示int_trap_gate(): selector null
されます。これは、一部のテーブルのセレクターが null であることを示しているようです。
ただし、GDT を以下に示します。
IDTも同様です:
IDT エントリには有効な GDT セレクターがあるように思われるため、割り込みを実行したときに何が問題を引き起こすのかわかりません。
何が問題ですか?
ada - Ada 割り込みハンドラ
Ada 割り込みハンドラーを使用する場合、これまでのところ、それらが機能するためにコードに含める必要がある特定のものをいくつか分離しました。
Ada.Interrupts の使用:
これがすべて正しく、レジスタで割り込みを有効にしていると仮定すると、これに追加する必要がある他の割り込み関連のコードはありますか? 特に、何らかの方法でハンドラー コードを「リンク」するために、レジスターと直接やり取りする必要がありますか?それとも、レジスターのレコード表現をセットアップし、必要な設定を直接それらに出力して、リッピングさせることができますか?
ありがとう!
assembly - 割り込みを無効にするとどうなりますか? また、処理方法がわからない割り込みはどうしますか?
(x86 の命令で) 割り込みを無効にすると、cli
正確にはどうなりますか?
PIC はユーザーが割り込みをオンにするのを待ち、それが発生したときに割り込みを発生させますか? (もしそうなら、それはどのくらい待ちますか?時間が「期限切れ」になったらどうなりますか?)
デバイスの観点からすると、割り込みは応答なしで「ブラック ホール」に送信されますか?
PICはどういうわけか「CPUがビジーです」などとデバイスに伝えますか?
それとも何か他のことが起こりますか?
また、処理方法がわからない割り込みをどのように処理しますか?
PIC (またはデバイスがわからない場合はデバイス) に「はい、メッセージを受け取りましたが、どうすればよいかわかりません」と伝える方法はありますか?
x86 - x86のサービスデバイスメモリコピーへのページフォールトの割り込み処理
x86 CPUでの割り込み、特にページフォールトの制御フローを解決しようとしています。これまでに私が理解できることは次のとおりです。
- IDTにはサービスルーチンアドレスが入力されます。
- 割り込みが発生します。
- CPUは、EFLAGS、CS、およびEIPをスタックに保存します。
- EIPは、IDTからフェッチされたISRアドレスに設定されます。
mov eip, [idtr+interruptNum*4]
- 割り込みルーチンが実行されます。
- 割り込みルーチンは
iret
命令で完了します。
ここで、割り込みが実際にはNICバッファに関連するページフォールトであるとしましょう。ISRはout
、DMAコントローラーにシステムメモリからデバイスに(またはその逆に)コピーを発行するように指示するために使用しますか、それともここでベースから離れていますか?
c++ - なぜブースト::バリア待機は中断ポイントではないのですか?
boost :: visual Interrupt()で待機しているスレッドは、boost :: thread Interrupt()が呼び出されても中断されません。例: http ://www.justsoftwaresolutions.co.uk/threading/thread-interruption-in-boost-thread-library.html
これには正当な理由がありますか?
もちろん、boost :: this_thread ::interruption_point()を手動で配置して回避することもできます。
ios - AVAudioPlayer の中断の問題
AVAudioPlayer
中断に問題があります。
そして、私は着信通話中の中断について話しているのではありません. 私はこの状況をうまく処理できます。通話→割り込み開始→通話終了→割り込み終了。
問題は、デバイスのカメラにあります。状況は次のとおりです。
プレーヤー アプリがバックグラウンドで再生されています。写真を撮りたいです。カメラを開いて写真を撮ります。まったく中断なし!しかし、ビデオをキャプチャしたい場合、中断が始まり、プレーヤーは無音になります。同時に中断終了!(2 つのデバイスで確認しましたが、NSLog
非常に奇妙だと思います) しかし、ビデオ カメラがまだオンになっているため、プレーヤーは曲の再生を続行しません。カメラを閉じて、割り込みが終了することを期待していますが、それは以前に終了しており、プレーヤーは沈黙したままです。
問題は、この状況をどのように処理するかです。
c - 割り込みのイベントを登録および登録解除する方法
標準Cではなく、Cでアプリケーションを開発しようとしていました。シナリオは次のとおりです。プロセッサのパワーモード実装のようなもので、プロセッサがスリープから復帰したときに割り込みが生成されるため、その時点でイベントコールバックがあり、他のモジュールをウェイクしてそのプロセスを実行できます。このために、メモリプールにアクセスするための静的割り当てを使用してリンクリストを実装しようとしています。 . したがって、コールバックがトリガーされると、登録されているモジュールにイベント通知が送信されます。
しかし、それを実装する方法がわかりません。実装への道を親切に提供してください
linux-kernel - プリエンプトされた割り込みハンドラはどうなりますか?
よく書かれたカーネルの本でも、次の質問に対する適切な答えを見つけることができませんでした。
彼らは、ISR はどのプロセスにも接続されていないため、ISR を再スケジュールできないため、スリープできないと言っています。中断された ISR は再スケジュール (実行) されませんか? はいの場合、どのように、誰がその作業を行いますか?
多くの場合、割り込みを無効にします (例: 1.クリティカル領域で 2. 高速割り込みが実行されている場合、現在のプロセッサのすべての割り込みが無効になります)。それらは単に破棄されますか?または後で実行するためにどこかに保存されますか?はいの場合、どこでどのように?
ISR が実行されている場合、現在の IRQ ラインの割り込みを無効にして、再入を回避します (同じラインで別の ISR が実行されるのを防ぎます)。ISR が再入可能である場合、何が問題になりますか?
*ISR=割り込みサービスルーチン
*彼ら=本の著者
clock - CPU が IRQ0 を呼び出していない?
私はOSを書いていて、PITを使おうとしています。ハンドラーを作成し、IRQ0 (割り込み 32) の ISR エントリを作成しました。ハンドラーはまったく呼び出されていません。ISRエントリを正しく入れていないと確信しています。助言がありますか?ここに私のASMコードがあります
PITを開始するための私のコードは
ハンドラーは
から呼び出される