通常,kernel的timer心跳频率是,100,250,1000,也就是时钟中断的最小频率是1ms,那么gettimeofday这种系统函数,是如何获取更精确的时钟呢?usec是从何而来?
gettimeofday()对应的syscall,会调用do_gettimeofday();
getnstimeofday()--->timekeeping_get_ns()-->clocksource.read();
platform初始化时,通过 clocksource_register会注册一个kernel全局的clocksource,以此测算出当前时间和上一个jiffy的offset。X86是tsc。
http://blog.csdn.net/droidphone/article/details/7989566
http://blog.csdn.net/russell_tao/article/details/7185588
http://blog.sina.com.cn/s/blog_62401233010118et.html
http://blog.chinaunix.net/uid-20727076-id-3086954.html
阅读(962) | 评论(0) | 转发(0) |