最近看epoll 和 select
都涉及到一个东西叫做设备等待队列,等待队列是如何工作的,内核是怎么管理的?看这篇文章问题:进程是如何组织起来的?我们知道,进程是有很多种状态的:include/linux/sched.h#define
TASK_RUNNING 0#define TASK_INT....
分类:
系统相关 时间:
2014-05-11 23:08:52
阅读次数:
537
什么是 MKNetworkKit?
MKNetworkKit 是一个用objective-c写的网络库,具有无缝连接,基于block,ARC支持以及易用等特点。
MKNetworkKit的灵感来自于其他两个流行的网络库:ASIHTTPRequest和AFNetworking,结合了两个库的共同特点,并且有一些新的特性。除此之外,MKNetworkKit可能会比其他网络库而言为了代码的清晰性,要求你写一丁点多的代码。用了MKNetworkKit,你很难写出丑陋的网络代码。...
分类:
移动开发 时间:
2014-05-09 00:35:56
阅读次数:
511
Nginx的高性能的是用很多细节来保证,epoll下的多路io异步通知,阶段细分化的异步事件驱动,那么在内存管理这一块也是用了很大心血,上一篇我们讲到了slab分配器,我们可以可以看到那是对共享内存的管理的优化。Nginx在进程内也实现了自己的内存池,目的在于减少内存碎片,减少向操作系统的申请次数,减低模块开发难度。Nginx实现的内存池实际上非常简单。...
分类:
其他好文 时间:
2014-05-08 00:37:29
阅读次数:
403
浅析epoll 与 游戏玩家 对应关系的应用...
分类:
其他好文 时间:
2014-05-07 11:52:18
阅读次数:
320
Select、Poll与Epoll比较以下资料都是来自网上搜集整理。引用源详见文章末尾。1
Select、Poll与Epoll简介Selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1
单个进程可监视的fd数量被限制2 需要维护一个用来存放大...
分类:
其他好文 时间:
2014-05-07 10:39:13
阅读次数:
299
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
设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一个时刻只有几十个或几百个TCP连接时活跃的(接收到TCP包),也就是说,在每一时刻,进程值需要处理这100万连接中的一小部分连接。那么,如何才能高效地处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个连接告诉操作系统,然后由操作系统找出其中有事件发生的几百个连接呢?实际上,在Linux内核2.4版...
分类:
其他好文 时间:
2014-05-02 23:11:18
阅读次数:
311
现行开发的软件中,基本没有啥是不联网的。连一个小小的游戏,也要联网,去下载点广告什么的。那么网络层的是不是可以有很多东西可以重用的呢?
本人之前在一个游戏公司做服务器端开发。有一个网络架构是这样设计的。
网络使用了IO复用模型select。当然,对于现在的服务器,可以使用epoll代替。
一个Opcodes类,类成员都是静态的常量,用于表示与服务器通信的操作码。我们称...
分类:
编程语言 时间:
2014-05-01 08:44:52
阅读次数:
433
在单线程并发服务器中,select/poll/epoll可以高效的处理多个连接的数据,下面具体分析三者的区别。1.
select函数函数原型:int select( int nfds, //fdset集合中最大描述符值加1 fd_set *readfds,
//读事件文件描述符数组 ...
分类:
其他好文 时间:
2014-04-29 18:43:54
阅读次数:
449