对ldd3 中jiq程序的一点笔记

1    问题:
为什么jitimer只打印了两行,而jiqtasklet却打印了多行?
原因就是一开始对interruptible_sleep_on()这个函数不理解。他其实就是休眠函数,最综又通过wake_up_interruptible()函数唤醒。
详细解答如下:jitimer是采用了定时器的,而定时器只是在jiffies寄存器到达expires值时启用,如果不修改expires值的话定时器执行函数只会执行一次。再说,在定时器的执行函数中有 wake_up_interruptible()函数唤醒了休眠的主程序。
       而jiqtasklet 程序采用的是tasklet机制,程序会一直调度tasklet并执行执行函数。而在执行函数中,只有关键字len > LIMIT 时才会用wake_up_interruptible()函数唤醒了休眠的主程序。所以导致了会执行LIMIT次。
2   为什么有这个问题?
主要是对interruptible_sleep_on()函数不懂。因为在前面讲到休眠时只看到了wait等函数。后仔细看书后才发现,这个是老的历史版本。
3 新发现:     呵呵,又发现一个好东东,发现如果一个函数看代码看不懂,就直接把这个函数放在摆渡里搜索就能够找到这个函数大概是什么作用了,呵呵,站在巨人的肩膀上吧,那样你能看得更远。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值