tasklet继续

1.28学习记录


调度自己的taasklet
可以使用task_disable()来禁止某个指定的tasklet,若正在执行,那么就会等待其执行完毕再结束。
也可以使用tasklet_disable_nosync()强制禁止。


使用tasklet_enable()可以激活一个tasklet();
使用tasklet_kill()函数从挂起列队中去掉一个tasklet。


ksoftirqd
每个处理器都有一个辅助处理软中断(和tasklet)内核线程。这些内核线程会辅助处理他们。


在处理软中断的时候,会遇到处理器时间安排上的问题,特别是在高负载的情况下,越有可能遇到问题。


在设计软中断时,作为改进,当大量软中断出现的时候,内核会唤起一组内核线程来处理这些负载,这些
线程在最低的优先级上运行。以避免和其他重要的任务抢夺重要资源。
每个处理器都有一个一个这样的线程, 线程的名字叫做ksoftirqd/n n为处理器的编号,一旦线程被初始化
就会执行如下的死循环。
for(;;)
{
if(!softirq_pending(cpu))
schedule();


set_current_state(TASK_RUNNING);


while(softirq_pending(cpu)){
do_softirq();
if(need_resched())
schedule();
}
set_current_state(TASK_RUNNING);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值