摘要: ####概要 使用非阻塞IO 的应用程序通常使用IO多路复用函数 查询设备是否可以立即访问。IO多路复用 对应的驱动需要实现文件操作的POLL()函数。 IO多路函数调用的时候,每个驱动的poll()接口会调用到,执行IO多路函数的进程被挂到每个驱动的等待队列上,可以被任何一个驱动唤醒。 poll函 阅读全文
posted @ 2020-12-03 21:48 bobfly1984 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 异步通知:当驱动程序可读写时,给应用程序发送一个信号SIGIO,应用程序执行信号处理程序。 应用程序如何使用异步通知机制 fcntl(F_SETOWN) // 设置调用进程对描述符的拥有关系,内核知道往哪个进程发送异步信号。 fcntl(F_SETFL) // 设置 O_ASYNC标志。导致fasy 阅读全文
posted @ 2020-12-03 21:46 bobfly1984 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 1:阻塞IO就是执行设备操作时,如果不能获得资源,进程就会被挂起进入睡眠状态,直到等待条件满足。 非阻塞IO就是资源不能获得时不会挂起,驱动返回 -EAGAIN。应用程序或者不断轮询IO设备,或者通过IO多路复用(select\poll\epoll) 阻塞检测设备是否可以立即读写,如果可以立即读写返 阅读全文
posted @ 2020-12-03 21:44 bobfly1984 阅读(243) 评论(0) 推荐(0) 编辑