割り込みは、プロセスまたはイベントがすぐに注意を必要とするときにハードウェアまたはソフトウェアによって放出される信号で これは、現在の作業プロセスの中断を必要とする優先度の高いプロセスにプロセッサに警告します。 I/Oデバイスでは、バス制御ラインの1つがこの目的のために専用であり、割り込みサービスルーチン(ISR)と呼ばれます。
デバイスがプロセスiで割り込みを発生させると、プロセッサは最初に命令iの実行を完了します。 プログラムカウンタにアドレスをロードする前に、中断された命令のアドレスが一時的な場所に移動されます。 したがって、割込みを処理した後、プロセッサはプロセスi+1を続行することができます。
プロセッサが割り込みを処理している間、割り込み要求信号の送信を停止するように、要求が認識されたことをデバイスに通知する必要があ また、中断されたプロセスを将来復元できるようにレジスタを保存すると、割り込みを受信してからISRの実行を開始するまでの遅延が増加します。 これは割り込み遅延と呼ばれます。
ハードウェア割り込み:
ハードウェア割り込みでは、すべてのデバイスが割り込み要求ラインに接続されています。 すべてのn個のデバイスに単一の要求ラインが使用されます。 割込みを要求するには、デバイスは関連するスイッチを閉じます。 デバイスが割り込みを要求する場合、INTRの値は個々のデバイスからの要求の論理和になります。INTRの値は、デバイスからの要求の論理和になります。INTRの値は、
IRQの処理に関連する一連のイベント:
- デバイスはIRQを発生させます。
- Processorは現在実行中のプログラムを中断します。
- デバイスは、その要求が認識されたことを通知され、デバイスは要求信号を無効にします。
- 要求されたアクションが実行されます。
- 割り込みが有効になり、中断されたプログラムが再開されます。
複数のデバイスの処理:
複数のデバイスが割り込み要求信号を発生させる場合、最初に考慮するデバイスを決定するために追加情報が必要です。 どのデバイスを選択するかを決定するには、ポーリング、ベクトル割り込み、および割り込みネストの方法を使用します。 これらは以下のように説明されています。POLLING:
ポーリングでは、IRQビットが設定されている最初のデバイスが最初にサービスされるデバイスです。 適切なISRは、同じサービスを提供するために呼び出されます。 実装は簡単ですが、すべてのデバイスのIRQビットを調べることによって多くの時間が無駄になります。
ベクトル割り込みでは、割り込みを要求するデバイスは、バスを介してプロセッサに特別なコードを送信することによって、自 これにより、プロセッサは割込みを生成したデバイスを識別することができます。 特別なコードは、ISRの開始アドレス、またはISRがメモリ内にある場所であり、割り込みベクトルと呼ばれます。
この方法では、I/Oデバイスは優先構造に編成されています。 そのため、優先度の高いデバイスからの割込み要求は、優先度の低いデバイスからの要求として認識されない場合に認識される。 これを実装するには、各プロセス/デバイス(プロセッサでさえ)。 プロセッサは、それ以上の優先度を持つデバイス/プロセスからの割り込みのみを受け入れます。
プロセッサの優先順位は、PS(プロセスステータスレジスタ)の数ビットでエンコードされます。 これは、PSに書き込むプログラム命令によって変更することができます。 プロセッサが監視モードになっているのは、OSルーチンの実行中のみです。 アプリケーションプログラムを実行する前に、ユーザーモードに切り替わります。注目の読者!
今の学習を停止しないでください。 学生に優しい価格でCS理論コースとのSDEインタビューのためのすべての重要なCS理論の概念を手に入れ、業界の準備ができてなります。