デバイスドライバをはじめ、デバイスにかかわるお困りごとの際はお気軽にお問い合わせください。
システム上で実行されているプログラムのことをプロセスと言います。例えば、Wordをインストールしたとします。インストールしただけではただのプログラムですが、実際にWordを起動することで1つのプロセスと呼ぶことができます。
1つのプロセスは、さらにスレッドと呼ばれる小さな実行単位に分けられます。通常1つのスレッドは1つの単純な機能を実装しており、1つのプロセスに最低1つのスレッドが存在します。例えば、Wordではキーボードからの入力を取得しモニタに表示させるスレッドと、必要に応じてHelpやエラーメッセージを表示するスレッドが並行してシステム上に走っています。1つのプロセスに多くのスレッドが存在することで、スレッドのスケジュール化が必要となります。
1つのプロセスに複数のスレッドが存在し並行して処理を行うことをマルチスレッドと言います。また、1つのPCで複数のプロセスを並行して処理を行うことをマルチプロセスといいます。マルチスレッドとマルチプロセスの両方を行えるものをマルチタスクと言います。つまり、マルチタスクは複数のスレッドを持つ複数のプロセスを並行して処理することができます。例えば、WordとExcelを同時に実行することはマルチタスクです。
NT ExecutiveはOSの基本サービスを提供し、10数個の機能モジュールが含まれています。NT Executiveが提供する主なサービスを下記に記します。
I/Oマネージャは入出力を管理します。周辺機器に関わるデータの読み出し、書き込み、設定など、OSの入出力に対する全ての操作を行います。I/Oマネージャはデバイスドライバに多くの機能を提供しています。デバイスドライバを開発する上で、I/Oマネージャは重要なので、後で詳しく説明します。
構成マネージャはレジストリによってシステムの構成を管理します。レジストリとはPCの構成情報等を保存するデータベースです。レジストリを介してデバイスドライバの管理も行います。
メモリマネージャとキャッシュマネージャは、ユーザーモードとカーネルモードで使う全てのメモリの管理、割り当てを行います。デバイスドライバはメモリ関連の全ての動作についてメモリマネージャとやり取りをする必要があります。
プロセスマネージャは全てのプロセスとスレッドの作成、削除、管理を行います。スレッド間の同期処理のためのサービスも提供しています。プロセスオブジェクトとスレッドオブジェクトの構築のため、オブジェクトマネージャと共に機能し、実行します。また、プロセスとスレッドが実行中に必要とするメモリの確保のため、メモリマネージャと共に機能しています。
セキュリティ参照モニタはWindows XPのセキュリティアクセスポリシーを実装しています。全てのシステムリソースへのアクセスはここを介して行われます。セキュリティの定義は行いませんが、ユーザー権限のチェックを行ったり、監査メッセージの生成を行ったりします。
LPCは同一マシーン上でのプロセス間のメッセージ通信に使用されます。LPCはメッセージもしくは共有メモリを用いてクライアント/サーバー間でのデータのやり取りをサポートします。主に保護されたサブシステムとそのクライアント間で行われます。
サービス制御マネージャはWindowsのロード後にデバイスドライバの起動と停止の処理を行います。また、ユーザーに提供する全てのサービス管理を行います。
Win32サポートコンポーネントにはウィンドウズマネージャとグラフィックデバイスドライバが含まれます。ウィンドウズマネージャはウィンドウ機能、Windowメッセージの管理などを行います。Win32サポートコンポーネントはGUI(Graphic User Interface)の提供、管理を行います。
PnPマネージャはプラグアンドプレイの機能のサポートを行います。
電源管理はPCの休止、休止状態からのウォームアップ、自動シャットダウン等の管理を行います。