2017-07-21 11 views
-6

私は壁の時間とシステム時間についてとても混乱しています。システム時間はどこから来ましたか?

たとえば、いくつかのプログラミング言語では、単にGetSystemTime()を実行すると、マイクロ秒またはその他の形式で表される時刻が返されます。

CPUカウントされたクロックに由来するものであるか、時間の問題を処理する別のハードウェアが存在しますか?

私はこれらの時間を得る方法を意味するものではなく、CPU時間またはより正確な時間を返すかどうかを知りたいだけです。誰かが簡単に説明できるのは素晴らしいことです。

+0

システム時刻は、システムが再投入最後に起動するか、電源だったので、時間がある可能性があります。 –

+3

お使いのコンピュータには正確な時計が含まれています。 – meagar

+0

この質問は話題にならず、おそらく閉鎖されますが、下の私の答えを参照してください。 – Steve

答えて

2

システムには、何らかの種類のRTC (Real Time Clock)が含まれています。

これは通常、別の場所に組み込まれている集積回路です(CPUや割り込みコントローラなど)。彼らは通常、バッテリでバックアップされているので、システムに外部電源がないときは、時間が刻々と変化します。

多くのRTCは、32,768 Hzの水晶発振器を使用して動作し、時間を追跡します。その水晶は石英です。したがって、 "クォーツ時計"です。

「システム時刻」は、システムの電源が入っている時間を意味します。この時間は0から始まり、システムが起動してからの時間を意味するか、起動時にRTC時間のコピーで開始し、システムがシャットダウンされるまで追跡します(そして、時間はRTCに書き戻されます) 。これはRTCに似たタイマーまたは時計ですが、より高い頻度で実行している可能性があり、各ティックでより少ない時間をカウントします。これは、時間が重要なときにソフトウェアとハ​​ードウェアをより良く解決することができます。

+0

Steveさん、実際に私の同僚によって提起されたこの質問は、製品のタイミング問題について話していましたが、時にはCPU時間が十分に正確ではないと思っているため、実際にはgetSystemTime別のハードウェアからCPU時間またはより正確な時刻を返します。 – disccip

+0

私はそのAPIに精通していませんが、ドキュメントのクイックチェックでは正確性については何も言及していません。それがどれほど正確であるか、解決法などが記載されていない限り、保証はありません。 – Steve

1

GetSystemTime() - これはWindows(Microsoft)で使用しているシステム時間です。

システム時刻と密接に関連しているのは、実行中のプロセスによって消費された合計CPU時間のカウントであるプロセス時間です。ユーザーコードとシステムカーネルコードの実行に費やされた時間を表す、ユーザーCPU時間とシステムCPU時間に分けられます。処理時間は、CPU命令またはクロックサイクルの集計であり、一般にウォールタイムとは直接相関がありません。

エポック - ADへ1601年1月1日30828 解像度 - 1ミリ秒

関連する問題