根据不同需求,linux内核有不同I/O操作模型:
非阻塞:
进程在不能进行设备操作时,并不挂起,它或者放弃,或者不停地查询,直到可以进行操作为止
阻塞:
指在执行设备操作时,若不能获得资源,则挂起进程直到满足可操作条件后再进行各项操作
等待队列:
用来阻塞或唤醒一个进程,实现阻塞I/O访问
详细请点击 《Linux kernel 中的的等待队列》
轮询操作:
非阻塞I/O访问的应用程序通常使用select()和poll()系统调用查询机制来实现的。
详细请点击 《Linux kernel 中的轮询操作-select poll》