select,poll,epoll都是IO多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写 ...
分类:
其他好文 时间:
2018-05-06 16:24:26
阅读次数:
160
一些概念: 虚拟空间:是进程所看到的所有地址组成的空间。虚拟空间某个进程对所有分配给它的所有物理地址的重新映射。 寻址返回与计算机的位数有关系。分为内核空间与用户空间。针对32位的Linux系统,最高的1G字节为内核空间。最低的3G字节为用户空间。 进程阻塞:这是进程自身的一种主动行为。当进程进入阻 ...
分类:
系统相关 时间:
2018-05-06 01:35:35
阅读次数:
233
首先是关于IO多路复用的基础概念: select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写 ...
分类:
系统相关 时间:
2018-05-06 00:15:59
阅读次数:
247
线程、进程、队列、IO多路模型 操作系统工作原理介绍、线程、进程演化史、特点、区别、互斥锁、信号、事件、join、GIL、进程间通信、管道、队列。生产者消息者模型、异步模型、IO多路复用模型、select\poll\epoll 高性能IO模型源码实例解析、高并发FTP server开发``` 一、问 ...
分类:
其他好文 时间:
2018-05-04 01:32:44
阅读次数:
548
参考文献: 1. "深入剖析 redis 事件驱动" 2. "Redis 中的事件循环" 3. "深入了解epoll (转)" 4. "Redis自己的事件模型 ae" 5. "EPOLL(7)" 6. "Linux IO模式及 select、poll、epoll详解" 7. "epoll为什么这么 ...
分类:
其他好文 时间:
2018-04-28 19:32:34
阅读次数:
175
关于I/O多路复用: I/O多路复用(又被称为“事件驱动”),首先要理解的是。操作系统为你提供了一个功能。当你的某个socket可读或者可写的时候。它能够给你一个通知。这样当配合非堵塞的socket使用时,仅仅有当系统通知我哪个描写叙述符可读了,我才去运行read操作。能够保证每次read都能读到有 ...
分类:
系统相关 时间:
2018-04-05 11:32:43
阅读次数:
253
select: poll: epoll: 1.实现了epoll自己的文件结构eventpoll和epitem,在初始化时(操作系统启动时)分配相应的缓存,使用slab分配内存。epoll_creat返回的为新的文件描述符(仅epoll可用),可以通过file->private_data得到。 2.高 ...
分类:
其他好文 时间:
2018-03-02 14:51:39
阅读次数:
126
一、在前面讲过的回射客户/服务器程序中,服务器只能处理一个客户端的请求,如何同时服务多个客户端呢?在未讲到select/poll/epoll等高级IO之前,比较老土的办法是使用fork来实现。网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次accept一个新的客户端连接就f ...
分类:
其他好文 时间:
2018-02-26 15:15:41
阅读次数:
210
本节内容 Python协程 Select\Poll\Epoll异步IO与事件驱动 IO多路复用 一、Python协程 协程,又称微线程,纤程。英文名Coroutine。一句话说明什么是线程:协程是一种用户态的轻量级线程。 协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地 ...
分类:
编程语言 时间:
2018-02-25 19:12:54
阅读次数:
258
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说 ...
分类:
其他好文 时间:
2018-02-25 17:33:27
阅读次数:
941