linux下I/O多路复用技术基础知识

基础知识:I/O多路复用常用技术
    根据服务端或客户端对I/O操作的不同,网络编程人员须选择不同的多路
复用模型,在大多数情况下,单类模型已不能满足复杂业务要求,此时更多的是
采用几类I/O复用的组合形式。
    select、poll、epoll等是linux下常用的I/O多路复用API,以此
衍生出的大规模并发网络编程模型如PPC、TPC等。
    1.PPC/TPC思想是为每一个到来的连接创建进程(PPC)和线程(TPC)由
派生的进程和线程处理业务,此模型当连接数多时进程和线程间的切换开销不可
忽略,适用于最大连接数不多的情况。
    2.select:对于公平的轮询业务操作来说适应性较好,但也存在最大并发数限制,
由于单个进程打开的文件描述符有限(FD_SETSIZE默认为1024/2048),select每次
调用为线性扫描FD集合,效率会线性下降,且存在内核到用户空间的内存拷贝问题。
    3.epoll:
      3.1 epoll无最大并发连接数限制,上限是最大可打开文件数目,该文件数目
和系统内存大小有关;
      3.2 epoll只关心活跃的连接,不产生无效轮询;
      3.3 epoll使用了类似共享内存方式,无内存拷贝操作;
      3.4 epoll通知用户态有I/0事件到来,并通过结构体告诉应用程序已经注册的相关事件的信息,

根据事件信息用户态直接定位到事件,不必遍历整个FD集合。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值