每日一博 | IO 多路复用原理分析以及技术延伸分析
前言 前不久在和搞技术朋友聊天的时候聊到了IO多路复用问题,当时为了解决IO瓶颈问题就没有深入研究,问题解决之后,工作之余进行深入研究,便记录下来,供给需要的小伙伴进行学习与研究提供一种思路。为了加深对IO多路复用机制理解,以及了解IO多路复用局限性,前面主要对基本概念以及一些常见问题分析,同时也回顾下UNIX网络编程中五种IO模型,本篇重点学习理解IO多路复用的底层实现机制。 概念说明 IO多路复用有三种实现方式,在介绍select、poll、epoll之前,我们先介绍下UNIX/Linux中几个基本概念 用户空间与内核空间 进程切换 进程的阻塞 文件描述符 缓存I/O 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对于32位系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次幂)。操作系统核心就是内核。可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操作系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。 针对Unix/Linux操作系统而言,将最高的1G字节(从虚拟地址0xC00...
