Linux 核心定時器

2021-06-14 14:42:33 字數 947 閱讀 7387

#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_timer, jiffies + 3*hz); //修改定時器的時間為2秒

static int __init my_timer_init(void)

init_timer(&my_timer); //初始化定時器

my_timer.expires = jiffies + 5*hz; //設定定時器的時間5秒

my_timer.function = func; //定時器時間到,需要執行的函式

my_timer.data = (unsigned long)99; //func函式的引數

add_timer(&my_timer); //註冊定時器

printk("this is my timer  pid: %ld\n", current->pid);

return 0;

static void __exit my_timer_exit(void)

del_timer(&my_timer); //登出定時器

linux 核心 核心定時器

一.時鐘中斷概念 1.時鐘中斷由系統的定時硬體以週期性的時間間隔產生,這個間隔 即頻率 由核心根據hz來確定,hz是乙個與體系結構無關的常數,可配置 50 1200 在x86平台上預設值是1000 2.每當時鐘中斷發生的時候,全域性變數jiffies unsigned long 就加1,所以jiff...

linux核心定時器

度量時間差 時鐘中斷由系統的定時硬體以週期性的時間間隔產生,這個間隔 頻率 由核心根據hz來確定,hz是乙個與體系結構無關的常數,可配置 50 1200 在x86平台,預設值為1000.每秒鐘產生1000次時鐘中斷 每當時鐘中斷發生時,全域性變數jiffies就加1,因此其記錄了自linux啟動後時...

linux 核心定時器

1 asmlinkage void init start kernel void 2 void init init timers void 3 void open softirq int nr,void action struct softirq action 4 static void run t...