全部博文(404)
分类: LINUX
2008-09-27 17:55:18
在linux 设备驱动中,存在read和aio_read两个函数,read是同步的,aio_read()是异步的,在使用这两个函数时,有什么区别呢?请详细的介绍一下,感谢之至。
我们假设有这样一个澡堂,每次只能供一个洗澡。(同步)阻塞I/O意味着,当B1去洗澡时若发现A正在洗澡,则B1开始等待(最好是边等边睡觉,这样不消耗CPU资源),直到A洗完后他被唤醒,之后他开始洗澡;(同步)非阻塞I/O意味着,当B2去洗澡时若发现A正在洗澡,B2会不断polling,一旦polling的结果显示可读写,再读写,此后的读写不会被阻塞住;而异步I/O则意味着,B3根本就不用去澡堂,他一直忙自己的事情,一旦澡堂为空,工作人员就自动打电话通知他:“B3处长,澡堂空了,来洗澡吧”。