发明名称 一种基于linux用户态调用定时器的方法及系统
摘要 本发明公开一种基于linux用户态调用定时器的方法及系统,其包括在内核通过kmalloc申请8字节连续的内存,返回内存的首虚拟地址kmem;将虚拟地址kmem通过_pa转换为物理地址kphy;用户态启动通过ioctl向内核态获取物理地址kphy;将物理地址kphy转换为虚拟地址umem,用来进行用户态地址访问;在内核态中定义一个全局变量jiffies并写入虚拟地址kmem;用户态创建执行一个while(1)的死循环线程,获取jiffies的值,通过jiffies的值获取系统时间;比较判断系统时间与本地保存的上一次时间,调用用户态定时器处理定时器任务;如此减少系统调用,提高系统的性能和效率。
申请公布号 CN105468400A 申请公布日期 2016.04.06
申请号 CN201510482761.X 申请日期 2015.08.03
申请人 汉柏科技有限公司 发明人 赵众
分类号 G06F9/445(2006.01)I 主分类号 G06F9/445(2006.01)I
代理机构 北京中政联科专利代理事务所(普通合伙) 11489 代理人 谢磊
主权项 一种基于linux用户态调用定时器的方法,其特征在于,包括以下步骤:步骤S1,在内核通过分配内存函数kmalloc申请8字节连续的内存,返回内存的首虚拟地址kmem;步骤S2,将所述虚拟地址kmem通过_pa命令转换为物理地址kphy;步骤S3,用户态启动时,通过ioctl函数向内核态获取所述物理地址kphy;步骤S4,用户态将所述物理地址kphy转换为虚拟地址umem,用来进行用户态地址访问;步骤S5,在内核态中定义一个全局变量jiffies并写入虚拟地址kmem;步骤S6,用户态创建执行一个while(1)的死循环线程,获取所述jiffies的值,通过jiffies的值获取系统时间;步骤S7,比较判断所述系统时间与本地保存的上一次时间,调用用户态的定时器处理定时器任务。
地址 300384 天津市西青区华苑产业区海泰西18号西3楼104室