※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

RTC実装

 PC/AT互換機における、「時刻」のソースは基本的にRTC(Real Time Clock)のみである。一方「時間」のソースには、RTC、PIT(Programmable Interval Timer)、Local APIC(Advanced Programmable Interrupt Controller)、ACPI Timer、TSC(Time Stamp Counter)、HPET (High Precision Event Timer)などの種類が存在し、時刻管理は「時刻」と「時間」のソースを組み合わせて行われる。一般的なOSではハードウェア時刻(RTC)とシステム時刻が存在し、以下のような仕組みでシステム時刻情報が保持されていることが多い。

1.ブート時にハードウェア時刻(RTC)を読み出しシステム時刻とする。
2.起動後は「一定時間」ごとにシステム時刻を刻む。「一定時間」の測定には通常PITが用いられる。
3.場合により、適宜高精度タイマ(ACPI、TSC等)によりシステム時刻に補正を加える。
4.アプリケーション等がシステムコールあるいはAPI等により時刻を取得する場合、システム時刻を返す。
5.シャットダウン時にシステム時刻をRTCに書き戻す。

上記手順において、RTCが常に使用されていない理由については、RTCがCMOS駆動のために信頼に足るデバイスではないとされていたこと、RTCの動作速度がPIC等に比して遅いことが考えられる。また、マルチタスクシステムにおいてはPIC等による「一定時間」ごとの割り込みが必須となるので、PICを使った時刻管理はRTCによる時刻取得よりもシステムにも負荷が少なく効率的な方法である。