通过一些方法从用户态陷入到内核态执行:
- io相关操作,设置时钟指令,内存操作(申请内存,清理内存)
- 终端,异常,陷入等
- 进程/线程 管理
- 系统调用,调用硬件等
- 用户内存地址的转换,由程序地址转为物理地址映射
零拷贝...,socket缓冲区中,第三次拷贝
4:内核态 socket缓冲区中数据复制到网卡中,转成网卡协议发送,第四次拷贝
可以看出,当我们通过http请求一个文件时,会出现4次拷贝....操作系统会根据读取的文件,预存储到内核态内存中,因为硬盘效率非常慢,所以当有多次相同文件读取请求时,可以将文件数据从内核态缓存中直接复制到用户态内存中,节省文件操作
零拷贝技术就是避免cpu将数据从一块存储位置拷贝到另一块位置...,通过以下技术可以实现零拷贝:
mmap
mmap 可以将一个文件预加载到内核空间中,并于用户空间共享内存地址,这样就可以避免数据从内核态复制到用户态中,可节省一次拷贝.例如:
#include <...关于select,epoll的优缺点说明
下一篇: 一致性哈希算法原理以及实现方案