私はあなたがプロセッサの速度に基づくことができる私は...OSレベルでスリープはどのように実装されていますか?
- を推測しています...
sleep(time in ms)
は、Cライブラリにまたは基本的にOSレベルで実装されているかだけで興味を持っています(スリープ時間が正確かどうか分かりません) - プロセッサに特別なレジスタがあり、値を書き、プロセッサが指定された時間だけ停止します(これは非常に効率的ですプロセッサは他のプログラムでも実行できません)。
手がかりはありますか?おそらくCライブラリのソースコードは説明できますか?私は "C"がそれをどのように実装しているかについてあまり気にしていません...私は、単に "sleep()"関数がどのように実装されているのか全般に疑問を抱いています。
ahhh ..タイムアウト後に起きることは保証されていません。そのスケジューラまで、または基本的にシステムの他のタスク...? – FatDaemon
タイムアウト後どれくらい時間が経過すると、タスクは再びスケジューラに依存して実行されます。システムは、タイムアウトが切れるとすぐに実行されることを保証するかもしれませんが、ほとんどの場合、実行準備ができているキューの適切な場所に配置されます(スレッドの優先度がそれ以外の場合)、次回のスケジュール時に実行されます。 –
多くのエンベデッド・プロセッサーは専用のスリープ命令を持っています – mocj