系统时间来自哪里?

时间:2017-07-21 00:56:47

标签: c++ timer cpu

我对壁挂时间和系统时间感到困惑,我们如何实际获得这些时间?

例如,在某些编程语言中只需执行GetSystemTime(),它将返回以微秒或其他格式表示的时间。

这一切都来自CPU计数时钟还是存在处理时间问题的另一块硬件?

我不是说如何获得这些时间,只是想知道它会返回CPU时间还是更精确的时间!如果有人可以简单地解释它,那将是很棒的。

2 个答案:

答案 0 :(得分:2)

系统包含某种RTC (Real Time Clock)

这通常是某个地方的集成电路,有时会内置到另一个中(例如CPU或中断控制器,例如,任何真正的东西)。它们通常由电池备份,因此当系统没有外部电源时,时间会继续打开。

许多RTC使用32,768 Hz晶体振荡器来跟踪时间。那颗水晶是石英,因此石英表"。

"系统时间"可能意味着系统已启动的时间。这个时间可以从零开始,并且意味着自系统启动以来的时间",或者它可能在启动时以RTC时间的副本开始,并保持跟踪直到系统关闭(并且时间被写入回到RTC)。这是一个类似于RTC的定时器或时钟,但可能以更高的频率运行,每次滴答计数的时间更短。当时间很重要时,这可以为软件和硬件提供更好的分辨率。

答案 1 :(得分:1)

GetSystemTime() - 这是在Windows(Microsoft)中使用的系统时间。

与系统时间密切相关的是进程时间,它是执行进程消耗的总CPU时间的计数。它可以分为用户和系统CPU时间,分别表示执行用户代码和系统内核代码所花费的时间。处理时间是CPU指令或时钟周期的计数,通常与挂起时间没有直接关联。

时代 - 1601年1月1日至公元30,288年 分辨率 - 1毫秒