割り込みを無効にするとどうなりますか?また、処理方法がわからない割り込みはどうすればよいでしょうか?

StackOverflow https://stackoverflow.com//questions/10671048

質問

割り込みを無効にすると ( cli x86 の命令)、具体的には何が起こるのでしょうか?

  • PIC はユーザーが割り込みをオンにするのを待ち、それが発生したときに割り込みを起動しますか?(そうである場合、どのくらいの時間待機しますか?また、時間が「期限切れ」になった場合はどうなりますか?)

  • デバイスの観点から見ると、割り込みは応答なしで「ブラックホール」に送信されるのでしょうか?

  • PIC は何らかの方法でデバイスに「CPU がビジーです」か何かを伝えますか?

  • それとも何か別のことが起こるのでしょうか?

また、処理方法がわからない割り込みにどう対処するのでしょうか?
PIC (デバイスが何であるかわからない場合はデバイス) に「はい、メッセージは受け取りましたが、どうすればよいかわかりません」と伝える方法はありますか?

役に立ちましたか?

解決

8259A PICはCPUからのINTA信号を待ちます。適切なISRにコントロールを転送して、割り込みの処理を開始するとCPUが送信します。どのISR? PICは割り込みベクトルをCPUに与えます。これは、アドレスのIVT / IDTを調べ、残りを知っています。 PICは、INTAを受信するまで割り込みベクトルを供給しません。

8259A PICには、I / Oデバイスとの一方向通信しかありません。彼らは彼らがサービスを必要とする割り込みを持っていると言うことができます。

それで、CPUが割り込みに応答しない場合は、PICの空中にすべてがあります。しかしながら、デバイスはそれらの隙間が解析されてから割り込み要求信号を再アサートすることができる。どちらがわからない。また、割り込み禁止のための時間要件があるものも知りません。

特定の情報源からの割り込みに興味がない場合は、隠すだけではできません。割り込みを取りますが、処理方法がわからない場合は、扱いにくいPICに言うことができます。これは、中断されたデバイスを「冷凍」状態にしておくことができ、サービスを提供するために無期限に待機してください。また、レベルトリガーモードで割り込みを取っている場合、デバイスに割り込み要求信号をハイに保つこともできます。

他のヒント

割り込みは引き続き発生しますが、CPU はリッスンしていません。もう一度聞き始めると(sti)、シグナルはまだ存在しており、最初の機会に有効になります。

PC PIC にはいくつかのレベルの割り込みがあり、優先レベルごとに 1 つのアクティブな割り込みを保持できると思います。対応する処理が完了したことを CPU が通知するまで、それらのそれぞれを保持します。長時間割り込みを無効にすると、おそらくこの機能が壊れる可能性があるため、絶対に行わないでください。

割り込みを担当するデバイスは、待機中に応答を受け取りません。いずれにせよ、これは一種の応答です。待つことができない場合は、最終的にエラーが発生したときに CPU が認識するエラー状態になる可能性があります。

明示的に有効にした割り込みのみが取得されるため、驚くようなことはありません。割り込みをオンにするデバイス ドライバーは、割り込みの処理方法をよく知っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top