2011-12-07 32 views
1

実行中に割り込みがどのように見えているのかを知りたい。私は割り込みのレベル、エッジ、ハイブリッド、およびメッセージのタイプについて読んでおり、デバイスが割り込みのための信号を送るパルスを送信しますが、どのようにプログラムがその割り込みを参照していますか?または、プログラムに割り込みが表示されていませんか? このご協力ありがとうございましたプログラムの実行と割り込み

+0

PCやマイクロコントローラで動作するプログラムについて話していますか? – lampak

答えて

1

一般に、割り込みが発生すると、プロセッサは実行中の処理を停止し、停止した場所を覚えて、何とかそれに反応するコードに移動します。ハードウェアは、プロセッサが現在何をしているかにかかわらず、常に割り込みをチェックします。それで、それはコードの特別な部分、いわゆるinterrupt handlerに行き、それが終わった後、前に何をしていたかに戻ります。中断されたプログラムは何も気付かない。

割り込みハンドラが配置されているアドレスは、プロセッサのアーキテクチャと割り込みの種類によって異なります。プロセッサのデータシートにアドレスが記載されているメモリ内の固定小数点にあることが必要な場合もあります。多くの場合、intrrupt vector tableというメモリの固定アドレスに特別な配列があり、異なる種類の割り込みを処理するプロシージャのアドレスを格納します。

PCまたはその他の高度な電子機器では、割り込みハンドラと割り込みベクタテーブルはオペレーティングシステムの一部です。あなたは、OSを書くか、組み込み機器をプログラミングしているのでなければ、割り込みによってまったく気にする必要はありません。

+0

プロセッサはどのように割り込みを認識しますか? – MNM

+1

ハードウェア。プロセッサを中断する必要がある周辺装置は、直接的または間接的にプロセッサチップのピンをローにプルするので、プロセッサがその割り込み受け取りバスプロトコルに入るようにトリガします。割り込み応答プロトコルはデバイスに依存します。例えば、割込みペリフェラルが割込みペリフェラルに対して呼び出されるように、割込みペリフェラルがベクタアドレスに変換できる割込み番号で送信することを要求することができる。多くのプロセッサフ​​ァミリには、内部割り込みソースもあります。メモリマネージャハードウェア、コア間通信などがあります。 –

1

OSに応じて異なります。私たちが最もよく慣れ親しんでいる汎用の「デスクトップ」OSでは、ユーザーモードプログラムはハードウェア割り込みを直接処理する必要はありません。キーボード、マウス、ディスク、NICなどの周辺機器からの割り込みは、ドライバによって処理されます。通常、 'プログラム'内のスレッドは読み取り/書き込み要求API呼び出しを行い、要求が完了するまで呼び出しは戻りません。これはプログラムがハードウェアに最も近いところです。カーネルでは、要求されたI/Oが完了したことを宛先ドライバが通知するまで、呼び出しスレッドはブロックされます。

関連する問題