Linux定时器的应用(创建和使用进程延时)

本文探讨了Linux系统中定时器的使用,通过示例代码展示了如何创建和应用定时器来实现进程的延时操作。实验截图提供了直观的验证过程。

Linux定时器的应用(创建和使用进程延时)
源代码:

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/timer.h>
#include <linux/jiffies.h>
#include <linux/sched.h>

unsigned long timeout;
unsigned remaining;


void process_timeout(unsigned long data)
{
	struct task_struct *p = (struct task_struct *)data;
	wake_up_process(p);

}

// 驱动接口
int __init chr_init(void)
{
        timeout = 2 *HZ;             /* 1Hz等于1000,因此为2000ms*/        
        set_current_state(TASK_INTERRUPTIBLE);    /*或者 TASK_UNINTERRUPTIBLE*/
        remaining = schedule_timeout(timeout);
        printk("schedule Success! \n");
}


void __exit chr_exit(void)
{
    /*if(timer_pending(&timer))
    {
        del_timer(&timer);    // 3.释放定时器
    }*/
    printk("exit Success! \n");
}
 
module_init(chr_init);
module_exit(chr_exit);

MODULE_LICENSE("GPL");

实验截图:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值