jiffies:内核中的时间观念
jiffies在内核中是一个全局变量,声明包含在#include <linux/jiffies.h>中,
几个内核中常用的的概念:
1. HZ
内核常量,ARM架构HZ=100,X86架构HZ=1000
例如HZ=100,表示硬件定时器1秒钟给CPU发送100个定时器中断信号
每发生一次中断的时间间隔为10ms
注意:不同的环境HZ的值都是可能不一样的,我曾经遇到过一个TI的开发板,他的jiffies比较特殊一点,HZ = 128表示1秒,所以大家使用的时候,一定要确认好HZ的值
2. jiffies_64, jiffies
jiffies_64是内核全局变量,64位,unsigned long long,
记录自开机以来发生了多少次的定时器中断,每发生一次,"自动"加1
jiffies也是内核全局变量,32位,unsigned long,值取得jiffies_64 的低32位,每发生一次定时器中断,同样"自动"加1,一般用来记录流失时间(时间间隔)
注意:只要在内核代码中看到jiffies,就等于此刻为当前时间
由于在内核中经常使用的jiffies,下边给出一个小例子(本代码只是一个使用jiffies的框架,具体使用,只需做稍微的修改)
参考代码:
unsigned long timeout = jiffies + 5*HZ;
说明:
jiffies:表示当前时间
5*HZ:时间间隔为5秒
timeout:表示5秒以后的时间,也就是超时时间
参考代码:判断是否超时
unsigned long timeout = jiffies + 5*HZ;
...
...
... //若干条代码,代码执行需要时间
if (jiffies > timeout)
超时
else
没有超时
解决方法:
if(time_after(jiffies, timeout)) {
超时
} else {
没有超时
}//此函数不需要死机,只需要用sourceinsignt查看内核大神们怎么使用即可,里面很多都是经典的用法
jiffies:内核中的时间观念相关推荐
- linux内核中测量时间的方法,Linux内核中获取时间函数do_gettimeofday
内核代码能一直获取一个当前时间的表示, 通过查看 jifies 的值. 常常地, 这个值只代表从最后一次启动以来的时间, 这个事实对驱动来说无关, 因为它的生命周期受限于系统的 uptime. 如所示 ...
- Linux内核——定时器和时间管理
定时器和时间管理 系统定时器是一种可编程硬件芯片.它能以固定频率产生中断.该中断就是所谓的定时器中断.它所相应的中断处理程序负责更新系统时间,还负责执行须要周期性执行的任务. 系统定时器和时钟中断处理 ...
- 在linux内核中获得比jiffies精度更高的时间值【转】
转自:http://blog.chinaunix.net/uid-20672257-id-2831219.html 内核一般通过jiffies值来获取当前时间.尽管该数值表示的是自上次系统启动到当前的 ...
- linux 内核获取时间,Linux内核中的jiffies 以及时间的获取time
硬件给内核提供一个系统定时器用以计算和管理时间,内核通过编程预设系统定时器的频率,即节拍率(tick rate),每一个周期称作一个tick(节拍).Linux内核从2.5版内核开始把频率从100调高 ...
- Linux内核tcp时间测量,linux内核 – 测试linux内核中函数的执行时间
我使用Linux安全模块挂钩来添加一些自定义功能到recv()系统调用.与原始的recv()相比,我想测量这个功能的开销.我写了一个简单的tcp服务器,我运行与没有我的模块.这个tcp服务器调用rec ...
- linux内核中的jiffies,Linux内核中的jiffies及其作用介绍及jiffies等相关函数详解
在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构 struct timeval { time_t tv_s ...
- 关于linux内核中jiffies和jiffies_64解析
1.前言 linux内核中定义了jiffies变量来记录从系统启动到当前时刻系统时钟所产生的tick数.jiffies变量是一个无符号整型数值,即unsigned long类型. 它的声明如下 ...
- linux内核 jiffies,Linux内核中的jiffies
Linux内核中的jiffies 定义:全局变量jiffies用来记录自系统启动以来产生的节拍的总数.启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量的值.一秒内时钟中断的次数 ...
- 查看内核中每个函数花费的时间 initcall_debug
实现查看内核启动的时候每个函数花费的时间 在uboot的环境变量中 添加如下信息,就可以在内核启动的时候查看到每个函数花费的时间 添加: initcall_debug=1 Linux version ...
最新文章
- 学习资源:在线学习 Python(一)
- GAN人脸修复--Generative Face Completion
- CAMWorks ShopFloor 2020中文版
- scikit-learn K近邻法类库使用小结
- 开始简单项目的第二周
- 超详细!使用OpenCV深度学习模块在图像分类下的应用实践
- leetcode 202. 快乐数 思考分析(哈希集合与双指针解)
- g2o求解BA 第10章
- 2020年二级计算机考试真题,2020年3月计算机等级考试《二级MS Office高级应用》历年真题-试题答案...
- 使用位运算(与运算)代替%操作
- Elasticsearch--高级-分词 安装ik分词---全文检索引擎ElasticSearch工作笔记020
- 如何提高matlab的运算速度慢,如何提高MATLAB的运算速度
- 开发中IDEA常用快捷键
- 天天生鲜页面设计——网站首页
- 小涴熊漫画CMS一款不错的开源免费的漫画连载系统带采集API
- liunx系统文件中转站(ftp服务)项目
- 送书 | 《Python3爬虫实战——数据清洗、数据分析与可视化》
- android优酷视频黑屏,为什么优酷视频黑屏?优酷视频黑屏的原因与解决方法
- 3D游戏——AR图片识别与建模
- 联想小新潮7000黑苹果教程_联想Lenovo小新 潮7000-14 完美运行win7的方法
热门文章
- smb连接错误“请检查服务器名称或IP地址,然后再试一次,如果问题持续发生,请联系系统管理员“
- webpack5打包图片报错——Module parse failed: Octal literal in strict mode 图片不能正常显示
- 2019尚硅谷大数据Javaweb篇三 Ajax、JSTL、会话技术、过滤器、监听器、xml、json
- Note For Linux By Jes(18)-X Window 配置介绍
- Cent OS 7命令积累(不定期更新)
- 新一代zData数据库一体机和ZDBM数据备份与恢复一体机正式发布
- 森林图怎么分析_森林图(forest plot)怎么看|meta分析
- Java毕业设计_消防安全培训系统
- Hibernate3 入门之Api,配置文件详解
- 番茄工作法总结-第四章:中断