Windowsで手軽にリアルタイムIO制御「MOS Bench(モスベンチ)」のプロセスのスイッチング時間を評価した。
すべてのMOSプロセスに適用できるタイマーは、ログに記録されるタイマーしかないので、そのタイマーを利用する。
Printf文を含む2つのプロセスを起動して、そのPrintf文で出力されたログのタイムスタンプを比較する。
Printf文の処理時間も含まれてしまい、その分、大きめの数値になるがやむなしとする。
結果は、平均12us(Print文、変数インクリメント、等MOS言語処理含む)
この時間は、保証されません。1つの例として、見てください。
途中に90usとか82usがあるが、これは、モーションコントローラで使用している最優先の1ms割り込み処理が間に入っているためである。
CPU: Celeron D 3GHz
メモリ: 256MB (実使用時は512MB以上にしてください)
Windows XP Pro. SP2
Interval社 RTX 6.5.1 Runtime Evaluation版
以下の画面は、2つのプロセスを割り当てた状態を示す。
5番目と6番目にプロセスを割りつけている。
5番目のプロセスを起動すると、5番目のプログラム中の
ProcStartInitial(6);
という命令で、6番目のプロセスが起動する。
5番目のプロセスと6番目のプロセスの中にPrintf1文がある。
5番目のプロセスのプログラム:
6番目のプロセスのプログラム:
2つのプロセスを実行した時のログファイル:
そのログファイルを加工して、スイッチング時間をわかりやすく整理したエクセルのファイル: