全局变量jiffies表示自系统启动以来系统产生的嘀嗒数。当启动时,内核初始化该变量为0。每次时钟中断就会增1,所以系统运行时候可以计算为:jiffies/HZ秒。

jiffies变量定义如下:

extern unsigned long volatile jiffies;

将jiffies转换为秒:(jiffies / HZ)。将秒换算为jiffies:(seconds*HZ)。

jiffies比较相关的宏

#define time_after(unknown, known) ((long)(known) - (long)(unknown) < 0)

#define time_before(unknown, known) ((long)(unknown) - (long)(known) < 0)

#define time_after_eq(unknown, known) ((long)(unknown) - (long)(known) >= 0)

#define time_before_eq(unknown, known) ((long)(known) - (long)(unknown) >= 0)

使用例子:

unsigned long timeout = jiffies + HZ/2;

/* timeout in 0.5s */

/* ... */

if (time_before(jiffies, timeout)) {

/* we did not time out, good ... */

} else {

/* we timed out, error ... */

}

代码参考:

typedef struct {unsigned long jiffies;
}os_time_t;static inline osal_result os_clock_get_time(os_time_t *time){time->jiffies = jiffies;return OSAL_SUCCESS;
}static inline osal_result os_clock_get_time_diff_msecs( os_time_t *time,unsigned long *msecs)
{*msecs = (jiffies - time->jiffies) * 1000 / HZ;return OSAL_SUCCESS;
}static inline osal_result os_clock_get_time_diff_secs(  os_time_t *time,unsigned long *secs)
{*secs = (jiffies - time->jiffies) / HZ;return OSAL_SUCCESS;
}

转载于:https://my.oschina.net/fuyajun1983cn/blog/263776

内核变量——Jiffies相关推荐

  1. 获取Windows 系统的内核变量

    关键字:PsLoadedModuleList.PsActiveProcessHead.NtSystemDebugControl         PsNtosImageBase.KdVersionBlo ...

  2. 通过php内核变量绕过,利用PHP内核变量绕过disable_functions(附完整代码)

    0×01 概述 在https://rdot.org网站上面,有一篇俄语文章专门介绍了如何使用fopen/fread/fwrite函数来操纵内存文件/proc/self/mem.利用这种方法,人们就可以 ...

  3. 关于linux内核中jiffies和jiffies_64解析

    1.前言 linux内核中定义了jiffies变量来记录从系统启动到当前时刻系统时钟所产生的tick数.jiffies变量是一个无符号整型数值,即unsigned long类型.     它的声明如下 ...

  4. Linux内核变量中per-CPU的使用

    目录 一.锁的使用 1.使用锁的缺点 2.解决方法 二.per-CPU使用 1)动态 2)静态 3)注意事项 4)引用使用 三.per-CPU在内核中的使用 四.实例 程序输出 一.锁的使用 当操作共 ...

  5. linux内核中的jiffies,Linux内核中的jiffies及其作用介绍及jiffies等相关函数详解

    在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构 struct timeval { time_t tv_s ...

  6. Linux内核系统时钟管理 感想总结 (未完待续)

    目前讨论根据的是2.6.x 版本的内核 Linux 内核系统时钟需要了解的泛化的概念 绝对时间: 所谓的绝对时间指的是系统流逝的时间,从你启动系统的那一时刻开始计算,直到你关闭系统的那一刻作为结束,这 ...

  7. 详解神秘Linux内核

    在开始步入Linux设备驱动程序的神秘世界之前,让我们从驱动程序开发人员的角度看几个内核构成要素,熟悉一些基本的内核概念. 我们将学习内核定时器.同步机制以及内存分配方法.不过,我们还是得从头开始这次 ...

  8. Linux内核之时间系统

    Linux内核之时间系统 1.Linux时间系统 (1)CMOS时钟 (2)系统时钟 (3)节拍数(jiffies) (4)墙上时间(xtime) 2.重要数据结构 (1)struct tk_read ...

  9. tcp/ip 协议栈Linux内核源码分析12 udp套接字发送流程一

    内核版本:3.4.39 因为过往的开发工作中既包括内核网络层模块的开发,又包括应用层程序的开发,所以对于网络数据的通信有那么一些了解.但是对于网络通信过程中,内核和应用层之间接口是如何运作的不是很清楚 ...

最新文章

  1. webpack简易入门
  2. js深度解析url地址
  3. ModuleNotFoundError: No module named ‘lib.utils.cython_bbox‘
  4. docker 容器安装conposer_Docker下用composer国内镜像安装Laravel
  5. 谨慎用药!这些药千万不能混在一起吃
  6. SAP CRM customer classfication debug
  7. 中间件是什么?在.NET Core中的工作原理又是怎样的呢?
  8. db2数据库连接数 linux_介绍一款数据库管理工具DBeaver
  9. 【转】应用架构之道:分离业务逻辑和技术细节
  10. Jstatd命令(Java Statistics Monitoring Daemon)
  11. 用C#实现对Oracle 存储过程/函数/包的调试(附源代码)
  12. java filter加时间戳_java filter加时间戳
  13. realme GT2 Pro获3C认证:65W超级快充加持
  14. 文远知行公布自动驾驶运营路线图:全新升级自动驾驶方案,建立500辆规模的自动驾驶车队...
  15. LOIC网站压力测试工具
  16. 小米出品的最干净的APP,浏览器界的一股“清流”!
  17. 计算机里面的wps如何删除,如何快速删除电脑上的wps的所有换行符
  18. linux的rm命令和 rmdir命令
  19. 适合编程初学者的开源博客系统(Python版)
  20. 关于Linux报错解决方案:READ FPDMA QUEUED

热门文章

  1. C#字符串二进制互换
  2. SQL datediff (时间差)
  3. JDBC 2.0中的高级数据类型
  4. 阿里面试题:Mybatis中的Dao接口和XML文件里的SQL是如何建立关系的?
  5. 大数据流通与交易技术国家工程实验室成立大会在京举行
  6. C/C++基础面试集锦(一)strcpy、memcpy
  7. mysql----Linux下安装
  8. 又学一招,记录之,数字日期互转
  9. extjs 中iframe内存泄漏的问题
  10. python3 pip3 install 报错 ReadTimeoutError: HTTPSConnectionPool(host=‘xxx‘, port=443): Read timed 解决方法