定時器 工作佇列 核心週期性任務的實現機制

2021-05-28 08:17:09 字數 1260 閱讀 2961

1 /* 本程式結合了核心定時器 和 工作佇列 用於實現 週期性任務

2  * 其工作原理是 在定時器處理函式中 做完相應的工作後 延後expires 並將定時器

3  * 再次新增到核心定時器鍊錶 以便定時器能再次觸發  

4  */

5 #include

6 #include

7 #include

8 #include/*timer*/

9 #include/*jiffies*/

10 11 #define timer_over 3        /*呼叫時間間隔*/

12 13 module_license("gpl");

14 module_author("wenhui");

15 module_description("timer_worklist module");

16 17 static struct timer_list ***_timer;    /*核心定時器*/

18 static struct work_struct ***_work_q;  /*工作佇列(中斷下半部方法中的1種)*/

19 20 static int counter = 0; /*進入中斷次數統計*/

21 22 /*定時器中斷服務程式*/

23 static void ***_timer_function(int para)

24 29     counter++;

30     printk("<0> timer expired and para is %d s !!\n", para);

31     printk("<0> counter = %d\n\n",counter);

32 }

33 34 //註冊乙個核心定時器

35 static void ***_timer_register(struct timer_list* ptimer, unsigned int timeo    ver)

43 44 //定時器底半部處理函式

45 static void ***_fectch_thread(struct work_struct *work)

46 50

51 int __init ***_init(void)

52 59

60 void __exit ***_exit()

61 65

66 module_init(***_init);

67 module_exit(***_exit);

68

cronatab週期性任務定時計畫器

配置檔案 etc crontab cron的日誌檔案 cat var log cron 簡介 crond是linux下用來週期性的執行某種任務或等待處理某些事件的乙個守護程序,與windows下的計畫任務類似,當安裝完成作業系統後,缺省會安裝此服務工具,並且會自動啟動crond程序,crond程序每...

Date物件 1 週期性定時器)

1,直接獲取當前的計算機時間 語法 new date 語法 new date 2019 12 21 12 30 3,計時器 1,週期性定時器 設定乙個定時器 setinterval function 1000 在定時器的第乙個引數中,我們需要引入的是函式的本身,不要去呼叫函式 接觸定時器的方法 cl...

Linux 定時器 延時工作佇列 外部中斷例程

先上 include include include include include include include include include include include include include include include include include include inc...