インサイド Windows 第4版 続き

この本によると、

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

など色々興味深いことが書いてある。