LoginSignup
1
1

More than 1 year has passed since last update.

Windows ユーザモードとカーネルモードを理解する

Last updated at Posted at 2022-08-06

概要

サーバ監視時にユーザモードとカーネルモードのCPU使用率があり、何が違うのか、そもそも何なのか気になったので調べてみました。タスクマネージャで見る方法もあるのでまとめました。

ユーザモードとカーネルモード

WindowsのCPUの動作モードはユーザモードとカーネルモードがあります。

  • ユーザモード
    アプリケーション(Excel、Wordなど)を実行したときのモード

  • カーネルモード
    メモリ、ディスク、NICなどのリソース、ディスク書き込み、画面表示などシステムを制御、管理を実行しているモード

タスクマネージャでの確認方法

CPUのグラフの上で右クリック、カーネル時間を表示するをクリック
image.png
そうすると、これが
image.png
これになります。わかりづらいですが、少し濃い水色で点線の部分がカーネルモードのCPU使用率です。
image.png
もう少しわかりやすいところを拡大しました。青の部分がユーザモードのCPU使用率、緑の部分がカーネルモードのCPU使用率です。
image.png

実験

PowerShellでカウントするだけのスクリプトを実行します。(ユーザモードでアプリケーションを実行することになります。)

カウントを表示する場合(画面表示でカーネルモードを使うと予想)と、しない場合で実行して、タスクマネージャで確認してみます。

表示あり.ps1
while ($i -ne 0) { echo $i; $i++ }

image.png

表示なし.ps1
while ($i -ne 0) { $i++ }

image.png

予想通り、表示ありだとカーネルモードのCPU使用率が高くなりました。表示なしの場合は、ユーザモードの使用率が大半を占めていました。

ちょっとだけ詳しく

  • ほとんどのアプリケーションはユーザモードで実行されます。
  • ユーザモードで実行されたアプリケーションはリソースに直接アクセスすることはできません。
  • ユーザモードで実行されたアプリケーションがディスク書き込み(Wordで文書を作って保存など)をする場合、カーネルモードに処理を要求します。

なぜ2つのモードがあるのか

ユーザモードで実行されたアプリケーションが暴走したとき、そのアプリケーションだけで影響をとどめ、システム全体に影響しないようにするためです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1