知識マップ: 普通のWindowsでソフトリアルタイムをできるだけ実現するための実践ガイド

記事「普通のWindowsでソフトリアルタイムをできるだけ実現するための実践ガイド」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

普通のWindowsでソフトリアルタイムを狙うには、期限違反ゼロを保証するハードリアルタイムを求めず、遅延とジッタを小さくして期限を外しても壊れない設計にする。周期待機はQueryPerformanceCounterでの計測と高精度な待機可能タイマーを土台にし、必要な間だけtimeBeginPeriodでタイマー分解能を上げる。電源スロットリングでEcoQoSへの格下げとタイマー分解能の無視を明示的に解除しないと、DPC/ISR、ページフォールト、サーマルスロットリングと並んでジッタが増える一因になる。音声・映像のような連続処理ではMMCSSが優先的なCPU配分で期限超過を防ぎ、CPU配置はCPU Setsのような緩い指定を優先度の高い固定より先に試すべきで、原因の切り分けにはWPR/WPAとLatencyMonを使う。

普通のWindowsでのソフトリアルタイムの知識マップソフトリアルタイムを支える待機可能タイマーやMMCSS、電源スロットリングとEcoQoSの関係、DPC/ISRやページフォールトがジッタを生む経路、CPU SetsからCPU固定への段階、WPR/WPAとLatencyMonによる計測手段の関係を示す図。利用する利用する利用する両立しない利用する防止する原因になり得る利用する軽減する軽減する原因になり得る用いるのは非推奨利用するより先に行うべき原因になり得る原因になり得る原因になり得るで確認できるで確認できるで確認できるソフトリアルタイムQPC(QueryPerformanceCounter)待機可能タイマー(waitable timer)timeBeginPeriod(タイマー分解能要求)Power Throttling(電力調整)EcoQoSジッタMMCSS(Multimedia Class Scheduler Service)デッドラインミス(期限違反)スレッド優先度/優先度クラスCPU SetsCPUアフィニティサーマルスロットリングDPC/ISRページフォールトWPR/WPA(Windows Performance Recorder/Analyzer)LatencyMon

概念間の関係(全20件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

ソフトリアルタイム
期限違反が起こり得る前提に立ち、遅延とジッタを小さくし、期限を外しても壊れず外した事実を観測できるようにする設計の考え方。fast path/slow pathの分離や固定長キューでのホットパス整理が代表的な手段になる。
Power Throttling(電力調整)
EcoQoSに分類されたプロセスに対し、CPU周波数を下げたり電力効率の高いコアへ寄せたりしてWindowsが電力効率の向上を試みるOS側の仕組み。
EcoQoS
性能が最重要ではない処理を省電力寄りに扱うためのQoS。スレッド単位ならSetThreadInformationとThreadPowerThrottling、プロセス単位ならSetProcessInformationとPROCESS_POWER_THROTTLING_EXECUTION_SPEEDで設定する。
MMCSS(Multimedia Class Scheduler Service)
マルチメディア処理をするスレッドが登録すると、レジストリのタスク定義に沿って優先度を引き上げるWindowsのサービス。
スレッド優先度/優先度クラス
SetThreadPriorityやSetPriorityClassで設定するスレッド・プロセスの実行優先度。REALTIME_PRIORITY_CLASSのような最上位クラスは、システム全体を応答不能にしうるため必要性が明確になるまで使うべきではないとされる。
CPU Sets
アプリケーション側がOSの電源管理と協調しながら実行してほしいCPUの希望を柔らかく(soft)伝えるための、アフィニティマスクより新しい仕組み。
サーマルスロットリング
長時間の高負荷運転で温度が上昇した際にプロセッサの動作クロックが引き下げられる挙動。それまで安定していた周期処理が崩れる原因になる。
DPC/ISR
ISRの完了処理を後回しにして低いIRQLで実行する仕組みであるDPCと、割り込みそのものを処理するISR。実行中はuser-modeスレッドが動けないため、長いDPC/ISRは遅延の主要因になる。
ページフォールト
必要なページがメモリになく取りに行くことになる現象。ホットパスで起きると遅延が一気に大きくなる。VirtualLockでロックした領域はページアウトされずページフォールトを避けられる。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。