小结:
这一章,理论比较多。
暂时先看一遍,后面慢慢消化。
阻塞与非阻塞访问是I/O 操作的两种不同模式,前者在I/O 操作暂时不可进行时会让进程睡眠。
在设备驱动中阻塞 I/O 一般基于等待队列来实现,等待队列可用于同步驱动中事件发生的先后顺序。
使用非阻塞I/O 的应用程序也可借助轮询函数来查询设备是否能立即被访问,用户空间调用select()和poll()
接口,设备驱动提供poll()函数。设备驱动的poll()本身不会阻塞,但是poll()和select()系统调用则会阻塞
地等待文件描述符集合中的至少一个可访问或超时。