「Windowsの裏側」で何が起きている? カーネルで学ぶ動作の秘密:Windows「カーネル」の基礎【後編】
OSが安定して動作する裏側では、カーネルが膨大なプロセスやリソースを制御している。Windowsの安定稼働に欠かせないカーネルの仕組みを、基本から解説する。
私たちが日常的に使っているMicrosoftのクライアントOS「Windows」の裏側では、膨大な数の処理や制御が絶え間なく行われている。その中核的な存在がカーネルだ。カーネルは、ハードウェアとソフトウェアの橋渡しをする役割を担う。特にWindowsのような複雑なOSでは、カーネルが果たす役割は極めて多岐にわたる。
「Windowsのカーネル」は何をしている? その秘密を解説
併せて読みたいお薦め記事
連載:Windows「カーネル」の基礎
押さえておきたいWindowsの知識
カーネルはOSの中核として、次の3つの重要な役割を担う。
- ユーザーとアプリケーションがOSとやりとりをするためのインタフェースを提供する(図1)。ユーザーモードで動作するアプリケーションが、CPUやメモリ、ストレージなどのシステムリソースにアクセスできるよう、カーネルが仲介役となる。
- アプリケーションの起動、管理、同時実行の調整を担う。複数のアプリケーションが同時に動作していても、それぞれが適切にリソースを使えるように、CPU時間やメモリなどを割り当て、スケジューリングを調整する。
- ハードウェアデバイスや各種システムサービスの制御および管理を担う。ストレージ、メモリ、ネットワーク、周辺機器といった物理的なデバイスに加え、OS内部で動作するシステムサービスなども、カーネルが一元的に管理する。
これらの役割を実現するために、Windowsカーネルは多岐にわたるコンピューティング処理を担当している。
- OSコンポーネントのロード(読み込み)と管理
- デバイスドライバ、システムサービス、ファイルシステム、ユーザーのI/O(入出力)処理など、OSの構成要素を読み込み制御する。
- プロセスの管理とマルチスレッド処理の制御
- アプリケーションの実行単位となるプロセスや、それに属するスレッド(複数の処理)の生成、実行、終了を管理する。
- CPU使用時間(タイムスライス)のスケジューリングと管理
- 各アプリケーションに対してCPUの利用時間(タイムスライス)を割り当て、OSとの通信を制御しながら、全体の処理を効率的に調整する。
- メモリ管理と割り当て
- 各プロセスに対して作業メモリを適切に割り当て、競合やアクセス違反が発生した場合にはその解決を図る。
- システムリソースの監視と最適化
- CPU、キャッシュ、ファイルシステム、ネットワークなどのリソース使用状況を監視し、システム全体で効率的に使用されるよう調整する。
- I/Oデバイスの制御とドライバ管理
- キーボード、マウス、ストレージ、USB、ネットワークアダプター、ディスプレイ、カメラなど、ユーザーが利用するあらゆるI/Oデバイスを管理する。各デバイスにはWindowsのサブシステムが用意されており、これにはドライバやインタフェース、API(アプリケーションプログラミングインタフェース)、システムサービスを含む。
カーネルの主な役割は「スケジューリングと管理」だ。つまり、プロセス、リソース、デバイスなど、PC内部で動作するあらゆる要素を統括して調整する。OSのコンポーネント、サービス、アプリケーションを連携させ、それぞれが実行するプロセスやスレッドを効率的に管理する。
例えば、「Windows 11」のタスクマネジャーのパフォーマンスタブ(図2)では、約700のプロセスと1万1000以上のスレッドが同時に動作している様子が確認できる。こうした複雑な処理の裏側を支えているのがカーネルだ。
コンピュータのCPUは、基本的に一度に1つの処理しか実行できない。この制約を克服するために、カーネルはプロセスやスレッドを細かくスケジュールし、順番に実行させる。各プロセスには短時間のタイムスライスを割り当て、処理が終わらなくても次のプロセスに切り替えることで、あたかも複数の処理が同時に進んでいるかのように見せている。
このスケジューリング処理は常に繰り返され、古いプロセスが完了してジョブキュー(待機リスト)から消える一方で、新しいプロセスが追加され続ける。この流れを制御しているのが、カーネルなのだ。
TechTarget発 世界のインサイト&ベストプラクティス
米国Informa TechTargetの豊富な記事の中から、さまざまな業種や職種に関する動向やビジネスノウハウなどを厳選してお届けします。
Copyright © ITmedia, Inc. All Rights Reserved.

