码迷,mamicode.com
首页 >  
搜索关键字:epoll    ( 1282个结果
poll&&epoll实现分析(一)——poll实现
0.等待队列 在Linux内核中等待队列有很多用途,可用于中断处理、进程同步及定时。我们在这里只说,进程经常必须等待某些事件的发生。等待队列实现了在事件上的条件等待: 希望等待特定事件的进程把自己放进合适的等待队列,并放弃控制全。因此,等待队列表示一组睡眠的进程,当某一条件为真时,由内核唤醒它们。 等待队列由循环链表实现,由等待队列头(wait_queue_head_t)和等待队列...
分类:其他好文   时间:2014-05-13 16:03:28    阅读次数:370
从select的一个死循环谈epoll的ET模式
——作者:lvyilong316 最近写程序遇到一个问题,就是发现select监听标准输出的时候遇到了死循环,具体程序如下程序一。程序的意图是每当用户在控制台有任何输入,就输出”hello world!”。 程序一: #include  #include  #include  #include  int  main(int argc, c...
分类:其他好文   时间:2014-05-13 14:47:25    阅读次数:294
poll&&epoll实现分析(二)——epoll实现
Epoll实现分析——作者:lvyilong316 通过上一章分析,poll运行效率的两个瓶颈已经找出,现在的问题是怎么改进。首先,如果要监听1000个fd,每次poll都要把1000个fd 拷入内核,太不科学了,内核干嘛不自己保存已经拷入的fd呢?答对了,epoll就是自己保存拷入的fd,它的API就已经说明了这一点——不是 epoll_wait的时候才传入fd,而是通过epoll_ctl...
分类:其他好文   时间:2014-05-13 13:38:54    阅读次数:321
erlang R17新socket选项{active,N}
erlang R17带来了新的socket选项{active,N} ,与{active,once}一起为应用层提供流量控制。为什么会多了这个选项,{active,once}不是可以有效抑制大量socket消息吗?我们知道,{active,once}在每次接收到包都要重新设置active选项,才能继续接收erlang的消息通知。实际上,每次设定{active,once}都意味着调用一次epoll_ctl, 如果请求过于频繁,就会有大量的epoll_ctl调用。erlang目前只有一个线程会收割epoll_wa...
分类:其他好文   时间:2014-05-13 08:04:58    阅读次数:365
linux中的等待队列
最近看epoll 和 select 都涉及到一个东西叫做设备等待队列,等待队列是如何工作的,内核是怎么管理的?看这篇文章问题:进程是如何组织起来的?我们知道,进程是有很多种状态的:include/linux/sched.h#define TASK_RUNNING 0#define TASK_INT....
分类:系统相关   时间:2014-05-11 23:08:52    阅读次数:537
Nginx系列三 内存池的设计
Nginx的高性能的是用很多细节来保证,epoll下的多路io异步通知,阶段细分化的异步事件驱动,那么在内存管理这一块也是用了很大心血,上一篇我们讲到了slab分配器,我们可以可以看到那是对共享内存的管理的优化。Nginx在进程内也实现了自己的内存池,目的在于减少内存碎片,减少向操作系统的申请次数,减低模块开发难度。Nginx实现的内存池实际上非常简单。...
分类:其他好文   时间:2014-05-08 00:37:29    阅读次数:403
epoll
浅析epoll 与 游戏玩家 对应关系的应用...
分类:其他好文   时间:2014-05-07 11:52:18    阅读次数:320
select,poll,epoll的归纳总结区分
Select、Poll与Epoll比较以下资料都是来自网上搜集整理。引用源详见文章末尾。1 Select、Poll与Epoll简介Selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1 单个进程可监视的fd数量被限制2 需要维护一个用来存放大...
分类:其他好文   时间:2014-05-07 10:39:13    阅读次数:299
epoll函数及三种I/O复用函数的对比
epoll函数#include int epoll_create(int size)int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)int epoll_wait(int epfd,struct epoll_event...
分类:其他好文   时间:2014-05-06 00:21:30    阅读次数:519
epoll的原理和用法
设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一个时刻只有几十个或几百个TCP连接时活跃的(接收到TCP包),也就是说,在每一时刻,进程值需要处理这100万连接中的一小部分连接。那么,如何才能高效地处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个连接告诉操作系统,然后由操作系统找出其中有事件发生的几百个连接呢?实际上,在Linux内核2.4版...
分类:其他好文   时间:2014-05-02 23:11:18    阅读次数:311
1282条   上一页 1 ... 126 127 128 129 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!