プロが教えるわが家の防犯対策術!

環境はWindowsを想定します。
Windows.hをインクルードすれば、Sleep(100);で処理を100ms停止することができますが、
Sleep関数はどのようにして100msを測定しているのでしょうか。

初歩的な質問かもしれませんが宜しくお願いします。

A 回答 (2件)

Cから発行された時間待ち要求をOSがどのようにして実現しているかを知りたいのだと思いますが、Windowsパソコンにはタイマー回路やクロック回路が搭載されてますので、OSはそれを利用して時間を計測していると思います。



そのような回路に指定時間経過で割り込み信号を発生させてCPUに知らせるようにすることもできますが、WindowsのSleepではおそらく、OSが時間をカウントし、時間待ちを発行したCのアプリ(厳密にはスレッド)を休止→復帰させてるのだと思います。

以上、あくまで私の推測です。
Windowsに詳しい人が回答してくれるかもしれませんので、質問はオープンのままにされたほうがいいと思います。
    • good
    • 0

測定していません。


OSに対して時間待ちのAPIを発行するだけです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!