9--1异步通知的概念和作用

阻塞与非阻塞访问。Poll()函数提供了较好的解决设备访问的机制,但是如果有了异步通知整套机制,就更加完整了。

中断:

      上半部:中断处理程序

      下半部:软中断 tasklet  工作队列 workqueue<-work_struct

进程: runqueue 运行队列

        struct runqueue{

             。。。。

            struct task_struct

       }

 

阻塞:

       wait_event_interruptibel()

       wake_up_interruptible()

非阻塞:

       Poll() select()

并发竞态

      spinlock()       自旋锁 

      down_interruptible()   信号量

       up(&sem)

 异步通知:

        一旦设备就绪,则主动通知应用程序。

       信号时异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。   

 

linux信号:

      使用信号进行进程间通信(IPC)是Unix系统中的一种传统机制,linux 系统也支持这种机制。

      一个信号被捕捉的意思是  当一个信号到达时有 相应的代码处理它。如果一个信号没有被这个进程所捕获,内核采用默认行为处理

信号的接收:

      在用户程序中 ,为了捕捉信号,可以使用signal()函数来设置对应信号的处理函数

     void (*signal)(int signal,void (*handler)(int )))(int);

      如果signal()调用成功,它返回最后一次为信号signum绑定的处理函数handler值,失败返回SIG_ERR.

 

使用信号实现异步通知的应用程序

 

 

显示如下:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值