cpu运算,并且结果保存在进程内存中
if (pcntl_fork()) {//pcntl_fork调用 内核 fork函数,由用户态转内核态,复制一个新的进程
echo "hello world.../test.txt");//在fpm中执行
它的流程为:
1:从硬盘中读取数据到内核态缓冲区,第一次复制拷贝
2:内核态复制数据到用户态,第二次拷贝
3:用户态获取数据之后,echo 发送数据,复制数据到内核态...操作系统会根据读取的文件,预存储到内核态内存中,因为硬盘效率非常慢,所以当有多次相同文件读取请求时,可以将文件数据从内核态缓存中直接复制到用户态内存中,节省文件操作
零拷贝技术就是避免cpu将数据从一块存储位置拷贝到另一块位置...,file_length);
return 0;
}
它的流程为:
1:首先将磁盘文件数据读取 file_length 大小(注意,mmap这边大小应该为内核空间数据页大小的倍数,例如4k*2...sendfile.h>
ssize_t senfile(int out_fd,int in_fd,off_t* offset,size_t count);
使用 sendfile函数流程为:
1:首先读取磁盘文件