内核态和用户态
内核态:指的是操作系统层面的资源调度,例如内存分配,进程/线程管理调度,硬件驱动,io中断等等....操作系统会根据读取的文件,预存储到内核态内存中,因为硬盘效率非常慢,所以当有多次相同文件读取请求时,可以将文件数据从内核态缓存中直接复制到用户态内存中,节省文件操作
零拷贝技术就是避免cpu将数据从一块存储位置拷贝到另一块位置...,通过以下技术可以实现零拷贝:
mmap
mmap 可以将一个文件预加载到内核空间中,并于用户空间共享内存地址,这样就可以避免数据从内核态复制到用户态中,可节省一次拷贝.例如:
#include <...,第一次拷贝
2:将内核空间的内存地址以及偏移量传输到socket缓冲区中
3:socket直接从内核空间读取数据
4:将内核空间的数据通过socket复制到网卡中,第二次拷贝
sendfile只能实现文件...关于select,epoll的优缺点说明
下一篇: 一致性哈希算法原理以及实现方案