[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 メーリングリストの案内