- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:システムクロックのカウント方法)
システムクロックのカウント方法は?
このQ&Aのポイント
- システムクロックのカウント方法について知りたい
- OSが管理しているシステムクロックはどのようにカウントされているのか疑問
- マザーボードのハードウェアクロックを読み込んで、OSのシステムクロックに設定するが、具体的なカウント方法は不明
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ご想像の通り、マザーボード上に、「RTC(Real Time Clock)」という回路があり、一度設定するとその時刻から自動的にカウントアップしています。 パソコンの電源がOFFになっても、CMOSバッテリーを用いて動作し、途切れることはありません。 http://park12.wakwak.com/~eslab/pcmemo/clock/index.html ただし、この回路の精度はそう高いものではないので、一ヶ月に秒単位で狂ったりもします。 そこで、一日に1回程度、原子時計を使ったNTPサーバ等から正確な時刻をもらい、設定してやれば、数日間は十分に正確な時刻を刻んでいると見て良いだろう、ということになります。 マザーボード上には、CMOS設定を保持するボタン電池がありますが、これが切れると、BIOS設定が飛ばずとも、起動ごとに時計が狂ってしまったりする症状も出たりします。 数年間使ってきたマザーボードが故障したと思ったら、ボタン電池が切れただけだった、というのもよくある話。
お礼
レスありがとうございます。 >>私はマザーボードに載っているICが割り込みを発生させて、 >>それを用いて更新しているのかと思ったのですが、調べてみると違いました。 >http://park12.wakwak.com/~eslab/pcmemo/clock/index.html http://jibun.atmarkit.co.jp/lskill01/rensai/lpicdrill08/lpicdrill01.html ↑↑や↑を読んではいたのですが、読み足りなくて勘違いしてしまったみたいです。 ハードウェア的なカウンタが使われているのですね。 納得できました。ありがとうございます。 ハードウェアカウンタを用いて、 ・RTCの更新 ・IRQ0でOSにシステムクロックの更新通知 が行われているようですね。 で、電池が切れるとリセット。 IRQ8でRTC更新。更新は、 ・ユーザが手動で設定 ・NTPを利用した自動設定 と、こんな感じですね。