インサイド Windows 第4版 続き
この本によると、
- Win32 サブシステム (Csrss.exe) はそれほど大したことはやっていない
- 大抵のシステム API はサブシステム DLL によって特権モードに入って実行されるので Csrss.exe は経由しない
- 初期の POSIX サブシステムは貧弱で使い物にならない、米国政府の調達基準を満たすためにとりあえず NT に入れたものである
- POSIX サブシステムも結局は Win32 サブシステム (Csrss.exe) のコードを呼び出していることが多い
- GDI における描画は単一のカーネルモードが行っている。複数のアプリケーションからの描画要求も結局は単一スレッドが行う
- GDI 関数は呼び出し順にキューに入れられ、そのキューはカーネルモードで管理されるが、ユーザーモードからの呼び出しではキューに入れる操作だけで処理を戻すので高速である (GDI 描画処理を行うカーネルモードスレッドへのコンテキストスイッチが毎回発生する訳ではない)。次のコンテキストスイッチングサイクルのときに描画カーネルモードスレッドに実行権が渡ったときにまとめて描画される
- ユーザーモードで作成を要求した GDI オブジェクトに関する情報は当然カーネルモードで管理されるが、その情報をユーザーモードから照会することも必要なことが多いので、オーバーヘッド減少のために、同じ情報をユーザーモードでも読み取り専用としてキャッシュしている
など色々興味深いことが書いてある。