time() 函数如何得知当前时间,甚至计算机已提前关闭电源?

StackOverflow https://stackoverflow.com/questions/973524

  •  13-09-2019
  •  | 
  •  

我们如何处理以毫秒(0.001)为单位的计时器,我们如何根据需要划分秒?我们如何处理第二个本身???

有帮助吗?

解决方案

http://computer.howstuffworks.com/question319.htm

  

在计算机(以及其它   小工具)时,电池功率的芯片   所谓的实时时钟(RTC)芯片。   该RTC实质上是一个石英表   运行所有的时间,无论是否   计算机有电。电池   权力这个时钟。当计算机   启动时,该过程的一部分是   查询RTC,以获得正确的时间   和日期。小石英钟一样   这可能运行五到七年   关小电池。然后,它是   时间来更换电池。

其他提示

您的电脑将有一个 硬件时钟, ,由电池供电,因此即使在计算机关闭时也能保持滴答作响。PC 知道其时钟运行的速度,因此它可以确定一秒过去的时间。

最初,PC 不知道现在是什么时间(即它只是从零开始计数),所以必须告诉它当前时间是什么 - 这可以在 BIOS 设置并存储在 互补金属氧化物半导体, ,或者可以通过互联网获取(例如通过与时钟同步 美国国家标准技术研究所).

一些概括,并且更一些信息:

1)的计算机读取引导期间实时时钟,并使用该设置它的内部时钟

2)从此,计算机使用它的只有CPU时钟。 - 它不重新读取RTC(正常)

3)的计算机的内部时钟受到漂移 - 由于热不稳定,功率波动,在寻找秒,中断延迟,宇宙射线的精确除数不精确性,和月亮的相位

4)的时钟漂移的幅度可以是每天秒的数量级(几十或几百秒每月)。

5)的大多数计算机都能够连接到时间服务器(通过互联网)以周期性地重置其时钟。

6)使用时间服务器可以增加数十毫秒(通常)的内的精度。我的计算机更新每隔15分钟。

计算机知道时间,因为像你这样的,他们有他们看,不时数字手表。

当你得到一个新的电脑或移动到一个新的国家,你可以设置表,或您的计算机可以要求互联网是什么时候了,这有助于阻止它形成运行缓慢,或快速。

作为计算机的用户,则可以要求当前的时间,也可以让计算机作为闹钟。一些计算机甚至可以把自己对在特定时间,备份投案自首,或唤醒你最喜欢的曲子。

在内部,计算机能够在告诉毫秒,微秒或有时甚至纳秒的时间。然而,这并不完全准确,两台电脑并排将有大约在纳秒的时间不同的想法。但它仍然是有用的。

在计算机可以设置闹钟在未来几毫秒,并且通常执行此操作,所以它知道何时停止思考你的电子邮件程序,花一些时间考虑你的网络浏览器。然后,它设置其他报警,知道要回到你的电子邮件在几毫秒后。

作为一个程序员,你可以使用这个工具太,例如,你可以设置在游戏中的级别的时间限制,使用“定时器”。或者你可以使用一个计时器来告诉你何时应该把动画的下一帧的显示上 - 也许是25时第二(即每40毫秒)

要回答的主要问题,在BIOS时钟有主板上的电池,像剑的回答说。这令时机器关闭。

要回答什么,我认为你的第二个问题是,您可以通过1000做一个整数除法得到毫秒值的第二,像这样:

second = (int) (milliseconds / 1000);

如果你问我们如何现在能够与准确度,以获得时间,看看埃斯特万的答案...石英晶体振动在一定的时间段,说0.00001秒。我们只是做计数的振动的电路。当我们达到10个振动,我们宣布第二过去了,更新时钟。

我们可以通过振动这样计算得到任何准确......任何精度比这就是我们正在使用的晶体振动的周期。

主板有蜱的时钟。每个替代表的时间单位。

要更精确地,所述时钟通常是oscilates在给定频率的石英晶体;一些常见的CPU的时钟频率是33.33和40兆赫。

绝对时间,使用从1970年的秒的32位计数器这可能会导致测量archaically“2038问题”,其中它只是溢出。因此在现代Windows和Unix平台中使用的64位的时间的API(这包括基于BSD的MacOS)。

很多时候,一个PC用户感兴趣的时间间隔,而不是因为一个深刻的事件发生的绝对时间。一台计算机的普通实现有东西叫做定时器,仅允许这样的事情发生。当PC是无法与轮询硬件的宗旨,为唤醒状态,切换休眠模式或退出休眠的这些定时器甚至可能运行。英特尔的处理器文档进入这些令人难以置信的细节。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top