人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

コンピュータが時間をどのように特定しているか教えて下さい。
下記パターンにおいて、どのようにUTCにあわせるのがベストなのか知りたいです。
OSはハードウェアのどの部分を参照して時間を知るのか/ハードウェアはどのように時間を管理しているのか など具体的に教えて下さい。

* A) マシン:ThinkPad X61, OS:WindowsXP
* B) マシン:PowerEdge T105, OS:CentOS5.3
* C) マシン:VirtualBox3.0.6上のVM(ホストは「A)」), OS:CentOS5.3
* D) マシン:MacBookPro, OS:Mac OS X Snow Leopard

●質問者: kunitz
●カテゴリ:コンピュータ インターネット
✍キーワード:Mac OS X OS PowerEdge Snow Leopard ThinkPad
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● seble
●20ポイント

ハードウェアに時計が実装されています。(クォーツかな?biosで設定するでしょ?)

で、XPとかはtime.windows.comとかのネットで実時間を自動的に合わせたりしますが、、、?

(日付と時刻の調整)

linuxはしらん。マックも、、

インターネット以前は、時計が狂うのは当たり前でしたよ。

http://q.hatena.ne.jp/1254558390

◎質問者からの返答

有難うございます。

A) マシン:ThinkPad X61, OS:WindowsXP

のパターンは、

定期的にtime.windows.comに問い合わせて、RTCの時間を更新することによりUTCにあわせている

という認識で大丈夫でしょうか?

* RTCはクォーツ式でしょうか?他の形式もあるのでしょうか?またマシン毎にRTCの性能も違うのでしょうか?RTCの仕様(OS・BIOSとのインタフェースなど)についての情報もあったら知りたいです

* time.windows.comはどのような仕様・規格で実装されたサーバなのでしょうか?


2 ● くない / あしけ
●20ポイント

ネットワークを利用した時刻の同期には、NTP(Network Time Protocol)という仕様があります。たぶん殆どのシステムがこれで時刻を同期しているはずです。またNTPサーバーも各所にあります。

http://ja.wikipedia.org/wiki/Network_Time_Protocol

ハードウェアのことはよくわかりませんが、下記のサイトには、BIOSの時刻管理は水晶振動子を使っていると書いてありますね。

http://home.impress.co.jp/magazine/dosvpr/q-a/0310/qa0310_2.htm


3 ● pyopyopyo
●20ポイント

time.windows.com は NTPサーバですね。 NTPという、時計の時刻合わせをする為の通信規格にしたがったサーバです。

http://ja.wikipedia.org/wiki/Network_Time_Protocol

http://www.atmarkit.co.jp/fwin2k/win2ktips/050nettime/nettime2.h...

とりあえずパソコンの時刻合わせをされたい、ということであれば NTPのクライアントをインストールする方法が、一番簡単で、一番確実です。


RTCは、パソコンに限らず、カーナビとかいろいろな製品で利用されている、時刻モジュールの総称です。

通常のPC用RTCモジュールだと、その仕組みは水晶発振子を使う方式です。

ただし、

http://ja.wikipedia.org/wiki/%E6%B0%B4%E6%99%B6%E6%8C%AF%E5%8B%9...

にあるように水晶発振では精度があまり出ません(普通のPCだと、月あたり五秒ぐらいずれます)

そこでNTPサーバのような正確な時刻が必要なサーバでは、原子時計をRTCとして使っているそうです。たとえばこんなの。

http://www.aist.go.jp/aist_j/press_release/pr2003/pr20030609/pr2...


4 ● makeworld
●20ポイント

どの構成もハードウェアクロック(RTC)と、システムクロックという2つの時計を使用しています。

リアルタイムクロック - Wikipedia

RTCを読み出すのは、システムクロックに比べて時間がかかるので、通常OS起動時と終了時のみで、OS起動中はシステムクロックを使用します。

PCがネットワークに接続していれば、NTPを使用してシステムクロックを補正します。

RTCはローカル時刻(日本時間など)を保持します。OS起動時にローカル時刻をUTCに変換して、システムクロックとします。

RTCは、UTC又はローカル時刻を保持します(どちらでも対応できる)。ただし、Windowsとの併用を考慮して、RTCはローカル時刻に設定してある可能性が高いです。コマンド「hwclock」でRTCを表示できます。

OS起動時に、RTCをUTCに変換して、システムクロックとします。

こちらもWindowsでの起動を意識して、RTCはローカル時刻が設定されているはずです。コマンド「hwclock」でRTCを表示できます。

Macの場合は、RTCにUTCが設定されているようです。

tomoyo - Mac で Windows 時刻問題

◎質問者からの返答

有難うございます。ここまででのイルカ賞です。


5 ● ardarim
●20ポイント ベストアンサー

一般的なPCであれば、通常マザーボード上に計時用のRTC(Real Time Clock)デバイスが実装されていて、AC電源が接続されていない間もマザーボード上に付けられたバックアップ用の電池で時刻が保持されています。


また、いわゆる「PC」(DOS/V互換機)についてはOADG(PCオープン・アーキテクチャー推進協議会)によってハードウェア仕様が規定されており、RTCの場合はI/Oポート70h/71hに接続されることになっています。(OADGテクニカル・リファレンス(ハードウェア))

制御方法としては、ポート70hにRTCレジスタ番号をライトした後、ポート71hからRTCレジスタの値をリード/ライトするという単純なものです。

※実際にはもうちょっと細かい制御が必要ですが、詳細が知りたい場合は上記OADGテクニカル・リファレンスの3-151ページあたりに書かれていますので参照してください。


なおWindowsであれば、I/Oポートはデバイスマネージャで見ることができ(システムCMOS/リアルタイムクロックなどの名称で表示されます)、「リソース」タブで実際のI/Oポートを確認できます。(I/Oの範囲:0070?0077などと表示されます)


ただ、OADGは汎用の制御仕様を規定しているだけで、実際のReal Time Clockの精度性能については各デバイスの実装に依存します。

例えばThinkPad X61の場合は、Intel ICH8チップセットを使っていますが、RTCはICH8に内蔵されています。(詳細はIntel I/O Controller Hub 8 (ICH8) Family Datasheetを参照)

この場合、Real Time Clockの性能はICH8の性能に依存します。

他のチップセットではまた性能が違ってくるでしょう。

◎質問者からの返答

有難うございます。ここまででのイルカ賞です。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ