INtimeがWindowsに与える弊害 [INtime]
リアルタイムスレッドの処理が長期化する場合は、Windowsに与えられる時間(リアルタイム制御の空き時間)が減少するのでWindowsの挙動が重く感じる、あるいはWindowsが全く動作しなくなる場合があります。しかしこれはリアルタイム処理を先制するという前提に基づくものであり、いわば当然の出来事です。
このような場合はCPUを高速化することでリアルタイムスレッドの処理時間短縮を試みるか、元来リアルタイムが必要な処理であるのかを改めて慎重に見極める必要があります
たとえば次のような処理をリアルタイムスレッドとして記述した場合は、Windowsを極端に重い状態に陥れるか、CPU性能次第ではWindowsを全く動作できない状態に陥れる場合もあります。
for( dwCount=0 ;dwCount<4000000 ;dwCount++ )
{
wData[dwCount] = dwCount;
}
IO制御の場合の対応
- ポーリング式から割り込み方式へ変更してみる。
- ループ内に、”knRtSleep( UsecsToKticks( 100 ) );”等のスリープ関数がある場合、間隔を長くしてみる。
参考サイト