核心概念:linux
用户空间+内核空间+磁盘硬件网络
1.最原始的BIO场景下IO操做流程。并发
读取磁盘上的文件,而后通过网络,将文件发送到另一个磁盘的过程。4次上下文切换,2次文件复制。操作系统
一、JVM发出read() 系统调用。
二、OS上下文切换到内核模式(第一次上下文切换)并将数据读取到内核空间缓冲区。(第一次拷贝:hardware ----> kernel buffer)
三、OS内核而后将数据复制到用户空间缓冲区(第二次拷贝: kernel buffer --> user buffer),而后read系统调用返回。而系统调用的返回又会致使一次内核空间到用户空间的上下文切换(第二次上下文切换)。
四、JVM处理代码逻辑并发送write()系统调用。
五、OS上下文切换到内核模式(第三次上下文切换)并从用户空间缓冲区复制数据到内核空间缓冲区(第三次拷贝: user buffer ——> kernel buffer)。
六、write系统调用返回,致使内核空间到用户空间的再次上下文切换(第四次上下文切换)。将内核空间缓冲区中的数据写到hardware(第四次拷贝: kernel buffer ——> hardware)。blog
2.除去了用户空间和内核空间的文件复制。内存
3.DMAit