LDD高級字符驅動程序操作-異步通知

異步通知:

1,作用:對一個文件描述符能夠進行無阻塞操作的時候,發送異步通知到想要的進程,如果爲多個文件由於無法辨識某個文件標識符,所以需要使用poll , select ,epoll,所以異步通知是poll,select,epoll的補充技術;

2,異步通知:linux內核實現,通過異步通知標誌位設置是否發送異步通知,FASYNC;

  a,當設置文件描述符的異步通知位的時候內核會調用文件描述符對應的模塊的異步通知方法fasync(struct file *filp, /*?????*/);設置異步通知,fasync是作爲文件描述對應模塊的file_operations 異步通知函數指針分量被內核調用的;

  b,當某一操作能夠無阻塞執行的時候,文件描述符對應模塊會發送異步通知SIGIO給owner進程做相應的無阻塞操作,對於發送操作爲;kill_fasync(/*?????*/);

  c,當文件描述符對應模塊不使用異步通知時,一定要在release file_operations release函數指針分量對應函數中將其對異步通知的設置刪除,也及時從異步通知隊列中刪除;



3,用戶空間:a,設置文件描述符的owner進程pid

                          b,設置異步通知標誌位;

                          c,設置異步通知處理函數,void (*signal(int , void (*sig_handle)(int)))(int);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章