linux驱动中的异步IO/中断与内核延时

一:异步IO

  1. 阻塞,非阻塞,信号异步通知之间的区别:阻塞IO指读取文件时如果获得不到资源时此进程休眠,直到获得资源时在返回,非阻塞指的是读取时不管有没有获得资源立即返回,信号信号异步通知指的是,硬件设备准备好之后会给相应进程发送信号,通知进程硬件设备准备好了。
  2. 异步IO,进行读取时立即返回,返回的不是读取的结果,读取结果要用特定函数查询,确定读取完成了,然后用特定函数返回值。

二:中断与内核延时

  1. linux中的中断采用顶半部与低半部的结构,顶半部处理紧急的事物,低半部处理非紧急的事物
  2. 低半部的机制有tasklet和工作队列,tasklet 运行于软中断上下文,任然属于原子上下文的一种,而工作队列运行于进程上下文,因此,tasklet处理函数中不能睡眠,而工作队列处理函数中允许睡眠。
  3. 内核定时器,对于周期性的事务操作可以启用内核定时器,对于延时一段时间在操作的情况用delayed_work ,内核的延时有短延时,长延时,依据不同情况选用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值