IO多路复用
wanhf11
无。
展开
-
IO多路复用 - select
/*sys_select(fs/select.c)处理了超时值(如果有),将struct timeval转换成了时钟周期数,调用core_sys_select,然后检查剩余时间,处理时间*/asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp,原创 2016-10-14 11:17:09 · 566 阅读 · 0 评论 -
IO多路复用 - poll
poll 与 select 区别poll的实现和select非常相似,只是描述fd集合的方式不同,poll使用pollfd结构而不是select的fd_set结构。 1. poll解决了select单线程监控的最大文件描述符的数量。 2. poll引入了水平触发的特性,没有及时处理就绪文件描述符,下次poll还会提醒。pollfd 结构typedef struct pollfd {原创 2016-10-14 15:44:49 · 320 阅读 · 0 评论 -
IO多路复用 - epoll
epoll与poll的区别每次调用poll,都需要把fd集合从用户态拷贝进内核态,开销大;epoll只需要一次拷贝。poll在内核通过遍历得到就绪文件描述符,epoll通过注册回调函数+就绪链表的形式得到就绪文件描述符,不需要遍历。epoll 函数1. int epoll_create(int size); /*创建一个epoll的句柄*/2. int epoll_ctl(int e原创 2016-10-15 10:13:51 · 538 阅读 · 0 评论