- ベストアンサー
Linuxでの10msスリープ
Linux初心者です。よろしくお願いします。 Cで記述された旧式のRTOSでのプログラム をLinux環境に移植しようとしていて、 Timesys Linuxを購入予定ですがまだ入手で きてないので、Vine Linux 2.6で試運転させて います。 10ms毎の周期起床するタスクを旧記述では カーネルコールのsleep()で起床待ちさせて 起床タイミングはカーネルのスケジューラに 任せていたため、同じように動かそうとタスク をPosixThreadにしてその上でusleep(), nanosleep()等を実行してみたのですが、 待機時間が2ms以下か、20m以上になってしま って上手くスリープしてくれません。 (スケジューリング周期は10msです。) 標準のLinuxで10ms(毎のスケジューリング タイミングまで)待たせる場合はどういう 方法をとるとよいでしょうか?
- みんなの回答 (3)
- 専門家の回答
お礼
回答ありがとうございます。 その関数は知りませんでした^^; JMを読んで試してみましたところ、うまく スリープすることができました。 タイムアウト設定を1usに設定しても起床 タイミングは経過後の次のスケジューラ処理 時になる遅延起床処理のようです。