poll 从应用层到内核实现解析

Posted wanmeishenghuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poll 从应用层到内核实现解析相关的知识,希望对你有一定的参考价值。

poll与select的流程基本一致,其调用路径为sys_poll->do_sys_poll->do_poll->do_pollfd

do_sys_poll将用户空间的pollfd拷贝到内核空间,初始化poll_wqueues table对象,其使用与select相同。调用do_poll,取得需监视的fd的状态,然后将状态拷贝到用户空间,返回。

do_poll与do_select类似,查询事件,没事件睡眠。只是do_poll中使用pollfd,do_select使用long类型中的每一位记录状态。

do_pollfd实现对poll的调用,然后将状态记录到pollfd中。

以上是关于poll 从应用层到内核实现解析的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统I/O模型及select、poll、epoll原理和应用

Linux内核中的机制学习总结

Java NIO 选择器(Selector)的内部实现(poll epoll)

Linux内核poll内部实现

linux高性能服务器编程之poll

字符设备之poll机制