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