操作系统-网络IO模型
操作系统-网络IO模型 用户空间及内核空间 Linux 网络 IO 模型 阻塞IO(Blocking IO) 非阻塞IO(Non-Blocking IO) IO复用(IO Multiplexing) 信号驱动的IO(Singal Driven IO) 异步IO 5中IO模型的对比 参考文档 用户空间及内核空间 我们知道现代操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接访问内核,保证内核的安全,操作系统将虚拟存储空间划分为两部分——一部分为内核空间,一部分为用户空间。针对Linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF)供内核使用,称为内核空间;而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF)供各个进程使用,称为用户空间。每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享。于是从具体进程的角度来看,每个进程可以拥有4G字节的虚拟空间。 寻址空间是用来干嘛的?和内存空间有何差别? Linux寻址空间分配如下图所示: 有了用户空间和内核空间,整个Linux内部结构可以分为三部分,从最底层到最上层依次是:硬件–