内核定时器 struct timer_list  
2009-09-18 09:57:40|  分类: LinuxDrv |  标签: |字号大中小 订阅
 
 
转自:http://hi.baidu.com/zhlg_hzh/blog/item/d298b49b57a1cab2c8eaf42b.ht            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2011-11-03 10:20:36
                            
                                3756阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            无论何时你需要调度一个动作以后发生, 而不阻塞当前进程直到到时, 内核定时器是给你 的工具. 这些定时器用来调度一个函数在将来一个特定的时间执行, 基于时钟嘀哒, 并且 可用作各类任务; 例如, 当硬件无法发出中断时, 查询一个设备通过在定期的间隔内检查 它的状态. 其他的内核定时器的典型应用是关闭            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-07-06 11:08:00
                            
                                151阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            #include #include #include #include struct timer_list my_timer;void func(unsigned long data){    printk("time out!\n data: %ld, pid: %ld\n", data, current->pid);    mod_timer(&my_t            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-09-19 14:13:24
                            
                                70阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1.linux内核定时器基本结构和函数1)struct timer_list 一个struct timer_list对应了一个定时器。#include <linux/timer.h>以下列出常用的接口:struct timer_list            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2022-03-10 16:03:42
                            
                                372阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            看了3个周末的Linux内核,包括前两周总结的进程与线程,锁与同步。当时研究这个的原因是因为某个程序CPU context switch过高。不过到现在相关的背景知识也了解了,问题也早已经解决了,所以暂时也没有进一步的兴趣驱动去研究内核了,这里是终结篇。:)
在应用程序运行的时候,特别是抢占式的操作系统里面,内核怎么样取得控制权?这依赖硬件支持的系统定时器来实现。内核中有非常多的功能由定时器触发            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2009-05-18 17:30:00
                            
                                1435阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、定义: /include/linux/timer.h struct timer_list { struct list_head entry; unsigned long expires; void (*function)(unsigned long); unsig...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2013-04-13 13:46:00
                            
                                58阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            #include<linux/module.h>#include<linux/init.h>#include<linux/sched.h>#include<linux/timer.h>structtimer_listmy_timer;voidfunc(unsignedlongdata){printk("timeout!\ndata:%ld,pid:%ld\n",data,current->pid);mod_timer(&my_timer,jiffies+3*HZ); //修改定时器的时间为2秒}staticint        Read More            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2013-05-28 23:37:00
                            
                                185阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            1.linux内核定时器基本结构和函数1)struct timer_list 一个struct timer_list对应了一个定时器。#include <linux/timer.h>以下列出常用的接口:struct timer_list  {   /*....*/   unsigned long expires;//定时器服务函数开始执行时间   void (...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-27 21:24:21
                            
                                322阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            RTC模块产生tick中断和报警。内核在时钟中断发生(tick)后检测各个定时器是否到期。到期后的定时器处理函数将作为软中断在底半部执行。调用run_local_timers(void)处理TIMER_SOFTIRQ软中断。/** Called by the local, per-CPU timer interrupt             
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2013-06-02 14:58:31
                            
                                574阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Android 内核定时脚本:实现定时任务的利器
在 Android 系统中,定时任务是一种比“单纯的運行应用”更高级的功能,有助于管理和优化系统资源。定时脚本通常是使用 Linux 内核的 `cron` 或 Android 提供的其他方法来实现的。本文将探讨如何在 Android 内核中编写定时脚本,并提供示例代码帮助你理解。
## 定时脚本概述
在 Android 中,定时脚本可以用            
                
         
            
            
            
            内核定时器
内核定时器是设备驱动程序中经常要用到的另一个重要的内核设施。如果驱动程序希望在将来某个可度量的时间点到期后,由内核安排执行某项任务(此处的任务通常是驱动程序自身定义的某个函数,接下来的叙述中称之为定时器函数),便可以使用定时器来完成。
设备驱动程序中对内核定时器的一个典型使用场景是用它来实现轮询机制,因为定时器函数自身可以重新启用它所在的定时器,所以在一个时间段到期后,定时器函数被            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2012-02-27 16:15:38
                            
                                632阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.驱动代码 #include <linux/types.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/delay.h> #include <linux/init.h> #include <linux/f            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-07-02 00:04:04
                            
                                29阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            功能:内核定时器可在未来的某个特定时间点调度执行某个函数,完成指定任务。特点:现有Linux定时器最短定时时间为1ms使用过程及函数初始化定时器void init_timer(struct timer_list *timer);
参数:定时器结构体指针添加(启动)定时器。定时器开始计时void add_timer(struct timer_list * timer);删除定时器,在定时器到期前禁止            
                
         
            
            
            
            为了使用它们, 尽管你不会需要知道内核定时器如何实现, 这个实现是有趣的, 并且值得 看一下它们的内部. 定时器的实现被设计来符合下列要求和假设: 定时器管理必须尽可能简化. 设计应当随着激活的定时器数目上升而很好地适应. 大部分定时器在几秒或最多几分钟内到时, 而带有长延时的定时器是相当少见. 一            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-07-06 11:09:00
                            
                                150阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            内核定时器是内核用来控制在未来某个时间点(基于jiffies(节拍总数))调度执行某个函数的一种机制,相关函数位于 <linux/timer.h> 和 kernel/timer.c 文件中。            
                
                    
                        
                                                            
                                                                        
                                                                推荐
                                                                                        原创
                                                                                    
                            2022-04-19 08:51:15
                            
                                1895阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            内核定时器            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-01-02 11:13:51
                            
                                1294阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            内核定时器            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-13 01:29:01
                            
                                434阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 和kernel/timer.c 文件中。被调度的函数肯定是异步执行的,它类似于一种“软件中断”,而且是处于非进程的上下文中,所以调度函数必须遵守以下规则:1) 没有 current指针、不允许访问用户空间。因为没有进程上下文,相关代码和被中断的进程没有任何联系。2) 不能执            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-06-17 15:43:24
                            
                                1255阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、定时器
之前说过两类跟时间相关的内核结构。
1、延时:通过忙等待或者睡眠机制实现延时。
2、tasklet和工作队列,通过某种机制使工作推后运行,但不知道运行的详细时间。
接下来要介绍的定时器,可以使工作在指定的时间点上运行。并且不须要使用忙等待这类的延时方法。通过定义一个定时器,告之内核在哪个时间须要运行什么函数就行了。等时间一到,内核会就运行指定的函数。2、使用定时器
定时器的使用非常ea            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-04-21 15:18:00
                            
                                158阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 和kernel/timer.c 文件中。被调度的函数肯定是异步执行的,它类似于一种“软件中断”,而且是处于非进程的上下文中,所以调度函数必须遵守以下规则:1) 没有 current指针、不允许访问用户空间。因为没有进程上下文,相关代码和被中断的进程没有任何联系。2) 不能执            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-06-17 15:43:21
                            
                                1152阅读