系列文章的前两节讨论了用于计时的时钟源:clocksource,以及内核内部时间的一些表示方法,但是对于真实的用户来说,我们感知的是真实世界的真实时间,也就是所谓的墙上时间,
转载 2022-08-29 13:45:18
346阅读
一、从一个例子中介绍为什么要为基类使用virtual析构函数我们创建一个TimeKeeper基类和一些及其它的派生类作为不同的计时方法class TimeKeeper{public: TimeKeeper() {} ~TimeKeeper() {} //非virtual的};//都继承与TimeKeeperclass AtomicClock :public T...
(2)声明一个名为time_keeper的函数,该函数返回一个TimeKeeper类型的对象,并且有一个单一的(未命名的)参数,该
原创 11月前
84阅读
time.nist.govntp.fudan.edu.cn [复旦]timekeeper.isi.edusubitaneous.cpsc.ucalgary.causno.pa-x.dec.comtime.twc.weather.comswisstime.ethz.chntp0.fau.dentp3.fau.detime-a.nist.govtime-b.nist.govtime-nw.nist.g
原创 2008-09-26 13:50:37
10000+阅读
4点赞
7评论
cn.pool.ntp.org1.cn.pool.ntp.org2.cn.pool.ntp.orgtime.nist.govntp.fudan.edu.cn [复旦]timekeeper.isi.edusubitaneous.cpsc.ucalgary.causno.pa-x.dec.comtime.twc.weather.comswisstime.ethz.chntp0.fau.dentp3.f
原创 2015-02-06 14:48:56
1072阅读
linux 时间管理,包含clocksource,clockevent,timer,tick,timekeeper等等概念 ,这些概念有机地组成了完整的时间代码体系。当然,是代码就会有bug,本文通过一个bug入手,在实战中加深对理论的认识。获取时间,但是crash了。
原创 精选 2021-11-18 16:30:47
1405阅读
1评论
time.nist.gov ntp.fudan.edu.cn [复旦] timekeeper.isi.edu subitaneous.cpsc.ucalgary.ca usno.pa-x.dec.com time.twc.weather.com swisstime.ethz.ch ntp0.fau.de ntp3.fau.de time-a.nist.gov time-b.ni
转载 精选 2012-11-25 15:11:51
660阅读
time.nist.gov ntp.fudan.edu.cn [复旦] timekeeper.isi.edu subitaneous.cpsc.ucalgary.ca usno.pa-x.dec.com time.twc.weather.com swisstime.ethz.ch ntp0.fau.de ntp3.fau.de time-a.nist.gov time-b.ni
原创 2011-02-11 07:40:14
850阅读
前面我们讲到,时钟源是给timekeeping使用的,timekeeping会定时更新,这就依赖timekeeping模块需要读取clocksource的计数,计算时间流逝。然后对时间进行叠加,得到当前时间。 ktime_get() --->tk_core.timekeeper clocksource.read()  timekeeping_get_ns()--》
API
原创 2023-06-01 10:20:14
211阅读
本文主要讲解linux 时间管理系统中的一个问题 背景:linux 时间管理,包含clocksource,clockevent,timer,tick,timekeeper等等概念 , 这些概念有机地组成了完整的时间代码体系。当然,是代码就会有bug,本文通过一个bug入手, 在实战中加深对理论的认识 ...
转载 2021-08-06 23:30:00
208阅读
2评论
时钟源(clock source)clock source顾名思义就是提供给系统提供时钟的时钟源。 clock source负责读取芯片中按时间增加的值(所谓cycle),并提供给timekeeper,当然也要提供按cycle的值计算时间间隔的内容。 clocksource以及timer相关的内容都在kernel/kernel/time目录下面。obj-y += timekeeping.o n
多态基类应该声明虚拟析构函数 有很多方法取得时间,所以有必要建立一个基类,并为不同的计时方法建立派生类: getTimeKeeper 返回一个指向派生类对象的指针(比如 AtomicClock),那个对象经由一个基类指针也就是一个 TimeKeeper pointer 被删除,而且这个基类非虚拟析构
转载 2020-01-02 22:57:00
76阅读
2评论
因为 C++ 指出:当一个派生类对象通过使用一个基类指针删除,而这个基类有一个非虚的析构函数,则结果是未定义的。运行时比较有代表性的后果是对象的派生部分不会被 销毁。然而,基类部分(也就是 TimeKeeper 部分)很可能已被销毁,这就导致了一个古怪的“部分析构”对象。这是一个泄漏资源,破坏数据结构以及消耗大量调试时间的绝妙方法。 排除这个问题非常简单:给基类一个虚析构函数。于是,删除一
原创 2009-02-06 09:42:51
709阅读
1评论