[Armadillo:08474] Re: armadillo440でのμsleep実行時の精度について

Koyo Takenoshita email@hidden
2012年 12月 19日 (水) 14:09:12 JST


竹之下です。

Armadillo-440 + linux-2.6.26-at では、High Resolution Timerが
使われていますのでμ秒単位で指定することはできるのですが、
実力値としては高々数msec程度の分解能です。
また、負荷時においては、10msec(HZ=1000なので)の倍数分遅れる
ことがあります。

CPUの占有率については、usleep()ではなく、nanosleep()を使うと
どうなるでしょうか?
※man usleepに、以下のように書かれています。
 準拠
        4.3BSD, POSIX.1-2001.  POSIX.1-2001 では、この関数は過去のものと宣言されている。 代わりに nanosleep(2) を使うこと。

man nanosleepには、
説明
       nanosleep()は、呼び出したスレッドの実行を、(中略)一時停止する。
と書いてあるので、CPU時間は消費しないのではないかと思います。

(2012/12/19 13:11), h.kondo wrote:
> 古賀様
> 
> 「アプリケーションデバッガ」は、
> Armadilloに添付されている評価版のC-Sharkです。
> 
> ちょっと調べたのですが、μsleep()は、sleep()と違い、
> 「プロセスの実行を遅延する」ようですが、
> これは「休止状態」となるのではなく、「実行状態」のままで
> いるということなのでしょうか。
> μsleep()を実行しても、タイムスライスの割り当て時間分は
> そのプロセスが占有することになるのでしょうか。
> 
> 上記の通りだとすると、何となく合点がいきそうな気がしますが、
> その場合、msオーダー単位でプロセスを休止状態にすることは
> できないのでしょうか。sleep()は秒単位のようですので。
> 
> 知識不足ですみません。
> 
> 
> 
> 
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 

-- 
Koyo Takenoshita




armadillo メーリングリストの案内