计算机时间问题漫谈

简介: 计算机的时间问题比一般的认知要复杂,尤其是在涉及模块间合作的场景时会出现很多惊喜。本文旨在简要说明面临的挑战和产品设计上的一些建议。

1.引言

  • 当没有手表的时候,你不清楚现在是几点。
  • 当有了1块手表时,你知道现在是几点。
  • 当有了2 块手表时,它们的时间显示不一致时,你又不知道现在是几点。
  • 当你碰到有个人和你一样都有手表,但时间不一致时,你还是不知道现在是几点。
  • 当你对着电视对标,看了眼电视显示是 6 点整,当低头调完表时,再看表这时电视又比手表快了几秒,于是又继续调表,经过几轮后,好像偏差不大了。
  • 过了几个月,你发现手表又和电视上的不一致了……
  • 当学了高中物理后,知道了电视信号传播是需要时间了,知道了电视上的时间只是导播随电视画面一起传给你播放的画面,于是全国各地看到的 6 点的画面其实是有先后的。
  • 当你出国后,发现国外有人有他们心中的“CCTV”,你又开始思考不同国家的人的时间差。
  • ……

2.问题分析

我们在日常生活中面临的问题,计算机系统也面临同样的问题,站在计算机系统角度面临 4 种时间。

  • 自己的系统时间

    • 硬件时钟:计算机硬件有个使用电池的实时时钟(Real-time Clock, RTC)也叫(CMOS时钟,BIOS时间)。这个于电池质量和使用时长等有关。
    • 系统时钟:又名软件时钟,由Linux内核计算为自1970年1月1日午夜UTC以来的秒数。系统时钟的初始值由硬件时钟计算。系统正常运行后,由系统内核独自运行系统时钟。
  • 自己选择对标的基准时间:可选择自建自己的时间服务器,也可选择对标公共时间服务器
  • 协作模块的时间:由于每个系统选取的时间坐标不同,则大家在协作时时间不一致是常态,如果凑巧一致且长期一致,真是罕见的幸事。
  • 世界公认的标准时间:一般认为UTC和GMT是相等的,但是会存在0.9秒以内的误差,这是由于地球不规则自转引起的。

    • UTC(Universal Time Coordinated),即协调世界时。全世界统一的世界标准时间。需要不规则地加入闰秒。
    • GMT(Greenwich Mean Tim),格林尼治平均时间。

image.png

3.产品设计建议

  • 时间不一致是常态,要基于这个前提来设计
  • 可以以抽象的时间代替具体时间,如业务流水号
  • 以相对时间代替绝对时间
  • 日志要有基于自身时钟的时间戳,建立自己的时间体系,以便于自身问题的排查和定位
目录
相关文章
|
2月前
|
缓存 Java Go
计算机是如何工作的
计算机是如何工作的
31 0
|
3月前
|
存储 量子技术 芯片
计算机历史
计算机历史
110 1
|
7月前
|
存储 数据处理 数据库
计算机中的单位详解
计算机中的单位详解
747 0
|
7月前
|
存储 缓存 C语言
内存与CPU:计算机默契交互的关键解析
内存与CPU之间的密切互动是计算机运行的关键。从RAM到Cache,内存的物理结构和读写过程都影响着计算机的性能。指针在内存中的作用至关重要,就像楼房模型和数组一样,帮助我们理解内存的工作原理。了解内存的重要性,是深入了解计算机运行的第一步。
168 1
内存与CPU:计算机默契交互的关键解析
|
7月前
|
存储 缓存 Linux
计算机是如何工作的(简单介绍)
计算机是如何工作的(简单介绍)
131 0
|
Java Unix 程序员
1.计算机是如何工作的(下)
1.计算机是如何工作的(下)
66 1
|
存储 达摩院 量子技术
计算机组成原理:计算机的发展历史
本文介绍计算机发展的四个阶段、微型计算机发展历史。
9084 0
计算机组成原理:计算机的发展历史
|
存储 芯片
1.计算机是如何工作的(上)
1.计算机是如何工作的(上)
115 0
|
存储 算法 机器人
计算机的组成是什么样的?计算机的指挥中心CPU为啥那么强大?
计算机的组成是什么样的?计算机的指挥中心CPU为啥那么强大?
257 0
|
存储
VMIVME-7750 VMIVME-7750-746001 350-027750-746001P用于控制计算机的中央处理机
VMIVME-7750 VMIVME-7750-746001 350-027750-746001P用于控制计算机的中央处理机
75 0
VMIVME-7750 VMIVME-7750-746001 350-027750-746001P用于控制计算机的中央处理机

热门文章

最新文章