MOSプロセスのスイッチング時間

Windowsで手軽にリアルタイムIO制御「MOS Bench(モスベンチ)」のプロセスのスイッチング時間を評価した。

すべてのMOSプロセスに適用できるタイマーは、ログに記録されるタイマーしかないので、そのタイマーを利用する。

Printf文を含む2つのプロセスを起動して、そのPrintf文で出力されたログのタイムスタンプを比較する。

Printf文の処理時間も含まれてしまい、その分、大きめの数値になるがやむなしとする。

結果は、平均12us(Print文、変数インクリメント、等MOS言語処理含む)

この時間は、保証されません。1つの例として、見てください。

Mos

途中に90usとか82usがあるが、これは、モーションコントローラで使用している最優先の1ms割り込み処理が間に入っているためである。

CPU: Celeron D 3GHz

メモリ: 256MB (実使用時は512MB以上にしてください)

Windows XP Pro. SP2

Interval社 RTX 6.5.1 Runtime Evaluation版

以下の画面は、2つのプロセスを割り当てた状態を示す。

Photo

5番目と6番目にプロセスを割りつけている。

5番目のプロセスを起動すると、5番目のプログラム中の

ProcStartInitial(6);

という命令で、6番目のプロセスが起動する。

5番目のプロセスと6番目のプロセスの中にPrintf1文がある。

5番目のプロセスのプログラム:

「time_10000_3.mos.c」をダウンロード

6番目のプロセスのプログラム:

「time_10000b3.mos.c」をダウンロード

2つのプロセスを実行した時のログファイル:

「log.txt」をダウンロード

そのログファイルを加工して、スイッチング時間をわかりやすく整理したエクセルのファイル:

「1us.xls」をダウンロード