System プロセス(ntoskrnl.exe)とは

対象プロダクト:Windows 8.1
カテゴリー:Windowsプロセス

System プロセスの主な役割

System プロセスは Windows の核となるプロセスになり、スレッドスケジューリングや同期、割り込み、例外ディスパッチなどの OS の基本的な処理を担っています。

スレッドスケジューリング

スレッドスケジューリングは、カーネルはプロセスの優先度に基づいて、どのスレッドにどの程度の時間(タイムスライス)を割り当てるか(クォンタム)を決定します。
優先度は0から31までの32段階(デフォルトは8)があり、優先度が高いほど、多くのタイムスライスが割り当てられます。

また、スレッドスケジューリングはソフトウェア側の処理(IRQL0か1)であり、ハードウェア割り込みが発生した場合は、各スレッドのクォンタムを引き下げます。

割り込み

割り込みはハードウェア割り込みとソフトウェア割り込みがあります。 ハードウェア割り込みは、マウスやキーボードなどからのI/O割り込みが該当します。
ソフトウェア割り込みはディスパッチ割り込み、遅延プロシージャ呼び出しによる割り込みが挙げられます。

ハードウェア割り込みは各デバイスの割り込み要求(IRQ)番号が使用されます。
ハードウェア割り込みは、ソフトウェア割り込みよりも優先度(割り込み要求レベル(IRQL))が高いため、ソフトウェア側で重い処理を実行していても、マウスやキーボードからの入力が遅延する事は通常ありません。

ソフトウェア割り込みではディスパッチ割り込みと遅延プロシージャ呼び出し(DPC)がありますが、前者はスレッドの終了時などに呼び出され、後者はカーネルが実行している処理が終了するまで、ディスパッチ割り込みを待機させる仕組みです。
カーネルによる DPC レベルより高い IRQL の割り込み(つまりハードウェア割り込み)の処理が完了し、無くなれば、そこで待機させているディスパッチ割り込みの処理を実行します。

この仕組みにより、常にハードウェアの処理は、ソフトウェアよりも優先されます。

ntoskrnl.exe の種類

なお、ntoskrnl.exe は常に PID 4 で起動します。
また、プラットフォームにより、実行されるカーネルは異なります。

どのカーネルが実行されているかは、タスクマネージャを開き、[詳細] タブ内の [System] のプロパティを開き、[詳細] タブより確認が行えます。
[元のファル名] 欄に元のファイル名が表示されます。
例えば、「ntkrnlmp.exe」は「マルチプロセッサPC」用のカーネルになります。

カーネルファイルの種類は以下のとおりです。

ファイル名説明
ntoskrnl.exe 物理メモリ4GB以下のユニプロセッサのx86アーキテクチャーシステム
ntkrnlpa.exe PAE(物理アドレス拡張)をサポートしているユニプロセッサのx86アーキテクチャーシステム
ntkrnlmp.exe 物理メモリ4GB以下のマルチプロセッサのx86アーキテクチャーシステム
ntkrpamp.exe PAE をサポートしているマルチプロセッサのx86アーキテクチャーシステム

Windowsプロセスの詳細解説本はこちら↓

公開日時:2014年06月08日 13:10:34
最終更新日時:2024年01月17日 18:59:56

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

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

Windows技術情報の一覧に戻る

「Windowsプロセス」に関する他の技術情報

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