第8章 Linux设备驱动中的阻塞与非阻塞I/O-总结

8.4 总结

阻塞与非阻塞访问是I/O操作的两种不同模式,阻塞访问在暂时不可进行I/O操作时会让进程睡眠,非阻塞访问则不然。

在设备驱动中阻塞I/O一般基于等待队列或者基于等待队列的其他Linux内核API来实现,等待队列可用于同步驱动中事件发生的先后顺序。使用非阻塞I/O的应用程序也可借助轮询函数来查询设备是否能立即被访问,用户空间调用select()、poll()接口,设备驱动提供poll()函数。设备驱动的poll()本身不会阻塞,但是与poll()、select()相关的系统调用则会阻塞地等待至少一个文件描述符集合可访问或超时。

猜你喜欢

转载自blog.csdn.net/xiezhi123456/article/details/80397515