威廉爵爺 发表于 2010-11-11 21:09

代码和ldd3的scull差不多

dreamice 发表于 2010-11-11 22:45

回复 30# 威廉爵爺


    简单为主,理解意思再去套复杂的应用,呵呵

威廉爵爺 发表于 2010-11-11 23:16

回复 32# dreamice


    恩,呵呵,谢谢,

威廉爵爺 发表于 2010-11-11 23:27

down_interruptible得不到信号的时候将进程睡眠。

和select有点类似,
用户态的select如果设置了超时机制, 在调用VFS相关的sys_poll时,先调用 驱动里的poll函数,如果指定的文件描述符不可读或不可写,那么在sys_poll->do_poll中当前进程就会睡眠在等待队列上,这个等待队列是由驱动程序提供的,当变为可读、可写,驱动程序去唤醒这个进程,唤醒后再次调用驱动里的poll,
不然就一直等到select的超时时间到,再次调用驱动里的poll, 最后select 返回

dreamice 发表于 2010-11-11 23:28

down_interruptible得不到信号的时候将进程睡眠。

和select有点类似,
用户态的select如果设置了超时 ...
威廉爵爺 发表于 2010-11-11 23:27 http://linux.chinaunix.net/bbs/images/common/back.gif


    对!

龙客yang 发表于 2010-11-21 13:21

:wink:等待网络的,感谢dreamice

EZWORD 发表于 2010-11-21 17:53

好文章,呵呵,这东西应该好好学一下了。

ricks_wu 发表于 2011-07-22 10:49

顶,我也在看 ldd 3

ruanwenlong18 发表于 2012-10-08 15:05

先好评 再拜读

whutchao 发表于 2013-08-20 09:49

拜读了学习了
页: 1 2 3 [4]
查看完整版本: Linux驱动开发庖丁解牛之四——并发控制之信号量(1)