linux 内核 微秒,如何获得linux的gettimeofday()的微秒时间,它的准确度是多少?
挂钟时间通常由系统RTC提供。这主要只提供时间到毫秒的范围,通常具有10-20毫秒的粒度。然而,
gettimeofday()的分辨率/粒度通常为
reported到几微秒。我假设微秒的粒度必须从不同的来源获取。
gettimeofday()的微秒分辨率/粒度是如何实现的?
当从RTC取下毫秒的部分,从不同的硬件中取出微秒时,就会产生两个相位相位的问题。两个来源必须以某种方式同步。
这两个源之间的同步/定相如何实现?
编辑:从我在amdn提供的链接中阅读,特别是以下Intel链接,我会在这里添加一个问题:
gettimeofday()是否在微秒制度中提供分辨率/粒度?
编辑2:总结了amdns answer的更多结果:
Linux在引导时仅使用实时时钟(RTC)
与更高分辨率的计数器同步,例如时间戳计(TSC)。在引导后,gettimeofday()返回完全基于TSC值和该计数器的频率的时间。通过将系统时间与外部时间源进行比较来校正/校准TSC频率的初始值。调整由adjtimex()功能完成/配置。内核操作锁相环,以确保时间结果是单调和一致的。
这样可以说gettimeofday()具有微秒的分辨率。考虑到更现代的Timestampcounter在GHz系统中运行,可获得的解决方案可能在纳秒制度。所以这个意义很大的评论
/**
407 * do_gettimeofday - Returns the time of day in a timeval
408 * @tv: pointer to the timeval to be set
409 *
410 * NOTE: Users should be converted to using getnstimeofday()
411 */
可以在Linux/kernel/time/timekeeping.c找到。这表明可能会有
是更高分辨率的功能,可在稍后的时间点使用。现在getnstimeofday()仅在内核空间中可用。
然而,通过查看涉及的所有代码来了解这一点,显示了不少关于不确定性的评论。可能获得微秒分辨率。函数gettimeofday()甚至可以在微秒状态下显示粒度。但是,由于TSC频率的漂移不能被准确地修正,所以存在严重的准确性。在Linux内部处理这个问题的代码的复杂性也是一个暗示,相信它实际上太难了。这是特别的,但不仅仅是由Linux应运行的大量硬件平台引起的。
结果:gettimeofday()以微秒的粒度返回单调时间,但它提供的时间几乎不会与任何其他时间源相对于一微秒。
linux 内核 微秒,如何获得linux的gettimeofday()的微秒时间,它的准确度是多少?相关推荐
- 【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )
文章目录 一.堆内存管理 二.内存描述符 mm_struct 结构体 三.mm_struct 结构体中的 start_brk.brk 成员 一.堆内存管理 Linux 操作系统中的 " 堆内 ...
- 【Linux 内核】进程管理 ( Linux 内核中的进程状态 | TASK_RUNNING | TASK_INTERRUPTIBLE | __TASK_STOPPED | EXIT_ZOMBIE )
文章目录 一.Linux 内核中的进程状态 二.TASK_RUNNING 状态 三.TASK_RUNNING 状态 四.TASK_UNINTERRUPTIBLE 状态 五.__TASK_STOPPED ...
- linux内核学习之三:linux中的32位与64位
linux内核学习之三:linux中的"32位"与"64位" 在通用PC领域,不论是windows还是linux界,我们都会经常听到"32位" ...
- 一文了解linux内核,一文了解Linux的系统结构
什么是 Linux ? 如果你以前从未接触过Linux,可能就不清楚为什么会有这么多不同的Linux发行版.在查看Linux软件包时,你肯定被发行版.LiveCD和GNU之类的术语搞晕过.初次进入Li ...
- Linux内核入门-如何获取Linux内核源代码、生成配置内核
如何获取Linux内核源代码 如何获取Linux内核源代码 下载Linux内核当然要去官方网站了,网站提供了两种文件下载,一种是完整的Linux内核,另一种是内核增量补丁,它们都是tar归档压缩包.除 ...
- 在win10查看本机linux的文件,Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件...
原标题:Windows 10变身开发者利器:内置Linux内核,轻松查看Linux子系统文件 来源:创事记 终于!在Windows里可以访问Linux文件了. 这表明,微软插入开源界的触角,越来越深入 ...
- linux内核培训广州,嵌入式Linux驱动开发高级培训班-华清远见嵌入式培训中心
课程目标 本课程以案例教学为主,系统地介绍Linux下有关FrameBuffer.MMC卡.USB设备的驱动程序开发.参加本课程学习的学员,因为具备了Linux设备驱动开发基础,所以本课程针对性较强, ...
- 搭建《深入Linux内核架构》的Linux环境
搭建<深入Linux内核架构>的Linux环境 阅读目录(Content) 作者 软件 概述 正文 一.安装GCC 二.编译Linux内核 三.制作跟文件系统 四.运行qemu 五.启动l ...
- linux内核启动分析 三,Linux内核分析 实验三:跟踪分析Linux内核的启动过程
贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 ...
- linux内核 lts长期演进,Linux Kernel 4.19 将成为下一个LTS(长期支持)系列
最近Linux内核开发人员和维护人员Greg Kroah-Hartman透露,Linux Kernel 4.19将下一个长期支持的Linux内核系列. 现在Linux Kernel 4.17已经达到使 ...
最新文章
- Android JNI简单实例(android 调用C/C++代码)
- iOS-自定义导航栏后侧滑返回功能失效
- M1 Mac 是否入手,先了解这些常用软件兼容性!!
- 【DSP】win10安装CCS5.5教程及报错解决方法
- 流水号(自动编号)生成相关问题(并发、事务)及解决方案
- 任务态fMRI的实验设计方法及注意事项有哪些?—重温经典文章的点滴思考
- slidebox使用教程 设定焦点数量
- python:talib 计算 SAR
- AWS的十条军规: 过去十年的经验总结
- Sprite Atlas与Sprite Mask详解
- CoordConv:An intriguing failing of convolutional neural networks and the CoordConv solution
- Visual Studio 2022 中的键盘快捷方式
- NO-SQL(非关系型)数据库性能横向比较
- python少儿编程008:海龟绘图画出奥运五连环!
- 入门必学的sql语句
- 湖南大学数据库实验一
- Linux系统网络管理1
- 用STK导入段时间TLE数据
- RGB图像转换为BGR
- 结对项目——自动生成小学四则运算题目的命令行程序(基于Python)
热门文章
- 打通企业的“韧”督二脉,戴尔科技赋能数智远见者
- 不同数据集格式转换处理
- 博图V16之西门子840D sl软件配置
- VC Timer 用法
- qt播放音乐报错DirectShowPlayerService::doSetUrlSource: Unresolved error code XXXXXX
- [论文笔记随手] Training with Weighted Sum of Denoising Score Matching Objectives
- 【Keil】Error: Flash Download failed - Target DLL has been cancelled
- Few-Shot Learning
- Error: #260-D: explicit type is missing (int assumed)的解决方法
- 可以测试人未来的长相软件,预测未来长相软件