随笔分类 -  操作系统

摘要:select和epoll都是多路复用的实现。 select: 调用select(fds),把fds(最多1024个)从用户空间拷贝到内核空间,进程阻塞, 当socket缓冲区有数据,唤醒进程,遍历fds,处理。 epoll: epoll_create在内核空间创建eventpoll对象(包括红黑树和 阅读全文
posted @ 2019-12-29 19:49 野鸟 阅读(472) 评论(0) 推荐(0)
摘要:一个输入操作通常包括2个阶段: 1,等待数据报准备好 2,把数据从内核空间复制到用户空间(进程空间) 比如一个套接字的输入操作: 1,等待数据从网络中到达到内核缓冲区中 2,把数据从内核缓冲区复制到进程缓冲区 阻塞式IO 非阻塞IO 多路复用IO 信号驱动IO 异步IO 五种IO模型的比较 阅读全文
posted @ 2019-12-29 17:24 野鸟 阅读(94) 评论(0) 推荐(0)
摘要:IO多路复用是指同一个进程(线程)处理多个IO数据流。 注意和多线程+池模型的区别,多线程+池模型是指每个线程处理一个IO数据流。 多路复用的好处是 1,不会增加新的进程(线程),减少线程创建切换的开销。 2,当处理的消耗对比IO几乎可以忽略不计时,可以处理大量的并发IO,而不用消耗太多CPU/内存 阅读全文
posted @ 2019-12-29 16:59 野鸟 阅读(157) 评论(0) 推荐(0)