一部のRTOSの場合、カーネルがスレッドに切り替わるとき、またはスレッドから切り替わるときに呼び出されるイベント、またはコールアウト関数があります。pSOSでは、TaskSwitchCalloutと呼ばれていました。これには、カウンターをインクリメントするコードがあり、スレッドが費やしているCPU時間を知ることができます。Qnxでは、カーネルがタスクを切り替えたときに発生するイベントをサブスクライブして、同じカウンターインクリメントを実行できます。
Windowsに同等のものはありますか?多くの場合、Windowsでは、システムで実行されている他のスレッド(read:managed code)と比較して、スレッドコンテキストがいつオンまたはオフに切り替えられたかを正確に判断できません。
なぜ私がこれをやろうとしているのか聞かないでください、私はそれについて話すことができません。ただし、Windowsのperfmonのコンテキストスイッチカウンターでは不十分だと言えます。しかし、perfmonのコンテキストスイッチカウンターはどこかから情報を取得する必要があると思います...スレッドごとにどこかにアクセスしようとしています。
ありがとう!!