服务器IO底层原理
服务器IO底层原理
java中对IO(硬件设备、网络等IO操作)底层读取,是read和write,java其读取或写入都是把数据从内核缓冲区复制到进程缓冲区操作(或者从进程缓冲区复制到内核缓冲区),即java对IO的操作,多部负责数据在物理设备的交换
内核缓冲区
又称为操作系统缓冲区。linux系统中只有一个内核缓冲区。外设的读写涉及到操作系统中断,为减少这种底层系统的时间消耗和性能消耗,于是出现了内核缓冲区。底层会对内核缓冲区监控,等到达一定数目时再进行IO设备的中断处理。系统通过网络调用read流程图:
java中socket操作流程
1.linux通过网卡读请求到内核缓冲区
2.java应用通过read从内核缓冲区读数据
3.java应用处理请求
4.java应用建立好响应数据从进程缓冲区写入内核缓冲区
5.linux通过IO将内核缓冲区数据写入网卡
6.网卡通过底层通信协议返回客户
本章是作者看书后自己的见解,如有错误欢迎大家来纠正
注:下一章:服务器通信基础