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

来源:互联网 发布:结构计算软件 编辑:程序博客网 时间:2024/05/21 17:15

阻塞与非阻塞访问。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.

 

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

 

 

显示如下:

 

 

原创粉丝点击