システムの割り込み(遅延プロシージャ呼び出し、割り込みサービスルーチン)

対象プロダクト:Windows 8
カテゴリー:アーキテクチャ

システム割り込みとは

タスクマネージャの [詳細] タブ内を見たときに表示される事がある、「システムの割り込み(遅延プロシージャ呼び出しと割り込みサービス ルーチン)」は、ハードウェア(デバイスドライバ)が何らかの処理のために、システム処理に割り込む動作です。
まず、ハードウェアはソフトウェアよりも高い割り込み優先度(IRQL)を持っています。
IRQLは0~31までの32段階があり(64bit版 Windows は0~15の16段階)、数値が大きいものほど、優先度が高くなり、IRQLが最も高いものから先に処理されます。
ソフトウェアが2までなのに対して、ハードウェアは31までの優先度を持つことができます。
通常のスレッドのIRQLは0です。

つまり高い優先度のハードウェアの割り込みが発生すると、通常の優先度のプログラムの処理を押しのけて処理することになり、ハードウェアの割り込み処理が終わるまで、待たされる事になります。

※なお、IRQLはスレッドの優先度とは異なるものです。

遅延プロシージャ呼び出し (DPC)

DPCはIRQLが2であり、システムタスクのように即時性がないタスクを実行するための関数です。
まず、高い優先度の割り込みが発生した場合、他のそれよりも低い優先度の割り込みはDPCとして再スケジューリングされ、高い優先度のソースの処理が終了し、DPC/ディスパッチレベルよりも高いIRQLが割り当てられているソースがなくなったら、そこでDPC割り込みが処理されます。
そのため、DPCは遅延呼び出しと呼ばれます。
更にDPCの処理も完了すれば、ユーザーモードの通常のスレッドの実行が再開されます。

割り込みサービス ルーチン (ISR)

ISRルーチンはデバイスが割り込みを行うときに実行されます。
ISRルーチンを呼んだデバイスは、一時的にIRQLが引き上げられ、優先的に処理が実行されます。

公開日時:2013年01月05日 23:06:06

おすすめの書籍!
Windowsに詳しくなりたい方はマイクロソフト公式解説書である「インサイドWindows 第7版」がお勧めです。Windowsのアーキテクチャや内部構造の仕組み、背後で動作するコアコンポーネント等について詳細に解説されています。「Windows Internals, Seventh Edition」の日本語訳版です。

なお、Windows Server VPS選びで迷ったらこちらの記事で主要VPSのメモリ容量ごとの月額、年額料金、リモートデスクトップ(RDS SAL)、Microsoft Office SAL料金を比較していますので、是非参考にしてみてください。

Windows技術情報の一覧に戻る

「アーキテクチャ」に関する他の技術情報

このページのトップに戻る